{"version":3,"names":["flip","offset","shift","size","dynamic","createEffect","createMemo","createSignal","omit","Show","composeRefs","userRef","FloatingNode","useFloatingNodeId","useFloating","arrow","mergeRootProps","resolveClassStyle","useComboboxRootContext","ComboboxPositionerContext","composePlacement","side","align","parsePlacement","placement","rawSide","rawAlign","split","ComboboxPositioner","props","root","nodeId","sideOffsetValue","sideOffset","alignOffsetValue","alignOffset","arrowPadding","collisionPadding","strategy","positionMethod","arrowRef","current","floating","rootContext","floatingRootContext","middleware","mainAxis","alignmentAxis","padding","apply","rects","availableWidth","availableHeight","elements","els","s","style","setProperty","reference","width","height","element","offsetParent","positionerNode","setPositionerElement","el","opacity","refs","setFloating","mounted","transform","Math","round","x","y","positioned","isPositioned","open","data","computedSideAlign","computedSide","computedAlign","setPopupSide","anchorHidden","arrowStyles","middlewareData","position","styles","left","top","arrowUncentered","centerOffset","positionerContext","state","empty","flatFilteredItems","length","update","positionerStyle","openNow","mountedNow","visibility","undefined","internal","hidden","data-open","data-closed","data-anchor-hidden","data-side","data-align","internalStyle","userClassStyle","userProps","merged","Tag","as"],"sources":["combobox-positioner.tsx"],"sourcesContent":["import { flip, offset, type Placement, shift, size } from \"@floating-ui/dom\";\nimport type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { createEffect, createMemo, createSignal, omit, Show } from \"solid-js\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\nimport {\n\tFloatingNode,\n\tuseFloatingNodeId,\n} from \"../../internals/floating-ui/components/floating-tree\";\nimport { useFloating } from \"../../internals/floating-ui/hooks/use-floating\";\nimport { arrow } from \"../../internals/floating-ui/middleware/arrow\";\nimport type { MutableRef } from \"../../internals/floating-ui/types\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\nimport { useComboboxRootContext } from \"../root/combobox-root-context\";\nimport {\n\ttype ComboboxAlign,\n\tComboboxPositionerContext,\n\ttype ComboboxPositionerContextValue,\n\ttype ComboboxSide,\n} from \"./positioner-context\";\n\nexport interface ComboboxPositionerState {\n\topen: boolean;\n\tside: ComboboxSide;\n\talign: ComboboxAlign;\n\tanchorHidden: boolean;\n\tempty: boolean;\n}\n\nexport interface ComboboxPositionerProps\n\textends BaseUIComponentProps<\"div\", ComboboxPositionerState> {\n\tas?: ValidComponent;\n\tside?: ComboboxSide | undefined;\n\talign?: ComboboxAlign | undefined;\n\tsideOffset?: number | undefined;\n\talignOffset?: number | undefined;\n\tarrowPadding?: number | undefined;\n\tcollisionPadding?: number | undefined;\n\tpositionMethod?: \"absolute\" | \"fixed\" | undefined;\n}\n\nfunction composePlacement(side: ComboboxSide, align: ComboboxAlign): Placement {\n\tif (align === \"center\") return side as Placement;\n\treturn `${side}-${align}` as Placement;\n}\n\nfunction parsePlacement(placement: Placement): {\n\tside: ComboboxSide;\n\talign: ComboboxAlign;\n} {\n\tconst [rawSide, rawAlign] = placement.split(\"-\") as [\n\t\tComboboxSide,\n\t\t\"start\" | \"end\" | undefined,\n\t];\n\treturn { side: rawSide, align: rawAlign ?? \"center\" };\n}\n\n/**\n * Positions the popup against the input. Renders a `<div>` element.\n *\n * happy-dom returns 0 for all layout rects, so pixel-offset positioning\n * math is not unit-testable. Real browser coverage required.\n */\nexport function ComboboxPositioner(\n\tprops: ComboboxPositionerProps,\n): JSX.Element {\n\tconst root = useComboboxRootContext();\n\tconst nodeId = useFloatingNodeId();\n\n\tconst side = (): ComboboxSide => props.side ?? \"bottom\";\n\tconst align = (): ComboboxAlign => props.align ?? \"start\";\n\tconst sideOffsetValue = (): number => props.sideOffset ?? 0;\n\tconst alignOffsetValue = (): number => props.alignOffset ?? 0;\n\tconst arrowPadding = (): number => props.arrowPadding ?? 5;\n\tconst collisionPadding = (): number => props.collisionPadding ?? 5;\n\tconst strategy = (): \"absolute\" | \"fixed\" =>\n\t\tprops.positionMethod ?? \"absolute\";\n\n\tconst arrowRef: MutableRef<HTMLElement | null> = { current: null };\n\n\tconst floating = useFloating({\n\t\trootContext: root.floatingRootContext,\n\t\tnodeId,\n\t\tget placement() {\n\t\t\treturn composePlacement(side(), align());\n\t\t},\n\t\tget strategy() {\n\t\t\treturn strategy();\n\t\t},\n\t\tget middleware() {\n\t\t\treturn [\n\t\t\t\toffset({\n\t\t\t\t\tmainAxis: sideOffsetValue(),\n\t\t\t\t\talignmentAxis: alignOffsetValue(),\n\t\t\t\t}),\n\t\t\t\tflip({ padding: collisionPadding() }),\n\t\t\t\tshift({ padding: collisionPadding() }),\n\t\t\t\tsize({\n\t\t\t\t\tpadding: collisionPadding(),\n\t\t\t\t\tapply({ rects, availableWidth, availableHeight, elements: els }) {\n\t\t\t\t\t\tconst s = els.floating.style;\n\t\t\t\t\t\ts.setProperty(\"--anchor-width\", `${rects.reference.width}px`);\n\t\t\t\t\t\ts.setProperty(\"--anchor-height\", `${rects.reference.height}px`);\n\t\t\t\t\t\ts.setProperty(\"--available-width\", `${availableWidth}px`);\n\t\t\t\t\t\ts.setProperty(\"--available-height\", `${availableHeight}px`);\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tarrow({\n\t\t\t\t\telement: arrowRef.current,\n\t\t\t\t\tpadding: arrowPadding(),\n\t\t\t\t\toffsetParent: \"real\",\n\t\t\t\t}),\n\t\t\t];\n\t\t},\n\t});\n\n\tlet positionerNode: HTMLElement | null = null;\n\tconst setPositionerElement = (el: HTMLElement | null): void => {\n\t\tpositionerNode = el;\n\t\t// opacity:0 before first paint (ref runs during DOM construction); the\n\t\t// reveal effect can run after the first paint in Solid 2. See\n\t\t// popover-positioner.\n\t\tif (el) el.style.opacity = \"0\";\n\t\tfloating.refs.setFloating(el);\n\t\troot.setPositionerElement(el);\n\t};\n\n\t// Solid 2's DOM spread subscribes `get style()` late, so the first\n\t// `floating.x` / `floating.y` write after mount can be missed and the popup\n\t// renders at (0, 0). Imperatively mirror the transform here — the\n\t// createEffect is guaranteed to re-run on every `x` / `y` change.\n\t// Transform + reveal in ONE imperative write so the popup is never visible\n\t// at the stale (0,0) transform (the teleport). `opacity:0` until\n\t// `isPositioned`, matching Base UI's `useAnchorPositioning`. See\n\t// popover-positioner for the full rationale.\n\tcreateEffect(\n\t\t() => {\n\t\t\tif (!root.mounted()) return null;\n\t\t\treturn {\n\t\t\t\ttransform: `translate(${Math.round(floating.x)}px, ${Math.round(floating.y)}px)`,\n\t\t\t\tpositioned: floating.isPositioned || !root.open(),\n\t\t\t};\n\t\t},\n\t\t(data) => {\n\t\t\tif (!data || !positionerNode) return;\n\t\t\tpositionerNode.style.transform = data.transform;\n\t\t\tpositionerNode.style.opacity = data.positioned ? \"\" : \"0\";\n\t\t},\n\t);\n\n\tconst computedSideAlign = createMemo<{\n\t\tside: ComboboxSide;\n\t\talign: ComboboxAlign;\n\t}>(() => parsePlacement(floating.placement));\n\n\tconst computedSide = (): ComboboxSide => computedSideAlign().side;\n\tconst computedAlign = (): ComboboxAlign => computedSideAlign().align;\n\n\t// Keep root.popupSide in sync for sibling parts.\n\tcreateEffect(\n\t\t() => computedSide(),\n\t\t(s) => {\n\t\t\troot.setPopupSide(s);\n\t\t},\n\t);\n\n\tconst [anchorHidden] = createSignal<boolean>(false);\n\n\tconst arrowStyles = createMemo<JSX.CSSProperties>(() => {\n\t\tconst data = floating.middlewareData.arrow as\n\t\t\t| { x?: number; y?: number; centerOffset?: number }\n\t\t\t| undefined;\n\t\tif (!data) return { position: \"absolute\" };\n\t\tconst styles: JSX.CSSProperties = { position: \"absolute\" };\n\t\tif (data.x != null) styles.left = `${data.x}px`;\n\t\tif (data.y != null) styles.top = `${data.y}px`;\n\t\treturn styles;\n\t});\n\n\tconst arrowUncentered = createMemo<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 positionerContext: ComboboxPositionerContextValue = {\n\t\tside: computedSide,\n\t\talign: computedAlign,\n\t\tanchorHidden,\n\t\tarrowRef,\n\t\tarrowStyles,\n\t\tarrowUncentered,\n\t};\n\n\tconst state = createMemo<ComboboxPositionerState>(() => ({\n\t\topen: root.open(),\n\t\tside: computedSide(),\n\t\talign: computedAlign(),\n\t\tanchorHidden: anchorHidden(),\n\t\tempty: root.flatFilteredItems().length === 0,\n\t}));\n\n\tcreateEffect(\n\t\t() => root.mounted(),\n\t\t() => {\n\t\t\tfloating.update();\n\t\t},\n\t);\n\n\t// `transform` is written imperatively in the `createEffect` above\n\t// because Solid 2's DOM spread subscribes `get style()` late and misses\n\t// the first `floating.x` / `floating.y` frame.\n\tconst positionerStyle = createMemo<JSX.CSSProperties>(() => {\n\t\tconst openNow = root.open();\n\t\tconst mountedNow = root.mounted();\n\t\treturn {\n\t\t\tposition: strategy(),\n\t\t\ttop: \"0\",\n\t\t\tleft: \"0\",\n\t\t\tvisibility: mountedNow ? undefined : \"hidden\",\n\t\t\t\"pointer-events\": openNow ? undefined : \"none\",\n\t\t};\n\t});\n\n\tconst internal = {\n\t\tget hidden() {\n\t\t\treturn !root.open();\n\t\t},\n\t\t// popupStateMapping projection.\n\t\tget \"data-open\"() {\n\t\t\treturn state().open ? \"\" : undefined;\n\t\t},\n\t\tget \"data-closed\"() {\n\t\t\treturn state().open ? undefined : \"\";\n\t\t},\n\t\tget \"data-anchor-hidden\"() {\n\t\t\treturn state().anchorHidden ? \"\" : undefined;\n\t\t},\n\t\tget \"data-side\"() {\n\t\t\treturn state().side;\n\t\t},\n\t\tget \"data-align\"() {\n\t\t\treturn state().align;\n\t\t},\n\t};\n\n\tconst internalStyle = {\n\t\tget style() {\n\t\t\treturn positionerStyle();\n\t\t},\n\t};\n\n\tconst userClassStyle = resolveClassStyle(props, () => state());\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\"side\",\n\t\t\"align\",\n\t\t\"sideOffset\",\n\t\t\"alignOffset\",\n\t\t\"arrowPadding\",\n\t\t\"collisionPadding\",\n\t\t\"positionMethod\",\n\t);\n\n\tlet merged: Record<string, unknown> = mergeRootProps(internalStyle, internal);\n\tmerged = mergeRootProps(merged, userClassStyle);\n\tmerged = mergeRootProps(merged, userProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"div\");\n\treturn (\n\t\t<FloatingNode id={nodeId}>\n\t\t\t<ComboboxPositionerContext value={positionerContext}>\n\t\t\t\t<Show when={root.mounted()}>\n\t\t\t\t\t<Tag\n\t\t\t\t\t\t{...merged}\n\t\t\t\t\t\tref={composeRefs(setPositionerElement, userRef(props))}\n\t\t\t\t\t/>\n\t\t\t\t</Show>\n\t\t\t</ComboboxPositionerContext>\n\t\t</FloatingNode>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}