{"version":3,"names":["dynamic","createEffect","createMemo","omit","onCleanup","untrack","useBaseUiId","composeRefs","userRef","useClick","useInteractions","mergeRootProps","resolveClassStyle","useButton","useDialogRootContext","DialogTrigger","props","root","disabled","Boolean","nativeButton","generatedId","resolvedId","id","click","floatingRootContext","enabled","localInteractions","buttonProps","ref","buttonRef","focusableWhenDisabled","native","store","handle","isActive","active","activeTriggerId","state","open","registeredId","registeredElement","setRef","el","s","current","context","triggerElements","getById","delete","add","setTriggerElement","onClickCapture","event","setActiveTriggerId","setPayload","payload","stateAttrs","data-popup-open","undefined","data-pressed","onClick","userClassStyle","userProps","merged","interactions","getReferenceProps","Tag","as"],"sources":["dialog-trigger.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\n/**\n * `<Dialog.Trigger>` — opens the dialog on click.\n */\n\nimport { dynamic } from \"@solidjs/web\";\nimport { createEffect, createMemo, omit, onCleanup, untrack } from \"solid-js\";\nimport { useBaseUiId } from \"../../internals/base-ui-id\";\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 { useDialogRootContext } from \"../dialog-root-context\";\nimport type { DialogHandle } from \"../store/dialog-store\";\n\nexport interface DialogTriggerState {\n\tdisabled: boolean;\n\topen: boolean;\n}\n\nexport interface DialogTriggerProps<Payload = unknown>\n\textends NativeButtonProps,\n\t\tBaseUIComponentProps<\"button\", DialogTriggerState> {\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?: DialogHandle<Payload> | undefined;\n\tpayload?: Payload | undefined;\n\tid?: string | undefined;\n}\n\n/**\n * A button that opens the dialog. Renders a `<button>` by default.\n */\nexport function DialogTrigger<Payload = unknown>(\n\tprops: DialogTriggerProps<Payload>,\n): JSX.Element {\n\tconst root = useDialogRootContext();\n\n\tconst disabled = (): boolean => Boolean(props.disabled);\n\tconst nativeButton = (): boolean => props.nativeButton ?? true;\n\n\tconst generatedId = useBaseUiId();\n\tconst resolvedId = (): string => props.id ?? generatedId;\n\n\tconst click = useClick(root.floatingRootContext, { enabled: true });\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 = resolvedId();\n\t\tconst active = root.activeTriggerId();\n\t\treturn active === id || active === null;\n\t});\n\n\tconst state = createMemo<DialogTriggerState>(() => ({\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 = resolvedId();\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) {\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 (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\troot.setActiveTriggerId(resolvedId());\n\t\tif (\"payload\" in props) {\n\t\t\troot.setPayload(props.payload as Payload | undefined);\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 as Payload | undefined);\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 resolvedId();\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":[]}