{"version":3,"names":["autoUpdate","flip","limitShift","hide","nativeHide","offset","shift","size","getAlignment","getSide","getSideAxis","createEffect","createMemo","createSignal","useDirection","ownerDocument","ownerWindow","useFloating","arrow","useIsoLayoutEffect","useLatestRef","DEFAULT_SIDES","resolve","input","getLogicalSide","sideParam","renderedSide","isRtl","isLogicalSideParam","logicalRight","logicalLeft","map","top","right","bottom","left","getOffsetData","state","rects","placement","side","align","anchor","width","reference","height","positioner","floating","isRef","param","hideMiddleware","name","fn","x","y","anchorHidden","nativeResult","data","referenceHidden","useAnchorPositioning","params","positionMethod","sideParamInput","sideOffset","sideOffsetInput","alignInput","alignOffset","alignOffsetInput","collisionBoundary","collisionBoundaryInput","collisionPadding","collisionPaddingInput","sticky","stickyInput","arrowPadding","arrowPaddingInput","disableAnchorTracking","disableAnchorTrackingInput","keepMounted","keepMountedInput","floatingRootContext","mounted","mountedInput","collisionAvoidance","collisionAvoidanceInput","shiftCrossAxis","shiftCrossAxisInput","nodeId","adaptiveOrigin","adaptiveOriginInput","lazyFlip","lazyFlipInput","externalTree","getSideParam","getAlign","getSideOffset","getAlignOffset","getCollisionBoundary","getCollisionPadding","getSticky","getArrowPadding","getDisableAnchorTracking","getMounted","getKeepMounted","getShiftCrossAxis","getLazyFlip","getPositionMethod","getAdaptiveOrigin","getCollisionAvoidance","mountSide","setMountSide","ownedWrite","direction","resolvedSide","rtl","s","a","arrowRef","current","sideOffsetRef","alignOffsetRef","mountedRef","computeCollisionPadding","bias","biasTop","biasBottom","biasLeft","biasRight","raw","padding","rawObj","middlewareMemo","avoidance","avoidanceSide","avoidanceAlign","avoidanceFallback","fallbackAxisSide","alignValue","boundary","commonCollisionProps","list","sideAxis","alignAxis","mainAxis","crossAxis","alignmentAxis","shiftDisabled","crossAxisShiftEnabled","flipMiddleware","fallbackAxisSideDirection","shiftMiddleware","html","elements","documentElement","rootBoundary","clientWidth","clientHeight","undefined","limiter","limitData","getBoundingClientRect","arrowSize","offsetAmount","pushMaybe","mw","push","apply","availableWidth","availableHeight","floatingStyle","style","setProperty","dpr","devicePixelRatio","anchorWidth","Math","round","anchorHeight","element","createElement","offsetParent","middlewareData","renderedPlacement","currentRenderedSide","currentRenderedAxis","arrowEl","arrowData","shiftData","arrowX","arrowY","arrowWidth","arrowHeight","transformX","transformY","shiftY","abs","halfAnchorHeight","currentSideOffset","sideOffsetValue","isOverlappingAnchor","adjacent","adjacentTransformOrigin","overlapTransformOrigin","adaptive","currentMountSide","root","update","referenceElement","floatingElement","domReferenceElement","positionReference","autoUpdateOptions","disabled","elementResize","ResizeObserver","layoutShift","IntersectionObserver","rootContext","strategy","middleware","registeredAnchorRef","resolveAnchor","val","resolved","refs","setPositionReference","keep","dom","domReference","float","options","lazy","isPositioned","p","logicalRenderedSide","renderedAlign","Boolean","arrowStyles","out","position","arrowUncentered","centerOffset","floatingStyles","resolvedPosition","adaptiveData","sideX","sideY","base","transform","opacity","positionerStyles","physicalSide","context"],"sources":["use-anchor-positioning.ts"],"sourcesContent":["/**\n * Port of Base UI React's `useAnchorPositioning` hook\n * (`packages/react/src/utils/useAnchorPositioning.ts`).\n *\n * This is the heavy-weight orchestrator that threads `anchor`,\n * `collisionBoundary`, `sticky`, `disableAnchorTracking`,\n * `collisionAvoidance`, `adaptiveOrigin`, `side`, `align`, offsets and\n * arrow padding through `computePosition` + middleware. It composes the\n * Solid port's `useFloating` — the low-level positioning engine lives\n * there. This file's job is purely middleware assembly + anchor wiring.\n *\n * ## React → Solid deviations\n *\n * - Accessor-based reactive inputs. Every prop that React allowed to\n *   change between renders is modeled here as `Accessor<T>`; callers\n *   pass getters. Primitive-style values (e.g. numeric `sideOffset`) may\n *   be passed as a plain number because components usually compute them\n *   inside a reactive memo and pass the memo. The orchestration below\n *   wraps all inputs with `() => ...` at read time so either shape works.\n * - `React.useState` → `createSignal`, `React.useRef` → `{ current }`,\n *   `useLayoutEffect` → `createRenderEffect` (via `useIsoLayoutEffect`),\n *   `useEffect` → `createEffect`.\n * - `offset` / `flip` / `shift` middleware don't accept a `deps` array in\n *   `@floating-ui/dom` the way `@floating-ui/react-dom` did — Solid's\n *   reactive reads inside the middleware functions handle the same\n *   contract (middleware rebuilds on each `computePosition` call).\n * - React gates the initial autoUpdate-less path on `keepMounted`; Solid\n *   `useFloating` already wires `autoUpdate` when reference + floating\n *   are attached, so we thread `disableAnchorTracking` through by\n *   conditionally returning `false` from `useFloating`'s `open` read.\n *   (Not quite — we can't short-circuit `autoUpdate` from here without\n *   patching `useFloating`. Instead we skip registering the anchor\n *   entirely while `disableAnchorTracking` is true after first\n *   position.) See the `registerAnchor` effect below.\n * - The React source computes `middleware` as a fresh array on every\n *   render. Solid runs setup once; we rebuild the array via a getter so\n *   `useFloating` sees the latest reactive values.\n */\nimport {\n\ttype AutoUpdateOptions,\n\tautoUpdate,\n\tflip,\n\tlimitShift,\n\ttype Middleware,\n\ttype MiddlewareState,\n\thide as nativeHide,\n\toffset,\n\ttype Padding,\n\ttype Side as PhysicalSide,\n\ttype Placement,\n\tshift,\n\tsize,\n\ttype VirtualElement,\n} from \"@floating-ui/dom\";\nimport {\n\tgetAlignment,\n\tgetSide,\n\tgetSideAxis,\n\ttype Rect,\n} from \"@floating-ui/utils\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n\ttype Accessor,\n\tcreateEffect,\n\tcreateMemo,\n\tcreateSignal,\n} from \"solid-js\";\nimport { useDirection } from \"../../direction-provider/direction-provider-context\";\nimport { ownerDocument } from \"../dom/owner-document\";\nimport { ownerWindow } from \"../dom/owner-window\";\nimport { useFloating } from \"../floating-ui/hooks/use-floating\";\nimport { arrow } from \"../floating-ui/middleware/arrow\";\nimport type {\n\tFloatingContext,\n\tFloatingRootContext,\n\tFloatingTreeStoreType as FloatingTreeStore,\n\tMutableRef,\n} from \"../floating-ui/types\";\nimport { useIsoLayoutEffect } from \"../use-iso-layout-effect\";\nimport { useLatestRef } from \"../use-latest-ref\";\nimport { DEFAULT_SIDES } from \"./adaptive-origin-middleware\";\n\n// ---------------------------------------------------------------------------\n// Public types\n// ---------------------------------------------------------------------------\n\nexport type Side =\n\t| \"top\"\n\t| \"bottom\"\n\t| \"left\"\n\t| \"right\"\n\t| \"inline-end\"\n\t| \"inline-start\";\nexport type Align = \"start\" | \"center\" | \"end\";\nexport type Boundary = \"clipping-ancestors\" | Element | Element[] | Rect;\nexport type OffsetFunction = (data: {\n\tside: Side;\n\talign: Align;\n\tanchor: { width: number; height: number };\n\tpositioner: { width: number; height: number };\n}) => number;\n\ninterface SideFlipMode {\n\tside?: \"flip\" | \"none\" | undefined;\n\talign?: \"flip\" | \"shift\" | \"none\" | undefined;\n\tfallbackAxisSide?: \"start\" | \"end\" | \"none\" | undefined;\n}\n\ninterface SideShiftMode {\n\tside?: \"shift\" | \"none\" | undefined;\n\talign?: \"shift\" | \"none\" | undefined;\n\tfallbackAxisSide?: \"start\" | \"end\" | \"none\" | undefined;\n}\n\nexport type CollisionAvoidance = SideFlipMode | SideShiftMode;\n\n/** Ref-like shape matching the React source; accepted for the `anchor` prop. */\nexport interface AnchorRefObject<T> {\n\tcurrent: T;\n}\n\nexport type AnchorInput =\n\t| Element\n\t| VirtualElement\n\t| AnchorRefObject<Element | null>\n\t| (() => Element | VirtualElement | null)\n\t| null\n\t| undefined;\n\nexport interface UseAnchorPositioningSharedParameters {\n\tanchor?: Accessor<AnchorInput> | AnchorInput | undefined;\n\tpositionMethod?:\n\t\t| Accessor<\"absolute\" | \"fixed\">\n\t\t| \"absolute\"\n\t\t| \"fixed\"\n\t\t| undefined;\n\tside?: Accessor<Side> | Side | undefined;\n\tsideOffset?:\n\t\t| Accessor<number | OffsetFunction>\n\t\t| number\n\t\t| OffsetFunction\n\t\t| undefined;\n\talign?: Accessor<Align> | Align | undefined;\n\talignOffset?:\n\t\t| Accessor<number | OffsetFunction>\n\t\t| number\n\t\t| OffsetFunction\n\t\t| undefined;\n\tcollisionBoundary?: Accessor<Boundary | undefined> | Boundary | undefined;\n\tcollisionPadding?: Accessor<Padding | undefined> | Padding | undefined;\n\tsticky?: Accessor<boolean> | boolean | undefined;\n\tarrowPadding?: Accessor<number> | number | undefined;\n\tdisableAnchorTracking?: Accessor<boolean> | boolean | undefined;\n\tcollisionAvoidance?:\n\t\t| Accessor<CollisionAvoidance>\n\t\t| CollisionAvoidance\n\t\t| undefined;\n}\n\nexport interface UseAnchorPositioningParameters\n\textends UseAnchorPositioningSharedParameters {\n\tkeepMounted?: Accessor<boolean> | boolean | undefined;\n\tfloatingRootContext?: FloatingRootContext | undefined;\n\tmounted: Accessor<boolean> | boolean;\n\tdisableAnchorTracking: Accessor<boolean> | boolean;\n\tcollisionAvoidance: Accessor<CollisionAvoidance> | CollisionAvoidance;\n\tshiftCrossAxis?: Accessor<boolean> | boolean | undefined;\n\tnodeId?: string | undefined;\n\tadaptiveOrigin?: Accessor<Middleware | undefined> | Middleware | undefined;\n\tlazyFlip?: Accessor<boolean> | boolean | undefined;\n\texternalTree?: FloatingTreeStore | undefined;\n}\n\nexport interface UseAnchorPositioningReturnValue {\n\treadonly positionerStyles: JSX.CSSProperties;\n\treadonly arrowStyles: JSX.CSSProperties;\n\treadonly arrowRef: MutableRef<Element | null>;\n\treadonly arrowUncentered: boolean;\n\treadonly side: Side;\n\treadonly align: Align;\n\treadonly physicalSide: PhysicalSide;\n\treadonly anchorHidden: boolean;\n\treadonly refs: ReturnType<typeof useFloating>[\"refs\"];\n\treadonly context: FloatingContext;\n\treadonly isPositioned: boolean;\n\treadonly update: () => void;\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction resolve<T>(input: T | Accessor<T>): T {\n\treturn typeof input === \"function\" ? (input as Accessor<T>)() : input;\n}\n\nfunction getLogicalSide(\n\tsideParam: Side,\n\trenderedSide: PhysicalSide,\n\tisRtl: boolean,\n): Side {\n\tconst isLogicalSideParam =\n\t\tsideParam === \"inline-start\" || sideParam === \"inline-end\";\n\tconst logicalRight: Side = isRtl ? \"inline-start\" : \"inline-end\";\n\tconst logicalLeft: Side = isRtl ? \"inline-end\" : \"inline-start\";\n\tconst map: Record<PhysicalSide, Side> = {\n\t\ttop: \"top\",\n\t\tright: isLogicalSideParam ? logicalRight : \"right\",\n\t\tbottom: \"bottom\",\n\t\tleft: isLogicalSideParam ? logicalLeft : \"left\",\n\t};\n\treturn map[renderedSide];\n}\n\nfunction getOffsetData(\n\tstate: MiddlewareState,\n\tsideParam: Side,\n\tisRtl: boolean,\n): {\n\tside: Side;\n\talign: Align;\n\tanchor: { width: number; height: number };\n\tpositioner: { width: number; height: number };\n} {\n\tconst { rects, placement } = state;\n\treturn {\n\t\tside: getLogicalSide(sideParam, getSide(placement), isRtl),\n\t\talign: (getAlignment(placement) || \"center\") as Align,\n\t\tanchor: { width: rects.reference.width, height: rects.reference.height },\n\t\tpositioner: {\n\t\t\twidth: rects.floating.width,\n\t\t\theight: rects.floating.height,\n\t\t},\n\t};\n}\n\nfunction isRef(\n\tparam: Element | VirtualElement | AnchorRefObject<unknown> | null | undefined,\n): param is AnchorRefObject<Element | null> {\n\treturn param != null && typeof param === \"object\" && \"current\" in param;\n}\n\n// ---------------------------------------------------------------------------\n// Default `hide` middleware — Solid port inlines the React source's\n// `hideMiddleware.ts`. `@floating-ui/dom` exports a `hide` middleware that\n// reports reference-hidden status; we wrap it with a zero-rect short-circuit\n// so a freshly-mounted anchor with no layout yet still flags as hidden.\n// ---------------------------------------------------------------------------\n\nconst hideMiddleware: Middleware = {\n\tname: \"hide\",\n\tasync fn(state) {\n\t\tconst { width, height, x, y } = state.rects.reference;\n\t\tconst anchorHidden = width === 0 && height === 0 && x === 0 && y === 0;\n\t\tconst nativeResult = await nativeHide().fn(state);\n\t\treturn {\n\t\t\tdata: {\n\t\t\t\treferenceHidden:\n\t\t\t\t\t(nativeResult.data as { referenceHidden?: boolean } | undefined)\n\t\t\t\t\t\t?.referenceHidden || anchorHidden,\n\t\t\t},\n\t\t};\n\t},\n};\n\n// ---------------------------------------------------------------------------\n// The hook\n// ---------------------------------------------------------------------------\n\n/**\n * Orchestrates anchor positioning for Base UI popup compounds. Composes\n * `useFloating` + the `offset` / `flip` / `shift` / `size` / `arrow` /\n * `hide` / `adaptiveOrigin` middleware chain.\n *\n * All reactive inputs can be passed as accessors. Primitive-typed props\n * accept both forms — the hook normalizes internally. The returned\n * object is a collection of getters backed by signals, suitable for\n * reactive spreads in JSX or reads inside memos.\n */\nexport function useAnchorPositioning(\n\tparams: UseAnchorPositioningParameters,\n): UseAnchorPositioningReturnValue {\n\tconst {\n\t\tanchor,\n\t\tpositionMethod,\n\t\tside: sideParamInput,\n\t\tsideOffset: sideOffsetInput,\n\t\talign: alignInput,\n\t\talignOffset: alignOffsetInput,\n\t\tcollisionBoundary: collisionBoundaryInput,\n\t\tcollisionPadding: collisionPaddingInput,\n\t\tsticky: stickyInput,\n\t\tarrowPadding: arrowPaddingInput,\n\t\tdisableAnchorTracking: disableAnchorTrackingInput,\n\t\tkeepMounted: keepMountedInput,\n\t\tfloatingRootContext,\n\t\tmounted: mountedInput,\n\t\tcollisionAvoidance: collisionAvoidanceInput,\n\t\tshiftCrossAxis: shiftCrossAxisInput,\n\t\tnodeId,\n\t\tadaptiveOrigin: adaptiveOriginInput,\n\t\tlazyFlip: lazyFlipInput,\n\t\texternalTree,\n\t} = params;\n\n\tconst getSideParam = (): Side => resolve(sideParamInput) ?? \"bottom\";\n\tconst getAlign = (): Align => resolve(alignInput) ?? \"center\";\n\tconst getSideOffset = (): number | OffsetFunction =>\n\t\tresolve(sideOffsetInput) ?? 0;\n\tconst getAlignOffset = (): number | OffsetFunction =>\n\t\tresolve(alignOffsetInput) ?? 0;\n\tconst getCollisionBoundary = (): Boundary | undefined =>\n\t\tresolve(collisionBoundaryInput);\n\tconst getCollisionPadding = (): Padding | undefined =>\n\t\tresolve(collisionPaddingInput) ?? 5;\n\tconst getSticky = (): boolean => resolve(stickyInput) ?? false;\n\tconst getArrowPadding = (): number => resolve(arrowPaddingInput) ?? 5;\n\tconst getDisableAnchorTracking = (): boolean =>\n\t\tresolve(disableAnchorTrackingInput) ?? false;\n\tconst getMounted = (): boolean => resolve(mountedInput);\n\tconst getKeepMounted = (): boolean => resolve(keepMountedInput) ?? false;\n\tconst getShiftCrossAxis = (): boolean =>\n\t\tresolve(shiftCrossAxisInput) ?? false;\n\tconst getLazyFlip = (): boolean => resolve(lazyFlipInput) ?? false;\n\tconst getPositionMethod = (): \"absolute\" | \"fixed\" =>\n\t\tresolve(positionMethod) ?? \"absolute\";\n\tconst getAdaptiveOrigin = (): Middleware | undefined =>\n\t\tresolve(adaptiveOriginInput);\n\tconst getCollisionAvoidance = (): CollisionAvoidance =>\n\t\tresolve(collisionAvoidanceInput) ?? {};\n\n\t// `mountSide` freezes the physical side after the first successful\n\t// position when `lazyFlip` is true, so filter lists etc. don't flip\n\t// eagerly while typing.\n\tconst [mountSide, setMountSide] = createSignal<PhysicalSide | null>(null, {\n\t\townedWrite: true,\n\t});\n\n\tconst direction = useDirection();\n\tconst isRtl = (): boolean => direction() === \"rtl\";\n\n\t// Side / placement are reactive. React computes them via render math; we\n\t// wrap in a memo so the middleware getter below and the `placement` input\n\t// to `useFloating` see the same value.\n\tconst resolvedSide = createMemo<PhysicalSide>(() => {\n\t\tconst mounted = mountSide();\n\t\tif (mounted) return mounted;\n\t\tconst sideParam = getSideParam();\n\t\tconst rtl = isRtl();\n\t\tswitch (sideParam) {\n\t\t\tcase \"inline-end\":\n\t\t\t\treturn rtl ? \"left\" : \"right\";\n\t\t\tcase \"inline-start\":\n\t\t\t\treturn rtl ? \"right\" : \"left\";\n\t\t\tdefault:\n\t\t\t\treturn sideParam as PhysicalSide;\n\t\t}\n\t});\n\n\tconst placement = createMemo<Placement>(() => {\n\t\tconst s = resolvedSide();\n\t\tconst a = getAlign();\n\t\treturn a === \"center\" ? s : (`${s}-${a}` as Placement);\n\t});\n\n\t// Arrow ref shared with the `arrow` middleware. Consumers write through\n\t// `arrowRef.current = el` from a ref callback.\n\tconst arrowRef: MutableRef<Element | null> = { current: null };\n\n\t// Latest-value refs for offsets so function-shaped offsets re-evaluate\n\t// each `computePosition` call against current closures. React uses\n\t// `useValueAsRef`; Solid's `useLatestRef` is the direct analog.\n\tconst sideOffsetRef = useLatestRef<number | OffsetFunction>(() =>\n\t\tgetSideOffset(),\n\t);\n\tconst alignOffsetRef = useLatestRef<number | OffsetFunction>(() =>\n\t\tgetAlignOffset(),\n\t);\n\tconst mountedRef = useLatestRef<boolean>(() => getMounted());\n\n\t// --- Collision padding with \"iOS bias\" — copies React's logic exactly.\n\tconst computeCollisionPadding = (): {\n\t\tpadding: { top: number; right: number; bottom: number; left: number };\n\t\tbias: number;\n\t} => {\n\t\tconst bias = 1;\n\t\tconst sideParam = getSideParam();\n\t\tconst biasTop = sideParam === \"bottom\" ? bias : 0;\n\t\tconst biasBottom = sideParam === \"top\" ? bias : 0;\n\t\tconst biasLeft = sideParam === \"right\" ? bias : 0;\n\t\tconst biasRight = sideParam === \"left\" ? bias : 0;\n\n\t\tconst raw = getCollisionPadding();\n\t\tlet padding: {\n\t\t\ttop: number;\n\t\t\tright: number;\n\t\t\tbottom: number;\n\t\t\tleft: number;\n\t\t};\n\t\tif (typeof raw === \"number\") {\n\t\t\tpadding = {\n\t\t\t\ttop: raw + biasTop,\n\t\t\t\tright: raw + biasRight,\n\t\t\t\tbottom: raw + biasBottom,\n\t\t\t\tleft: raw + biasLeft,\n\t\t\t};\n\t\t} else if (raw) {\n\t\t\tconst rawObj = raw as {\n\t\t\t\ttop?: number;\n\t\t\t\tright?: number;\n\t\t\t\tbottom?: number;\n\t\t\t\tleft?: number;\n\t\t\t};\n\t\t\tpadding = {\n\t\t\t\ttop: (rawObj.top || 0) + biasTop,\n\t\t\t\tright: (rawObj.right || 0) + biasRight,\n\t\t\t\tbottom: (rawObj.bottom || 0) + biasBottom,\n\t\t\t\tleft: (rawObj.left || 0) + biasLeft,\n\t\t\t};\n\t\t} else {\n\t\t\tpadding = {\n\t\t\t\ttop: biasTop,\n\t\t\t\tright: biasRight,\n\t\t\t\tbottom: biasBottom,\n\t\t\t\tleft: biasLeft,\n\t\t\t};\n\t\t}\n\t\treturn { padding, bias };\n\t};\n\n\tconst middlewareMemo = createMemo<Middleware[]>(() => {\n\t\tconst sideParam = getSideParam();\n\t\tconst rtl = isRtl();\n\t\tconst avoidance = getCollisionAvoidance();\n\t\tconst avoidanceSide = avoidance.side || \"flip\";\n\t\tconst avoidanceAlign = avoidance.align || \"flip\";\n\t\tconst avoidanceFallback = avoidance.fallbackAxisSide || \"end\";\n\t\tconst alignValue = getAlign();\n\t\tconst sticky = getSticky();\n\t\tconst shiftCrossAxis = getShiftCrossAxis();\n\t\tconst { padding: collisionPadding, bias } = computeCollisionPadding();\n\t\tconst boundary = getCollisionBoundary();\n\t\tconst commonCollisionProps = {\n\t\t\tboundary:\n\t\t\t\tboundary === \"clipping-ancestors\" ? \"clippingAncestors\" : boundary,\n\t\t\tpadding: collisionPadding,\n\t\t} as const;\n\n\t\tconst list: Middleware[] = [\n\t\t\toffset((state) => {\n\t\t\t\tconst data = getOffsetData(state, sideParam, rtl);\n\t\t\t\tconst sideAxis =\n\t\t\t\t\ttypeof sideOffsetRef.current === \"function\"\n\t\t\t\t\t\t? sideOffsetRef.current(data)\n\t\t\t\t\t\t: sideOffsetRef.current;\n\t\t\t\tconst alignAxis =\n\t\t\t\t\ttypeof alignOffsetRef.current === \"function\"\n\t\t\t\t\t\t? alignOffsetRef.current(data)\n\t\t\t\t\t\t: alignOffsetRef.current;\n\t\t\t\treturn {\n\t\t\t\t\tmainAxis: sideAxis,\n\t\t\t\t\tcrossAxis: alignAxis,\n\t\t\t\t\talignmentAxis: alignAxis,\n\t\t\t\t};\n\t\t\t}),\n\t\t];\n\n\t\tconst shiftDisabled =\n\t\t\tavoidanceAlign === \"none\" && avoidanceSide !== \"shift\";\n\t\tconst crossAxisShiftEnabled =\n\t\t\t!shiftDisabled && (sticky || shiftCrossAxis || avoidanceSide === \"shift\");\n\n\t\tconst flipMiddleware: Middleware | null =\n\t\t\tavoidanceSide === \"none\"\n\t\t\t\t? null\n\t\t\t\t: flip({\n\t\t\t\t\t\t...commonCollisionProps,\n\t\t\t\t\t\tpadding: {\n\t\t\t\t\t\t\ttop: collisionPadding.top + bias,\n\t\t\t\t\t\t\tright: collisionPadding.right + bias,\n\t\t\t\t\t\t\tbottom: collisionPadding.bottom + bias,\n\t\t\t\t\t\t\tleft: collisionPadding.left + bias,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmainAxis: !shiftCrossAxis && avoidanceSide === \"flip\",\n\t\t\t\t\t\tcrossAxis: avoidanceAlign === \"flip\" ? \"alignment\" : false,\n\t\t\t\t\t\tfallbackAxisSideDirection: avoidanceFallback,\n\t\t\t\t\t});\n\n\t\tconst shiftMiddleware: Middleware | null = shiftDisabled\n\t\t\t? null\n\t\t\t: shift((data) => {\n\t\t\t\t\tconst html = ownerDocument(data.elements.floating).documentElement;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...commonCollisionProps,\n\t\t\t\t\t\trootBoundary: shiftCrossAxis\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\t\t\twidth: html.clientWidth,\n\t\t\t\t\t\t\t\t\theight: html.clientHeight,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tmainAxis: avoidanceAlign !== \"none\",\n\t\t\t\t\t\tcrossAxis: crossAxisShiftEnabled,\n\t\t\t\t\t\tlimiter:\n\t\t\t\t\t\t\tsticky || shiftCrossAxis\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: limitShift((limitData) => {\n\t\t\t\t\t\t\t\t\t\tif (!arrowRef.current) {\n\t\t\t\t\t\t\t\t\t\t\treturn {};\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tconst { width, height } =\n\t\t\t\t\t\t\t\t\t\t\tarrowRef.current.getBoundingClientRect();\n\t\t\t\t\t\t\t\t\t\tconst sideAxis = getSideAxis(getSide(limitData.placement));\n\t\t\t\t\t\t\t\t\t\tconst arrowSize = sideAxis === \"y\" ? width : height;\n\t\t\t\t\t\t\t\t\t\tconst offsetAmount =\n\t\t\t\t\t\t\t\t\t\t\tsideAxis === \"y\"\n\t\t\t\t\t\t\t\t\t\t\t\t? collisionPadding.left + collisionPadding.right\n\t\t\t\t\t\t\t\t\t\t\t\t: collisionPadding.top + collisionPadding.bottom;\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\toffset: arrowSize / 2 + offsetAmount / 2,\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t// Match React's middleware ordering for shift vs flip. See\n\t\t// https://floating-ui.com/docs/flip#combining-with-shift\n\t\tconst pushMaybe = (mw: Middleware | null): void => {\n\t\t\tif (mw) list.push(mw);\n\t\t};\n\t\tif (\n\t\t\tavoidanceSide === \"shift\" ||\n\t\t\tavoidanceAlign === \"shift\" ||\n\t\t\talignValue === \"center\"\n\t\t) {\n\t\t\tpushMaybe(shiftMiddleware);\n\t\t\tpushMaybe(flipMiddleware);\n\t\t} else {\n\t\t\tpushMaybe(flipMiddleware);\n\t\t\tpushMaybe(shiftMiddleware);\n\t\t}\n\n\t\tlist.push(\n\t\t\tsize({\n\t\t\t\t...commonCollisionProps,\n\t\t\t\tapply({\n\t\t\t\t\telements: { floating },\n\t\t\t\t\tavailableWidth,\n\t\t\t\t\tavailableHeight,\n\t\t\t\t\trects,\n\t\t\t\t}) {\n\t\t\t\t\tif (!mountedRef.current) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst floatingStyle = floating.style;\n\t\t\t\t\tfloatingStyle.setProperty(\"--available-width\", `${availableWidth}px`);\n\t\t\t\t\tfloatingStyle.setProperty(\n\t\t\t\t\t\t\"--available-height\",\n\t\t\t\t\t\t`${availableHeight}px`,\n\t\t\t\t\t);\n\t\t\t\t\tconst dpr = ownerWindow(floating).devicePixelRatio || 1;\n\t\t\t\t\tconst { x, y, width, height } = rects.reference;\n\t\t\t\t\tconst anchorWidth =\n\t\t\t\t\t\t(Math.round((x + width) * dpr) - Math.round(x * dpr)) / dpr;\n\t\t\t\t\tconst anchorHeight =\n\t\t\t\t\t\t(Math.round((y + height) * dpr) - Math.round(y * dpr)) / dpr;\n\t\t\t\t\tfloatingStyle.setProperty(\"--anchor-width\", `${anchorWidth}px`);\n\t\t\t\t\tfloatingStyle.setProperty(\"--anchor-height\", `${anchorHeight}px`);\n\t\t\t\t},\n\t\t\t}),\n\t\t\tarrow(() => ({\n\t\t\t\t// Fall back to a detached element so transform-origin math still\n\t\t\t\t// has something to read when the arrow isn't mounted yet.\n\t\t\t\telement:\n\t\t\t\t\tarrowRef.current ||\n\t\t\t\t\townerDocument(arrowRef.current).createElement(\"div\"),\n\t\t\t\tpadding: getArrowPadding(),\n\t\t\t\toffsetParent: \"floating\",\n\t\t\t})),\n\t\t\t{\n\t\t\t\tname: \"transformOrigin\",\n\t\t\t\tfn(state) {\n\t\t\t\t\tconst {\n\t\t\t\t\t\telements,\n\t\t\t\t\t\tmiddlewareData,\n\t\t\t\t\t\tplacement: renderedPlacement,\n\t\t\t\t\t\trects,\n\t\t\t\t\t\ty,\n\t\t\t\t\t} = state;\n\t\t\t\t\tconst currentRenderedSide = getSide(renderedPlacement);\n\t\t\t\t\tconst currentRenderedAxis = getSideAxis(currentRenderedSide);\n\t\t\t\t\tconst arrowEl = arrowRef.current as HTMLElement | null;\n\t\t\t\t\tconst arrowData = middlewareData.arrow as\n\t\t\t\t\t\t| { x?: number; y?: number }\n\t\t\t\t\t\t| undefined;\n\t\t\t\t\tconst shiftData = middlewareData.shift as\n\t\t\t\t\t\t| { x?: number; y?: number }\n\t\t\t\t\t\t| undefined;\n\t\t\t\t\tconst arrowX = arrowData?.x || 0;\n\t\t\t\t\tconst arrowY = arrowData?.y || 0;\n\t\t\t\t\tconst arrowWidth = arrowEl?.clientWidth || 0;\n\t\t\t\t\tconst arrowHeight = arrowEl?.clientHeight || 0;\n\t\t\t\t\tconst transformX = arrowX + arrowWidth / 2;\n\t\t\t\t\tconst transformY = arrowY + arrowHeight / 2;\n\t\t\t\t\tconst shiftY = Math.abs(shiftData?.y || 0);\n\t\t\t\t\tconst halfAnchorHeight = rects.reference.height / 2;\n\t\t\t\t\tconst currentSideOffset = sideOffsetRef.current;\n\t\t\t\t\tconst sideOffsetValue =\n\t\t\t\t\t\ttypeof currentSideOffset === \"function\"\n\t\t\t\t\t\t\t? currentSideOffset(getOffsetData(state, sideParam, rtl))\n\t\t\t\t\t\t\t: currentSideOffset;\n\t\t\t\t\tconst isOverlappingAnchor = shiftY > sideOffsetValue;\n\t\t\t\t\tconst adjacent: Record<PhysicalSide, string> = {\n\t\t\t\t\t\ttop: `${transformX}px calc(100% + ${sideOffsetValue}px)`,\n\t\t\t\t\t\tbottom: `${transformX}px ${-sideOffsetValue}px`,\n\t\t\t\t\t\tleft: `calc(100% + ${sideOffsetValue}px) ${transformY}px`,\n\t\t\t\t\t\tright: `${-sideOffsetValue}px ${transformY}px`,\n\t\t\t\t\t};\n\t\t\t\t\tconst adjacentTransformOrigin = adjacent[currentRenderedSide];\n\t\t\t\t\tconst overlapTransformOrigin = `${transformX}px ${rects.reference.y + halfAnchorHeight - y}px`;\n\t\t\t\t\telements.floating.style.setProperty(\n\t\t\t\t\t\t\"--transform-origin\",\n\t\t\t\t\t\tcrossAxisShiftEnabled &&\n\t\t\t\t\t\t\tcurrentRenderedAxis === \"y\" &&\n\t\t\t\t\t\t\tisOverlappingAnchor\n\t\t\t\t\t\t\t? overlapTransformOrigin\n\t\t\t\t\t\t\t: adjacentTransformOrigin,\n\t\t\t\t\t);\n\t\t\t\t\treturn {};\n\t\t\t\t},\n\t\t\t},\n\t\t\thideMiddleware,\n\t\t);\n\n\t\tconst adaptive = getAdaptiveOrigin();\n\t\tif (adaptive) list.push(adaptive);\n\t\treturn list;\n\t});\n\n\t// Reset local `mountSide` if `mounted` flipped to false, matching React's\n\t// render-phase guard that clears stale state. Compute returns a tuple so\n\t// `mountSide()` is read in tracked scope; apply receives both values\n\t// without further reactive reads.\n\tuseIsoLayoutEffect(\n\t\t() => [getMounted(), mountSide()] as const,\n\t\t([mounted, currentMountSide]) => {\n\t\t\tif (!mounted && currentMountSide !== null) {\n\t\t\t\tsetMountSide(null);\n\t\t\t}\n\t\t},\n\t);\n\n\t// If the popup isn't mounted yet but we have a root context, clear\n\t// reference-related slots so `autoUpdate` doesn't attach to stale\n\t// elements (React does the same with a `useIsoLayoutEffect`).\n\tuseIsoLayoutEffect(\n\t\t() => ({ mounted: getMounted(), root: floatingRootContext }),\n\t\t({ mounted, root }) => {\n\t\t\tif (!mounted && root) {\n\t\t\t\troot.update({\n\t\t\t\t\treferenceElement: null,\n\t\t\t\t\tfloatingElement: null,\n\t\t\t\t\tdomReferenceElement: null,\n\t\t\t\t\tpositionReference: null,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t);\n\n\t// `autoUpdate` options — only track layout shift / resize when\n\t// `disableAnchorTracking` is false.\n\tconst autoUpdateOptions = createMemo<AutoUpdateOptions>(() => {\n\t\tconst disabled = getDisableAnchorTracking();\n\t\treturn {\n\t\t\telementResize: !disabled && typeof ResizeObserver !== \"undefined\",\n\t\t\tlayoutShift: !disabled && typeof IntersectionObserver !== \"undefined\",\n\t\t};\n\t});\n\n\tconst floating = useFloating({\n\t\trootContext: floatingRootContext,\n\t\tget placement() {\n\t\t\treturn placement();\n\t\t},\n\t\tget strategy() {\n\t\t\treturn getPositionMethod();\n\t\t},\n\t\tget middleware() {\n\t\t\treturn middlewareMemo();\n\t\t},\n\t\tnodeId,\n\t\texternalTree,\n\t});\n\n\t// Track anchor element. Mirrors React's split-effect: a layout-phase\n\t// effect handles element / virtual-element anchors, a regular effect\n\t// handles ref-shaped anchors (since parent refs populate after layout).\n\tconst registeredAnchorRef: MutableRef<Element | VirtualElement | null> = {\n\t\tcurrent: null,\n\t};\n\n\tconst resolveAnchor = (): Element | VirtualElement | null => {\n\t\tconst raw = resolve(anchor);\n\t\tif (raw == null) return null;\n\t\tconst val = typeof raw === \"function\" ? raw() : raw;\n\t\tif (val == null) return null;\n\t\tif (isRef(val)) return val.current as Element | null;\n\t\treturn val as Element | VirtualElement;\n\t};\n\n\tuseIsoLayoutEffect(\n\t\t() => ({ mounted: getMounted(), anchor: resolveAnchor() }),\n\t\t({ mounted, anchor: resolved }) => {\n\t\t\tif (!mounted) return;\n\t\t\tif (resolved !== registeredAnchorRef.current) {\n\t\t\t\tfloating.refs.setPositionReference(resolved);\n\t\t\t\tregisteredAnchorRef.current = resolved;\n\t\t\t}\n\t\t},\n\t);\n\n\t// `keepMounted` path: keep autoUpdate running while mounted. Solid's\n\t// `useFloating` already wires autoUpdate based on reference +\n\t// floating; we tack on a manual subscription for the keepMounted case\n\t// where consumers want to drive updates themselves.\n\tcreateEffect(\n\t\t() => ({\n\t\t\tkeep: getKeepMounted(),\n\t\t\tmounted: getMounted(),\n\t\t\tdom: floating.elements.domReference,\n\t\t\tfloat: floating.elements.floating,\n\t\t\toptions: autoUpdateOptions(),\n\t\t}),\n\t\t({ keep, mounted, dom, float, options }) => {\n\t\t\tif (!keep || !mounted || !dom || !float) return undefined;\n\t\t\treturn autoUpdate(dom, float, floating.update, options);\n\t\t},\n\t);\n\n\t// Lazy flip: lock the rendered side once positioned.\n\tuseIsoLayoutEffect(\n\t\t() => ({\n\t\t\tlazy: getLazyFlip(),\n\t\t\tmounted: getMounted(),\n\t\t\tisPositioned: floating.isPositioned,\n\t\t\tplacement: floating.placement,\n\t\t}),\n\t\t({ lazy, mounted, isPositioned, placement: p }) => {\n\t\t\tif (lazy && mounted && isPositioned) {\n\t\t\t\tsetMountSide(getSide(p));\n\t\t\t}\n\t\t},\n\t);\n\n\t// --- Derived reactive outputs ---------------------------------------\n\n\tconst renderedSide = (): PhysicalSide => getSide(floating.placement);\n\tconst logicalRenderedSide = (): Side =>\n\t\tgetLogicalSide(getSideParam(), renderedSide(), isRtl());\n\tconst renderedAlign = (): Align =>\n\t\t(getAlignment(floating.placement) || \"center\") as Align;\n\n\tconst anchorHidden = (): boolean => {\n\t\tconst data = floating.middlewareData.hide as\n\t\t\t| { referenceHidden?: boolean }\n\t\t\t| undefined;\n\t\treturn Boolean(data?.referenceHidden);\n\t};\n\n\tconst arrowStyles = createMemo<JSX.CSSProperties>(() => {\n\t\tconst data = floating.middlewareData.arrow as\n\t\t\t| { x?: number; y?: number }\n\t\t\t| undefined;\n\t\tconst out: JSX.CSSProperties = { position: \"absolute\" };\n\t\tif (data?.y !== undefined) out.top = `${data.y}px`;\n\t\tif (data?.x !== undefined) out.left = `${data.x}px`;\n\t\treturn out;\n\t});\n\n\tconst arrowUncentered = (): boolean => {\n\t\tconst data = floating.middlewareData.arrow as\n\t\t\t| { centerOffset?: number }\n\t\t\t| undefined;\n\t\treturn (data?.centerOffset ?? 0) !== 0;\n\t};\n\n\tconst floatingStyles = createMemo<JSX.CSSProperties>(() => {\n\t\tconst resolvedPosition: \"absolute\" | \"fixed\" = floating.isPositioned\n\t\t\t? getPositionMethod()\n\t\t\t: \"fixed\";\n\t\tconst adaptive = getAdaptiveOrigin();\n\t\tconst adaptiveData = floating.middlewareData.adaptiveOrigin as\n\t\t\t| { sideX?: string; sideY?: string }\n\t\t\t| undefined;\n\t\tconst sideX = adaptiveData?.sideX || DEFAULT_SIDES.sideX;\n\t\tconst sideY = adaptiveData?.sideY || DEFAULT_SIDES.sideY;\n\t\tconst base: JSX.CSSProperties = adaptive\n\t\t\t? {\n\t\t\t\t\tposition: resolvedPosition,\n\t\t\t\t\t[sideX]: `${floating.x}px`,\n\t\t\t\t\t[sideY]: `${floating.y}px`,\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\tposition: resolvedPosition,\n\t\t\t\t\ttop: \"0\",\n\t\t\t\t\tleft: \"0\",\n\t\t\t\t\ttransform: `translate(${Math.round(floating.x)}px, ${Math.round(floating.y)}px)`,\n\t\t\t\t};\n\t\tif (!floating.isPositioned) {\n\t\t\tbase.opacity = 0;\n\t\t}\n\t\treturn base;\n\t});\n\n\treturn {\n\t\tget positionerStyles() {\n\t\t\treturn floatingStyles();\n\t\t},\n\t\tget arrowStyles() {\n\t\t\treturn arrowStyles();\n\t\t},\n\t\tarrowRef,\n\t\tget arrowUncentered() {\n\t\t\treturn arrowUncentered();\n\t\t},\n\t\tget side() {\n\t\t\treturn logicalRenderedSide();\n\t\t},\n\t\tget align() {\n\t\t\treturn renderedAlign();\n\t\t},\n\t\tget physicalSide() {\n\t\t\treturn renderedSide();\n\t\t},\n\t\tget anchorHidden() {\n\t\t\treturn anchorHidden();\n\t\t},\n\t\trefs: floating.refs,\n\t\tcontext: floating.context,\n\t\tget isPositioned() {\n\t\t\treturn floating.isPositioned;\n\t\t},\n\t\tupdate: floating.update,\n\t};\n}\n"],"mappings":"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","ignoreList":[]}