{"version":3,"names":["flip","offset","shift","dynamic","createEffect","createMemo","createSignal","omit","Show","composeRefs","userRef","useFloating","arrow","mergeRootProps","resolveClassStyle","PreviewCardPositionerContext","usePreviewCardRootContext","parsePlacement","placement","rawSide","rawAlign","split","side","align","PreviewCardPositioner","props","root","sideOffset","alignOffset","collisionPadding","keepMounted","arrowRef","current","setPositionerElement","ownedWrite","physicalSide","s","a","floating","rootContext","floatingRootContext","strategy","middleware","mainAxis","alignmentAxis","padding","element","offsetParent","parsed","resolvedSide","resolvedAlign","arrowUncentered","arrowData","middlewareData","Boolean","centerOffset","arrowStyles","resolved","opposite","top","bottom","left","right","styles","position","x","undefined","y","oppositeSide","anchorHidden","hideData","hide","referenceHidden","state","open","instant","instantType","positionerContextValue","shouldRender","mounted","positionerNode","positionerRef","el","refs","setFloating","update","Math","round","transform","style","positionerStyle","internal","data-open","data-closed","data-side","data-align","data-anchor-hidden","data-instant","v","userClassStyle","userProps","merged","Tag","as"],"sources":["preview-card-positioner.tsx"],"sourcesContent":["import { flip, offset, shift } 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 { 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 {\n\ttype PreviewCardAlign,\n\tPreviewCardPositionerContext,\n\ttype PreviewCardPositionerContextValue,\n\ttype PreviewCardSide,\n} from \"../preview-card-positioner-context\";\nimport {\n\ttype PreviewCardInstantType,\n\tusePreviewCardRootContext,\n} from \"../preview-card-root-context\";\n\nexport interface PreviewCardPositionerState {\n\t/** Whether the preview card is currently open. */\n\topen: boolean;\n\t/** Side of the anchor the popup is on. */\n\tside: PreviewCardSide;\n\t/** Alignment of the popup along `side`. */\n\talign: PreviewCardAlign;\n\t/** Whether the anchor element is hidden (off-screen). */\n\tanchorHidden: boolean;\n\t/** Whether transitions should be skipped. */\n\tinstant: PreviewCardInstantType;\n}\n\nexport interface PreviewCardPositionerProps\n\textends BaseUIComponentProps<\"div\", PreviewCardPositionerState> {\n\t/**\n\t * Tag/component to render. Defaults to `\"div\"`. Replaces the\n\t * pre-spike `render` prop (axis G).\n\t */\n\tas?: ValidComponent;\n\t/** Side of the anchor the popup should be positioned against. @default 'bottom' */\n\tside?: PreviewCardSide | undefined;\n\t/** Alignment of the popup along the chosen side. @default 'center' */\n\talign?: PreviewCardAlign | undefined;\n\t/** Distance between the popup and the anchor, in pixels. @default 0 */\n\tsideOffset?: number | undefined;\n\t/** Offset along the alignment axis, in pixels. @default 0 */\n\talignOffset?: number | undefined;\n\t/** Padding between the popup and the viewport edge for collision avoidance. @default 5 */\n\tcollisionPadding?: number | undefined;\n\t/** Whether to keep the popup in the DOM while hidden. @default false */\n\tkeepMounted?: boolean | undefined;\n}\n\n/** Map `@floating-ui/dom` placement strings to Base UI's `side` / `align`. */\nfunction parsePlacement(placement: string): {\n\tside: PreviewCardSide;\n\talign: PreviewCardAlign;\n} {\n\tconst [rawSide, rawAlign = \"center\"] = placement.split(\"-\") as [\n\t\tstring,\n\t\tstring | undefined,\n\t];\n\tconst side = (rawSide as PreviewCardSide) ?? \"bottom\";\n\tconst align: PreviewCardAlign =\n\t\trawAlign === \"start\" || rawAlign === \"end\" ? rawAlign : \"center\";\n\treturn { side, align };\n}\n\n/**\n * Positions the popup against the trigger. Renders a `<div>` element.\n *\n * Solid 2.0-native rewire (§1 wave 2): replaces `renderElement` with\n * `dynamic(() => props.as ?? \"div\")` and inlines state-attr\n * getters via `mergeRootProps`.\n */\nexport function PreviewCardPositioner(\n\tprops: PreviewCardPositionerProps,\n): JSX.Element {\n\tconst root = usePreviewCardRootContext();\n\n\tconst side = (): PreviewCardSide => props.side ?? \"bottom\";\n\tconst align = (): PreviewCardAlign => props.align ?? \"center\";\n\tconst sideOffset = (): number => props.sideOffset ?? 0;\n\tconst alignOffset = (): number => props.alignOffset ?? 0;\n\tconst collisionPadding = (): number => props.collisionPadding ?? 5;\n\tconst keepMounted = (): boolean => props.keepMounted ?? false;\n\n\tconst arrowRef: MutableRef<HTMLDivElement | null> = { current: null };\n\n\tconst [, setPositionerElement] = createSignal<HTMLElement | null>(null, {\n\t\townedWrite: true,\n\t});\n\n\ttype PhysicalSide = \"top\" | \"bottom\" | \"left\" | \"right\";\n\tconst physicalSide = (): PhysicalSide => {\n\t\tconst s = side();\n\t\tif (s === \"inline-start\") return \"left\";\n\t\tif (s === \"inline-end\") return \"right\";\n\t\treturn s as PhysicalSide;\n\t};\n\tconst placement = createMemo(() => {\n\t\tconst s = physicalSide();\n\t\tconst a = align();\n\t\tif (a === \"center\") return s;\n\t\treturn `${s}-${a}` as const;\n\t});\n\n\tconst floating = useFloating({\n\t\trootContext: root.floatingRootContext,\n\t\tget placement() {\n\t\t\treturn placement();\n\t\t},\n\t\tstrategy: \"absolute\",\n\t\tget middleware() {\n\t\t\treturn [\n\t\t\t\toffset({\n\t\t\t\t\tmainAxis: sideOffset(),\n\t\t\t\t\talignmentAxis: alignOffset(),\n\t\t\t\t}),\n\t\t\t\tflip(),\n\t\t\t\tshift({ padding: collisionPadding() }),\n\t\t\t\tarrow({ element: arrowRef.current, offsetParent: \"real\" }),\n\t\t\t];\n\t\t},\n\t});\n\n\tconst parsed = createMemo(() => parsePlacement(floating.placement));\n\tconst resolvedSide = (): PreviewCardSide => parsed().side;\n\tconst resolvedAlign = (): PreviewCardAlign => parsed().align;\n\n\tconst arrowUncentered = createMemo<boolean>(() => {\n\t\tconst arrowData = floating.middlewareData.arrow as\n\t\t\t| { centerOffset?: number }\n\t\t\t| undefined;\n\t\treturn Boolean(arrowData?.centerOffset);\n\t});\n\n\tconst arrowStyles = createMemo<Record<string, string | number | undefined>>(\n\t\t() => {\n\t\t\tconst arrowData = floating.middlewareData.arrow as\n\t\t\t\t| { x?: number; y?: number }\n\t\t\t\t| undefined;\n\t\t\tconst resolved = resolvedSide();\n\t\t\tconst opposite: Record<PreviewCardSide, PreviewCardSide> = {\n\t\t\t\ttop: \"bottom\",\n\t\t\t\tbottom: \"top\",\n\t\t\t\tleft: \"right\",\n\t\t\t\tright: \"left\",\n\t\t\t\t\"inline-end\": \"inline-start\",\n\t\t\t\t\"inline-start\": \"inline-end\",\n\t\t\t};\n\t\t\tconst styles: Record<string, string | number | undefined> = {\n\t\t\t\tposition: \"absolute\",\n\t\t\t};\n\t\t\tif (arrowData?.x !== undefined) {\n\t\t\t\tstyles.left = `${arrowData.x}px`;\n\t\t\t}\n\t\t\tif (arrowData?.y !== undefined) {\n\t\t\t\tstyles.top = `${arrowData.y}px`;\n\t\t\t}\n\t\t\tconst oppositeSide = opposite[resolved] ?? \"bottom\";\n\t\t\tstyles[oppositeSide] = \"100%\";\n\t\t\treturn styles;\n\t\t},\n\t);\n\n\tconst anchorHidden = createMemo<boolean>(() => {\n\t\tconst hideData = floating.middlewareData.hide as\n\t\t\t| { referenceHidden?: boolean }\n\t\t\t| undefined;\n\t\treturn Boolean(hideData?.referenceHidden);\n\t});\n\n\tconst state = createMemo<PreviewCardPositionerState>(() => ({\n\t\topen: root.open(),\n\t\tside: resolvedSide(),\n\t\talign: resolvedAlign(),\n\t\tanchorHidden: anchorHidden(),\n\t\tinstant: root.instantType(),\n\t}));\n\n\tconst positionerContextValue: PreviewCardPositionerContextValue = {\n\t\tside: resolvedSide,\n\t\talign: resolvedAlign,\n\t\tarrowRef,\n\t\tarrowUncentered,\n\t\tarrowStyles,\n\t\tanchorHidden,\n\t};\n\n\tconst shouldRender = (): boolean => root.mounted() || keepMounted();\n\n\tlet positionerNode: HTMLElement | null = null;\n\tconst positionerRef = (el: HTMLDivElement | null): void => {\n\t\tpositionerNode = el;\n\t\tsetPositionerElement(el);\n\t\tfloating.refs.setFloating(el);\n\t};\n\n\t// Re-run positioning when the popup mounts so arrow middleware sees a\n\t// real element (first pass may run before `<PreviewCard.Arrow>`'s ref).\n\tcreateEffect(\n\t\t() => root.mounted(),\n\t\t() => {\n\t\t\tfloating.update();\n\t\t},\n\t);\n\n\tcreateEffect(\n\t\t() => {\n\t\t\tif (!root.mounted() && !keepMounted()) return null;\n\t\t\treturn `translate(${Math.round(floating.x)}px, ${Math.round(floating.y)}px)`;\n\t\t},\n\t\t(transform) => {\n\t\t\tif (!transform || !positionerNode) return;\n\t\t\tpositionerNode.style.transform = transform;\n\t\t},\n\t);\n\n\tconst positionerStyle = () => ({\n\t\tposition: \"absolute\" as const,\n\t\ttop: 0,\n\t\tleft: 0,\n\t\t\"min-width\": \"max-content\",\n\t});\n\n\tconst internal = {\n\t\tget style() {\n\t\t\treturn positionerStyle();\n\t\t},\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-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\tget \"data-anchor-hidden\"() {\n\t\t\treturn state().anchorHidden ? \"\" : undefined;\n\t\t},\n\t\tget \"data-instant\"() {\n\t\t\tconst v = state().instant;\n\t\t\treturn v ? v : 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\"side\",\n\t\t\"align\",\n\t\t\"sideOffset\",\n\t\t\"alignOffset\",\n\t\t\"collisionPadding\",\n\t\t\"keepMounted\",\n\t);\n\n\tlet merged: Record<string, unknown> = mergeRootProps(\n\t\tinternal,\n\t\tuserClassStyle,\n\t);\n\tmerged = mergeRootProps(merged, userProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"div\");\n\treturn (\n\t\t<Show when={shouldRender()}>\n\t\t\t<PreviewCardPositionerContext value={positionerContextValue}>\n\t\t\t\t<Tag {...merged} ref={composeRefs(positionerRef, userRef(props))} />\n\t\t\t</PreviewCardPositionerContext>\n\t\t</Show>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}