/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/ui/src/components/context-menu.tsx
308 строк
9 KB
Kit Langton
feat: add oxlint with correctness defaults (#22682)
16 апр 2026, 03:45
Не верифицирован
16 апр 2026, 03:45
3d6f90c
Код
Авторство
О чём код?
import { ContextMenu as Kobalte } from "@kobalte/core/context-menu" import { splitProps } from "solid-js" import type { ComponentProps, ParentProps } from "solid-js" export interface ContextMenuProps extends ComponentProps<typeof Kobalte> {} export interface ContextMenuTriggerProps extends ComponentProps<typeof Kobalte.Trigger> {} export interface ContextMenuIconProps extends ComponentProps<typeof Kobalte.Icon> {} export interface ContextMenuPortalProps extends ComponentProps<typeof Kobalte.Portal> {} export interface ContextMenuContentProps extends ComponentProps<typeof Kobalte.Content> {} export interface ContextMenuArrowProps extends ComponentProps<typeof Kobalte.Arrow> {} export interface ContextMenuSeparatorProps extends ComponentProps<typeof Kobalte.Separator> {} export interface ContextMenuGroupProps extends ComponentProps<typeof Kobalte.Group> {} export interface ContextMenuGroupLabelProps extends ComponentProps<typeof Kobalte.GroupLabel> {} export interface ContextMenuItemProps extends ComponentProps<typeof Kobalte.Item> {} export interface ContextMenuItemLabelProps extends ComponentProps<typeof Kobalte.ItemLabel> {} export interface ContextMenuItemDescriptionProps extends ComponentProps<typeof Kobalte.ItemDescription> {} export interface ContextMenuItemIndicatorProps extends ComponentProps<typeof Kobalte.ItemIndicator> {} export interface ContextMenuRadioGroupProps extends ComponentProps<typeof Kobalte.RadioGroup> {} export interface ContextMenuRadioItemProps extends ComponentProps<typeof Kobalte.RadioItem> {} export interface ContextMenuCheckboxItemProps extends ComponentProps<typeof Kobalte.CheckboxItem> {} export interface ContextMenuSubProps extends ComponentProps<typeof Kobalte.Sub> {} export interface ContextMenuSubTriggerProps extends ComponentProps<typeof Kobalte.SubTrigger> {} export interface ContextMenuSubContentProps extends ComponentProps<typeof Kobalte.SubContent> {} function ContextMenuRoot(props: ContextMenuProps) { return <Kobalte {...props} data-component="context-menu" /> } function ContextMenuTrigger(props: ParentProps<ContextMenuTriggerProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.Trigger {...rest} data-slot="context-menu-trigger" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.Trigger> ) } function ContextMenuIcon(props: ParentProps<ContextMenuIconProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.Icon {...rest} data-slot="context-menu-icon" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.Icon> ) } function ContextMenuPortal(props: ContextMenuPortalProps) { return <Kobalte.Portal {...props} /> } function ContextMenuContent(props: ParentProps<ContextMenuContentProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.Content {...rest} data-component="context-menu-content" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.Content> ) } function ContextMenuArrow(props: ContextMenuArrowProps) { const [local, rest] = splitProps(props, ["class", "classList"]) return ( <Kobalte.Arrow {...rest} data-slot="context-menu-arrow" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} /> ) } function ContextMenuSeparator(props: ContextMenuSeparatorProps) { const [local, rest] = splitProps(props, ["class", "classList"]) return ( <Kobalte.Separator {...rest} data-slot="context-menu-separator" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} /> ) } function ContextMenuGroup(props: ParentProps<ContextMenuGroupProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.Group {...rest} data-slot="context-menu-group" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.Group> ) } function ContextMenuGroupLabel(props: ParentProps<ContextMenuGroupLabelProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.GroupLabel {...rest} data-slot="context-menu-group-label" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.GroupLabel> ) } function ContextMenuItem(props: ParentProps<ContextMenuItemProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.Item {...rest} data-slot="context-menu-item" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.Item> ) } function ContextMenuItemLabel(props: ParentProps<ContextMenuItemLabelProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.ItemLabel {...rest} data-slot="context-menu-item-label" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.ItemLabel> ) } function ContextMenuItemDescription(props: ParentProps<ContextMenuItemDescriptionProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.ItemDescription {...rest} data-slot="context-menu-item-description" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.ItemDescription> ) } function ContextMenuItemIndicator(props: ParentProps<ContextMenuItemIndicatorProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.ItemIndicator {...rest} data-slot="context-menu-item-indicator" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.ItemIndicator> ) } function ContextMenuRadioGroup(props: ParentProps<ContextMenuRadioGroupProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.RadioGroup {...rest} data-slot="context-menu-radio-group" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.RadioGroup> ) } function ContextMenuRadioItem(props: ParentProps<ContextMenuRadioItemProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.RadioItem {...rest} data-slot="context-menu-radio-item" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.RadioItem> ) } function ContextMenuCheckboxItem(props: ParentProps<ContextMenuCheckboxItemProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.CheckboxItem {...rest} data-slot="context-menu-checkbox-item" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.CheckboxItem> ) } function ContextMenuSub(props: ContextMenuSubProps) { return <Kobalte.Sub {...props} /> } function ContextMenuSubTrigger(props: ParentProps<ContextMenuSubTriggerProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.SubTrigger {...rest} data-slot="context-menu-sub-trigger" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.SubTrigger> ) } function ContextMenuSubContent(props: ParentProps<ContextMenuSubContentProps>) { const [local, rest] = splitProps(props, ["class", "classList", "children"]) return ( <Kobalte.SubContent {...rest} data-component="context-menu-sub-content" classList={{ ...local.classList, [local.class ?? ""]: !!local.class, }} > {local.children} </Kobalte.SubContent> ) } export const ContextMenu = Object.assign(ContextMenuRoot, { Trigger: ContextMenuTrigger, Icon: ContextMenuIcon, Portal: ContextMenuPortal, Content: ContextMenuContent, Arrow: ContextMenuArrow, Separator: ContextMenuSeparator, Group: ContextMenuGroup, GroupLabel: ContextMenuGroupLabel, Item: ContextMenuItem, ItemLabel: ContextMenuItemLabel, ItemDescription: ContextMenuItemDescription, ItemIndicator: ContextMenuItemIndicator, RadioGroup: ContextMenuRadioGroup, RadioItem: ContextMenuRadioItem, CheckboxItem: ContextMenuCheckboxItem, Sub: ContextMenuSub, SubTrigger: ContextMenuSubTrigger, SubContent: ContextMenuSubContent, })