{"version":3,"names":["isElement","isHTMLElement","createEffect","untrack","createChangeEventDetails","REASONS","contains","ownerDocument","useTimeout","isMac","isSafari","createAttribute","activeElement","getTarget","isTargetInsideEnabledTrigger","isTypeableElement","matchesFocusVisible","isMacSafari","useFocus","context","props","store","rootStore","events","dataRef","isEnabled","enabled","undefined","delay","blockFocus","blockedReference","keyboardModality","timeout","domReference","state","domReferenceElement","win","defaultView","window","onBlur","currentDomReference","open","onKeyDown","onPointerDown","addEventListener","removeEventListener","onOpenChangeLocal","details","reason","triggerPress","escapeKey","referenceElement","on","off","reference","onMouseLeave","onFocus","event","focusTarget","currentTarget","target","relatedTarget","movedFromOtherEnabledTrigger","triggerElements","nativeEvent","delayValue","setOpen","triggerFocus","start","movedToFocusGuard","hasAttribute","getAttribute","activeEl","current","floatingContext","refs","floating","nextFocusedElement","trigger"],"sources":["use-focus.ts"],"sourcesContent":["/**\n * Stage 4.2 port of Base UI React's `useFocus` hook.\n *\n * React source:\n *   `base-ui/packages/react/src/floating-ui-react/hooks/useFocus.ts`\n *\n * Opens the floating element while the reference element has focus, and\n * closes it on blur. Respects `visibleOnly` via `matchesFocusVisible`,\n * handles window-blur re-entry edge cases, and exposes a `delay` option\n * for keyboard-triggered opens.\n *\n * ### React → Solid deviations\n *\n * 1. React `useRef` → plain closure-captured `let` bindings. Solid has\n *    no re-render cycle, so component-scoped mutables are just variables\n *    in the function body.\n *\n * 2. Two `useEffect`s in the React source become two `createEffect`s\n *    here. Listener install/remove is wrapped in `onCleanup`.\n *\n * 3. React's `addEventListener` + `mergeCleanups` helpers from\n *    `@base-ui/utils` are replaced with direct `addEventListener` +\n *    manual cleanup arrays. Shape-equivalent.\n *\n * 4. The `delay` option accepts `number | (() => number | undefined)` —\n *    the function form is invoked at focus-time so the latest value\n *    wins. Same as React.\n *\n * 5. `:focus-visible` matching in happy-dom is unreliable; the\n *    shared `matchesFocusVisible` helper short-circuits to `true`\n *    inside the test env.\n */\nimport { isElement, isHTMLElement } from \"@floating-ui/utils/dom\";\nimport { createEffect, untrack } from \"solid-js\";\nimport type { BaseUIChangeEventDetails } from \"../../change-event-details\";\nimport { createChangeEventDetails, REASONS } from \"../../change-event-details\";\nimport { contains } from \"../../dom/contains\";\nimport { ownerDocument } from \"../../dom/owner-document\";\nimport { useTimeout } from \"../../use-timeout\";\nimport type { FloatingUIOpenChangeDetails } from \"../components/floating-root-store\";\nimport { isMac, isSafari } from \"../detect-browser\";\nimport type {\n\tElementProps,\n\tFloatingContext,\n\tFloatingRootContext,\n} from \"../types\";\nimport { createAttribute } from \"../utils/create-attribute\";\nimport {\n\tactiveElement,\n\tgetTarget,\n\tisTargetInsideEnabledTrigger,\n\tisTypeableElement,\n\tmatchesFocusVisible,\n} from \"../utils/element\";\n\n// `isMac && isSafari` gate, mirroring the React source. Safari fails to match\n// `:focus-visible` when focus arrives from outside the document, so the\n// Mac-Safari branches fall back to keyboard-modality tracking. On every other\n// browser this is `false` and the happy-path runs.\nconst isMacSafari = isMac && isSafari;\n\nexport interface UseFocusProps {\n\t/**\n\t * Whether the Hook is enabled, including all internal Effects and event\n\t * handlers.\n\t * @default true\n\t */\n\tenabled?: boolean | undefined;\n\t/**\n\t * Waits for the specified time before opening.\n\t * @default undefined\n\t */\n\tdelay?: number | (() => number | undefined) | undefined;\n}\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nexport function useFocus(\n\tcontext: FloatingRootContext | FloatingContext,\n\tprops: UseFocusProps = {},\n): ElementProps {\n\tconst store = \"rootStore\" in context ? context.rootStore : context;\n\tconst { events, dataRef } = store.context;\n\t// `enabled` is read lazily so consumers can pass a reactive getter\n\t// (e.g. `get enabled() { return !disabled(); }`) and have the hook\n\t// honor flips. Body-time destructure would freeze the value AND\n\t// invoke the getter eagerly under strict-read.\n\tconst isEnabled = (): boolean =>\n\t\tprops.enabled === undefined ? true : props.enabled;\n\tconst delay = untrack(() => props.delay);\n\n\t// Closure state — React `useRef` equivalents.\n\tlet blockFocus = false;\n\tlet blockedReference: Element | null = null;\n\tlet keyboardModality = true;\n\n\tconst timeout = useTimeout();\n\n\t// Window-level listeners: blur / keydown / pointerdown. React installs\n\t// these inside a `useEffect`; we do the same via `createEffect`'s\n\t// split-effect shape (Solid 2 requires `(compute, apply)`).\n\tcreateEffect(\n\t\t// Compute reads `domReferenceElement` so the effect re-installs\n\t\t// listeners against the right window when the reference moves\n\t\t// between owner-documents (e.g. iframe portals). Apply receives\n\t\t// the element through its argument — no reactive reads in apply.\n\t\t() => ({\n\t\t\tdomReference: store.state.domReferenceElement,\n\t\t\tenabled: isEnabled(),\n\t\t}),\n\t\t({ domReference, enabled }) => {\n\t\t\tif (!enabled) return undefined;\n\t\t\tconst win: Window =\n\t\t\t\t(domReference as Element | null)?.ownerDocument?.defaultView ?? window;\n\n\t\t\tfunction onBlur() {\n\t\t\t\tconst currentDomReference = store.state.domReferenceElement;\n\t\t\t\tif (\n\t\t\t\t\t!store.state.open &&\n\t\t\t\t\tisHTMLElement(currentDomReference) &&\n\t\t\t\t\tcurrentDomReference ===\n\t\t\t\t\t\tactiveElement(ownerDocument(currentDomReference))\n\t\t\t\t) {\n\t\t\t\t\tblockFocus = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction onKeyDown() {\n\t\t\t\tkeyboardModality = true;\n\t\t\t}\n\n\t\t\tfunction onPointerDown() {\n\t\t\t\tkeyboardModality = false;\n\t\t\t}\n\n\t\t\twin.addEventListener(\"blur\", onBlur);\n\t\t\tif (isMacSafari) {\n\t\t\t\twin.addEventListener(\"keydown\", onKeyDown, true);\n\t\t\t\twin.addEventListener(\"pointerdown\", onPointerDown, true);\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\twin.removeEventListener(\"blur\", onBlur);\n\t\t\t\tif (isMacSafari) {\n\t\t\t\t\twin.removeEventListener(\"keydown\", onKeyDown, true);\n\t\t\t\t\twin.removeEventListener(\"pointerdown\", onPointerDown, true);\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t);\n\n\t// `openchange` listener — when the popup closes via escape / press, block\n\t// the reference from re-opening on the ensuing focus event.\n\tcreateEffect(\n\t\t() => isEnabled(),\n\t\t(enabled) => {\n\t\t\tif (!enabled) return undefined;\n\n\t\t\tfunction onOpenChangeLocal(details: FloatingUIOpenChangeDetails) {\n\t\t\t\tif (\n\t\t\t\t\tdetails.reason === REASONS.triggerPress ||\n\t\t\t\t\tdetails.reason === REASONS.escapeKey\n\t\t\t\t) {\n\t\t\t\t\tconst referenceElement = store.state.domReferenceElement;\n\t\t\t\t\tif (isElement(referenceElement)) {\n\t\t\t\t\t\tblockedReference = referenceElement as Element;\n\t\t\t\t\t\tblockFocus = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tevents.on(\"openchange\", onOpenChangeLocal);\n\t\t\treturn () => {\n\t\t\t\tevents.off(\"openchange\", onOpenChangeLocal);\n\t\t\t};\n\t\t},\n\t);\n\n\tconst reference: ElementProps[\"reference\"] = {\n\t\tonMouseLeave() {\n\t\t\tif (!isEnabled()) return;\n\t\t\tblockFocus = false;\n\t\t\tblockedReference = null;\n\t\t},\n\t\tonFocus(event: FocusEvent) {\n\t\t\tif (!isEnabled()) return;\n\t\t\tconst focusTarget = event.currentTarget as Element;\n\t\t\tif (blockFocus) {\n\t\t\t\tif (blockedReference === focusTarget) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tblockFocus = false;\n\t\t\t\tblockedReference = null;\n\t\t\t}\n\n\t\t\tconst target = getTarget(event);\n\n\t\t\tif (isElement(target)) {\n\t\t\t\t// Safari fails to match `:focus-visible` if focus was\n\t\t\t\t// initially outside the document.\n\t\t\t\tif (isMacSafari && !event.relatedTarget) {\n\t\t\t\t\tif (!keyboardModality && !isTypeableElement(target)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t} else if (!matchesFocusVisible(target as Element)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst movedFromOtherEnabledTrigger = isTargetInsideEnabledTrigger(\n\t\t\t\tevent.relatedTarget as EventTarget | null,\n\t\t\t\tstore.context.triggerElements,\n\t\t\t);\n\n\t\t\tconst nativeEvent = event;\n\t\t\tconst currentTarget = event.currentTarget as HTMLElement;\n\t\t\tconst delayValue = typeof delay === \"function\" ? delay() : delay;\n\n\t\t\tif (\n\t\t\t\t(store.state.open && movedFromOtherEnabledTrigger) ||\n\t\t\t\tdelayValue === 0 ||\n\t\t\t\tdelayValue === undefined\n\t\t\t) {\n\t\t\t\tstore.setOpen(\n\t\t\t\t\ttrue,\n\t\t\t\t\tcreateChangeEventDetails(\n\t\t\t\t\t\tREASONS.triggerFocus,\n\t\t\t\t\t\tnativeEvent,\n\t\t\t\t\t\tcurrentTarget,\n\t\t\t\t\t) as BaseUIChangeEventDetails<string>,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttimeout.start(delayValue, () => {\n\t\t\t\tif (blockFocus) return;\n\t\t\t\tstore.setOpen(\n\t\t\t\t\ttrue,\n\t\t\t\t\tcreateChangeEventDetails(\n\t\t\t\t\t\tREASONS.triggerFocus,\n\t\t\t\t\t\tnativeEvent,\n\t\t\t\t\t\tcurrentTarget,\n\t\t\t\t\t) as BaseUIChangeEventDetails<string>,\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\t\tonBlur(event: FocusEvent) {\n\t\t\tif (!isEnabled()) return;\n\t\t\tblockFocus = false;\n\t\t\tblockedReference = null;\n\t\t\tconst relatedTarget = event.relatedTarget;\n\t\t\tconst nativeEvent = event;\n\n\t\t\t// Hit the non-modal focus management portal guard. Focus will\n\t\t\t// be moved into the floating element immediately after.\n\t\t\tconst movedToFocusGuard =\n\t\t\t\tisElement(relatedTarget) &&\n\t\t\t\t(relatedTarget as Element).hasAttribute(\n\t\t\t\t\tcreateAttribute(\"focus-guard\"),\n\t\t\t\t) &&\n\t\t\t\t(relatedTarget as Element).getAttribute(\"data-type\") === \"outside\";\n\n\t\t\t// Wait for the window blur listener to fire.\n\t\t\ttimeout.start(0, () => {\n\t\t\t\tconst domReference = store.state.domReferenceElement;\n\t\t\t\tconst activeEl = activeElement(ownerDocument(domReference));\n\n\t\t\t\t// Focus left the page, keep it open.\n\t\t\t\tif (!relatedTarget && activeEl === domReference) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// When focusing the reference element (e.g. regular click),\n\t\t\t\t// then clicking into the floating element, prevent it from\n\t\t\t\t// hiding. Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n\t\t\t\tif (\n\t\t\t\t\tcontains(\n\t\t\t\t\t\tdataRef.current.floatingContext?.refs.floating.current ?? null,\n\t\t\t\t\t\tactiveEl,\n\t\t\t\t\t) ||\n\t\t\t\t\tcontains(domReference, activeEl) ||\n\t\t\t\t\tmovedToFocusGuard\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If the next focused element is one of the triggers, do\n\t\t\t\t// not close the floating element. The focus handler of that\n\t\t\t\t// trigger will handle the open state.\n\t\t\t\tconst nextFocusedElement = relatedTarget ?? activeEl;\n\t\t\t\tif (\n\t\t\t\t\tisTargetInsideEnabledTrigger(\n\t\t\t\t\t\tnextFocusedElement as EventTarget | null,\n\t\t\t\t\t\tstore.context.triggerElements,\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tstore.setOpen(\n\t\t\t\t\tfalse,\n\t\t\t\t\tcreateChangeEventDetails(\n\t\t\t\t\t\tREASONS.triggerFocus,\n\t\t\t\t\t\tnativeEvent,\n\t\t\t\t\t) as BaseUIChangeEventDetails<string>,\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\t};\n\n\treturn { reference, trigger: reference };\n}\n"],"mappings":"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","ignoreList":[]}