{"version":3,"names":["dynamic","createEffect","createMemo","omit","onCleanup","untrack","composeRefs","userRef","useClick","useInteractions","mergeRootProps","resolveClassStyle","useButton","usePopoverRootContext","PopoverTrigger","props","root","disabled","Boolean","nativeButton","click","floatingRootContext","enabled","localInteractions","buttonProps","ref","buttonRef","focusableWhenDisabled","native","store","handle","isActive","id","undefined","activeTriggerId","state","open","registeredId","registeredElement","setRef","el","s","current","context","triggerElements","getById","delete","add","setTriggerElement","onClickCapture","event","setActiveTriggerId","setPayload","payload","active","stateAttrs","data-popup-open","data-pressed","onClick","userClassStyle","userProps","merged","interactions","getReferenceProps","Tag","as"],"sources":["popover-trigger.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { createEffect, createMemo, omit, onCleanup, untrack } from \"solid-js\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\nimport { useClick } from \"../../internals/floating-ui/hooks/use-click\";\nimport { useInteractions } from \"../../internals/floating-ui/hooks/use-interactions\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type {\n\tBaseUIComponentProps,\n\tNativeButtonProps,\n} from \"../../internals/types\";\nimport { useButton } from \"../../internals/use-button/use-button\";\nimport { usePopoverRootContext } from \"../popover-root-context\";\nimport type { PopoverHandle } from \"../store/popover-store\";\n\nexport interface PopoverTriggerState {\n\tdisabled: boolean;\n\topen: boolean;\n}\n\nexport interface PopoverTriggerProps<Payload = unknown>\n\textends NativeButtonProps,\n\t\tBaseUIComponentProps<\"button\", PopoverTriggerState> {\n\t/**\n\t * Tag/component to render. Defaults to `\"button\"`. Replaces the\n\t * pre-spike `render` prop (axis G).\n\t */\n\tas?: ValidComponent;\n\thandle?: PopoverHandle<Payload> | undefined;\n\tid?: string | undefined;\n\tpayload?: Payload | undefined;\n}\n\n/**\n * A button that opens the popover. Renders a `<button>` by default.\n */\nexport function PopoverTrigger<Payload = unknown>(\n\tprops: PopoverTriggerProps<Payload>,\n): JSX.Element {\n\tconst root = usePopoverRootContext();\n\n\tconst disabled = (): boolean => Boolean(props.disabled);\n\tconst nativeButton = (): boolean => props.nativeButton ?? true;\n\n\tconst click = useClick(root.floatingRootContext, {\n\t\tenabled: true,\n\t});\n\n\tconst localInteractions = useInteractions([click]);\n\n\tconst { props: buttonProps, ref: buttonRef } = useButton({\n\t\tdisabled,\n\t\tfocusableWhenDisabled: () => false,\n\t\tnative: nativeButton,\n\t});\n\n\tconst store = () => props.handle?.store ?? root.store;\n\n\tconst isActive = createMemo<boolean>(() => {\n\t\tconst id = props.id;\n\t\tif (id === undefined) return true;\n\t\treturn root.activeTriggerId() === id;\n\t});\n\n\tconst state = createMemo<PopoverTriggerState>(() => ({\n\t\tdisabled: disabled(),\n\t\topen: root.open() && isActive(),\n\t}));\n\n\tlet registeredId: string | null = null;\n\tlet registeredElement: HTMLElement | null = null;\n\tconst setRef = (el: HTMLElement | null): void =>\n\t\tuntrack(() => {\n\t\t\tconst id = props.id;\n\t\t\tconst s = store();\n\n\t\t\tif (registeredId !== null && registeredElement !== null) {\n\t\t\t\tconst current = s.context.triggerElements.getById(registeredId);\n\t\t\t\tif (current === registeredElement) {\n\t\t\t\t\ts.context.triggerElements.delete(registeredId);\n\t\t\t\t}\n\t\t\t\tregisteredId = null;\n\t\t\t\tregisteredElement = null;\n\t\t\t}\n\n\t\t\tif (el && id !== undefined) {\n\t\t\t\ts.context.triggerElements.add(id, el);\n\t\t\t\tregisteredId = id;\n\t\t\t\tregisteredElement = el;\n\t\t\t}\n\n\t\t\tif (id === undefined || isActive()) {\n\t\t\t\troot.setTriggerElement(el);\n\t\t\t}\n\t\t});\n\n\tonCleanup(() => {\n\t\tif (registeredId !== null && registeredElement !== null) {\n\t\t\tconst s = store();\n\t\t\tconst current = s.context.triggerElements.getById(registeredId);\n\t\t\tif (current === registeredElement) {\n\t\t\t\ts.context.triggerElements.delete(registeredId);\n\t\t\t}\n\t\t}\n\t});\n\n\tconst onClickCapture = (event: MouseEvent): void => {\n\t\tconst id = props.id;\n\t\tif (id !== undefined) {\n\t\t\troot.setActiveTriggerId(id);\n\t\t}\n\t\tif (\"payload\" in props) {\n\t\t\troot.setPayload(props.payload);\n\t\t}\n\t\tvoid event;\n\t};\n\n\tcreateEffect(\n\t\t() => ({ active: isActive(), payload: props.payload }),\n\t\t({ active, payload }) => {\n\t\t\tif (active && \"payload\" in props) {\n\t\t\t\troot.setPayload(payload);\n\t\t\t}\n\t\t},\n\t);\n\n\tconst stateAttrs = {\n\t\tget \"data-popup-open\"() {\n\t\t\treturn state().open ? \"\" : undefined;\n\t\t},\n\t\tget \"data-pressed\"() {\n\t\t\treturn state().open ? \"\" : undefined;\n\t\t},\n\t\tonClick: onClickCapture,\n\t\tget id() {\n\t\t\treturn props.id;\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\"disabled\",\n\t\t\"nativeButton\",\n\t\t\"handle\",\n\t\t\"payload\",\n\t);\n\n\tlet merged: Record<string, unknown> = mergeRootProps(\n\t\troot.interactions.getReferenceProps(),\n\t\tlocalInteractions.getReferenceProps(),\n\t);\n\tmerged = mergeRootProps(merged, buttonProps);\n\tmerged = mergeRootProps(merged, stateAttrs);\n\tmerged = mergeRootProps(merged, userClassStyle);\n\tmerged = mergeRootProps(merged, userProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"button\");\n\treturn (\n\t\t<Tag {...merged} ref={composeRefs(buttonRef, setRef, userRef(props))} />\n\t);\n}\n"],"mappings":"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","ignoreList":[]}