@plexui/vue 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../../src/components/Menu/Menu.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n cloneVNode,\n computed,\n createCommentVNode,\n defineComponent,\n h,\n inject,\n onBeforeUnmount,\n onMounted,\n provide,\n ref,\n shallowRef,\n watch,\n withCtx,\n type ComputedRef,\n type InjectionKey,\n type PropType,\n type ShallowRef,\n} from \"vue\"\nimport {\n DropdownMenuContent as RekaDropdownMenuContent,\n DropdownMenuPortal as RekaDropdownMenuPortal,\n DropdownMenuRoot as RekaDropdownMenuRoot,\n Presence,\n injectDropdownMenuRootContext,\n useDirection,\n useId,\n} from \"reka-ui\"\nimport { useEscCloseStack } from \"../../composables/useEscCloseStack.js\"\nimport { firstElementChild } from \"../Tooltip/slot.js\"\nimport { preventDefaultHandler, toCssVariables } from \"../../lib/helpers.js\"\nimport { Button } from \"../Button/index.js\"\nimport { Check, ChevronRight } from \"../Icon/index.js\"\nimport { useLinkComponent } from \"../PlexUIProvider/internal.js\"\nimport { composeEventHandlers, mergeSlotProps } from \"../Tooltip/slot.js\"\nimport type { LinkComponent } from \"../PlexUIProvider/index.js\"\nimport { TransitionGroup } from \"../Transition/index.js\"\nimport {\n MenuLevelKey,\n MenuRootInternalsKey,\n MenuSubInternalsKey,\n SUB_CLOSE_KEYS,\n SUB_OPEN_KEYS,\n box,\n compose,\n getCheckedState,\n getOpenState,\n isIndeterminate,\n provideMenuContentContext,\n selectableItemListeners,\n splitListeners,\n trackKeyboardUse,\n useMenuItemImpl,\n useMenuItemSelect,\n useMenuLevel,\n useMenuRootInternals,\n useMenuSubInternals,\n whenMouse,\n type CheckedState,\n type GraceIntent,\n type ItemImplHandlers,\n type MenuLevel,\n type MenuSubInternals,\n} from \"./internal.js\"\nimport s from \"@plexui/styles/components/Menu/Menu.module.css\"\n\n// Vue port of packages/ui/src/components/Menu/Menu.tsx. Exports are flat\n// (`Menu`, `MenuTrigger`, `MenuContent`, ...) because runtime-compiled\n// templates cannot resolve `Menu.Trigger` from the `components` option.\n//\n// Reka UI provides the root state, positioning, the dismissable layer, the\n// focus scope and the portal. Where Reka's menu differs from Radix's, this\n// port follows Radix so the DOM and behaviour match React:\n// - The trigger opens on pointerdown (Reka: click) and runs after the child's\n// own handlers, skipped when one called preventDefault().\n// - Items, their roving focus (tabindex 0 on the current item,\n// data-orientation, data-highlighted on focus), typeahead, selection and\n// the submenu pointer grace area are Radix's (see ./internal.ts). Labels\n// get no generated id and groups no aria-labelledby.\n// - Tab is held in the menu whether or not it is modal; focus returns to the\n// trigger synchronously on close; Escape closes one level at a time\n// (Reka's submenu closes the whole menu).\n// - Submenus are a nested Reka root, so the submenu's Escape and outside\n// interactions follow Radix's submenu rules.\n// - Open changes are reported only when the state changes, like Radix's\n// controlled state.\n// - The content keeps the custom property names the shared CSS reads\n// (`--radix-dropdown-menu-content-*`), pointing at Reka's\n// `--reka-popper-*` values.\n\n// ---------------------------------------------------------------------------\n// Plex contexts (React's MenuContext and SubmenuContext)\n\ntype MenuContextValue = {\n open: ComputedRef<boolean>\n setOpen: (next: boolean) => void\n}\n\nconst MenuContextKey: InjectionKey<MenuContextValue> = Symbol(\"PlexUIMenu\")\n\nconst useMenuContext = () => {\n const context = inject(MenuContextKey, null)\n if (!context) throw new Error(\"Menu components must be wrapped in <Menu />\")\n return context\n}\n\ntype SubmenuContextValue = {\n open: ComputedRef<boolean>\n setOpen: (next: boolean) => void\n triggerRef: ShallowRef<HTMLElement | null>\n}\n\nconst SubmenuContextKey: InjectionKey<SubmenuContextValue> = Symbol(\"PlexUISubmenu\")\n\nconst useSubmenuContext = () => {\n const context = inject(SubmenuContextKey, null)\n if (!context) throw new Error(\"Submenu components must be wrapped in <Sub />\")\n return context\n}\n\n// React's blur events from a submenu bubble through the React tree to the\n// parent menus, which clear their typeahead buffer\ntype ParentContent = { resetSearch: () => void }\nconst ParentContentKey: InjectionKey<ParentContent> = Symbol(\"PlexUIMenuParentContent\")\n\ntype ItemIndicatorContextValue = { checked: () => CheckedState }\nconst ItemIndicatorKey: InjectionKey<ItemIndicatorContextValue> = Symbol(\"PlexUIMenuItemIndicator\")\n\ntype RadioGroupContextValue = { value: () => string | undefined; onValueChange: (value: string) => void }\nconst RadioGroupKey: InjectionKey<RadioGroupContextValue> = Symbol(\"PlexUIMenuRadioGroup\")\n\nconst resolveElement = (el: unknown): HTMLElement | null => {\n const node = el && typeof el === \"object\" && \"$el\" in el ? (el as { $el: unknown }).$el : el\n // A multi-root component's $el is the text node opening its fragment; the\n // element follows it (as in Reka)\n const element = node instanceof Text ? node.nextElementSibling : node\n return element instanceof HTMLElement ? element : null\n}\n\n// ---------------------------------------------------------------------------\n// Menu\n\n/** Dropdown menu root. Open state is internal; `forceOpen` overrides it. */\nexport const Menu = defineComponent({\n name: \"Menu\",\n // Like React, only the declared props are used\n inheritAttrs: false,\n props: {\n /** Force the menu to remain open or closed */\n forceOpen: { type: Boolean, default: undefined },\n /**\n * When set to `true`, interaction with outside elements will be disabled and only menu content will be visible to screen readers.\n * @default false\n */\n modal: { type: Boolean, default: false },\n },\n emits: {\n /** The menu opened */\n open: () => true,\n /** The menu closed */\n close: () => true,\n },\n setup(props, { slots, emit }) {\n const open = ref(false)\n const isOpen = computed(() => props.forceOpen ?? open.value)\n\n const handleOpenChange = (nextState: boolean) => {\n open.value = nextState\n if (nextState) emit(\"open\")\n else emit(\"close\")\n }\n\n useEscCloseStack(\n () => open.value,\n () => handleOpenChange(false),\n )\n\n provide(MenuContextKey, { open: isOpen, setOpen: handleOpenChange })\n\n // Radix's controlled root reports a change only when it differs from the\n // rendered state (two changes before the next render both report)\n let renderedOpen = isOpen.value\n const setOpen = (nextState: boolean) => {\n if (nextState !== renderedOpen) handleOpenChange(nextState)\n }\n\n const isUsingKeyboard = box(false)\n let stopTracking: (() => void) | undefined\n onMounted(() => {\n stopTracking = trackKeyboardUse(isUsingKeyboard)\n })\n onBeforeUnmount(() => stopTracking?.())\n\n const level: MenuLevel = { open: () => isOpen.value, onOpenChange: setOpen, content: shallowRef(null) }\n provide(MenuLevelKey, level)\n provide(MenuRootInternalsKey, {\n onClose: () => setOpen(false),\n isUsingKeyboard,\n dir: useDirection(),\n modal: () => props.modal,\n trigger: shallowRef(null),\n })\n\n return () => {\n renderedOpen = isOpen.value\n return h(\n RekaDropdownMenuRoot,\n { \"open\": renderedOpen, \"modal\": props.modal, \"onUpdate:open\": setOpen },\n { default: () => slots.default?.() },\n )\n }\n },\n})\n\n// ---------------------------------------------------------------------------\n// Trigger\n\n/**\n * Renders its child as the menu's trigger (Radix's `asChild`). Other\n * attributes and listeners reach the child too, merged as Radix's Slot does.\n */\nexport const MenuTrigger = defineComponent({\n name: \"MenuTrigger\",\n inheritAttrs: false,\n props: {\n /** Prevents the menu from opening */\n disabled: { type: Boolean, default: false },\n },\n setup(props, { slots, attrs }) {\n const rootContext = injectDropdownMenuRootContext()\n const internals = useMenuRootInternals()\n const level = useMenuLevel()\n rootContext.triggerId ||= useId(undefined, \"reka-dropdown-menu-trigger\")\n // Set here so the trigger's aria-controls is ready when the content opens\n rootContext.contentId ||= useId(undefined, \"reka-dropdown-menu-content\")\n\n const setRef = (el: unknown) => {\n const element = resolveElement(el)\n internals.trigger.value = element\n // Reka leaves pointer-downs on its trigger to the trigger\n rootContext.triggerElement.value = element ?? undefined\n }\n\n // After the child's own handlers, skipped when one called preventDefault()\n const onPointerdown = (event: PointerEvent) => {\n if (event.defaultPrevented) return\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!props.disabled && event.button === 0 && event.ctrlKey === false) {\n const wasOpen = level.open()\n level.onOpenChange(!wasOpen)\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n if (!wasOpen) event.preventDefault()\n }\n }\n\n const onKeydown = (event: KeyboardEvent) => {\n if (event.defaultPrevented) return\n if (props.disabled) return\n if ([\"Enter\", \" \"].includes(event.key)) level.onOpenChange(!level.open())\n if (event.key === \"ArrowDown\") level.onOpenChange(true)\n // prevent keydown from scrolling window / first focused item to execute\n // that keydown (inadvertently closing the menu)\n if ([\"Enter\", \" \", \"ArrowDown\"].includes(event.key)) event.preventDefault()\n }\n\n return () => {\n const open = level.open()\n // Looks through fragments, so a child forwarded with `<slot />` works too\n const child = firstElementChild(slots.default?.())\n if (!child) return null\n // Radix's trigger props, then the caller's (React's Menu.Trigger\n // forwards them), with its handlers after the caller's\n const { onPointerdown: callerPointerdown, onKeydown: callerKeydown, ...restAttrs } = attrs\n const triggerProps = {\n \"type\": \"button\",\n \"id\": rootContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n \"aria-controls\": open ? rootContext.contentId : undefined,\n \"data-state\": getOpenState(open),\n \"data-disabled\": props.disabled ? \"\" : undefined,\n \"disabled\": props.disabled,\n ...restAttrs,\n \"onPointerdown\": composeEventHandlers(callerPointerdown, onPointerdown),\n \"onKeydown\": composeEventHandlers(callerKeydown, onKeydown),\n }\n return cloneVNode(mergeSlotProps(child, triggerProps), { ref: setRef }, true)\n }\n },\n})\n\n// ---------------------------------------------------------------------------\n// Content\n\nconst COLLISION_PADDING = { bottom: 30, top: 30, left: 12, right: 12 }\nconst AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\"\n\n// Radix's names for the content custom properties (read by the shared CSS),\n// in place of Reka's\nconst contentVariables = {\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--reka-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--reka-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--reka-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--reka-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--reka-popper-anchor-height)\",\n \"--reka-dropdown-menu-content-transform-origin\": null,\n \"--reka-dropdown-menu-content-available-width\": null,\n \"--reka-dropdown-menu-content-available-height\": null,\n \"--reka-dropdown-menu-trigger-width\": null,\n \"--reka-dropdown-menu-trigger-height\": null,\n}\n\ntype InteractOutsideEvent = CustomEvent<{ originalEvent: PointerEvent | FocusEvent }>\ntype MenuSide = \"top\" | \"right\" | \"bottom\" | \"left\"\ntype MenuAlign = \"start\" | \"center\" | \"end\"\ntype SizeValue = number | \"auto\"\n\nconst sizeProp = [Number, String] as PropType<SizeValue>\n\n/** Content of the root menu, mounted while it is open (Radix's DropdownMenuContent). */\nconst MenuRootContentImpl = defineComponent({\n name: \"MenuRootContentImpl\",\n props: {\n side: String as PropType<MenuSide>,\n sideOffset: { type: Number, required: true },\n align: String as PropType<MenuAlign>,\n alignOffset: Number,\n width: sizeProp,\n minWidth: sizeProp,\n maxHeight: Number,\n layout: { type: String as PropType<\"vertical\" | \"horizontal\">, required: true },\n size: String as PropType<\"sm\" | \"md\" | \"lg\">,\n onCloseAutoFocus: { type: Function as PropType<(event: Event) => void>, required: true },\n },\n setup(props, { slots }) {\n const rootContext = injectDropdownMenuRootContext()\n const internals = useMenuRootInternals()\n const level = useMenuLevel()\n rootContext.contentId ||= useId(undefined, \"reka-dropdown-menu-content\")\n\n const { contentHandlers, resetSearch } = provideMenuContentContext(() => level.content.value)\n provide(ParentContentKey, { resetSearch })\n onMounted(() => {\n level.content.value = document.getElementById(rootContext.contentId)\n })\n onBeforeUnmount(() => {\n level.content.value = null\n })\n\n let hasInteractedOutside = false\n // Radix's focus scope announces the unmount a task later, on the detached\n // content; Reka's does it at once and refocuses a task later, so that is\n // cancelled and Radix's event dispatched instead\n const onCloseAutoFocus = (rekaEvent: Event) => {\n rekaEvent.preventDefault()\n const container = (rekaEvent.target as HTMLElement | null) ?? level.content.value\n setTimeout(() => {\n const event = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, { bubbles: false, cancelable: true })\n const handleCloseAutoFocus = (closeEvent: Event) => {\n props.onCloseAutoFocus(closeEvent)\n if (closeEvent.defaultPrevented) return\n if (!hasInteractedOutside) internals.trigger.value?.focus()\n hasInteractedOutside = false\n // Always prevent auto focus because we either focus manually or want user agent focus\n closeEvent.preventDefault()\n }\n if (!container) return handleCloseAutoFocus(event)\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, handleCloseAutoFocus)\n container.dispatchEvent(event)\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, handleCloseAutoFocus)\n }, 0)\n }\n const onInteractOutside = (event: InteractOutsideEvent) => {\n if (event.defaultPrevented) return\n const originalEvent = event.detail.originalEvent as PointerEvent\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick\n if (!internals.modal() || isRightClick) hasInteractedOutside = true\n // Reka keeps the menu open when the interaction is on its trigger;\n // Radix dismisses it like any other outside interaction\n const target = event.target as Node | null\n if (target && internals.trigger.value?.contains(target)) level.onOpenChange(false)\n }\n\n const handlers = contentHandlers(internals.isUsingKeyboard)\n\n return () => {\n const isHorizontal = props.layout === \"horizontal\"\n return h(\n RekaDropdownMenuContent,\n {\n \"side\": props.side,\n \"sideOffset\": props.sideOffset,\n \"align\": props.align,\n \"alignOffset\": props.alignOffset ?? (props.align === \"center\" ? 0 : -5),\n \"avoidCollisions\": true,\n \"collisionPadding\": COLLISION_PADDING,\n \"reference\": internals.trigger.value ?? undefined,\n \"class\": s.MenuList,\n \"data-layout\": isHorizontal ? \"horizontal\" : undefined,\n \"data-size\": isHorizontal && props.size ? props.size : undefined,\n \"style\": {\n ...toCssVariables({\n \"menu-width\": props.width,\n \"menu-min-width\": isHorizontal ? \"auto\" : props.minWidth,\n \"menu-max-height\": props.maxHeight,\n }),\n ...contentVariables,\n },\n \"onEscapeKeyDown\": preventDefaultHandler,\n onCloseAutoFocus,\n onInteractOutside,\n ...handlers,\n },\n { default: () => slots.default?.() },\n )\n }\n },\n})\n\n/** The menu panel. Positioned against the trigger and portalled to `<body>`. */\nexport const MenuContent = defineComponent({\n name: \"MenuContent\",\n inheritAttrs: false,\n props: {\n /**\n * The preferred side of the trigger to render against when open. Will be reversed when collisions occur.\n * @default bottom\n */\n side: String as PropType<MenuSide>,\n /**\n * The distance in pixels from the trigger.\n * @default 5\n */\n sideOffset: { type: Number, default: 5 },\n /**\n * The preferred alignment against the trigger. May change when collisions occur.\n * @default center\n */\n align: String as PropType<MenuAlign>,\n /** An offset in pixels from the \"start\" or \"end\" alignment options. */\n alignOffset: Number,\n /**\n * Defines the `width` property of the content\n * @default auto\n */\n width: sizeProp,\n /**\n * Defines the `min-width` property of the content, in pixels.\n * @default 300\n */\n minWidth: sizeProp,\n /** Defines the `max-height` property of the content, in pixels. */\n maxHeight: Number,\n /**\n * Layout direction of menu items. Use `\"horizontal\"` for icon-based toolbars (iOS-style).\n * @default \"vertical\"\n */\n layout: { type: String as PropType<\"vertical\" | \"horizontal\">, default: \"vertical\" },\n /**\n * Size of horizontal menu items. Controls icon size and padding. Only applies when `layout=\"horizontal\"`.\n * @default \"md\"\n */\n size: String as PropType<\"sm\" | \"md\" | \"lg\">,\n },\n emits: {\n /**\n * Focus is about to return to the trigger after the menu closes. Call\n * `event.preventDefault()` to keep the trigger from regaining focus (and\n * its focus-visible ring).\n */\n closeAutoFocus: (_event: Event) => true,\n },\n setup(props, { slots, emit }) {\n const { open } = useMenuContext()\n const onCloseAutoFocus = (event: Event) => emit(\"closeAutoFocus\", event)\n\n return () =>\n h(\n RekaDropdownMenuPortal,\n null,\n {\n default: () => [\n h(\n TransitionGroup,\n { class: s.Menu, enterDuration: 350, exitDuration: 200, disableAnimations: true },\n {\n default: () => [\n open.value\n ? h(\n MenuRootContentImpl,\n { key: \"dropdown\", ...props, onCloseAutoFocus },\n { default: () => slots.default?.() },\n )\n : createCommentVNode(),\n ],\n },\n ),\n ],\n },\n )\n },\n})\n\n// ---------------------------------------------------------------------------\n// Items\n\n/** The focusable branch of `MenuItem`: a Radix menu item. */\nconst MenuItemInteractive = defineComponent({\n name: \"MenuItemInteractive\",\n props: {\n className: [String, Array, Object] as PropType<unknown>,\n disabled: Boolean,\n danger: Boolean,\n onSelect: Function as PropType<(event: Event) => void>,\n onItemClick: { type: Function as PropType<(event: MouseEvent) => void>, required: true },\n },\n setup(props, { slots }) {\n const { open } = useMenuContext()\n const impl = useMenuItemImpl(() => props.disabled)\n const select = useMenuItemSelect(impl, () => props.disabled, () => props.onSelect)\n\n // This handler patches over focus races with core Radix primitives\n // https://github.com/radix-ui/primitives/blob/main/packages/react/menu/src/Menu.tsx#L712-L734\n const handlePreventAfterClose = (evt: PointerEvent) => {\n // Prevent default behavior when we're always known to be closing\n if (!open.value) evt.preventDefault()\n }\n\n const listeners = selectableItemListeners(\n impl,\n select,\n { onClick: (event: MouseEvent) => props.onItemClick(event) },\n { onPointermove: handlePreventAfterClose, onPointerleave: handlePreventAfterClose },\n )\n\n return () =>\n h(\n \"div\",\n {\n ...impl.attrs(),\n \"class\": [s.MenuItem, props.className],\n \"data-danger\": props.danger ? \"\" : undefined,\n \"ref\": impl.setElement,\n ...listeners,\n },\n [h(\"div\", { class: s.PressableInner }, slots.default?.())],\n )\n },\n})\n\n/**\n * A menu item. Interactive (focusable, selectable) when it has a `@select` or\n * a `@click` handler; read-only content otherwise.\n */\nexport const MenuItem = defineComponent({\n name: \"MenuItem\",\n inheritAttrs: false,\n props: {\n /**\n * Second line under the item's label: what this action does, or which\n * value it carries. The label goes semibold on its own, the same way a\n * Select option with a description does. Also a `description` slot.\n */\n description: String,\n /** Disables the menu item */\n disabled: { type: Boolean, default: false },\n /** Marks a destructive action (delete, remove, leave): the item is drawn in the danger color */\n danger: { type: Boolean, default: false },\n /**\n * Called when the item is selected (`@select`). Without it or `@click`\n * the item is read-only content. Call `event.preventDefault()` to keep\n * the menu open.\n */\n onSelect: Function as PropType<(event: Event) => void>,\n /** Called when the item is clicked (`@click`); also makes the item interactive */\n onClick: Function as PropType<(event: MouseEvent) => void>,\n },\n setup(props, { slots, attrs }) {\n const onItemClick = (event: MouseEvent) => props.onClick?.(event)\n\n return () => {\n const description = slots.description ? slots.description() : props.description\n // A described item stacks its two lines; without a description the item\n // keeps the plain flex row that icons and ItemActions rely on.\n const content =\n description === undefined\n ? slots.default?.()\n : [\n h(\"div\", { class: s.ItemLeading }, [\n h(\"div\", null, slots.default?.()),\n h(\"div\", { class: s.ItemDescription }, description),\n ]),\n ]\n\n // Custom click handlers: either callback makes the item interactive\n if (props.onSelect || props.onClick) {\n return h(\n MenuItemInteractive,\n { className: attrs.class, disabled: props.disabled, danger: props.danger, onSelect: props.onSelect, onItemClick },\n { default: () => content },\n )\n }\n\n // Read-only content - will not appear interactive.\n return h(\"div\", { class: [s.MenuItemContent, attrs.class] }, content)\n }\n },\n})\n\n/** Hover actions at the end of an item. */\nexport const MenuItemActions = defineComponent({\n name: \"MenuItemActions\",\n inheritAttrs: false,\n setup(_props, { slots, attrs }) {\n return () => h(\"div\", { class: [s.ItemActions, attrs.class] }, slots.default?.())\n },\n})\n\n/** A small ghost button inside `MenuItemActions`. Closes the menu and emits `click`. */\nexport const MenuItemAction = defineComponent({\n name: \"MenuItemAction\",\n inheritAttrs: false,\n props: {\n /** Accessible name; the action is an icon-only button */\n ariaLabel: String,\n },\n emits: {\n click: (_event: MouseEvent) => true,\n },\n setup(props, { slots, emit }) {\n const { setOpen } = useMenuContext()\n\n return () =>\n h(\n Button,\n {\n class: \"rounded-sm\",\n color: \"secondary\",\n size: \"xs\",\n uniform: true,\n iconSize: \"sm\",\n variant: \"ghost\",\n \"aria-label\": props.ariaLabel,\n onClick: (evt: MouseEvent) => {\n evt.stopPropagation()\n setOpen(false)\n emit(\"click\", evt)\n },\n },\n { default: () => slots.default?.() },\n )\n },\n})\n\ntype RouteTarget = string | Record<string, unknown>\n\n// Drops undefined entries so a router link's own `href` is not overridden\nconst defined = (props: Record<string, unknown>) =>\n Object.fromEntries(Object.entries(props).filter(([, value]) => value !== undefined))\n\n/**\n * A menu item that navigates. Internal paths render the provider's link\n * component; absolute URLs open in a new tab.\n */\nexport const MenuLink = defineComponent({\n name: \"MenuLink\",\n inheritAttrs: false,\n props: {\n href: String,\n /** Router link destination (internal) */\n to: [String, Object] as PropType<RouteTarget>,\n /** Disables the menu item */\n disabled: { type: Boolean, default: false },\n /** Marks a destructive destination: the item is drawn in the danger color */\n danger: { type: Boolean, default: false },\n /**\n * Override the default component used for the link. This is useful for\n * using a routing library, or SSR rendering.\n * @default 'a'\n */\n as: [String, Object, Function] as PropType<LinkComponent>,\n },\n setup(props, { slots, attrs }) {\n const { open } = useMenuContext()\n const DefaultComponent = useLinkComponent()\n const impl = useMenuItemImpl(() => props.disabled)\n const select = useMenuItemSelect(impl, () => props.disabled, () => undefined)\n\n // This handler patches over focus races with core Radix primitives\n // https://github.com/radix-ui/primitives/blob/main/packages/react/menu/src/Menu.tsx#L712-L734\n const handlePreventAfterClose = (evt: PointerEvent) => {\n // Prevent default behavior when we're always known to be closing\n if (!open.value) evt.preventDefault()\n }\n\n return () => {\n const { href, to } = props\n const propPath = href || to\n // When a path is not provided, default to an anchor\n const isExternal = propPath ? /^https?:\\/\\//.test(propPath as string) : true\n const Component = props.as || (isExternal ? \"a\" : DefaultComponent.value)\n\n // The link's own attributes and listeners come first, as the slot\n // child's do in React\n const { listeners, rest } = splitListeners(attrs)\n // A disabled item is not selected; its link must not navigate either.\n // Canceled in the capture phase, before a router link's own handler\n // (vue-router's runs ahead of the listeners passed to it)\n if (props.disabled) listeners.onClickCapture = [listeners.onClickCapture ?? [], preventDefaultHandler].flat()\n const { class: className, ...restProps } = rest\n const linkProps = isExternal ? { target: \"_blank\", rel: \"noopener noreferrer\", href: href ?? to } : { href, to }\n\n const itemProps = defined({\n ...impl.attrs(),\n ...linkProps,\n ...restProps,\n \"class\": [s.MenuItem, className],\n \"data-danger\": props.danger ? \"\" : undefined,\n \"ref\": impl.setElement,\n ...selectableItemListeners(\n impl,\n select,\n listeners,\n isExternal ? {} : { onPointermove: handlePreventAfterClose, onPointerleave: handlePreventAfterClose },\n typeof Component !== \"string\",\n ),\n })\n const inner = () => [h(\"span\", { class: s.PressableInner }, slots.default?.())]\n\n return typeof Component === \"string\" ? h(Component, itemProps, inner()) : h(Component, itemProps, { default: inner })\n }\n },\n})\n\n/** A divider between items. */\nexport const MenuSeparator = defineComponent({\n name: \"MenuSeparator\",\n inheritAttrs: false,\n setup(_props, { attrs }) {\n return () => h(\"div\", { \"role\": \"separator\", \"aria-orientation\": \"horizontal\", \"class\": [s.Separator, attrs.class] })\n },\n})\n\n/** A non-interactive label for a group of items. */\nexport const MenuLabel = defineComponent({\n name: \"MenuLabel\",\n inheritAttrs: false,\n setup(_props, { slots, attrs }) {\n return () => h(\"div\", { class: [s.MenuLabel, attrs.class] }, slots.default?.())\n },\n})\n\n/** Groups related items. */\nexport const MenuGroup = defineComponent({\n name: \"MenuGroup\",\n inheritAttrs: false,\n setup(_props, { slots, attrs }) {\n return () => h(\"div\", { role: \"group\", class: attrs.class }, slots.default?.())\n },\n})\n\n// ---------------------------------------------------------------------------\n// Submenus\n\n/** A nested menu: `MenuSubTrigger` plus `MenuSubContent`. */\nexport const MenuSub = defineComponent({\n name: \"MenuSub\",\n inheritAttrs: false,\n props: {\n /** Force the menu to remain open or closed */\n forceOpen: { type: Boolean, default: undefined },\n },\n emits: {\n /** The submenu opened */\n open: () => true,\n /** The submenu closed */\n close: () => true,\n },\n setup(props, { slots, emit }) {\n const parentLevel = useMenuLevel()\n const open = ref(false)\n const triggerRef = shallowRef<HTMLElement | null>(null)\n const isOpen = computed(() => props.forceOpen ?? open.value)\n\n const handleOpenChange = (nextState: boolean) => {\n open.value = nextState\n if (nextState) emit(\"open\")\n else emit(\"close\")\n }\n\n useEscCloseStack(\n () => open.value,\n () => {\n handleOpenChange(false)\n // Ensure trigger is focused\n triggerRef.value?.focus()\n },\n )\n\n provide(SubmenuContextKey, { open: isOpen, setOpen: handleOpenChange, triggerRef })\n\n // Radix's controlled submenu reports a change only when it differs from\n // the rendered state\n let renderedOpen = isOpen.value\n const setOpen = (nextState: boolean) => {\n if (nextState !== renderedOpen) handleOpenChange(nextState)\n }\n\n // Radix's MenuSub closes with its parent menu, and when it unmounts\n watch(\n () => parentLevel.open(),\n (parentOpen) => {\n if (parentOpen === false) setOpen(false)\n },\n { immediate: true },\n )\n onBeforeUnmount(() => setOpen(false))\n\n const subInternals: MenuSubInternals = {\n triggerId: useId(undefined, \"reka-menu-sub-trigger\"),\n contentId: useId(undefined, \"reka-menu-sub-content\"),\n trigger: shallowRef(null),\n }\n provide(MenuSubInternalsKey, subInternals)\n provide(MenuLevelKey, { open: () => isOpen.value, onOpenChange: setOpen, content: shallowRef(null) })\n\n return () => {\n renderedOpen = isOpen.value\n return h(\n RekaDropdownMenuRoot,\n { \"open\": renderedOpen, \"modal\": false, \"onUpdate:open\": setOpen },\n { default: () => slots.default?.() },\n )\n }\n },\n})\n\n/** The item that opens a submenu, on hover, click, Enter, Space or ArrowRight. */\nexport const MenuSubTrigger = defineComponent({\n name: \"MenuSubTrigger\",\n inheritAttrs: false,\n props: {\n /** Disables the trigger */\n disabled: { type: Boolean, default: false },\n },\n setup(props, { slots, attrs }) {\n const { open: menuOpen } = useMenuContext()\n const { triggerRef } = useSubmenuContext()\n const subLevel = useMenuLevel()\n const subInternals = useMenuSubInternals()\n const impl = useMenuItemImpl(() => props.disabled)\n const { contentContext, rootInternals } = impl\n\n let openTimer: number | null = null\n const clearOpenTimer = () => {\n if (openTimer) window.clearTimeout(openTimer)\n openTimer = null\n }\n onBeforeUnmount(() => {\n clearOpenTimer()\n window.clearTimeout(contentContext.pointerGraceTimer.current)\n contentContext.onPointerGraceIntentChange(null)\n })\n\n // This handler patches over focus races with core Radix primitives\n // https://github.com/radix-ui/primitives/blob/main/packages/react/menu/src/Menu.tsx#L712-L734\n const handlePreventAfterClose = (evt: PointerEvent) => {\n // Prevent default behavior when we know the outer menu is closing\n if (!menuOpen.value) evt.preventDefault()\n }\n\n const setRef = (el: unknown) => {\n impl.setElement(el)\n const element = resolveElement(el)\n subInternals.trigger.value = element\n triggerRef.value = element\n }\n\n const subTriggerHandlers: ItemImplHandlers = {\n onClick: (event) => {\n if (props.disabled || event.defaultPrevented) return\n /**\n * We manually focus because iOS Safari doesn't always focus on click (e.g. buttons)\n * and we rely heavily on `onFocusOutside` for submenus to close when switching\n * between separate submenus.\n */\n ;(event.currentTarget as HTMLElement).focus()\n if (!subLevel.open()) subLevel.onOpenChange(true)\n },\n onPointermove: compose(\n handlePreventAfterClose,\n whenMouse((event: PointerEvent) => {\n contentContext.onItemEnter(event)\n if (event.defaultPrevented) return\n if (!props.disabled && !subLevel.open() && !openTimer) {\n contentContext.onPointerGraceIntentChange(null)\n openTimer = window.setTimeout(() => {\n subLevel.onOpenChange(true)\n clearOpenTimer()\n }, 100)\n }\n }),\n ),\n onPointerleave: compose(\n handlePreventAfterClose,\n whenMouse((event: PointerEvent) => {\n clearOpenTimer()\n\n const content = subLevel.content.value\n const contentRect = content?.getBoundingClientRect()\n if (content && contentRect) {\n // TODO: make sure to update this when we change positioning logic\n const side = content.dataset.side as GraceIntent[\"side\"]\n const rightSide = side === \"right\"\n const bleed = rightSide ? -5 : 5\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"]\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"]\n\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom },\n ],\n side,\n })\n\n window.clearTimeout(contentContext.pointerGraceTimer.current)\n contentContext.pointerGraceTimer.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300,\n )\n } else {\n contentContext.onTriggerLeave(event)\n if (event.defaultPrevented) return\n\n // There's 100ms where the user may leave an item before the submenu was opened.\n contentContext.onPointerGraceIntentChange(null)\n }\n }),\n ),\n onKeydown: (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\"\n if (props.disabled || (isTypingAhead && event.key === \" \")) return\n if (SUB_OPEN_KEYS[rootInternals.dir.value].includes(event.key)) {\n subLevel.onOpenChange(true)\n // The trigger may hold focus if opened via pointer interaction\n // so we ensure content is given focus again when switching to keyboard.\n subLevel.content.value?.focus()\n // prevent window from scrolling\n event.preventDefault()\n }\n },\n }\n\n return () => {\n const open = subLevel.open()\n return h(\n \"div\",\n {\n ...impl.attrs(),\n \"id\": subInternals.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n // Radix (radix-ui 1.8) points at the submenu only while it is open\n \"aria-controls\": open ? subInternals.contentId : undefined,\n \"data-state\": getOpenState(open),\n \"class\": [s.MenuItem, s.SubMenuItem, attrs.class],\n \"ref\": setRef,\n ...impl.handlers(subTriggerHandlers),\n },\n [\n h(\"div\", { class: s.PressableInner }, [\n slots.default?.(),\n h(ChevronRight, { width: \"16\", height: \"16\", class: s.SubTriggerIcon }),\n ]),\n ],\n )\n }\n },\n})\n\n/** Content of a submenu, mounted while it is open (Radix's DropdownMenuSubContent). */\nconst MenuSubContentImpl = defineComponent({\n name: \"MenuSubContentImpl\",\n props: {\n sideOffset: { type: Number, required: true },\n alignOffset: { type: Number, required: true },\n width: { type: sizeProp, required: true },\n minWidth: { type: sizeProp, required: true },\n maxHeight: Number,\n },\n setup(props, { slots }) {\n // The submenu's own Reka root: its content takes the submenu's ids\n const subRoot = injectDropdownMenuRootContext()\n const subInternals = useMenuSubInternals()\n const subLevel = useMenuLevel()\n const internals = useMenuRootInternals()\n const parentContent = inject(ParentContentKey, null)\n subRoot.triggerId = subInternals.triggerId\n subRoot.contentId = subInternals.contentId\n\n const { contentHandlers, resetSearch } = provideMenuContentContext(() => subLevel.content.value)\n provide(ParentContentKey, {\n resetSearch: () => {\n resetSearch()\n parentContent?.resetSearch()\n },\n })\n onMounted(() => {\n subLevel.content.value = document.getElementById(subInternals.contentId)\n })\n onBeforeUnmount(() => {\n subLevel.content.value = null\n })\n\n const handlers = contentHandlers(internals.isUsingKeyboard)\n\n const onKeydown = (event: KeyboardEvent) => {\n const currentTarget = event.currentTarget as HTMLElement\n const isKeyDownInside = currentTarget.contains(event.target as Node)\n const isCloseKey = SUB_CLOSE_KEYS[internals.dir.value].includes(event.key)\n if (isKeyDownInside && isCloseKey) {\n subLevel.onOpenChange(false)\n // We focus manually because we prevented it in `onCloseAutoFocus`\n subInternals.trigger.value?.focus()\n // prevent window from scrolling\n event.preventDefault()\n }\n handlers.onKeydown(event)\n }\n\n return () =>\n h(\n RekaDropdownMenuContent,\n {\n \"side\": internals.dir.value === \"rtl\" ? \"left\" : \"right\",\n \"align\": \"start\",\n \"sideOffset\": props.sideOffset,\n \"alignOffset\": props.alignOffset,\n \"avoidCollisions\": true,\n \"collisionPadding\": COLLISION_PADDING,\n \"reference\": subInternals.trigger.value ?? undefined,\n \"class\": s.MenuList,\n \"style\": {\n ...toCssVariables({\n \"menu-width\": props.width,\n \"menu-min-width\": props.minWidth,\n \"menu-max-height\": props.maxHeight,\n }),\n ...contentVariables,\n },\n \"onOpenAutoFocus\": (event: Event) => {\n // when opening a submenu, focus content for keyboard users only\n if (internals.isUsingKeyboard.current) subLevel.content.value?.focus()\n event.preventDefault()\n },\n // The menu might close because of focusing another menu item in the parent menu. We\n // don't want it to refocus the trigger in that case so we handle trigger focus ourselves.\n \"onCloseAutoFocus\": preventDefaultHandler,\n // Radix submenus close on focus outside (except to their trigger) and\n // never on an outside pointer-down\n \"onPointerDownOutside\": preventDefaultHandler,\n \"onFocusOutside\": (event: Event) => {\n // We prevent closing when the trigger is focused to avoid triggering a re-open animation\n // on pointer interaction.\n if (event.target !== subInternals.trigger.value) subLevel.onOpenChange(false)\n event.preventDefault()\n },\n \"onEscapeKeyDown\": preventDefaultHandler,\n ...handlers,\n onKeydown,\n // A blur inside a submenu reaches its parent menus in React's tree\n \"onFocusout\": () => {\n handlers.onFocusout()\n parentContent?.resetSearch()\n },\n },\n { default: () => slots.default?.() },\n )\n },\n})\n\n/** The submenu panel, positioned to the side of its trigger. */\nexport const MenuSubContent = defineComponent({\n name: \"MenuSubContent\",\n inheritAttrs: false,\n props: {\n /** The distance in pixels from the trigger. @default 4 */\n sideOffset: { type: Number, default: 4 },\n /** An offset in pixels along the trigger. @default -6 */\n alignOffset: { type: Number, default: -6 },\n /** Defines the `width` property of the content. @default \"auto\" */\n width: { type: sizeProp, default: \"auto\" },\n /** Defines the `min-width` property of the content. @default \"auto\" */\n minWidth: { type: sizeProp, default: \"auto\" },\n /** Defines the `max-height` property of the content, in pixels. */\n maxHeight: Number,\n },\n setup(props, { slots }) {\n const { open } = useSubmenuContext()\n\n return () =>\n h(\n RekaDropdownMenuPortal,\n null,\n {\n default: () => [\n h(\n TransitionGroup,\n { class: s.Menu, enterDuration: 350, exitDuration: 200, disableAnimations: true },\n {\n default: () => [\n open.value\n ? h(MenuSubContentImpl, { key: \"submenu\", ...props }, { default: () => slots.default?.() })\n : createCommentVNode(),\n ],\n },\n ),\n ],\n },\n )\n },\n})\n\n// ---------------------------------------------------------------------------\n// Checkbox and radio items\n\n/** Radix's ItemIndicator: rendered while its item is checked. */\nconst MenuItemIndicator = defineComponent({\n name: \"MenuItemIndicator\",\n inheritAttrs: false,\n setup(_props, { slots, attrs }) {\n const indicator = inject(ItemIndicatorKey, { checked: () => false })\n\n return () => {\n const checked = indicator.checked()\n // Rendered here: Presence calls its slot during its setup too\n const children = slots.default?.()\n return h(\n Presence,\n { present: isIndeterminate(checked) || checked === true },\n {\n // withCtx marks it as a render slot so Vue does not warn about that call\n default: withCtx(() => [h(\"span\", { ...attrs, \"data-state\": getCheckedState(checked) }, children)]),\n },\n )\n }\n },\n})\n\n/** Single selection: `v-model:value` on the group, `MenuRadioItem` children. */\nexport const MenuRadioGroup = defineComponent({\n name: \"MenuRadioGroup\",\n props: {\n /** The selected value (`v-model:value`) */\n value: String,\n /**\n * The orientation of the indicator within the radio item.\n * @default end\n */\n indicatorPosition: { type: String as PropType<\"start\" | \"end\">, default: \"end\" },\n },\n emits: {\n \"update:value\": (_value: string) => true,\n /** Fired when selection changes */\n \"change\": (_value: string) => true,\n },\n setup(props, { slots, emit }) {\n provide(RadioGroupKey, {\n value: () => props.value,\n onValueChange: (value) => {\n emit(\"update:value\", value)\n emit(\"change\", value)\n },\n })\n\n return () =>\n h(\"div\", { \"role\": \"group\", \"data-indicator-position\": props.indicatorPosition }, slots.default?.())\n },\n})\n\n/** One option of a `MenuRadioGroup`. */\nexport const MenuRadioItem = defineComponent({\n name: \"MenuRadioItem\",\n inheritAttrs: false,\n props: {\n value: { type: String, required: true },\n /** Disables the radio item */\n disabled: { type: Boolean, default: false },\n },\n emits: {\n /** The radio item was pressed; `event.preventDefault()` keeps the menu open */\n select: (_event: Event) => true,\n },\n setup(props, { slots, attrs, emit }) {\n const group = inject(RadioGroupKey, { value: () => undefined, onValueChange: () => {} })\n const checked = () => props.value === group.value()\n provide(ItemIndicatorKey, { checked })\n\n const impl = useMenuItemImpl(() => props.disabled)\n const select = useMenuItemSelect(\n impl,\n () => props.disabled,\n () => (event: Event) => {\n emit(\"select\", event)\n group.onValueChange(props.value)\n },\n )\n\n return () => {\n const { listeners, rest } = splitListeners(attrs)\n const { class: className, ...restProps } = rest\n return h(\n \"div\",\n {\n ...impl.attrs(),\n \"role\": \"menuitemradio\",\n \"aria-checked\": checked(),\n \"class\": [s.MenuItem, s.RadioItem, className],\n ...restProps,\n \"data-state\": getCheckedState(checked()),\n \"ref\": impl.setElement,\n ...selectableItemListeners(impl, select, listeners),\n },\n [\n h(\"div\", { class: s.PressableInner }, [\n h(\"div\", { class: s.RadioIndicator }, [h(MenuItemIndicator, { class: s.RadioIndicatorActive })]),\n slots.default?.(),\n ]),\n ],\n )\n }\n },\n})\n\n/** A toggle item: bind `v-model:checked`. */\nexport const MenuCheckboxItem = defineComponent({\n name: \"MenuCheckboxItem\",\n inheritAttrs: false,\n props: {\n /** Checked state of the checkbox item (`v-model:checked`) */\n checked: { type: [Boolean, String] as PropType<CheckedState>, default: false },\n /** Disables the checkbox item */\n disabled: { type: Boolean, default: false },\n /**\n * The orientation of the indicator within the checkbox item.\n * @default end\n */\n indicatorPosition: { type: String as PropType<\"start\" | \"end\">, default: \"end\" },\n /**\n * Visual treatment for the checkbox indicator.\n * @default solid\n */\n indicatorVariant: { type: String as PropType<\"solid\" | \"ghost\">, default: \"solid\" },\n },\n emits: {\n \"update:checked\": (_checked: boolean) => true,\n /** Event handler called when the checked state changes */\n \"checkedChange\": (_checked: boolean) => true,\n /** The checkbox item was pressed; `event.preventDefault()` keeps the menu open */\n \"select\": (_event: Event) => true,\n },\n setup(props, { slots, attrs, emit }) {\n provide(ItemIndicatorKey, { checked: () => props.checked })\n\n const impl = useMenuItemImpl(() => props.disabled)\n const select = useMenuItemSelect(\n impl,\n () => props.disabled,\n () => (event: Event) => {\n emit(\"select\", event)\n const next = isIndeterminate(props.checked) ? true : !props.checked\n emit(\"update:checked\", next)\n emit(\"checkedChange\", next)\n },\n )\n\n return () => {\n const { listeners, rest } = splitListeners(attrs)\n const { class: className, ...restProps } = rest\n const { checked } = props\n return h(\n \"div\",\n {\n ...impl.attrs(),\n \"role\": \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"class\": [s.MenuItem, s.CheckboxItem, className],\n ...restProps,\n \"data-state\": getCheckedState(checked),\n \"data-indicator-position\": props.indicatorPosition,\n \"data-indicator-variant\": props.indicatorVariant,\n \"ref\": impl.setElement,\n ...selectableItemListeners(impl, select, listeners),\n },\n [\n h(\"div\", { class: s.PressableInner }, [\n h(\"div\", { class: s.CheckboxIndicator }, [\n h(MenuItemIndicator, null, {\n default: () =>\n props.indicatorVariant === \"ghost\"\n ? [h(Check, { class: \"size-4\" })]\n : [h(\"div\", { class: s.CheckboxCircle }, [h(Check, { class: \"size-4\" })])],\n }),\n ]),\n slots.default?.(),\n ]),\n ],\n )\n }\n },\n})\n\nexport type MenuProps = InstanceType<typeof Menu>[\"$props\"]\nexport type MenuContentProps = InstanceType<typeof MenuContent>[\"$props\"]\nexport type MenuItemProps = InstanceType<typeof MenuItem>[\"$props\"]\nexport type SubmenuProps = InstanceType<typeof MenuSub>[\"$props\"]\nexport type MenuRadioGroupProps = InstanceType<typeof MenuRadioGroup>[\"$props\"]\nexport type MenuRadioItemProps = InstanceType<typeof MenuRadioItem>[\"$props\"]\nexport type MenuCheckboxItemProps = InstanceType<typeof MenuCheckboxItem>[\"$props\"]\n"]}
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../../src/components/Menu/Menu.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n cloneVNode,\n computed,\n createCommentVNode,\n defineComponent,\n h,\n inject,\n onBeforeUnmount,\n onMounted,\n provide,\n ref,\n shallowRef,\n watch,\n withCtx,\n type ComputedRef,\n type InjectionKey,\n type PropType,\n type ShallowRef,\n} from \"vue\"\nimport {\n DropdownMenuContent as RekaDropdownMenuContent,\n DropdownMenuPortal as RekaDropdownMenuPortal,\n DropdownMenuRoot as RekaDropdownMenuRoot,\n Presence,\n injectDropdownMenuRootContext,\n useDirection,\n useId,\n} from \"reka-ui\"\nimport { useEscCloseStack } from \"../../composables/useEscCloseStack.js\"\nimport { firstElementChild } from \"../Tooltip/slot.js\"\nimport { preventDefaultHandler, toCssVariables } from \"../../lib/helpers.js\"\nimport { Button } from \"../Button/index.js\"\nimport { Check, ChevronRight } from \"../Icon/index.js\"\nimport { useLinkComponent } from \"../PlexUIProvider/internal.js\"\nimport { composeEventHandlers, mergeSlotProps } from \"../Tooltip/slot.js\"\nimport type { LinkComponent } from \"../PlexUIProvider/index.js\"\nimport { TransitionGroup } from \"../Transition/index.js\"\nimport {\n MenuLevelKey,\n MenuRootInternalsKey,\n MenuSubInternalsKey,\n SUB_CLOSE_KEYS,\n SUB_OPEN_KEYS,\n box,\n compose,\n getCheckedState,\n getOpenState,\n isIndeterminate,\n provideMenuContentContext,\n selectableItemListeners,\n splitListeners,\n trackKeyboardUse,\n useMenuItemImpl,\n useMenuItemSelect,\n useMenuLevel,\n useMenuRootInternals,\n useMenuSubInternals,\n whenMouse,\n type CheckedState,\n type GraceIntent,\n type ItemImplHandlers,\n type MenuLevel,\n type MenuSubInternals,\n} from \"./internal.js\"\nimport s from \"@plexui/styles/components/Menu/Menu.module.css\"\n\n// Vue port of packages/ui/src/components/Menu/Menu.tsx. Exports are flat\n// (`Menu`, `MenuTrigger`, `MenuContent`, ...) because runtime-compiled\n// templates cannot resolve `Menu.Trigger` from the `components` option.\n//\n// Reka UI provides the root state, positioning, the dismissable layer, the\n// focus scope and the portal. Where Reka's menu differs from Radix's, this\n// port follows Radix so the DOM and behaviour match React:\n// - The trigger opens on pointerdown (Reka: click) and runs after the child's\n// own handlers, skipped when one called preventDefault().\n// - Items, their roving focus (tabindex 0 on the current item,\n// data-orientation, data-highlighted on focus), typeahead, selection and\n// the submenu pointer grace area are Radix's (see ./internal.ts). Labels\n// get no generated id and groups no aria-labelledby.\n// - Tab is held in the menu whether or not it is modal; focus returns to the\n// trigger synchronously on close; Escape closes one level at a time\n// (Reka's submenu closes the whole menu).\n// - Submenus are a nested Reka root, so the submenu's Escape and outside\n// interactions follow Radix's submenu rules.\n// - Open changes are reported only when the state changes, like Radix's\n// controlled state.\n// - The content keeps the custom property names the shared CSS reads\n// (`--radix-dropdown-menu-content-*`), pointing at Reka's\n// `--reka-popper-*` values.\n\n// ---------------------------------------------------------------------------\n// Plex contexts (React's MenuContext and SubmenuContext)\n\ntype MenuContextValue = {\n open: ComputedRef<boolean>\n setOpen: (next: boolean) => void\n}\n\nconst MenuContextKey: InjectionKey<MenuContextValue> = Symbol(\"PlexUIMenu\")\n\nconst useMenuContext = () => {\n const context = inject(MenuContextKey, null)\n if (!context) throw new Error(\"Menu components must be wrapped in <Menu />\")\n return context\n}\n\ntype SubmenuContextValue = {\n open: ComputedRef<boolean>\n setOpen: (next: boolean) => void\n triggerRef: ShallowRef<HTMLElement | null>\n}\n\nconst SubmenuContextKey: InjectionKey<SubmenuContextValue> = Symbol(\"PlexUISubmenu\")\n\nconst useSubmenuContext = () => {\n const context = inject(SubmenuContextKey, null)\n if (!context) throw new Error(\"Submenu components must be wrapped in <Sub />\")\n return context\n}\n\n// React's blur events from a submenu bubble through the React tree to the\n// parent menus, which clear their typeahead buffer\ntype ParentContent = { resetSearch: () => void }\nconst ParentContentKey: InjectionKey<ParentContent> = Symbol(\"PlexUIMenuParentContent\")\n\ntype ItemIndicatorContextValue = { checked: () => CheckedState }\nconst ItemIndicatorKey: InjectionKey<ItemIndicatorContextValue> = Symbol(\"PlexUIMenuItemIndicator\")\n\ntype RadioGroupContextValue = { value: () => string | undefined; onValueChange: (value: string) => void }\nconst RadioGroupKey: InjectionKey<RadioGroupContextValue> = Symbol(\"PlexUIMenuRadioGroup\")\n\nconst resolveElement = (el: unknown): HTMLElement | null => {\n const node = el && typeof el === \"object\" && \"$el\" in el ? (el as { $el: unknown }).$el : el\n // A multi-root component's $el is the text node opening its fragment; the\n // element follows it (as in Reka)\n const element = node instanceof Text ? node.nextElementSibling : node\n return element instanceof HTMLElement ? element : null\n}\n\n// ---------------------------------------------------------------------------\n// Menu\n\n/** Dropdown menu root. Open state is internal; `forceOpen` overrides it. */\nexport const Menu = defineComponent({\n name: \"Menu\",\n // Like React, only the declared props are used\n inheritAttrs: false,\n props: {\n /** Force the menu to remain open or closed */\n forceOpen: { type: Boolean, default: undefined },\n /**\n * When set to `true`, interaction with outside elements will be disabled and only menu content will be visible to screen readers.\n * @default false\n */\n modal: { type: Boolean, default: false },\n },\n emits: {\n /** The menu opened */\n open: () => true,\n /** The menu closed */\n close: () => true,\n },\n setup(props, { slots, emit }) {\n const open = ref(false)\n const isOpen = computed(() => props.forceOpen ?? open.value)\n\n const handleOpenChange = (nextState: boolean) => {\n open.value = nextState\n if (nextState) emit(\"open\")\n else emit(\"close\")\n }\n\n useEscCloseStack(\n () => open.value,\n () => handleOpenChange(false),\n )\n\n provide(MenuContextKey, { open: isOpen, setOpen: handleOpenChange })\n\n // Radix's controlled root reports a change only when it differs from the\n // rendered state (two changes before the next render both report)\n let renderedOpen = isOpen.value\n const setOpen = (nextState: boolean) => {\n if (nextState !== renderedOpen) handleOpenChange(nextState)\n }\n\n const isUsingKeyboard = box(false)\n let stopTracking: (() => void) | undefined\n onMounted(() => {\n stopTracking = trackKeyboardUse(isUsingKeyboard)\n })\n onBeforeUnmount(() => stopTracking?.())\n\n const level: MenuLevel = { open: () => isOpen.value, onOpenChange: setOpen, content: shallowRef(null) }\n provide(MenuLevelKey, level)\n provide(MenuRootInternalsKey, {\n onClose: () => setOpen(false),\n isUsingKeyboard,\n dir: useDirection(),\n modal: () => props.modal,\n trigger: shallowRef(null),\n })\n\n return () => {\n renderedOpen = isOpen.value\n return h(\n RekaDropdownMenuRoot,\n { \"open\": renderedOpen, \"modal\": props.modal, \"onUpdate:open\": setOpen },\n { default: () => slots.default?.() },\n )\n }\n },\n})\n\n// ---------------------------------------------------------------------------\n// Trigger\n\n/**\n * Renders its child as the menu's trigger (Radix's `asChild`). Other\n * attributes and listeners reach the child too, merged as Radix's Slot does.\n */\nexport const MenuTrigger = defineComponent({\n name: \"MenuTrigger\",\n inheritAttrs: false,\n props: {\n /** Prevents the menu from opening */\n disabled: { type: Boolean, default: false },\n },\n setup(props, { slots, attrs }) {\n const rootContext = injectDropdownMenuRootContext()\n const internals = useMenuRootInternals()\n const level = useMenuLevel()\n rootContext.triggerId ||= useId(undefined, \"reka-dropdown-menu-trigger\")\n // Set here so the trigger's aria-controls is ready when the content opens\n rootContext.contentId ||= useId(undefined, \"reka-dropdown-menu-content\")\n\n const setRef = (el: unknown) => {\n const element = resolveElement(el)\n internals.trigger.value = element\n // Reka leaves pointer-downs on its trigger to the trigger\n rootContext.triggerElement.value = element ?? undefined\n }\n\n // After the child's own handlers, skipped when one called preventDefault()\n const onPointerdown = (event: PointerEvent) => {\n if (event.defaultPrevented) return\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!props.disabled && event.button === 0 && event.ctrlKey === false) {\n const wasOpen = level.open()\n level.onOpenChange(!wasOpen)\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n if (!wasOpen) event.preventDefault()\n }\n }\n\n const onKeydown = (event: KeyboardEvent) => {\n if (event.defaultPrevented) return\n if (props.disabled) return\n if ([\"Enter\", \" \"].includes(event.key)) level.onOpenChange(!level.open())\n if (event.key === \"ArrowDown\") level.onOpenChange(true)\n // prevent keydown from scrolling window / first focused item to execute\n // that keydown (inadvertently closing the menu)\n if ([\"Enter\", \" \", \"ArrowDown\"].includes(event.key)) event.preventDefault()\n }\n\n return () => {\n const open = level.open()\n // Looks through fragments, so a child forwarded with `<slot />` works too\n const child = firstElementChild(slots.default?.())\n if (!child) return null\n // Radix's trigger props, then the caller's (React's Menu.Trigger\n // forwards them), with its handlers after the caller's\n const { onPointerdown: callerPointerdown, onKeydown: callerKeydown, ...restAttrs } = attrs\n const triggerProps = {\n \"type\": \"button\",\n \"id\": rootContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n \"aria-controls\": open ? rootContext.contentId : undefined,\n \"data-state\": getOpenState(open),\n \"data-disabled\": props.disabled ? \"\" : undefined,\n \"disabled\": props.disabled,\n ...restAttrs,\n \"onPointerdown\": composeEventHandlers(callerPointerdown, onPointerdown),\n \"onKeydown\": composeEventHandlers(callerKeydown, onKeydown),\n }\n return cloneVNode(mergeSlotProps(child, triggerProps), { ref: setRef }, true)\n }\n },\n})\n\n// ---------------------------------------------------------------------------\n// Content\n\nconst COLLISION_PADDING = { bottom: 30, top: 30, left: 12, right: 12 }\nconst AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\"\n\n// Radix's names for the content custom properties (read by the shared CSS),\n// in place of Reka's\nconst contentVariables = {\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--reka-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--reka-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--reka-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--reka-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--reka-popper-anchor-height)\",\n \"--reka-dropdown-menu-content-transform-origin\": null,\n \"--reka-dropdown-menu-content-available-width\": null,\n \"--reka-dropdown-menu-content-available-height\": null,\n \"--reka-dropdown-menu-trigger-width\": null,\n \"--reka-dropdown-menu-trigger-height\": null,\n}\n\ntype InteractOutsideEvent = CustomEvent<{ originalEvent: PointerEvent | FocusEvent }>\ntype MenuSide = \"top\" | \"right\" | \"bottom\" | \"left\"\ntype MenuAlign = \"start\" | \"center\" | \"end\"\ntype SizeValue = number | \"auto\"\n\nconst sizeProp = [Number, String] as PropType<SizeValue>\n\n/** Content of the root menu, mounted while it is open (Radix's DropdownMenuContent). */\nconst MenuRootContentImpl = defineComponent({\n name: \"MenuRootContentImpl\",\n props: {\n side: String as PropType<MenuSide>,\n sideOffset: { type: Number, required: true },\n align: String as PropType<MenuAlign>,\n alignOffset: Number,\n width: sizeProp,\n minWidth: sizeProp,\n maxHeight: Number,\n layout: { type: String as PropType<\"vertical\" | \"horizontal\">, required: true },\n size: String as PropType<\"sm\" | \"md\" | \"lg\">,\n pill: Boolean,\n onCloseAutoFocus: { type: Function as PropType<(event: Event) => void>, required: true },\n },\n setup(props, { slots }) {\n const rootContext = injectDropdownMenuRootContext()\n const internals = useMenuRootInternals()\n const level = useMenuLevel()\n rootContext.contentId ||= useId(undefined, \"reka-dropdown-menu-content\")\n\n const { contentHandlers, resetSearch } = provideMenuContentContext(() => level.content.value)\n provide(ParentContentKey, { resetSearch })\n onMounted(() => {\n level.content.value = document.getElementById(rootContext.contentId)\n })\n onBeforeUnmount(() => {\n level.content.value = null\n })\n\n let hasInteractedOutside = false\n // Radix's focus scope announces the unmount a task later, on the detached\n // content; Reka's does it at once and refocuses a task later, so that is\n // cancelled and Radix's event dispatched instead\n const onCloseAutoFocus = (rekaEvent: Event) => {\n rekaEvent.preventDefault()\n const container = (rekaEvent.target as HTMLElement | null) ?? level.content.value\n setTimeout(() => {\n const event = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, { bubbles: false, cancelable: true })\n const handleCloseAutoFocus = (closeEvent: Event) => {\n props.onCloseAutoFocus(closeEvent)\n if (closeEvent.defaultPrevented) return\n if (!hasInteractedOutside) internals.trigger.value?.focus()\n hasInteractedOutside = false\n // Always prevent auto focus because we either focus manually or want user agent focus\n closeEvent.preventDefault()\n }\n if (!container) return handleCloseAutoFocus(event)\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, handleCloseAutoFocus)\n container.dispatchEvent(event)\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, handleCloseAutoFocus)\n }, 0)\n }\n const onInteractOutside = (event: InteractOutsideEvent) => {\n if (event.defaultPrevented) return\n const originalEvent = event.detail.originalEvent as PointerEvent\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick\n if (!internals.modal() || isRightClick) hasInteractedOutside = true\n // Reka keeps the menu open when the interaction is on its trigger;\n // Radix dismisses it like any other outside interaction\n const target = event.target as Node | null\n if (target && internals.trigger.value?.contains(target)) level.onOpenChange(false)\n }\n\n const handlers = contentHandlers(internals.isUsingKeyboard)\n\n return () => {\n const isHorizontal = props.layout === \"horizontal\"\n return h(\n RekaDropdownMenuContent,\n {\n \"side\": props.side,\n \"sideOffset\": props.sideOffset,\n \"align\": props.align,\n \"alignOffset\": props.alignOffset ?? (props.align === \"center\" ? 0 : -5),\n \"avoidCollisions\": true,\n \"collisionPadding\": COLLISION_PADDING,\n \"reference\": internals.trigger.value ?? undefined,\n \"class\": s.MenuList,\n \"data-pill\": props.pill ? \"\" : undefined,\n \"data-layout\": isHorizontal ? \"horizontal\" : undefined,\n \"data-size\": isHorizontal && props.size ? props.size : undefined,\n \"style\": {\n ...toCssVariables({\n \"menu-width\": props.width,\n \"menu-min-width\": isHorizontal ? \"auto\" : props.minWidth,\n \"menu-max-height\": props.maxHeight,\n }),\n ...contentVariables,\n },\n \"onEscapeKeyDown\": preventDefaultHandler,\n onCloseAutoFocus,\n onInteractOutside,\n ...handlers,\n },\n { default: () => slots.default?.() },\n )\n }\n },\n})\n\n/** The menu panel. Positioned against the trigger and portalled to `<body>`. */\nexport const MenuContent = defineComponent({\n name: \"MenuContent\",\n inheritAttrs: false,\n props: {\n /**\n * The preferred side of the trigger to render against when open. Will be reversed when collisions occur.\n * @default bottom\n */\n side: String as PropType<MenuSide>,\n /**\n * The distance in pixels from the trigger.\n * @default 5\n */\n sideOffset: { type: Number, default: 5 },\n /**\n * The preferred alignment against the trigger. May change when collisions occur.\n * @default center\n */\n align: String as PropType<MenuAlign>,\n /** An offset in pixels from the \"start\" or \"end\" alignment options. */\n alignOffset: Number,\n /**\n * Defines the `width` property of the content\n * @default auto\n */\n width: sizeProp,\n /**\n * Defines the `min-width` property of the content, in pixels.\n * @default 300\n */\n minWidth: sizeProp,\n /** Defines the `max-height` property of the content, in pixels. */\n maxHeight: Number,\n /**\n * Layout direction of menu items. Use `\"horizontal\"` for icon-based toolbars (iOS-style).\n * @default \"vertical\"\n */\n layout: { type: String as PropType<\"vertical\" | \"horizontal\">, default: \"vertical\" },\n /**\n * Size of horizontal menu items. Controls icon size and padding. Only applies when `layout=\"horizontal\"`.\n * @default \"md\"\n */\n size: String as PropType<\"sm\" | \"md\" | \"lg\">,\n /**\n * Rounder list with fully rounded rows, for menus that sit beside pill controls.\n * @default false\n */\n pill: { type: Boolean, default: false },\n },\n emits: {\n /**\n * Focus is about to return to the trigger after the menu closes. Call\n * `event.preventDefault()` to keep the trigger from regaining focus (and\n * its focus-visible ring).\n */\n closeAutoFocus: (_event: Event) => true,\n },\n setup(props, { slots, emit }) {\n const { open } = useMenuContext()\n const onCloseAutoFocus = (event: Event) => emit(\"closeAutoFocus\", event)\n\n return () =>\n h(\n RekaDropdownMenuPortal,\n null,\n {\n default: () => [\n h(\n TransitionGroup,\n { class: s.Menu, enterDuration: 350, exitDuration: 200, disableAnimations: true },\n {\n default: () => [\n open.value\n ? h(\n MenuRootContentImpl,\n { key: \"dropdown\", ...props, onCloseAutoFocus },\n { default: () => slots.default?.() },\n )\n : createCommentVNode(),\n ],\n },\n ),\n ],\n },\n )\n },\n})\n\n// ---------------------------------------------------------------------------\n// Items\n\n/** The focusable branch of `MenuItem`: a Radix menu item. */\nconst MenuItemInteractive = defineComponent({\n name: \"MenuItemInteractive\",\n props: {\n className: [String, Array, Object] as PropType<unknown>,\n disabled: Boolean,\n danger: Boolean,\n onSelect: Function as PropType<(event: Event) => void>,\n onItemClick: { type: Function as PropType<(event: MouseEvent) => void>, required: true },\n },\n setup(props, { slots }) {\n const { open } = useMenuContext()\n const impl = useMenuItemImpl(() => props.disabled)\n const select = useMenuItemSelect(impl, () => props.disabled, () => props.onSelect)\n\n // This handler patches over focus races with core Radix primitives\n // https://github.com/radix-ui/primitives/blob/main/packages/react/menu/src/Menu.tsx#L712-L734\n const handlePreventAfterClose = (evt: PointerEvent) => {\n // Prevent default behavior when we're always known to be closing\n if (!open.value) evt.preventDefault()\n }\n\n const listeners = selectableItemListeners(\n impl,\n select,\n { onClick: (event: MouseEvent) => props.onItemClick(event) },\n { onPointermove: handlePreventAfterClose, onPointerleave: handlePreventAfterClose },\n )\n\n return () =>\n h(\n \"div\",\n {\n ...impl.attrs(),\n \"class\": [s.MenuItem, props.className],\n \"data-danger\": props.danger ? \"\" : undefined,\n \"ref\": impl.setElement,\n ...listeners,\n },\n [h(\"div\", { class: s.PressableInner }, slots.default?.())],\n )\n },\n})\n\n/**\n * A menu item. Interactive (focusable, selectable) when it has a `@select` or\n * a `@click` handler; read-only content otherwise.\n */\nexport const MenuItem = defineComponent({\n name: \"MenuItem\",\n inheritAttrs: false,\n props: {\n /**\n * Second line under the item's label: what this action does, or which\n * value it carries. The label goes semibold on its own, the same way a\n * Select option with a description does. Also a `description` slot.\n */\n description: String,\n /** Disables the menu item */\n disabled: { type: Boolean, default: false },\n /** Marks a destructive action (delete, remove, leave): the item is drawn in the danger color */\n danger: { type: Boolean, default: false },\n /**\n * Called when the item is selected (`@select`). Without it or `@click`\n * the item is read-only content. Call `event.preventDefault()` to keep\n * the menu open.\n */\n onSelect: Function as PropType<(event: Event) => void>,\n /** Called when the item is clicked (`@click`); also makes the item interactive */\n onClick: Function as PropType<(event: MouseEvent) => void>,\n },\n setup(props, { slots, attrs }) {\n const onItemClick = (event: MouseEvent) => props.onClick?.(event)\n\n return () => {\n const description = slots.description ? slots.description() : props.description\n // A described item stacks its two lines; without a description the item\n // keeps the plain flex row that icons and ItemActions rely on.\n const content =\n description === undefined\n ? slots.default?.()\n : [\n h(\"div\", { class: s.ItemLeading }, [\n h(\"div\", null, slots.default?.()),\n h(\"div\", { class: s.ItemDescription }, description),\n ]),\n ]\n\n // Custom click handlers: either callback makes the item interactive\n if (props.onSelect || props.onClick) {\n return h(\n MenuItemInteractive,\n { className: attrs.class, disabled: props.disabled, danger: props.danger, onSelect: props.onSelect, onItemClick },\n { default: () => content },\n )\n }\n\n // Read-only content - will not appear interactive.\n return h(\"div\", { class: [s.MenuItemContent, attrs.class] }, content)\n }\n },\n})\n\n/** Hover actions at the end of an item. */\nexport const MenuItemActions = defineComponent({\n name: \"MenuItemActions\",\n inheritAttrs: false,\n setup(_props, { slots, attrs }) {\n return () => h(\"div\", { class: [s.ItemActions, attrs.class] }, slots.default?.())\n },\n})\n\n/** A small ghost button inside `MenuItemActions`. Closes the menu and emits `click`. */\nexport const MenuItemAction = defineComponent({\n name: \"MenuItemAction\",\n inheritAttrs: false,\n props: {\n /** Accessible name; the action is an icon-only button */\n ariaLabel: String,\n },\n emits: {\n click: (_event: MouseEvent) => true,\n },\n setup(props, { slots, emit }) {\n const { setOpen } = useMenuContext()\n\n return () =>\n h(\n Button,\n {\n class: \"rounded-sm\",\n color: \"secondary\",\n size: \"xs\",\n uniform: true,\n iconSize: \"sm\",\n variant: \"ghost\",\n \"aria-label\": props.ariaLabel,\n onClick: (evt: MouseEvent) => {\n evt.stopPropagation()\n setOpen(false)\n emit(\"click\", evt)\n },\n },\n { default: () => slots.default?.() },\n )\n },\n})\n\ntype RouteTarget = string | Record<string, unknown>\n\n// Drops undefined entries so a router link's own `href` is not overridden\nconst defined = (props: Record<string, unknown>) =>\n Object.fromEntries(Object.entries(props).filter(([, value]) => value !== undefined))\n\n/**\n * A menu item that navigates. Internal paths render the provider's link\n * component; absolute URLs open in a new tab.\n */\nexport const MenuLink = defineComponent({\n name: \"MenuLink\",\n inheritAttrs: false,\n props: {\n href: String,\n /** Router link destination (internal) */\n to: [String, Object] as PropType<RouteTarget>,\n /** Disables the menu item */\n disabled: { type: Boolean, default: false },\n /** Marks a destructive destination: the item is drawn in the danger color */\n danger: { type: Boolean, default: false },\n /**\n * Override the default component used for the link. This is useful for\n * using a routing library, or SSR rendering.\n * @default 'a'\n */\n as: [String, Object, Function] as PropType<LinkComponent>,\n },\n setup(props, { slots, attrs }) {\n const { open } = useMenuContext()\n const DefaultComponent = useLinkComponent()\n const impl = useMenuItemImpl(() => props.disabled)\n const select = useMenuItemSelect(impl, () => props.disabled, () => undefined)\n\n // This handler patches over focus races with core Radix primitives\n // https://github.com/radix-ui/primitives/blob/main/packages/react/menu/src/Menu.tsx#L712-L734\n const handlePreventAfterClose = (evt: PointerEvent) => {\n // Prevent default behavior when we're always known to be closing\n if (!open.value) evt.preventDefault()\n }\n\n return () => {\n const { href, to } = props\n const propPath = href || to\n // When a path is not provided, default to an anchor\n const isExternal = propPath ? /^https?:\\/\\//.test(propPath as string) : true\n const Component = props.as || (isExternal ? \"a\" : DefaultComponent.value)\n\n // The link's own attributes and listeners come first, as the slot\n // child's do in React\n const { listeners, rest } = splitListeners(attrs)\n // A disabled item is not selected; its link must not navigate either.\n // Canceled in the capture phase, before a router link's own handler\n // (vue-router's runs ahead of the listeners passed to it)\n if (props.disabled) listeners.onClickCapture = [listeners.onClickCapture ?? [], preventDefaultHandler].flat()\n const { class: className, ...restProps } = rest\n const linkProps = isExternal ? { target: \"_blank\", rel: \"noopener noreferrer\", href: href ?? to } : { href, to }\n\n const itemProps = defined({\n ...impl.attrs(),\n ...linkProps,\n ...restProps,\n \"class\": [s.MenuItem, className],\n \"data-danger\": props.danger ? \"\" : undefined,\n \"ref\": impl.setElement,\n ...selectableItemListeners(\n impl,\n select,\n listeners,\n isExternal ? {} : { onPointermove: handlePreventAfterClose, onPointerleave: handlePreventAfterClose },\n typeof Component !== \"string\",\n ),\n })\n const inner = () => [h(\"span\", { class: s.PressableInner }, slots.default?.())]\n\n return typeof Component === \"string\" ? h(Component, itemProps, inner()) : h(Component, itemProps, { default: inner })\n }\n },\n})\n\n/** A divider between items. */\nexport const MenuSeparator = defineComponent({\n name: \"MenuSeparator\",\n inheritAttrs: false,\n setup(_props, { attrs }) {\n return () => h(\"div\", { \"role\": \"separator\", \"aria-orientation\": \"horizontal\", \"class\": [s.Separator, attrs.class] })\n },\n})\n\n/** A non-interactive label for a group of items. */\nexport const MenuLabel = defineComponent({\n name: \"MenuLabel\",\n inheritAttrs: false,\n setup(_props, { slots, attrs }) {\n return () => h(\"div\", { class: [s.MenuLabel, attrs.class] }, slots.default?.())\n },\n})\n\n/** Groups related items. */\nexport const MenuGroup = defineComponent({\n name: \"MenuGroup\",\n inheritAttrs: false,\n setup(_props, { slots, attrs }) {\n return () => h(\"div\", { role: \"group\", class: attrs.class }, slots.default?.())\n },\n})\n\n// ---------------------------------------------------------------------------\n// Submenus\n\n/** A nested menu: `MenuSubTrigger` plus `MenuSubContent`. */\nexport const MenuSub = defineComponent({\n name: \"MenuSub\",\n inheritAttrs: false,\n props: {\n /** Force the menu to remain open or closed */\n forceOpen: { type: Boolean, default: undefined },\n },\n emits: {\n /** The submenu opened */\n open: () => true,\n /** The submenu closed */\n close: () => true,\n },\n setup(props, { slots, emit }) {\n const parentLevel = useMenuLevel()\n const open = ref(false)\n const triggerRef = shallowRef<HTMLElement | null>(null)\n const isOpen = computed(() => props.forceOpen ?? open.value)\n\n const handleOpenChange = (nextState: boolean) => {\n open.value = nextState\n if (nextState) emit(\"open\")\n else emit(\"close\")\n }\n\n useEscCloseStack(\n () => open.value,\n () => {\n handleOpenChange(false)\n // Ensure trigger is focused\n triggerRef.value?.focus()\n },\n )\n\n provide(SubmenuContextKey, { open: isOpen, setOpen: handleOpenChange, triggerRef })\n\n // Radix's controlled submenu reports a change only when it differs from\n // the rendered state\n let renderedOpen = isOpen.value\n const setOpen = (nextState: boolean) => {\n if (nextState !== renderedOpen) handleOpenChange(nextState)\n }\n\n // Radix's MenuSub closes with its parent menu, and when it unmounts\n watch(\n () => parentLevel.open(),\n (parentOpen) => {\n if (parentOpen === false) setOpen(false)\n },\n { immediate: true },\n )\n onBeforeUnmount(() => setOpen(false))\n\n const subInternals: MenuSubInternals = {\n triggerId: useId(undefined, \"reka-menu-sub-trigger\"),\n contentId: useId(undefined, \"reka-menu-sub-content\"),\n trigger: shallowRef(null),\n }\n provide(MenuSubInternalsKey, subInternals)\n provide(MenuLevelKey, { open: () => isOpen.value, onOpenChange: setOpen, content: shallowRef(null) })\n\n return () => {\n renderedOpen = isOpen.value\n return h(\n RekaDropdownMenuRoot,\n { \"open\": renderedOpen, \"modal\": false, \"onUpdate:open\": setOpen },\n { default: () => slots.default?.() },\n )\n }\n },\n})\n\n/** The item that opens a submenu, on hover, click, Enter, Space or ArrowRight. */\nexport const MenuSubTrigger = defineComponent({\n name: \"MenuSubTrigger\",\n inheritAttrs: false,\n props: {\n /** Disables the trigger */\n disabled: { type: Boolean, default: false },\n },\n setup(props, { slots, attrs }) {\n const { open: menuOpen } = useMenuContext()\n const { triggerRef } = useSubmenuContext()\n const subLevel = useMenuLevel()\n const subInternals = useMenuSubInternals()\n const impl = useMenuItemImpl(() => props.disabled)\n const { contentContext, rootInternals } = impl\n\n let openTimer: number | null = null\n const clearOpenTimer = () => {\n if (openTimer) window.clearTimeout(openTimer)\n openTimer = null\n }\n onBeforeUnmount(() => {\n clearOpenTimer()\n window.clearTimeout(contentContext.pointerGraceTimer.current)\n contentContext.onPointerGraceIntentChange(null)\n })\n\n // This handler patches over focus races with core Radix primitives\n // https://github.com/radix-ui/primitives/blob/main/packages/react/menu/src/Menu.tsx#L712-L734\n const handlePreventAfterClose = (evt: PointerEvent) => {\n // Prevent default behavior when we know the outer menu is closing\n if (!menuOpen.value) evt.preventDefault()\n }\n\n const setRef = (el: unknown) => {\n impl.setElement(el)\n const element = resolveElement(el)\n subInternals.trigger.value = element\n triggerRef.value = element\n }\n\n const subTriggerHandlers: ItemImplHandlers = {\n onClick: (event) => {\n if (props.disabled || event.defaultPrevented) return\n /**\n * We manually focus because iOS Safari doesn't always focus on click (e.g. buttons)\n * and we rely heavily on `onFocusOutside` for submenus to close when switching\n * between separate submenus.\n */\n ;(event.currentTarget as HTMLElement).focus()\n if (!subLevel.open()) subLevel.onOpenChange(true)\n },\n onPointermove: compose(\n handlePreventAfterClose,\n whenMouse((event: PointerEvent) => {\n contentContext.onItemEnter(event)\n if (event.defaultPrevented) return\n if (!props.disabled && !subLevel.open() && !openTimer) {\n contentContext.onPointerGraceIntentChange(null)\n openTimer = window.setTimeout(() => {\n subLevel.onOpenChange(true)\n clearOpenTimer()\n }, 100)\n }\n }),\n ),\n onPointerleave: compose(\n handlePreventAfterClose,\n whenMouse((event: PointerEvent) => {\n clearOpenTimer()\n\n const content = subLevel.content.value\n const contentRect = content?.getBoundingClientRect()\n if (content && contentRect) {\n // TODO: make sure to update this when we change positioning logic\n const side = content.dataset.side as GraceIntent[\"side\"]\n const rightSide = side === \"right\"\n const bleed = rightSide ? -5 : 5\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"]\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"]\n\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom },\n ],\n side,\n })\n\n window.clearTimeout(contentContext.pointerGraceTimer.current)\n contentContext.pointerGraceTimer.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300,\n )\n } else {\n contentContext.onTriggerLeave(event)\n if (event.defaultPrevented) return\n\n // There's 100ms where the user may leave an item before the submenu was opened.\n contentContext.onPointerGraceIntentChange(null)\n }\n }),\n ),\n onKeydown: (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\"\n if (props.disabled || (isTypingAhead && event.key === \" \")) return\n if (SUB_OPEN_KEYS[rootInternals.dir.value].includes(event.key)) {\n subLevel.onOpenChange(true)\n // The trigger may hold focus if opened via pointer interaction\n // so we ensure content is given focus again when switching to keyboard.\n subLevel.content.value?.focus()\n // prevent window from scrolling\n event.preventDefault()\n }\n },\n }\n\n return () => {\n const open = subLevel.open()\n return h(\n \"div\",\n {\n ...impl.attrs(),\n \"id\": subInternals.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n // Radix (radix-ui 1.8) points at the submenu only while it is open\n \"aria-controls\": open ? subInternals.contentId : undefined,\n \"data-state\": getOpenState(open),\n \"class\": [s.MenuItem, s.SubMenuItem, attrs.class],\n \"ref\": setRef,\n ...impl.handlers(subTriggerHandlers),\n },\n [\n h(\"div\", { class: s.PressableInner }, [\n slots.default?.(),\n h(ChevronRight, { width: \"16\", height: \"16\", class: s.SubTriggerIcon }),\n ]),\n ],\n )\n }\n },\n})\n\n/** Content of a submenu, mounted while it is open (Radix's DropdownMenuSubContent). */\nconst MenuSubContentImpl = defineComponent({\n name: \"MenuSubContentImpl\",\n props: {\n sideOffset: { type: Number, required: true },\n alignOffset: { type: Number, required: true },\n width: { type: sizeProp, required: true },\n minWidth: { type: sizeProp, required: true },\n maxHeight: Number,\n pill: Boolean,\n },\n setup(props, { slots }) {\n // The submenu's own Reka root: its content takes the submenu's ids\n const subRoot = injectDropdownMenuRootContext()\n const subInternals = useMenuSubInternals()\n const subLevel = useMenuLevel()\n const internals = useMenuRootInternals()\n const parentContent = inject(ParentContentKey, null)\n subRoot.triggerId = subInternals.triggerId\n subRoot.contentId = subInternals.contentId\n\n const { contentHandlers, resetSearch } = provideMenuContentContext(() => subLevel.content.value)\n provide(ParentContentKey, {\n resetSearch: () => {\n resetSearch()\n parentContent?.resetSearch()\n },\n })\n onMounted(() => {\n subLevel.content.value = document.getElementById(subInternals.contentId)\n })\n onBeforeUnmount(() => {\n subLevel.content.value = null\n })\n\n const handlers = contentHandlers(internals.isUsingKeyboard)\n\n const onKeydown = (event: KeyboardEvent) => {\n const currentTarget = event.currentTarget as HTMLElement\n const isKeyDownInside = currentTarget.contains(event.target as Node)\n const isCloseKey = SUB_CLOSE_KEYS[internals.dir.value].includes(event.key)\n if (isKeyDownInside && isCloseKey) {\n subLevel.onOpenChange(false)\n // We focus manually because we prevented it in `onCloseAutoFocus`\n subInternals.trigger.value?.focus()\n // prevent window from scrolling\n event.preventDefault()\n }\n handlers.onKeydown(event)\n }\n\n return () =>\n h(\n RekaDropdownMenuContent,\n {\n \"side\": internals.dir.value === \"rtl\" ? \"left\" : \"right\",\n \"align\": \"start\",\n \"sideOffset\": props.sideOffset,\n \"alignOffset\": props.alignOffset,\n \"avoidCollisions\": true,\n \"collisionPadding\": COLLISION_PADDING,\n \"reference\": subInternals.trigger.value ?? undefined,\n \"class\": s.MenuList,\n \"data-pill\": props.pill ? \"\" : undefined,\n \"style\": {\n ...toCssVariables({\n \"menu-width\": props.width,\n \"menu-min-width\": props.minWidth,\n \"menu-max-height\": props.maxHeight,\n }),\n ...contentVariables,\n },\n \"onOpenAutoFocus\": (event: Event) => {\n // when opening a submenu, focus content for keyboard users only\n if (internals.isUsingKeyboard.current) subLevel.content.value?.focus()\n event.preventDefault()\n },\n // The menu might close because of focusing another menu item in the parent menu. We\n // don't want it to refocus the trigger in that case so we handle trigger focus ourselves.\n \"onCloseAutoFocus\": preventDefaultHandler,\n // Radix submenus close on focus outside (except to their trigger) and\n // never on an outside pointer-down\n \"onPointerDownOutside\": preventDefaultHandler,\n \"onFocusOutside\": (event: Event) => {\n // We prevent closing when the trigger is focused to avoid triggering a re-open animation\n // on pointer interaction.\n if (event.target !== subInternals.trigger.value) subLevel.onOpenChange(false)\n event.preventDefault()\n },\n \"onEscapeKeyDown\": preventDefaultHandler,\n ...handlers,\n onKeydown,\n // A blur inside a submenu reaches its parent menus in React's tree\n \"onFocusout\": () => {\n handlers.onFocusout()\n parentContent?.resetSearch()\n },\n },\n { default: () => slots.default?.() },\n )\n },\n})\n\n/** The submenu panel, positioned to the side of its trigger. */\nexport const MenuSubContent = defineComponent({\n name: \"MenuSubContent\",\n inheritAttrs: false,\n props: {\n /** The distance in pixels from the trigger. @default 4 */\n sideOffset: { type: Number, default: 4 },\n /** An offset in pixels along the trigger. @default -6 */\n alignOffset: { type: Number, default: -6 },\n /** Defines the `width` property of the content. @default \"auto\" */\n width: { type: sizeProp, default: \"auto\" },\n /** Defines the `min-width` property of the content. @default \"auto\" */\n minWidth: { type: sizeProp, default: \"auto\" },\n /** Defines the `max-height` property of the content, in pixels. */\n maxHeight: Number,\n /**\n * Rounder list with fully rounded rows, for menus that sit beside pill controls.\n * @default false\n */\n pill: { type: Boolean, default: false },\n },\n setup(props, { slots }) {\n const { open } = useSubmenuContext()\n\n return () =>\n h(\n RekaDropdownMenuPortal,\n null,\n {\n default: () => [\n h(\n TransitionGroup,\n { class: s.Menu, enterDuration: 350, exitDuration: 200, disableAnimations: true },\n {\n default: () => [\n open.value\n ? h(MenuSubContentImpl, { key: \"submenu\", ...props }, { default: () => slots.default?.() })\n : createCommentVNode(),\n ],\n },\n ),\n ],\n },\n )\n },\n})\n\n// ---------------------------------------------------------------------------\n// Checkbox and radio items\n\n/** Radix's ItemIndicator: rendered while its item is checked. */\nconst MenuItemIndicator = defineComponent({\n name: \"MenuItemIndicator\",\n inheritAttrs: false,\n setup(_props, { slots, attrs }) {\n const indicator = inject(ItemIndicatorKey, { checked: () => false })\n\n return () => {\n const checked = indicator.checked()\n // Rendered here: Presence calls its slot during its setup too\n const children = slots.default?.()\n return h(\n Presence,\n { present: isIndeterminate(checked) || checked === true },\n {\n // withCtx marks it as a render slot so Vue does not warn about that call\n default: withCtx(() => [h(\"span\", { ...attrs, \"data-state\": getCheckedState(checked) }, children)]),\n },\n )\n }\n },\n})\n\n/** Single selection: `v-model:value` on the group, `MenuRadioItem` children. */\nexport const MenuRadioGroup = defineComponent({\n name: \"MenuRadioGroup\",\n props: {\n /** The selected value (`v-model:value`) */\n value: String,\n /**\n * The orientation of the indicator within the radio item.\n * @default end\n */\n indicatorPosition: { type: String as PropType<\"start\" | \"end\">, default: \"end\" },\n },\n emits: {\n \"update:value\": (_value: string) => true,\n /** Fired when selection changes */\n \"change\": (_value: string) => true,\n },\n setup(props, { slots, emit }) {\n provide(RadioGroupKey, {\n value: () => props.value,\n onValueChange: (value) => {\n emit(\"update:value\", value)\n emit(\"change\", value)\n },\n })\n\n return () =>\n h(\"div\", { \"role\": \"group\", \"data-indicator-position\": props.indicatorPosition }, slots.default?.())\n },\n})\n\n/** One option of a `MenuRadioGroup`. */\nexport const MenuRadioItem = defineComponent({\n name: \"MenuRadioItem\",\n inheritAttrs: false,\n props: {\n value: { type: String, required: true },\n /** Disables the radio item */\n disabled: { type: Boolean, default: false },\n },\n emits: {\n /** The radio item was pressed; `event.preventDefault()` keeps the menu open */\n select: (_event: Event) => true,\n },\n setup(props, { slots, attrs, emit }) {\n const group = inject(RadioGroupKey, { value: () => undefined, onValueChange: () => {} })\n const checked = () => props.value === group.value()\n provide(ItemIndicatorKey, { checked })\n\n const impl = useMenuItemImpl(() => props.disabled)\n const select = useMenuItemSelect(\n impl,\n () => props.disabled,\n () => (event: Event) => {\n emit(\"select\", event)\n group.onValueChange(props.value)\n },\n )\n\n return () => {\n const { listeners, rest } = splitListeners(attrs)\n const { class: className, ...restProps } = rest\n return h(\n \"div\",\n {\n ...impl.attrs(),\n \"role\": \"menuitemradio\",\n \"aria-checked\": checked(),\n \"class\": [s.MenuItem, s.RadioItem, className],\n ...restProps,\n \"data-state\": getCheckedState(checked()),\n \"ref\": impl.setElement,\n ...selectableItemListeners(impl, select, listeners),\n },\n [\n h(\"div\", { class: s.PressableInner }, [\n h(\"div\", { class: s.RadioIndicator }, [h(MenuItemIndicator, { class: s.RadioIndicatorActive })]),\n slots.default?.(),\n ]),\n ],\n )\n }\n },\n})\n\n/** A toggle item: bind `v-model:checked`. */\nexport const MenuCheckboxItem = defineComponent({\n name: \"MenuCheckboxItem\",\n inheritAttrs: false,\n props: {\n /** Checked state of the checkbox item (`v-model:checked`) */\n checked: { type: [Boolean, String] as PropType<CheckedState>, default: false },\n /** Disables the checkbox item */\n disabled: { type: Boolean, default: false },\n /**\n * The orientation of the indicator within the checkbox item.\n * @default end\n */\n indicatorPosition: { type: String as PropType<\"start\" | \"end\">, default: \"end\" },\n /**\n * Visual treatment for the checkbox indicator.\n * @default solid\n */\n indicatorVariant: { type: String as PropType<\"solid\" | \"ghost\">, default: \"solid\" },\n },\n emits: {\n \"update:checked\": (_checked: boolean) => true,\n /** Event handler called when the checked state changes */\n \"checkedChange\": (_checked: boolean) => true,\n /** The checkbox item was pressed; `event.preventDefault()` keeps the menu open */\n \"select\": (_event: Event) => true,\n },\n setup(props, { slots, attrs, emit }) {\n provide(ItemIndicatorKey, { checked: () => props.checked })\n\n const impl = useMenuItemImpl(() => props.disabled)\n const select = useMenuItemSelect(\n impl,\n () => props.disabled,\n () => (event: Event) => {\n emit(\"select\", event)\n const next = isIndeterminate(props.checked) ? true : !props.checked\n emit(\"update:checked\", next)\n emit(\"checkedChange\", next)\n },\n )\n\n return () => {\n const { listeners, rest } = splitListeners(attrs)\n const { class: className, ...restProps } = rest\n const { checked } = props\n return h(\n \"div\",\n {\n ...impl.attrs(),\n \"role\": \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"class\": [s.MenuItem, s.CheckboxItem, className],\n ...restProps,\n \"data-state\": getCheckedState(checked),\n \"data-indicator-position\": props.indicatorPosition,\n \"data-indicator-variant\": props.indicatorVariant,\n \"ref\": impl.setElement,\n ...selectableItemListeners(impl, select, listeners),\n },\n [\n h(\"div\", { class: s.PressableInner }, [\n h(\"div\", { class: s.CheckboxIndicator }, [\n h(MenuItemIndicator, null, {\n default: () =>\n props.indicatorVariant === \"ghost\"\n ? [h(Check, { class: \"size-4\" })]\n : [h(\"div\", { class: s.CheckboxCircle }, [h(Check, { class: \"size-4\" })])],\n }),\n ]),\n slots.default?.(),\n ]),\n ],\n )\n }\n },\n})\n\nexport type MenuProps = InstanceType<typeof Menu>[\"$props\"]\nexport type MenuContentProps = InstanceType<typeof MenuContent>[\"$props\"]\nexport type MenuItemProps = InstanceType<typeof MenuItem>[\"$props\"]\nexport type SubmenuProps = InstanceType<typeof MenuSub>[\"$props\"]\nexport type MenuRadioGroupProps = InstanceType<typeof MenuRadioGroup>[\"$props\"]\nexport type MenuRadioItemProps = InstanceType<typeof MenuRadioItem>[\"$props\"]\nexport type MenuCheckboxItemProps = InstanceType<typeof MenuCheckboxItem>[\"$props\"]\n"]}
@@ -518,6 +518,7 @@ const SelectPopoverContent = defineComponent({
518
518
  return () => h(RekaPopoverContent, {
519
519
  as: SelectContentElement,
520
520
  class: s.MenuList,
521
+ "data-pill": props.pill ? "" : undefined,
521
522
  side: props.side,
522
523
  sideOffset: 5,
523
524
  align: align.value,