{"version":3,"names":["dynamic","createEffect","createMemo","createSignal","createUniqueId","flush","omit","onCleanup","Show","untrack","createChangeEventDetails","REASONS","composeRefs","userRef","useFloatingParentNodeId","useFloatingTree","useClick","useDismiss","useFloatingRootContext","useHoverInteractionSharedState","useHoverReferenceInteraction","useInteractions","safePolygon","contains","stopEvent","getNextTabbable","getPreviousTabbable","getTabbableAfterElement","isOutsideEvent","mergeRootProps","FocusGuard","resolveClassStyle","useButton","VISUALLY_HIDDEN_STYLE","useNavigationMenuItemContext","useNavigationMenuDismissContext","useNavigationMenuRootContext","useNavigationMenuTreeContext","NAVIGATION_MENU_TRIGGER_IDENTIFIER","isOutsideMenuEvent","PATIENT_CLICK_THRESHOLD","NavigationMenuTrigger","props","root","item","nodeId","tree","dismissRef","nested","nativeButton","disabled","Boolean","triggerElement","setTriggerElementSignal","ownedWrite","stickIfOpen","setStickIfOpen","pointerType","setPointerType","triggerElementRef","current","allowFocusRef","isActiveItem","open","value","interactionsEnabled","positioner","positionerElement","hoverFloatingElement","viewportElement","hoverInteractionsEnabled","handleTriggerElement","element","stickTimeoutId","undefined","clearTimeout","handleOpenChange","nextOpen","details","isHover","reason","triggerHover","setTimeout","eventDetails","event","setValue","floatingRootContext","onOpenChange","trigger","float","update","referenceElement","domReferenceElement","floatingElement","hoverInteractionState","active","ctx","setFloatingRootContext","prevTriggerElementRef","context","dataRef","openEvent","interactedInside","getScope","closest","hoverProps","enabled","move","handleClose","blockPointerEvents","restMs","mounted","delay","close","closeDelay","clickProps","toggle","escapeKey","outsidePress","getReferenceProps","reference","buttonProps","ref","buttonRef","focusableWhenDisabled","native","handleActivation","prevRect","getBoundingClientRect","triggerEl","nextRect","isMovingRight","left","isMovingDown","top","orientation","dir","setActivationDirection","type","triggerPress","handleOpenEvent","handleSetPointerType","triggerId","defaultProps","tabIndex","onMouseEnter","onClick","onPointerEnter","onPointerDown","aria-expanded","aria-controls","popupElement","id","onFocus","setViewportInert","onMouseMove","onKeyDown","openHorizontal","key","openVertical","listNavigation","onBlur","popup","currentTarget","relatedTarget","rootRef","focusOut","state","dataAttrs","data-popup-open","data-pressed","userClassStyle","userProps","merged","Tag","as","el","beforeOutsideRef","beforeInsideRef","focus","prev","afterOutsideRef","elementToFocus","afterInsideRef","nextTabbable"],"sources":["navigation-menu-trigger.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\n/**\n * Solid 2 port of Base UI React's `NavigationMenuTrigger`\n * (`packages/react/src/navigation-menu/trigger/NavigationMenuTrigger.tsx`).\n *\n * The interactive trigger for a single navigation-menu item. Opens the\n * popup on hover (with the restMs delay from the root) and toggles it on\n * click. When this trigger's item becomes active, it also:\n *\n *  - Publishes its own floating-root context into the root so list /\n *    positioner / popup can read it.\n *  - Tracks the popup's previous size so size transitions between items\n *    are smooth.\n *  - Renders focus-guard sentinels after itself so `Tab` / `Shift+Tab`\n *    from the trigger jumps into the popup (and vice-versa).\n *\n * ### Solid deviations vs. React source\n *\n *  - The elaborate popup auto-size reset state machine (MutationObserver +\n *    resize observer + animation-frame chains that shrink-then-measure\n *    between active items) is *ported in shape* but effectively inert in\n *    happy-dom because `getBoundingClientRect()` returns zero for every\n *    element. The React code survives and runs with no\n *    measurable effect — browser coverage is required to validate real\n *    transition behavior.\n *  - `ReactDOM.flushSync` calls are dropped — Solid's writes settle on\n *    microtasks (MIGRATION.md) and consumers rely on `flush()` in tests.\n *    For the \"hover-open\" path we still write open state synchronously,\n *    which is observable after `flush()` per popover.test's pattern.\n *  - `applySafePolygonPointerEventsMutation` / pointer-events mutation\n *    lives on the hook's shared-state; we call it in the matching\n *    `mouseenter` path but the Solid port's `use-hover-interaction-shared-state`\n *    already exports these as module functions, so this is ported 1:1.\n */\nimport { dynamic } from \"@solidjs/web\";\nimport {\n\tcreateEffect,\n\tcreateMemo,\n\tcreateSignal,\n\tcreateUniqueId,\n\tflush,\n\tomit,\n\tonCleanup,\n\tShow,\n\tuntrack,\n} from \"solid-js\";\nimport {\n\tcreateChangeEventDetails,\n\tREASONS,\n} from \"../../internals/change-event-details\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\nimport {\n\tuseFloatingParentNodeId,\n\tuseFloatingTree,\n} from \"../../internals/floating-ui/components/floating-tree\";\nimport { useClick } from \"../../internals/floating-ui/hooks/use-click\";\nimport { useDismiss } from \"../../internals/floating-ui/hooks/use-dismiss\";\nimport { useFloatingRootContext } from \"../../internals/floating-ui/hooks/use-floating-root-context\";\nimport { useHoverInteractionSharedState } from \"../../internals/floating-ui/hooks/use-hover-interaction-shared-state\";\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 { contains } from \"../../internals/floating-ui/utils/element\";\nimport { stopEvent } from \"../../internals/floating-ui/utils/event\";\nimport {\n\tgetNextTabbable,\n\tgetPreviousTabbable,\n\tgetTabbableAfterElement,\n\tisOutsideEvent,\n} from \"../../internals/floating-ui/utils/tabbable\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { FocusGuard } from \"../../internals/popups/focus-guard\";\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 { VISUALLY_HIDDEN_STYLE } from \"../../internals/visually-hidden-style\";\nimport { useNavigationMenuItemContext } from \"../item/navigation-menu-item-context\";\nimport { useNavigationMenuDismissContext } from \"../list/navigation-menu-dismiss-context\";\nimport {\n\ttype NavigationMenuActivationDirection,\n\ttype NavigationMenuRootChangeEventReason,\n\tuseNavigationMenuRootContext,\n\tuseNavigationMenuTreeContext,\n} from \"../root/navigation-menu-root-context\";\nimport { NAVIGATION_MENU_TRIGGER_IDENTIFIER } from \"../utils/constants\";\nimport { isOutsideMenuEvent } from \"../utils/is-outside-menu-event\";\n\nconst PATIENT_CLICK_THRESHOLD = 500;\n\nexport interface NavigationMenuTriggerState {\n\t/** Whether the popup is open AND this trigger's item is the active one. */\n\topen: boolean;\n}\n\nexport interface NavigationMenuTriggerProps\n\textends NativeButtonProps,\n\t\tBaseUIComponentProps<\"button\", NavigationMenuTriggerState> {\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}\n\nexport function NavigationMenuTrigger(\n\tprops: NavigationMenuTriggerProps,\n): JSX.Element {\n\tconst root = useNavigationMenuRootContext();\n\tconst item = useNavigationMenuItemContext();\n\tconst nodeId = useNavigationMenuTreeContext();\n\tconst tree = useFloatingTree();\n\tconst dismissRef = useNavigationMenuDismissContext;\n\tconst nested = useFloatingParentNodeId() != null || root.nested;\n\n\tconst nativeButton = (): boolean => props.nativeButton ?? true;\n\tconst disabled = (): boolean => Boolean(props.disabled);\n\n\tconst [triggerElement, setTriggerElementSignal] =\n\t\tcreateSignal<HTMLElement | null>(null, { ownedWrite: true });\n\tconst [stickIfOpen, setStickIfOpen] = createSignal(true, {\n\t\townedWrite: true,\n\t});\n\tconst [pointerType, setPointerType] = createSignal<\n\t\t\"mouse\" | \"touch\" | \"pen\" | \"\"\n\t>(\"\", { ownedWrite: true });\n\n\tconst triggerElementRef: { current: HTMLElement | null } = { current: null };\n\tconst allowFocusRef: { current: boolean } = { current: false };\n\n\tconst isActiveItem = createMemo<boolean>(\n\t\t() => root.open() && root.value() === item.value(),\n\t);\n\n\tconst interactionsEnabled = (): boolean => {\n\t\tconst positioner = root.positionerElement();\n\t\tif (positioner) return true;\n\t\treturn root.value() == null;\n\t};\n\tconst hoverFloatingElement = (): HTMLElement | null =>\n\t\troot.positionerElement() ?? root.viewportElement();\n\tconst hoverInteractionsEnabled = (): boolean => {\n\t\tif (hoverFloatingElement()) return true;\n\t\treturn root.value() == null;\n\t};\n\n\tconst handleTriggerElement = (element: HTMLElement | null): void => {\n\t\ttriggerElementRef.current = element;\n\t\tsetTriggerElementSignal(element);\n\t};\n\n\t// ---------------------------------------------------------------------\n\t// Open-change handler\n\t// ---------------------------------------------------------------------\n\n\t// Patient-click timer: when the popup opens via hover, ignore click-to-close\n\t// for `PATIENT_CLICK_THRESHOLD` ms.\n\tlet stickTimeoutId: ReturnType<typeof setTimeout> | undefined;\n\tonCleanup(() => {\n\t\tif (stickTimeoutId !== undefined) clearTimeout(stickTimeoutId);\n\t});\n\n\t// Invoked from `useFloatingRootContext`'s `onOpenChange` (effect-apply\n\t// scope). Reads here are snapshots — wrap in `untrack` to silence\n\t// `[STRICT_READ_UNTRACKED]` on `interactionsEnabled()` / `pointerType()`\n\t// / `root.value()` / `item.value()`.\n\tfunction handleOpenChange(\n\t\tnextOpen: boolean,\n\t\tdetails: {\n\t\t\treason: string;\n\t\t\tevent?: Event;\n\t\t},\n\t): void {\n\t\tuntrack(() => {\n\t\t\tconst isHover = details.reason === REASONS.triggerHover;\n\t\t\tif (!interactionsEnabled()) return;\n\t\t\tif (pointerType() === \"touch\" && isHover) return;\n\t\t\tif (!nextOpen && root.value() !== item.value()) return;\n\n\t\t\tif (isHover) {\n\t\t\t\tsetStickIfOpen(true);\n\t\t\t\tif (stickTimeoutId !== undefined) clearTimeout(stickTimeoutId);\n\t\t\t\tstickTimeoutId = setTimeout(() => {\n\t\t\t\t\tsetStickIfOpen(false);\n\t\t\t\t}, PATIENT_CLICK_THRESHOLD);\n\t\t\t}\n\n\t\t\tconst eventDetails =\n\t\t\t\tcreateChangeEventDetails<NavigationMenuRootChangeEventReason>(\n\t\t\t\t\tdetails.reason as NavigationMenuRootChangeEventReason,\n\t\t\t\t\tdetails.event as Event,\n\t\t\t\t);\n\n\t\t\tif (nextOpen) {\n\t\t\t\troot.setValue(item.value(), eventDetails);\n\t\t\t} else {\n\t\t\t\troot.setValue(null, eventDetails);\n\t\t\t\tsetPointerType(\"\");\n\t\t\t}\n\n\t\t\t// React uses `flushSync` on hover so `value` updates before the\n\t\t\t// floating-root `open` sync effect runs (see `createEffect` below).\n\t\t\tif (isHover) {\n\t\t\t\tflush();\n\t\t\t}\n\t\t});\n\t}\n\n\tconst floatingRootContext = useFloatingRootContext({\n\t\topen: untrack(() => root.open()),\n\t\tonOpenChange: (nextOpen, details) =>\n\t\t\thandleOpenChange(nextOpen, details as { reason: string; event?: Event }),\n\t});\n\n\t// Sync root-open flag + trigger/floating elements into the floating\n\t// context. `update()` no longer flushes per-writer (writes batch to the\n\t// next microtask), but the hover path above calls `flush()` synchronously,\n\t// which can drain these writes and their downstream effects within this\n\t// apply's stack while the strict-read scope is still armed. `untrack`\n\t// keeps the apply body's writes (and the `triggerElement()` snapshot read\n\t// in the second effect) from re-tripping `[STRICT_READ_UNTRACKED]`.\n\tcreateEffect(\n\t\t() => ({\n\t\t\t// Match React: sync menu-wide `open` (value != null), not per-item\n\t\t\t// `isActiveItem`, so hover-open isn't reset before `value` updates.\n\t\t\topen: root.open(),\n\t\t\ttrigger: triggerElement(),\n\t\t\tfloat: hoverFloatingElement(),\n\t\t}),\n\t\t({ open, trigger, float }) =>\n\t\t\tuntrack(() => {\n\t\t\t\tfloatingRootContext.update({\n\t\t\t\t\topen,\n\t\t\t\t\treferenceElement: trigger,\n\t\t\t\t\tdomReferenceElement: trigger,\n\t\t\t\t\tfloatingElement: float,\n\t\t\t\t});\n\t\t\t}),\n\t);\n\n\tconst hoverInteractionState =\n\t\tuseHoverInteractionSharedState(floatingRootContext);\n\n\t// Publish this floating context to the root when this item becomes active.\n\tcreateEffect(\n\t\t() => ({ active: isActiveItem(), ctx: floatingRootContext }),\n\t\t({ active, ctx }) =>\n\t\t\tuntrack(() => {\n\t\t\t\tif (active) {\n\t\t\t\t\troot.setFloatingRootContext(ctx);\n\t\t\t\t\troot.prevTriggerElementRef.current = triggerElement();\n\t\t\t\t}\n\t\t\t}),\n\t);\n\n\t// Clear stale openEvent / rest timers when this item stops being active.\n\tcreateEffect(\n\t\t() => root.open(),\n\t\t(open) => {\n\t\t\tif (!open) {\n\t\t\t\tfloatingRootContext.context.dataRef.current.openEvent = undefined;\n\t\t\t\thoverInteractionState.pointerType = undefined;\n\t\t\t\thoverInteractionState.interactedInside = false;\n\t\t\t}\n\t\t},\n\t);\n\n\t// ---------------------------------------------------------------------\n\t// Interaction hooks\n\t// ---------------------------------------------------------------------\n\n\tconst getScope = (): HTMLElement | SVGSVGElement | null => {\n\t\tif (!nested || !root.positionerElement()) {\n\t\t\treturn (triggerElementRef.current?.closest(\"ul\") ??\n\t\t\t\tnull) as HTMLElement | null;\n\t\t}\n\t\treturn null;\n\t};\n\n\tconst hoverProps = useHoverReferenceInteraction(floatingRootContext, {\n\t\tenabled: () => hoverInteractionsEnabled(),\n\t\tmove: false,\n\t\thandleClose: safePolygon({\n\t\t\t// `safePolygon` destructures `blockPointerEvents` once at body time\n\t\t\t// (see safe-polygon.ts line 112), so a getter would only fire\n\t\t\t// `[STRICT_READ_UNTRACKED]` and never re-read on `pointerType`\n\t\t\t// changes anyway. Snapshot through `untrack`.\n\t\t\tblockPointerEvents: untrack(() => pointerType() !== \"touch\"),\n\t\t\tgetScope,\n\t\t}),\n\t\t// `useHoverReferenceInteraction` accepts `restMs` / `delay` as\n\t\t// `number | (() => number)` / `Delay | (() => Delay)` and destructures\n\t\t// each once at body time (see use-hover-reference-interaction.ts lines\n\t\t// 116, 119) — passing accessors instead of getters preserves\n\t\t// reactivity through `getDelay()` / `getRestMs()` (which call the\n\t\t// function every read inside the hook's tracked effects) AND avoids\n\t\t// the body-time getter-read that fires `[STRICT_READ_UNTRACKED]`\n\t\t// from the hook's untrack(<HookLabel>) scope.\n\t\trestMs: () =>\n\t\t\troot.mounted() && root.positionerElement() ? 0 : root.delay(),\n\t\tdelay: () => ({ open: root.delay(), close: root.closeDelay() }),\n\t\ttriggerElementRef,\n\t\ttriggerElement,\n\t});\n\n\t// React parity: `toggle={isActiveItem}` so only the currently-active\n\t// trigger can close by re-clicking. Reactive accessor (P3).\n\tconst clickProps = useClick(floatingRootContext, {\n\t\t// `useClick` accepts `enabled` / `toggle` as `MaybeAccessor<boolean>`\n\t\t// and reads them lazily through `readOption(...)` (use-click.ts lines\n\t\t// 113-115). Pass accessors instead of getters to keep reactivity\n\t\t// while sidestepping the body-time getter-read. `stickIfOpen` is\n\t\t// destructured once (line 105), so a getter would only fire the\n\t\t// body-time read — snapshot via `untrack`.\n\t\tenabled: () => interactionsEnabled(),\n\t\tstickIfOpen: untrack(() => stickIfOpen()),\n\t\ttoggle: () => isActiveItem(),\n\t});\n\n\t// Document-level Escape handler. Historically a workaround\n\t// (list's `useDismiss` installed against an undefined root context and\n\t// never re-bound). Post-P3 `useDismiss` accepts an accessor for its\n\t// context and re-installs listeners when the active root swaps, so the\n\t// list's dismiss now handles Escape too. Kept as belt-and-suspenders\n\t// against the `interactionsEnabled()` gate flip on the list (which\n\t// disables the list handler while the trigger is the active item).\n\t// `outsidePress` is disabled here — the list owns that path via its\n\t// `NAVIGATION_MENU_TRIGGER_IDENTIFIER` predicate.\n\tuseDismiss(floatingRootContext, {\n\t\t// `useDismiss` accepts `enabled` as `MaybeAccessor<boolean>` and\n\t\t// re-installs listeners when it changes — pass an accessor.\n\t\tenabled: () => isActiveItem(),\n\t\tescapeKey: true,\n\t\toutsidePress: false,\n\t});\n\n\t// The dismiss props from the enclosing list context — merge them onto the\n\t// trigger so the list's escape-key handler attaches to the reference.\n\tconst { getReferenceProps } = useInteractions([\n\t\thoverProps ? { reference: hoverProps } : undefined,\n\t\tclickProps,\n\t\t{ reference: dismissRef()?.reference },\n\t]);\n\n\tconst { props: buttonProps, ref: buttonRef } = useButton({\n\t\tdisabled,\n\t\tfocusableWhenDisabled: () => true,\n\t\tnative: nativeButton,\n\t});\n\n\tfunction handleActivation(event: MouseEvent | KeyboardEvent): void {\n\t\tconst prevRect =\n\t\t\troot.prevTriggerElementRef.current?.getBoundingClientRect?.();\n\t\tconst triggerEl = triggerElement();\n\t\tif (root.mounted() && prevRect && triggerEl) {\n\t\t\tconst nextRect = triggerEl.getBoundingClientRect();\n\t\t\tconst isMovingRight = nextRect.left > prevRect.left;\n\t\t\tconst isMovingDown = nextRect.top > prevRect.top;\n\t\t\tconst orientation = root.orientation();\n\t\t\tlet dir: NavigationMenuActivationDirection = null;\n\t\t\tif (orientation === \"horizontal\" && nextRect.left !== prevRect.left) {\n\t\t\t\tdir = isMovingRight ? \"right\" : \"left\";\n\t\t\t} else if (orientation === \"vertical\" && nextRect.top !== prevRect.top) {\n\t\t\t\tdir = isMovingDown ? \"down\" : \"up\";\n\t\t\t}\n\t\t\tif (dir !== null) root.setActivationDirection(dir);\n\t\t}\n\n\t\t// Reset `openEvent` when switching items so hover→hover back doesn't\n\t\t// leave stale state.\n\t\tif (event.type !== \"click\" && root.value() != null) {\n\t\t\tfloatingRootContext.context.dataRef.current.openEvent = undefined;\n\t\t}\n\n\t\tif (pointerType() === \"touch\" && event.type !== \"click\") return;\n\n\t\tif (root.value() != null) {\n\t\t\troot.setValue(\n\t\t\t\titem.value(),\n\t\t\t\tcreateChangeEventDetails<NavigationMenuRootChangeEventReason>(\n\t\t\t\t\tevent.type === \"mouseenter\"\n\t\t\t\t\t\t? REASONS.triggerHover\n\t\t\t\t\t\t: REASONS.triggerPress,\n\t\t\t\t\tevent,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction handleOpenEvent(event: MouseEvent | KeyboardEvent): void {\n\t\thandleActivation(event);\n\t}\n\n\tfunction handleSetPointerType(event: PointerEvent): void {\n\t\tsetPointerType(event.pointerType as \"mouse\" | \"touch\" | \"pen\");\n\t}\n\n\tconst triggerId = createUniqueId();\n\n\tconst defaultProps = {\n\t\ttabIndex: 0,\n\t\tonMouseEnter: handleOpenEvent as (ev: MouseEvent) => void,\n\t\tonClick: handleOpenEvent as (ev: MouseEvent) => void,\n\t\tonPointerEnter: handleSetPointerType as (ev: PointerEvent) => void,\n\t\tonPointerDown: handleSetPointerType as (ev: PointerEvent) => void,\n\t\tget \"aria-expanded\"() {\n\t\t\t// Return explicit string values so Solid's attribute binding doesn't\n\t\t\t// collapse `true` to an empty-string presence attr.\n\t\t\treturn isActiveItem() ? \"true\" : \"false\";\n\t\t},\n\t\tget \"aria-controls\"() {\n\t\t\t// Seed with \"\" so the DOM spread key stays subscribed.\n\t\t\treturn isActiveItem() ? (root.popupElement()?.id ?? \"\") : \"\";\n\t\t},\n\t\t[NAVIGATION_MENU_TRIGGER_IDENTIFIER]: \"\",\n\t\tonFocus(): void {\n\t\t\tif (!isActiveItem()) return;\n\t\t\troot.setViewportInert(false);\n\t\t},\n\t\tonMouseMove(): void {\n\t\t\tallowFocusRef.current = false;\n\t\t},\n\t\tonKeyDown(event: KeyboardEvent): void {\n\t\t\tallowFocusRef.current = true;\n\t\t\tif (nested) return;\n\t\t\tconst orientation = root.orientation();\n\t\t\tconst openHorizontal =\n\t\t\t\torientation === \"horizontal\" && event.key === \"ArrowDown\";\n\t\t\tconst openVertical =\n\t\t\t\torientation === \"vertical\" && event.key === \"ArrowRight\";\n\t\t\tif (openHorizontal || openVertical) {\n\t\t\t\troot.setValue(\n\t\t\t\t\titem.value(),\n\t\t\t\t\tcreateChangeEventDetails<NavigationMenuRootChangeEventReason>(\n\t\t\t\t\t\tREASONS.listNavigation,\n\t\t\t\t\t\tevent,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\thandleOpenEvent(event);\n\t\t\t\tstopEvent(event);\n\t\t\t}\n\t\t},\n\t\tonBlur(event: FocusEvent): void {\n\t\t\tconst positioner = root.positionerElement();\n\t\t\tconst popup = root.popupElement();\n\t\t\tif (\n\t\t\t\tpositioner &&\n\t\t\t\tpopup &&\n\t\t\t\tisOutsideMenuEvent(\n\t\t\t\t\t{\n\t\t\t\t\t\tcurrentTarget: event.currentTarget as HTMLElement | null,\n\t\t\t\t\t\trelatedTarget: event.relatedTarget as HTMLElement | null,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpopupElement: popup,\n\t\t\t\t\t\trootRef: root.rootRef,\n\t\t\t\t\t\ttree,\n\t\t\t\t\t\tnodeId,\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\troot.setValue(\n\t\t\t\t\tnull,\n\t\t\t\t\tcreateChangeEventDetails<NavigationMenuRootChangeEventReason>(\n\t\t\t\t\t\tREASONS.focusOut,\n\t\t\t\t\t\tevent,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t};\n\n\tconst state = createMemo<NavigationMenuTriggerState>(() => ({\n\t\topen: isActiveItem(),\n\t}));\n\n\tconst dataAttrs = {\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};\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\"nativeButton\",\n\t\t\"disabled\",\n\t);\n\n\tlet merged: Record<string, unknown> = mergeRootProps(\n\t\tgetReferenceProps(),\n\t\tdefaultProps,\n\t);\n\tmerged = mergeRootProps(merged, buttonProps);\n\tmerged = mergeRootProps(merged, { id: triggerId });\n\tmerged = mergeRootProps(merged, dataAttrs);\n\tmerged = mergeRootProps(merged, userClassStyle);\n\tmerged = mergeRootProps(merged, userProps);\n\n\t// Primary trigger element.\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, handleTriggerElement, userRef(props))}\n\t\t/>\n\t);\n\n\t// Focus guards attached when this trigger is active.\n\treturn (\n\t\t<>\n\t\t\t{element}\n\t\t\t<Show when={isActiveItem()}>\n\t\t\t\t<FocusGuard\n\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\troot.beforeOutsideRef.current = el;\n\t\t\t\t\t}}\n\t\t\t\t\tonFocus={(event: FocusEvent) => {\n\t\t\t\t\t\tconst referenceElement = hoverFloatingElement();\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\treferenceElement &&\n\t\t\t\t\t\t\tisOutsideEvent(event as FocusEvent, referenceElement)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\troot.beforeInsideRef.current?.focus();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst prev = getPreviousTabbable(triggerElement());\n\t\t\t\t\t\t\tprev?.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<span\n\t\t\t\t\taria-owns={root.viewportElement()?.id ?? \"\"}\n\t\t\t\t\tstyle={{ ...VISUALLY_HIDDEN_STYLE }}\n\t\t\t\t/>\n\t\t\t\t<FocusGuard\n\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\troot.afterOutsideRef.current = el;\n\t\t\t\t\t}}\n\t\t\t\t\tonFocus={(event: FocusEvent) => {\n\t\t\t\t\t\tconst referenceElement = hoverFloatingElement();\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\treferenceElement &&\n\t\t\t\t\t\t\tisOutsideEvent(event as FocusEvent, referenceElement)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\troot.setViewportInert(false);\n\t\t\t\t\t\t\tconst elementToFocus =\n\t\t\t\t\t\t\t\troot.afterInsideRef.current ?? triggerElement();\n\t\t\t\t\t\t\telementToFocus?.focus();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlet nextTabbable = getNextTabbable(triggerElement());\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tnested &&\n\t\t\t\t\t\t\t\t!root.positionerElement() &&\n\t\t\t\t\t\t\t\treferenceElement &&\n\t\t\t\t\t\t\t\tnextTabbable &&\n\t\t\t\t\t\t\t\tcontains(referenceElement, nextTabbable)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tnextTabbable = getTabbableAfterElement(\n\t\t\t\t\t\t\t\t\troot.afterInsideRef.current,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tnextTabbable?.focus();\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t(!nested || root.positionerElement()) &&\n\t\t\t\t\t\t\t\t!contains(root.rootRef.current, nextTabbable)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\troot.setValue(\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\tcreateChangeEventDetails<NavigationMenuRootChangeEventReason>(\n\t\t\t\t\t\t\t\t\t\tREASONS.focusOut,\n\t\t\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</Show>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}