{"version":3,"names":["dynamic","createMemo","createSignal","omit","onCleanup","untrack","useBaseUiId","composeRefs","userRef","useClick","useHoverReferenceInteraction","useInteractions","safePolygon","mergeRootProps","FocusGuard","useTriggerFocusGuards","resolveClassStyle","useButton","useMenubarContext","useMenuRootContext","MenuTrigger","props","root","fallbackId","resolvedId","id","disabled","Boolean","nativeButton","buttonProps","ref","buttonRef","focusableWhenDisabled","native","store","handle","triggerElementRef","current","triggerElement","setTriggerElement","ownedWrite","isActive","undefined","activeTriggerId","isOpenedByThisTrigger","open","registeredId","registeredElement","setTriggerRef","el","s","context","triggerElements","getById","delete","add","setActiveTriggerElement","setActiveTriggerId","setPayload","payload","menubar","inMenubar","parentType","menubarHasMenuOpen","hasSubmenuOpen","hoverProps","floatingRootContext","enabled","openOnHover","mouseOnly","move","handleClose","delay","close","closeDelay","click","event","toggle","stickIfOpen","localInteractions","reference","state","markActive","handleTriggerClick","focusGuardStore","setOpen","openNext","details","select","key","positionerRef","beforeContentFocusGuardRef","triggerFocusTargetRef","preFocusGuardRef","handlePreFocusGuardFocus","handleFocusTargetFocus","setPreFocusGuardRef","setPostFocusGuardRef","internal","onClick","onPointerEnter","onFocus","role","aria-expanded","aria-controls","popupRef","data-popup-open","data-pressed","data-disabled","userClassStyle","userProps","merged","interactions","getReferenceProps","openInteractionTypeProps","Tag","as","element"],"sources":["menu-trigger.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\n/**\n * `<Menu.Trigger>` — the button that opens the menu. Solid 2 port of Base\n * UI React's `MenuTrigger` (`packages/react/src/menu/trigger/MenuTrigger.tsx`).\n *\n * Renders a `<button>` with `aria-haspopup=\"menu\"`, `aria-expanded`, and\n * `aria-controls` pointing at the popup.\n *\n * ### Wiring\n *\n *  - Self-registers in the `MenuStore`'s `PopupTriggerMap` so\n *    `MenuHandle.open(id)` can look the trigger up.\n *  - Spreads `openInteractionTypeProps` from the root so\n *    `useOpenInteractionType` captures `openMethod` at click/pointerdown\n *    time.\n *  - When `isOpenedByThisTrigger`, wraps its element in two `FocusGuard`\n *    sentinels that catch Tab / Shift+Tab out of the trigger\n *    while the menu is open and redirect through `useTriggerFocusGuards`.\n *\n * ### Port deviations\n *\n *  - Hover-to-open is wired via `useHoverReferenceInteraction` when\n *    `openOnHover` is set.\n *  - The 200ms mouseup-on-item window (which lets users drag from the\n *    trigger to an item and release to commit) is not ported — not\n *    testable in happy-dom.\n */\n\nimport { dynamic } from \"@solidjs/web\";\nimport { createMemo, createSignal, omit, onCleanup, untrack } from \"solid-js\";\nimport { useBaseUiId } from \"../../internals/base-ui-id\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\nimport { useClick } from \"../../internals/floating-ui/hooks/use-click\";\nimport { useHoverReferenceInteraction } from \"../../internals/floating-ui/hooks/use-hover-reference-interaction\";\nimport { useInteractions } from \"../../internals/floating-ui/hooks/use-interactions\";\nimport { safePolygon } from \"../../internals/floating-ui/safe-polygon\";\nimport type { Delay, MutableRef } from \"../../internals/floating-ui/types\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { FocusGuard } from \"../../internals/popups/focus-guard\";\nimport {\n\ttype TriggerFocusGuardStore,\n\tuseTriggerFocusGuards,\n} from \"../../internals/popups/use-trigger-focus-guards\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type {\n\tBaseUIComponentProps,\n\tNativeButtonProps,\n} from \"../../internals/types\";\nimport { useButton } from \"../../internals/use-button/use-button\";\nimport { useMenubarContext } from \"../../menubar/menubar-context\";\nimport { useMenuRootContext } from \"../root/menu-root-context\";\nimport type { MenuHandle } from \"../store/menu-store\";\n\nexport interface MenuTriggerState {\n\t/** Whether the menu is currently open. */\n\topen: boolean;\n\t/** Whether the trigger is disabled. */\n\tdisabled: boolean;\n}\n\nexport interface MenuTriggerProps<Payload = unknown>\n\textends NativeButtonProps,\n\t\tBaseUIComponentProps<\"button\", MenuTriggerState> {\n\t/**\n\t * Tag/component to render. Defaults to `\"button\"`. Replaces the\n\t * pre-spike `render` prop (axis G).\n\t */\n\tas?: ValidComponent;\n\t/** Whether the component should ignore user interaction. @default false */\n\tdisabled?: boolean | undefined;\n\t/**\n\t * Optional handle this trigger should register with. Register against\n\t * the handle's store instead of the enclosing root's store when\n\t * supplied.\n\t */\n\thandle?: MenuHandle<Payload> | undefined;\n\t/**\n\t * Payload to associate with this trigger. When this trigger opens the\n\t * menu, the payload is written into the root; render-function children\n\t * receive it as `{ payload }`.\n\t */\n\tpayload?: Payload | undefined;\n\t/**\n\t * Whether the menu should also open when the trigger is hovered.\n\t */\n\topenOnHover?: boolean | undefined;\n\t/**\n\t * How long to wait before hover-opens the menu (ms).\n\t * @default 100\n\t */\n\tdelay?: number | undefined;\n\t/** @default 0 */\n\tcloseDelay?: number | undefined;\n}\n\nexport function MenuTrigger<Payload = unknown>(\n\tprops: MenuTriggerProps<Payload>,\n): JSX.Element {\n\tconst root = useMenuRootContext();\n\n\tconst fallbackId = useBaseUiId();\n\tconst resolvedId = (): string | undefined =>\n\t\ttypeof props.id === \"string\" ? props.id : fallbackId;\n\n\tconst disabled = (): boolean => Boolean(props.disabled) || root.disabled();\n\tconst nativeButton = (): boolean => props.nativeButton ?? true;\n\n\tconst { props: buttonProps, ref: buttonRef } = useButton({\n\t\tdisabled,\n\t\tfocusableWhenDisabled: () => false,\n\t\tnative: nativeButton,\n\t});\n\n\t// Determine which store to register into — handle's if supplied, else\n\t// the root's. Handle takes precedence so consumers opt into a shared\n\t// registry by passing the same handle on trigger + root.\n\tconst store = () => props.handle?.store ?? root.store;\n\n\t// Trigger DOM element ref — used by hover + focus-guard hooks.\n\tconst triggerElementRef: MutableRef<HTMLElement | null> = { current: null };\n\tconst [triggerElement, setTriggerElement] = createSignal<HTMLElement | null>(\n\t\tnull,\n\t\t{ ownedWrite: true },\n\t);\n\n\t// Active-trigger flag — `true` when this trigger is the one that opened\n\t// the menu. Drives `data-open` + focus-guard render.\n\tconst isActive = createMemo<boolean>(() => {\n\t\tconst id = resolvedId();\n\t\tif (id === undefined) return true;\n\t\treturn root.activeTriggerId() === id;\n\t});\n\tconst isOpenedByThisTrigger = createMemo<boolean>(\n\t\t() => root.open() && isActive(),\n\t);\n\n\t// Register in the trigger map on mount; unregister on cleanup.\n\tlet registeredId: string | null = null;\n\tlet registeredElement: HTMLElement | null = null;\n\tconst setTriggerRef = (el: HTMLElement | null): void =>\n\t\tuntrack(() => {\n\t\t\tconst id = resolvedId();\n\t\t\tconst s = store();\n\n\t\t\ttriggerElementRef.current = el;\n\t\t\tsetTriggerElement(el);\n\n\t\t\tif (registeredId !== null && registeredElement !== null) {\n\t\t\t\tconst current = s.context.triggerElements.getById(registeredId);\n\t\t\t\tif (current === registeredElement) {\n\t\t\t\t\ts.context.triggerElements.delete(registeredId);\n\t\t\t\t}\n\t\t\t\tregisteredId = null;\n\t\t\t\tregisteredElement = null;\n\t\t\t}\n\n\t\t\tif (el && id !== undefined) {\n\t\t\t\ts.context.triggerElements.add(id, el);\n\t\t\t\tregisteredId = id;\n\t\t\t\tregisteredElement = el;\n\t\t\t}\n\n\t\t\tif (el) {\n\t\t\t\t// Keep the root's active-trigger slot in sync for single-trigger\n\t\t\t\t// setups and for positioner anchoring.\n\t\t\t\tif (id === undefined || isActive()) {\n\t\t\t\t\troot.setActiveTriggerElement(el);\n\t\t\t\t}\n\t\t\t\tif (id !== undefined && root.activeTriggerId() == null) {\n\t\t\t\t\troot.setActiveTriggerId(id);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forward the payload when this trigger is (or becomes) the active one.\n\t\t\tif (\"payload\" in props && (id === undefined || isActive())) {\n\t\t\t\troot.setPayload(props.payload as Payload | undefined);\n\t\t\t}\n\t\t});\n\n\tonCleanup(() => {\n\t\tif (registeredId !== null && registeredElement !== null) {\n\t\t\tconst s = store();\n\t\t\tconst current = s.context.triggerElements.getById(registeredId);\n\t\t\tif (current === registeredElement) {\n\t\t\t\ts.context.triggerElements.delete(registeredId);\n\t\t\t}\n\t\t}\n\t});\n\n\t// Inside a menubar, once any of its menus is open, hovering another\n\t// trigger hands off to that trigger's menu (Base UI parity).\n\tconst menubar = useMenubarContext(true);\n\tconst inMenubar = (): boolean =>\n\t\tmenubar != null && root.parentType() === \"menubar\";\n\tconst menubarHasMenuOpen = (): boolean =>\n\t\tinMenubar() && (menubar?.hasSubmenuOpen() ?? false);\n\tconst hoverProps = useHoverReferenceInteraction(root.floatingRootContext, {\n\t\tenabled: () =>\n\t\t\t(props.openOnHover ?? menubarHasMenuOpen()) &&\n\t\t\t!disabled() &&\n\t\t\troot.parentType() !== \"context-menu\" &&\n\t\t\t(!inMenubar() || (menubarHasMenuOpen() && !isOpenedByThisTrigger())),\n\t\tmouseOnly: true,\n\t\tmove: false,\n\t\thandleClose: safePolygon(),\n\t\tdelay: (): Delay => ({\n\t\t\topen: props.delay ?? (inMenubar() ? 0 : 100),\n\t\t\tclose: props.closeDelay ?? 0,\n\t\t}),\n\t\ttriggerElementRef,\n\t\ttriggerElement,\n\t});\n\n\t// Click hook — latched enabled (papercut #2). Disable-reactivity is\n\t// covered by the fact that the button itself refuses clicks when\n\t// `disabled()` returns true via `useButton`.\n\tconst click = useClick(root.floatingRootContext, {\n\t\tenabled: true,\n\t\tevent: \"mousedown\",\n\t\ttoggle: true,\n\t\t// In a menubar, a click on a trigger whose menu opened on hover closes\n\t\t// it (Base UI parity); elsewhere a hover-opened menu sticks.\n\t\tstickIfOpen: !untrack(inMenubar),\n\t});\n\n\tconst localInteractions = useInteractions([\n\t\thoverProps ? { reference: hoverProps } : undefined,\n\t\tclick,\n\t]);\n\n\tconst state = createMemo<MenuTriggerState>(() => ({\n\t\topen: isOpenedByThisTrigger(),\n\t\tdisabled: disabled(),\n\t}));\n\n\t// onClick capture — write the active-trigger id + payload when this\n\t// trigger originates the open. `useClick` toggles open via its own\n\t// merged handler; we run alongside to capture the identity.\n\tconst markActive = (): void => {\n\t\tconst id = resolvedId();\n\t\tif (id !== undefined) {\n\t\t\troot.setActiveTriggerId(id);\n\t\t}\n\t\tif (\"payload\" in props) {\n\t\t\troot.setPayload(props.payload as Payload | undefined);\n\t\t}\n\t\tif (triggerElementRef.current) {\n\t\t\troot.setActiveTriggerElement(triggerElementRef.current);\n\t\t}\n\t};\n\n\tconst handleTriggerClick = (event: MouseEvent): void => {\n\t\tmarkActive();\n\t\tvoid event;\n\t};\n\n\t// Focus-guard integration. We build a `TriggerFocusGuardStore`\n\t// on the fly that satisfies the structural shape the hook expects —\n\t// the real `MenuStore` in this port doesn't yet carry state selectors,\n\t// so we project through the root context instead.\n\tconst focusGuardStore: TriggerFocusGuardStore = {\n\t\tsetOpen: (openNext, details) => {\n\t\t\troot.setOpen(openNext, details);\n\t\t},\n\t\tselect: (key) => {\n\t\t\tif (key === \"positionerElement\") return root.positionerRef.current;\n\t\t\treturn null;\n\t\t},\n\t\tcontext: {\n\t\t\tbeforeContentFocusGuardRef: root.beforeContentFocusGuardRef,\n\t\t\ttriggerFocusTargetRef: root.triggerFocusTargetRef,\n\t\t},\n\t};\n\tconst { preFocusGuardRef, handlePreFocusGuardFocus, handleFocusTargetFocus } =\n\t\tuseTriggerFocusGuards(focusGuardStore, triggerElementRef);\n\n\tconst setPreFocusGuardRef = (el: HTMLSpanElement | null): void => {\n\t\tpreFocusGuardRef.current = el;\n\t};\n\tconst setPostFocusGuardRef = (el: HTMLSpanElement | null): void => {\n\t\troot.triggerFocusTargetRef.current = el;\n\t};\n\n\tconst internal = {\n\t\tonClick: handleTriggerClick,\n\t\tonPointerEnter: markActive,\n\t\tonFocus: markActive,\n\t\tget id() {\n\t\t\treturn resolvedId();\n\t\t},\n\t\t\"aria-haspopup\": \"menu\",\n\t\tget role() {\n\t\t\t// Menubar-nested triggers announce as `menuitem`; top-level\n\t\t\t// triggers stay on the native `button` role.\n\t\t\treturn root.parentType() === \"menubar\" ? \"menuitem\" : undefined;\n\t\t},\n\t\tget \"aria-expanded\"() {\n\t\t\treturn root.open() ? \"true\" : \"false\";\n\t\t},\n\t\tget \"aria-controls\"() {\n\t\t\t// Seed \"\" so Solid's spread subscribes. Returns\n\t\t\t// the popup id once the popup mounts.\n\t\t\tif (!root.open()) return \"\";\n\t\t\treturn root.popupRef.current?.id ?? \"\";\n\t\t},\n\t\tget \"data-popup-open\"() {\n\t\t\treturn state().open ? \"\" : undefined;\n\t\t},\n\t\tget \"data-pressed\"() {\n\t\t\treturn state().open ? \"\" : undefined;\n\t\t},\n\t\tget \"data-disabled\"() {\n\t\t\treturn state().disabled ? \"\" : undefined;\n\t\t},\n\t};\n\n\tconst userClassStyle = resolveClassStyle(props, () => state());\n\n\tconst userProps = omit(\n\t\tprops,\n\t\t\"as\",\n\t\t\"class\",\n\t\t\"style\",\n\t\t\"attrs\",\n\n\t\t\"disabled\",\n\t\t\"nativeButton\",\n\t\t\"openOnHover\",\n\t\t\"delay\",\n\t\t\"closeDelay\",\n\t\t\"handle\",\n\t\t\"payload\",\n\t);\n\n\tlet merged: Record<string, unknown> = mergeRootProps(\n\t\troot.interactions.getReferenceProps(),\n\t\tlocalInteractions.getReferenceProps(),\n\t);\n\tmerged = mergeRootProps(merged, root.openInteractionTypeProps);\n\tmerged = mergeRootProps(merged, buttonProps);\n\tmerged = mergeRootProps(merged, internal);\n\tmerged = mergeRootProps(merged, userClassStyle);\n\tmerged = mergeRootProps(merged, userProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"button\");\n\tconst element = (\n\t\t<Tag\n\t\t\t{...merged}\n\t\t\tref={composeRefs(buttonRef, setTriggerRef, userRef(props))}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{isOpenedByThisTrigger() ? (\n\t\t\t\t<FocusGuard\n\t\t\t\t\tref={setPreFocusGuardRef}\n\t\t\t\t\tonFocus={handlePreFocusGuardFocus}\n\t\t\t\t/>\n\t\t\t) : null}\n\t\t\t{element}\n\t\t\t{isOpenedByThisTrigger() ? (\n\t\t\t\t<FocusGuard\n\t\t\t\t\tref={setPostFocusGuardRef}\n\t\t\t\t\tonFocus={handleFocusTargetFocus}\n\t\t\t\t/>\n\t\t\t) : null}\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}