{"version":3,"names":["isElement","createEffect","onCleanup","untrack","createChangeEventDetails","REASONS","contains","ownerDocument","createStableCallback","useIsoLayoutEffect","useTimeout","useFloatingParentNodeId","useFloatingTree","getTarget","isInteractiveElement","getDelay","getRestMs","readOption","useHover","context","props","store","rootStore","dataRef","events","delay","handleClose","restMs","move","mouseOnly","getEnabled","enabled","undefined","tree","parentId","pointerTypeRef","current","interactedInsideRef","timeout","handlerRef","restTimeout","blockMouseMoveRef","performedPointerEventsMutationRef","unbindMouseMoveRef","restTimeoutPendingRef","isHoverOpen","type","openEvent","Boolean","includes","isClickLikeOpenEvent","openEventType","onOpenChangeLocal","details","open","clear","on","off","state","floatingElement","snapshot","onLeave","event","setOpen","triggerHover","currentTarget","html","documentElement","addEventListener","removeEventListener","closeWithDelay","runElseBranch","closeDelay","start","cleanupMouseMoveHandler","clearPointerEvents","body","style","pointerEvents","handleInteractInside","target","domReferenceElement","isOpen","triggerNullable","trigger","referenceHasPointer","onReferenceMouseEnter","pt","openDelay","triggerHtml","domReference","isOverInactiveTrigger","onReferenceMouseLeave","doc","triggers","triggerElements","relatedTarget","hasElement","floatingContext","ctx","x","clientX","y","clientY","onClose","handler","shouldClose","syncHoverWhileAlreadyOver","isStarted","hovered","matches","MouseEvent","bubbles","cancelable","onScrollMouseLeave","onFloatingMouseEnter","onFloatingMouseLeave","cleanups","push","onceHandler","evt","once","queueMicrotask","cleanup","__options","blockPointerEvents","floatingEl","ref","parentFloating","nodesRef","find","node","id","elements","floating","reference","onPointerDown","pointerType","onPointerEnter","onMouseMove","nativeEvent","handleMouseMove","movementX","movementY","sticksDisabled"],"sources":["use-hover.ts"],"sourcesContent":["/**\n * Stage 4.4 port of Base UI React's `useHover` hook.\n *\n * React source:\n *   `base-ui/packages/react/src/floating-ui-react/hooks/useHover.ts`\n *\n * Single-hook variant for the common case of one reference + one\n * floating element sharing hover handlers. The React source still ships\n * this distinct from the reference / floating interaction pair (above)\n * because the one-off shape has noticeably less bookkeeping — no tree\n * `floating.closed` events, simpler close-scroll-mouseleave handling,\n * and a merged `isHoverOpen` predicate that short-circuits most of the\n * nested-tree gates.\n *\n * Consumers that need separate trigger + floating hooks (for wrapper\n * trigger modes, delegation, etc.) should use the `use-hover-*` pair\n * directly.\n *\n * ### React → Solid deviations\n *\n * Same pattern as the sibling hover hooks + `useDismiss`:\n *  - `useRef` → plain `MutableRef<T>` objects / closure `let`s.\n *  - `useValueAsRef(fn)` → read options inside handlers (no wrapping\n *    needed in Solid's non-re-rendering model).\n *  - `useStableCallback` → `createStableCallback`.\n *  - `useEffect` / `useIsoLayoutEffect` → `createEffect` /\n *    `useIsoLayoutEffect` in split-compute-apply form.\n *  - `addEventListener` + `mergeCleanups` → direct DOM-level\n *    `addEventListener` with array-based cleanup in `onCleanup`.\n *  - `isReactEvent` branches dropped: Solid already receives native\n *    events.\n *\n * ### Reason strings\n *\n * Every hover-driven `setOpen` emits `REASONS.triggerHover`. This\n * matches React's React-source literal (`'trigger-hover'`) exactly.\n */\n\nimport { isElement } from \"@floating-ui/utils/dom\";\nimport { createEffect, onCleanup, untrack } from \"solid-js\";\nimport {\n\ttype BaseUIChangeEventDetails,\n\tcreateChangeEventDetails,\n\tREASONS,\n} from \"../../change-event-details\";\nimport { contains } from \"../../dom/contains\";\nimport { ownerDocument } from \"../../dom/owner-document\";\nimport { createStableCallback } from \"../../stable-callback\";\nimport { useIsoLayoutEffect } from \"../../use-iso-layout-effect\";\nimport { useTimeout } from \"../../use-timeout\";\nimport type { FloatingUIOpenChangeDetails } from \"../components/floating-root-store\";\nimport {\n\tuseFloatingParentNodeId,\n\tuseFloatingTree,\n} from \"../components/floating-tree\";\nimport type {\n\tDelay,\n\tElementProps,\n\tFloatingContext,\n\tFloatingRootContext,\n\tMutableRef,\n} from \"../types\";\nimport { getTarget, isInteractiveElement } from \"../utils/element\";\nimport type { HandleClose, HandleCloseContext } from \"./use-hover-shared\";\nimport { getDelay, getRestMs } from \"./use-hover-shared\";\n\nexport type { HandleClose, HandleCloseContext };\n\nimport { type MaybeAccessor, readOption } from \"../../maybe-accessor\";\n\nexport interface UseHoverProps {\n\t/**\n\t * Accepts an event handler that runs on `mousemove` to control when the\n\t * floating element closes once the cursor leaves the reference element.\n\t * @default null\n\t */\n\thandleClose?: HandleClose | null | undefined;\n\t/**\n\t * Waits until the user's cursor is at \"rest\" over the reference element\n\t * before changing the `open` state.\n\t * @default 0\n\t */\n\trestMs?: number | (() => number) | undefined;\n\t/**\n\t * Waits for the specified time when the event listener runs before changing\n\t * the `open` state.\n\t * @default 0\n\t */\n\tdelay?: Delay | (() => Delay) | undefined;\n\t/**\n\t * Whether moving the cursor over the floating element will open it, without\n\t * a regular hover event required.\n\t * @default true\n\t */\n\tmove?: boolean | undefined;\n\t/**\n\t * Whether the hook is enabled. When `false`, no listeners are attached\n\t * and no state is tracked. Accepts an accessor so reactive callers\n\t * can flip mid-life (solidify.md P3).\n\t * @default true\n\t */\n\tenabled?: MaybeAccessor<boolean> | undefined;\n\t/**\n\t * Whether only mouse-like pointers (`mouse`, `pen`) trigger hover-open.\n\t * Touch input still dispatches `mouseenter` / `mouseleave` on most\n\t * platforms but rarely represents a hover intent.\n\t * @default false\n\t */\n\tmouseOnly?: boolean | undefined;\n}\n\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nexport function useHover(\n\tcontext: FloatingRootContext | FloatingContext,\n\tprops: UseHoverProps = {},\n): ElementProps {\n\tconst store = \"rootStore\" in context ? context.rootStore : context;\n\tconst { dataRef, events } = store.context;\n\n\t// Snapshot at hook-body-time. These options are captured in closures\n\t// fired by DOM events, so a body-time read is the correct semantic\n\t// (matches React's `useHover` where the destructure is on a memoized\n\t// hook input). `untrack` here just keeps `[STRICT_READ_UNTRACKED]`\n\t// quiet for consumers passing `get handleClose()` style accessors.\n\t// `enabled` is the only option that's deliberately reactive — see\n\t// `getEnabled` below.\n\tconst {\n\t\tdelay = 0,\n\t\thandleClose = null,\n\t\trestMs = 0,\n\t\tmove = true,\n\t\tmouseOnly = false,\n\t} = untrack(() => ({\n\t\tdelay: props.delay,\n\t\thandleClose: props.handleClose,\n\t\trestMs: props.restMs,\n\t\tmove: props.move,\n\t\tmouseOnly: props.mouseOnly,\n\t}));\n\n\tconst getEnabled = (): boolean =>\n\t\tprops.enabled === undefined ? true : readOption(props.enabled);\n\n\tconst tree = useFloatingTree();\n\tconst parentId = useFloatingParentNodeId();\n\n\t// React `useRef` equivalents.\n\tconst pointerTypeRef: MutableRef<string | undefined> = { current: undefined };\n\tconst interactedInsideRef: MutableRef<boolean> = { current: false };\n\tconst timeout = useTimeout();\n\tconst handlerRef: MutableRef<((event: MouseEvent) => void) | undefined> = {\n\t\tcurrent: undefined,\n\t};\n\tconst restTimeout = useTimeout();\n\tconst blockMouseMoveRef: MutableRef<boolean> = { current: true };\n\tconst performedPointerEventsMutationRef: MutableRef<boolean> = {\n\t\tcurrent: false,\n\t};\n\tconst unbindMouseMoveRef: MutableRef<() => void> = { current: () => {} };\n\tconst restTimeoutPendingRef: MutableRef<boolean> = { current: false };\n\n\tconst isHoverOpen = createStableCallback<() => boolean>(() => () => {\n\t\tconst type = dataRef.current.openEvent?.type;\n\t\treturn Boolean(type?.includes(\"mouse\")) && type !== \"mousedown\";\n\t});\n\n\tconst isClickLikeOpenEvent = createStableCallback<() => boolean>(() => () => {\n\t\tif (interactedInsideRef.current) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst openEventType = dataRef.current.openEvent?.type;\n\t\treturn openEventType === \"click\" || openEventType === \"mousedown\";\n\t});\n\n\t// Clear delay timeouts on close (if a close preempts an open).\n\tcreateEffect(\n\t\t() => undefined,\n\t\t() => {\n\t\t\tfunction onOpenChangeLocal(details: FloatingUIOpenChangeDetails) {\n\t\t\t\tif (!details.open) {\n\t\t\t\t\ttimeout.clear();\n\t\t\t\t\trestTimeout.clear();\n\t\t\t\t\tblockMouseMoveRef.current = true;\n\t\t\t\t\trestTimeoutPendingRef.current = false;\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\t// When `handleClose` is set, listen for document-level `mouseleave` so\n\t// the floating element still closes when the cursor exits the window\n\t// entirely (safe-polygon alone can't detect this).\n\tcreateEffect(\n\t\t() => ({\n\t\t\topen: store.state.open,\n\t\t\tfloatingElement: store.state.floatingElement,\n\t\t\tenabled: getEnabled(),\n\t\t}),\n\t\t(snapshot) => {\n\t\t\tconst { open, floatingElement, enabled } = snapshot;\n\t\t\tif (!enabled || !handleClose || !open) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction onLeave(event: MouseEvent) {\n\t\t\t\tif (isClickLikeOpenEvent()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (isHoverOpen()) {\n\t\t\t\t\tstore.setOpen(\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tcreateChangeEventDetails(\n\t\t\t\t\t\t\tREASONS.triggerHover,\n\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t((event.currentTarget as HTMLElement) ?? undefined) as\n\t\t\t\t\t\t\t\t| HTMLElement\n\t\t\t\t\t\t\t\t| undefined,\n\t\t\t\t\t\t) as BaseUIChangeEventDetails<string>,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst html = ownerDocument(floatingElement).documentElement;\n\t\t\thtml.addEventListener(\"mouseleave\", onLeave);\n\t\t\treturn () => {\n\t\t\t\thtml.removeEventListener(\"mouseleave\", onLeave);\n\t\t\t};\n\t\t},\n\t);\n\n\tconst closeWithDelay = createStableCallback<\n\t\t(event: MouseEvent, runElseBranch?: boolean) => void\n\t>(() => (event: MouseEvent, runElseBranch = true) => {\n\t\tconst closeDelay = getDelay(delay, \"close\", pointerTypeRef.current);\n\t\tif (closeDelay && !handlerRef.current) {\n\t\t\ttimeout.start(closeDelay, () =>\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.triggerHover,\n\t\t\t\t\t\tevent,\n\t\t\t\t\t) as BaseUIChangeEventDetails<string>,\n\t\t\t\t),\n\t\t\t);\n\t\t} else if (runElseBranch) {\n\t\t\ttimeout.clear();\n\t\t\tstore.setOpen(\n\t\t\t\tfalse,\n\t\t\t\tcreateChangeEventDetails(\n\t\t\t\t\tREASONS.triggerHover,\n\t\t\t\t\tevent,\n\t\t\t\t) as BaseUIChangeEventDetails<string>,\n\t\t\t);\n\t\t}\n\t});\n\n\tconst cleanupMouseMoveHandler = createStableCallback<() => void>(() => () => {\n\t\tunbindMouseMoveRef.current();\n\t\tunbindMouseMoveRef.current = () => {};\n\t\thandlerRef.current = undefined;\n\t});\n\n\tconst clearPointerEvents = createStableCallback<() => void>(() => () => {\n\t\tif (performedPointerEventsMutationRef.current) {\n\t\t\tconst body = ownerDocument(store.state.floatingElement).body;\n\t\t\tbody.style.pointerEvents = \"\";\n\t\t\tperformedPointerEventsMutationRef.current = false;\n\t\t}\n\t});\n\n\tconst handleInteractInside = createStableCallback<\n\t\t(event: PointerEvent) => void\n\t>(() => (event: PointerEvent) => {\n\t\tconst target = getTarget(event) as Element | null;\n\t\tif (!isInteractiveElement(target)) {\n\t\t\tinteractedInsideRef.current = false;\n\t\t\treturn;\n\t\t}\n\n\t\tinteractedInsideRef.current = true;\n\t});\n\n\t// Main event-wiring effect. React uses a single `useEffect` keyed on the\n\t// reference / floating element identity; Solid re-runs when either\n\t// signal changes.\n\tcreateEffect(\n\t\t() => ({\n\t\t\tdomReferenceElement: store.state.domReferenceElement,\n\t\t\tfloatingElement: store.state.floatingElement,\n\t\t\tisOpen: store.state.open,\n\t\t\tenabled: getEnabled(),\n\t\t}),\n\t\t(snapshot) => {\n\t\t\tconst { domReferenceElement, floatingElement, isOpen, enabled } =\n\t\t\t\tsnapshot;\n\t\t\tif (!enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst triggerNullable = domReferenceElement as HTMLElement | null;\n\t\t\tif (!isElement(triggerNullable)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Re-bind the narrowed element so the non-null type survives inside the\n\t\t\t// nested closures below (control-flow narrowing of the original `const`\n\t\t\t// is otherwise lost across function boundaries).\n\t\t\tconst trigger: HTMLElement = triggerNullable;\n\n\t\t\tlet referenceHasPointer = false;\n\n\t\t\tfunction onReferenceMouseEnter(event: MouseEvent) {\n\t\t\t\treferenceHasPointer = true;\n\t\t\t\ttimeout.clear();\n\t\t\t\tblockMouseMoveRef.current = false;\n\n\t\t\t\tif (mouseOnly) {\n\t\t\t\t\tconst pt = pointerTypeRef.current;\n\t\t\t\t\tif (pt !== undefined && pt !== \"mouse\" && pt !== \"pen\") {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (getRestMs(restMs) > 0 && !getDelay(delay, \"open\")) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst openDelay = getDelay(delay, \"open\", pointerTypeRef.current);\n\t\t\t\tconst triggerHtml = ((event.currentTarget as HTMLElement) ??\n\t\t\t\t\tundefined) as HTMLElement | undefined;\n\n\t\t\t\tconst domReference = store.state.domReferenceElement;\n\n\t\t\t\tconst isOverInactiveTrigger =\n\t\t\t\t\tdomReference && triggerHtml && !contains(domReference, triggerHtml);\n\n\t\t\t\tif (openDelay) {\n\t\t\t\t\ttimeout.start(openDelay, () => {\n\t\t\t\t\t\tif (!store.state.open && referenceHasPointer) {\n\t\t\t\t\t\t\tstore.setOpen(\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\tcreateChangeEventDetails(\n\t\t\t\t\t\t\t\t\tREASONS.triggerHover,\n\t\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\t\ttriggerHtml,\n\t\t\t\t\t\t\t\t) as BaseUIChangeEventDetails<string>,\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} else if (!isOpen || isOverInactiveTrigger) {\n\t\t\t\t\tstore.setOpen(\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tcreateChangeEventDetails(\n\t\t\t\t\t\t\tREASONS.triggerHover,\n\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\ttriggerHtml,\n\t\t\t\t\t\t) as BaseUIChangeEventDetails<string>,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction onReferenceMouseLeave(event: MouseEvent) {\n\t\t\t\treferenceHasPointer = false;\n\n\t\t\t\tif (isClickLikeOpenEvent()) {\n\t\t\t\t\tclearPointerEvents();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Cancel a pending hover-open when the pointer leaves before the\n\t\t\t\t// delay elapses — even when the floating node is not mounted yet.\n\t\t\t\tif (!store.state.open) {\n\t\t\t\t\ttimeout.clear();\n\t\t\t\t}\n\n\t\t\t\tunbindMouseMoveRef.current();\n\n\t\t\t\tconst doc = ownerDocument(floatingElement);\n\t\t\t\trestTimeout.clear();\n\t\t\t\trestTimeoutPendingRef.current = false;\n\n\t\t\t\tconst triggers = store.context.triggerElements;\n\n\t\t\t\tif (\n\t\t\t\t\tevent.relatedTarget &&\n\t\t\t\t\ttriggers.hasElement(event.relatedTarget as Element)\n\t\t\t\t) {\n\t\t\t\t\t// Moving to another trigger — keep the popup open so the\n\t\t\t\t\t// sibling trigger can move it.\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (handleClose && dataRef.current.floatingContext) {\n\t\t\t\t\tif (!store.state.open) {\n\t\t\t\t\t\ttimeout.clear();\n\t\t\t\t\t}\n\n\t\t\t\t\tconst ctx = {\n\t\t\t\t\t\t...dataRef.current.floatingContext,\n\t\t\t\t\t\ttree,\n\t\t\t\t\t\tx: event.clientX,\n\t\t\t\t\t\ty: event.clientY,\n\t\t\t\t\t\tonClose() {\n\t\t\t\t\t\t\tclearPointerEvents();\n\t\t\t\t\t\t\tcleanupMouseMoveHandler();\n\t\t\t\t\t\t\tif (!isClickLikeOpenEvent()) {\n\t\t\t\t\t\t\t\tcloseWithDelay(event, true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t} as HandleCloseContext;\n\n\t\t\t\t\tconst handler = handleClose(ctx);\n\t\t\t\t\thandlerRef.current = handler;\n\t\t\t\t\tdoc.addEventListener(\"mousemove\", handler);\n\t\t\t\t\tunbindMouseMoveRef.current = () => {\n\t\t\t\t\t\tdoc.removeEventListener(\"mousemove\", handler);\n\t\t\t\t\t};\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Allow interactivity without `safePolygon` on touch devices.\n\t\t\t\t// With a pointer, a short close delay is an alternative.\n\t\t\t\tif (!store.state.open) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Allow interactivity without `safePolygon` on touch devices.\n\t\t\t\t// With a pointer, a short close delay is an alternative.\n\t\t\t\tconst shouldClose =\n\t\t\t\t\tpointerTypeRef.current === \"touch\"\n\t\t\t\t\t\t? !contains(floatingElement, event.relatedTarget as Element | null)\n\t\t\t\t\t\t: true;\n\t\t\t\tif (shouldClose) {\n\t\t\t\t\tcloseWithDelay(event);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction syncHoverWhileAlreadyOver(): void {\n\t\t\t\tif (store.state.open || timeout.isStarted()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlet hovered = false;\n\t\t\t\ttry {\n\t\t\t\t\thovered = trigger.matches(\":hover\");\n\t\t\t\t} catch {\n\t\t\t\t\thovered = false;\n\t\t\t\t}\n\t\t\t\tif (!hovered) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonReferenceMouseEnter(\n\t\t\t\t\tnew MouseEvent(\"mouseenter\", { bubbles: true, cancelable: true }),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Close the floating element after scrolling even if the pointer\n\t\t\t// did not move.\n\t\t\t// https://github.com/floating-ui/floating-ui/discussions/1692\n\t\t\tfunction onScrollMouseLeave(event: MouseEvent) {\n\t\t\t\tif (\n\t\t\t\t\tisClickLikeOpenEvent() ||\n\t\t\t\t\t!dataRef.current.floatingContext ||\n\t\t\t\t\t!store.state.open\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst triggers = store.context.triggerElements;\n\n\t\t\t\tif (\n\t\t\t\t\tevent.relatedTarget &&\n\t\t\t\t\ttriggers.hasElement(event.relatedTarget as Element)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!handleClose) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst ctx = {\n\t\t\t\t\t...dataRef.current.floatingContext,\n\t\t\t\t\ttree,\n\t\t\t\t\tx: event.clientX,\n\t\t\t\t\ty: event.clientY,\n\t\t\t\t\tonClose() {\n\t\t\t\t\t\tclearPointerEvents();\n\t\t\t\t\t\tcleanupMouseMoveHandler();\n\t\t\t\t\t\tif (!isClickLikeOpenEvent()) {\n\t\t\t\t\t\t\tcloseWithDelay(event);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t} as HandleCloseContext;\n\n\t\t\t\thandleClose(ctx)(event);\n\t\t\t}\n\n\t\t\tfunction onFloatingMouseEnter() {\n\t\t\t\ttimeout.clear();\n\t\t\t\tclearPointerEvents();\n\t\t\t}\n\n\t\t\tfunction onFloatingMouseLeave(event: MouseEvent) {\n\t\t\t\tif (!isClickLikeOpenEvent()) {\n\t\t\t\t\tcloseWithDelay(event, false);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst cleanups: Array<() => void> = [];\n\n\t\t\tif (isOpen) {\n\t\t\t\ttrigger.addEventListener(\"mouseleave\", onScrollMouseLeave);\n\t\t\t\tcleanups.push(() => {\n\t\t\t\t\ttrigger.removeEventListener(\"mouseleave\", onScrollMouseLeave);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (move) {\n\t\t\t\tconst onceHandler = (evt: MouseEvent) => onReferenceMouseEnter(evt);\n\t\t\t\ttrigger.addEventListener(\"mousemove\", onceHandler, { once: true });\n\t\t\t\tcleanups.push(() => {\n\t\t\t\t\ttrigger.removeEventListener(\"mousemove\", onceHandler);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ttrigger.addEventListener(\"mouseenter\", onReferenceMouseEnter);\n\t\t\ttrigger.addEventListener(\"mouseleave\", onReferenceMouseLeave);\n\t\t\tcleanups.push(() => {\n\t\t\t\ttrigger.removeEventListener(\"mouseenter\", onReferenceMouseEnter);\n\t\t\t\ttrigger.removeEventListener(\"mouseleave\", onReferenceMouseLeave);\n\t\t\t});\n\n\t\t\tqueueMicrotask(syncHoverWhileAlreadyOver);\n\n\t\t\tif (floatingElement) {\n\t\t\t\tfloatingElement.addEventListener(\"mouseleave\", onScrollMouseLeave);\n\t\t\t\tfloatingElement.addEventListener(\"mouseenter\", onFloatingMouseEnter);\n\t\t\t\tfloatingElement.addEventListener(\"mouseleave\", onFloatingMouseLeave);\n\t\t\t\tfloatingElement.addEventListener(\n\t\t\t\t\t\"pointerdown\",\n\t\t\t\t\thandleInteractInside as EventListener,\n\t\t\t\t\ttrue,\n\t\t\t\t);\n\t\t\t\tcleanups.push(() => {\n\t\t\t\t\tfloatingElement.removeEventListener(\"mouseleave\", onScrollMouseLeave);\n\t\t\t\t\tfloatingElement.removeEventListener(\n\t\t\t\t\t\t\"mouseenter\",\n\t\t\t\t\t\tonFloatingMouseEnter,\n\t\t\t\t\t);\n\t\t\t\t\tfloatingElement.removeEventListener(\n\t\t\t\t\t\t\"mouseleave\",\n\t\t\t\t\t\tonFloatingMouseLeave,\n\t\t\t\t\t);\n\t\t\t\t\tfloatingElement.removeEventListener(\n\t\t\t\t\t\t\"pointerdown\",\n\t\t\t\t\t\thandleInteractInside as EventListener,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\tfor (const cleanup of cleanups) {\n\t\t\t\t\tcleanup();\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t);\n\n\t// Block pointer-events of every element other than the reference and\n\t// floating while the floating element is open and has a `handleClose`\n\t// handler that opts in via `__options.blockPointerEvents`. Also handles\n\t// nested floating elements.\n\t// https://github.com/floating-ui/floating-ui/issues/1722\n\tuseIsoLayoutEffect(\n\t\t() => ({\n\t\t\topen: store.state.open,\n\t\t\tdomReferenceElement: store.state.domReferenceElement,\n\t\t\tfloatingElement: store.state.floatingElement,\n\t\t\tenabled: getEnabled(),\n\t\t}),\n\t\t(snapshot) => {\n\t\t\tconst { open, domReferenceElement, floatingElement, enabled } = snapshot;\n\t\t\tif (!enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (open && handleClose?.__options?.blockPointerEvents && isHoverOpen()) {\n\t\t\t\tperformedPointerEventsMutationRef.current = true;\n\t\t\t\tconst floatingEl = floatingElement;\n\n\t\t\t\tif (isElement(domReferenceElement) && floatingEl) {\n\t\t\t\t\tconst body = ownerDocument(floatingElement).body;\n\t\t\t\t\tconst ref = domReferenceElement as HTMLElement | SVGSVGElement;\n\n\t\t\t\t\tconst parentFloating = tree?.nodesRef.current.find(\n\t\t\t\t\t\t(node) => node.id === parentId,\n\t\t\t\t\t)?.context?.elements.floating;\n\n\t\t\t\t\tif (parentFloating) {\n\t\t\t\t\t\tparentFloating.style.pointerEvents = \"\";\n\t\t\t\t\t}\n\n\t\t\t\t\tbody.style.pointerEvents = \"none\";\n\t\t\t\t\tref.style.pointerEvents = \"auto\";\n\t\t\t\t\tfloatingEl.style.pointerEvents = \"auto\";\n\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tbody.style.pointerEvents = \"\";\n\t\t\t\t\t\tref.style.pointerEvents = \"\";\n\t\t\t\t\t\tfloatingEl.style.pointerEvents = \"\";\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t);\n\n\t// Reset shared bookkeeping when the popup closes.\n\tuseIsoLayoutEffect(\n\t\t() => store.state.open,\n\t\t(open) => {\n\t\t\tif (!open) {\n\t\t\t\tpointerTypeRef.current = undefined;\n\t\t\t\trestTimeoutPendingRef.current = false;\n\t\t\t\tinteractedInsideRef.current = false;\n\t\t\t\tcleanupMouseMoveHandler();\n\t\t\t\tclearPointerEvents();\n\t\t\t}\n\t\t},\n\t);\n\n\t// Component-unmount cleanup — mirrors React's final `useEffect` returning\n\t// a function.\n\tonCleanup(() => {\n\t\tcleanupMouseMoveHandler();\n\t\ttimeout.clear();\n\t\trestTimeout.clear();\n\t\tinteractedInsideRef.current = false;\n\t\tclearPointerEvents();\n\t});\n\n\tconst reference: ElementProps[\"reference\"] = {\n\t\tonPointerDown(event: PointerEvent) {\n\t\t\tpointerTypeRef.current = event.pointerType;\n\t\t},\n\t\tonPointerEnter(event: PointerEvent) {\n\t\t\tpointerTypeRef.current = event.pointerType;\n\t\t},\n\t\tonMouseMove(event: MouseEvent) {\n\t\t\tif (!getEnabled()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst nativeEvent = event;\n\t\t\tconst trigger = event.currentTarget as HTMLElement;\n\n\t\t\tconst domReference = store.state.domReferenceElement;\n\t\t\tconst isOverInactiveTrigger =\n\t\t\t\tdomReference && !contains(domReference, event.target as Element);\n\n\t\t\tfunction handleMouseMove() {\n\t\t\t\tif (\n\t\t\t\t\t!blockMouseMoveRef.current &&\n\t\t\t\t\t(!store.state.open || isOverInactiveTrigger)\n\t\t\t\t) {\n\t\t\t\t\tstore.setOpen(\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tcreateChangeEventDetails(\n\t\t\t\t\t\t\tREASONS.triggerHover,\n\t\t\t\t\t\t\tnativeEvent,\n\t\t\t\t\t\t\ttrigger,\n\t\t\t\t\t\t) as BaseUIChangeEventDetails<string>,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t(store.state.open && !isOverInactiveTrigger) ||\n\t\t\t\tgetRestMs(restMs) === 0\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst movementX = (event as MouseEvent & { movementX?: number })\n\t\t\t\t.movementX;\n\t\t\tconst movementY = (event as MouseEvent & { movementY?: number })\n\t\t\t\t.movementY;\n\t\t\t// Ignore insignificant movements to account for tremors.\n\t\t\tif (\n\t\t\t\t!isOverInactiveTrigger &&\n\t\t\t\trestTimeoutPendingRef.current &&\n\t\t\t\t(movementX ?? 0) ** 2 + (movementY ?? 0) ** 2 < 2\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trestTimeout.clear();\n\n\t\t\tif (pointerTypeRef.current === \"touch\") {\n\t\t\t\thandleMouseMove();\n\t\t\t} else if (isOverInactiveTrigger) {\n\t\t\t\thandleMouseMove();\n\t\t\t} else {\n\t\t\t\trestTimeoutPendingRef.current = true;\n\t\t\t\trestTimeout.start(getRestMs(restMs), handleMouseMove);\n\t\t\t}\n\t\t},\n\t};\n\n\t// When `enabled` is a literal `false`, return empty bag. When it's\n\t// an accessor (or `undefined`), keep the bag and gate handlers\n\t// reactively. The structural check is intentional snapshot — wrap\n\t// in `untrack` so consumer-passed `get enabled()` getters don't\n\t// trip `[STRICT_READ_UNTRACKED]` from this body-time read.\n\tconst sticksDisabled = untrack(\n\t\t() => typeof props.enabled !== \"function\" && !getEnabled(),\n\t);\n\tif (sticksDisabled) {\n\t\treturn {};\n\t}\n\treturn { reference };\n}\n"],"mappings":"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","ignoreList":[]}