{"version":3,"names":["dynamic","createMemo","omit","useComboboxRootContext","createChangeEventDetails","REASONS","composeRefs","userRef","mergeRootProps","resolveClassStyle","useButton","AutocompleteTrigger","props","root","disabled","nativeButton","listEmpty","flatFilteredItems","length","buttonProps","ref","buttonRef","focusableWhenDisabled","native","state","open","readOnly","required","popupSide","onClick","event","details","triggerPress","setOpen","inputRef","current","focus","onKeyDown","key","preventDefault","listNavigation","internal","tabIndex","aria-expanded","aria-controls","listElement","id","data-popup-open","undefined","data-pressed","data-disabled","data-readonly","data-required","data-list-empty","data-popup-side","userClassStyle","userProps","merged","setTriggerEl","el","setTriggerElement","Tag","as"],"sources":["autocomplete-trigger.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\n/**\n * `<Autocomplete.Trigger>` — same behavior as `<Combobox.Trigger>` but\n * without the `placeholder` state.\n */\n\nimport { dynamic } from \"@solidjs/web\";\nimport { createMemo, omit } from \"solid-js\";\nimport type { ComboboxSide } from \"../../combobox/positioner/positioner-context\";\nimport {\n\ttype ComboboxRootChangeEventDetails,\n\tuseComboboxRootContext,\n} from \"../../combobox/root/combobox-root-context\";\nimport {\n\tcreateChangeEventDetails,\n\tREASONS,\n} from \"../../internals/change-event-details\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\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\";\n\nexport interface AutocompleteTriggerState {\n\topen: boolean;\n\tdisabled: boolean;\n\treadOnly: boolean;\n\trequired: boolean;\n\tpopupSide: ComboboxSide | null;\n\tlistEmpty: boolean;\n}\n\nexport interface AutocompleteTriggerProps\n\textends NativeButtonProps,\n\t\tBaseUIComponentProps<\"button\", AutocompleteTriggerState> {\n\tas?: ValidComponent;\n\tdisabled?: boolean | undefined;\n}\n\n/**\n * A button that opens the popup. Renders a `<button>` element.\n */\nexport function AutocompleteTrigger(\n\tprops: AutocompleteTriggerProps,\n): JSX.Element {\n\tconst root = useComboboxRootContext();\n\n\tconst disabled = (): boolean => root.disabled() || (props.disabled ?? false);\n\tconst nativeButton = (): boolean => props.nativeButton ?? true;\n\tconst listEmpty = createMemo<boolean>(\n\t\t() => root.flatFilteredItems().length === 0,\n\t);\n\n\tconst { props: buttonProps, ref: buttonRef } = useButton({\n\t\tdisabled,\n\t\tfocusableWhenDisabled: () => false,\n\t\tnative: nativeButton,\n\t});\n\n\tconst state = createMemo<AutocompleteTriggerState>(() => ({\n\t\topen: root.open(),\n\t\tdisabled: disabled(),\n\t\treadOnly: root.readOnly(),\n\t\trequired: root.required(),\n\t\tpopupSide: root.popupSide(),\n\t\tlistEmpty: listEmpty(),\n\t}));\n\n\tfunction onClick(event: MouseEvent): void {\n\t\tif (disabled() || root.readOnly()) return;\n\t\tconst details = createChangeEventDetails(\n\t\t\tREASONS.triggerPress,\n\t\t\tevent,\n\t\t) as ComboboxRootChangeEventDetails;\n\t\troot.setOpen(!root.open(), details);\n\t\troot.inputRef.current?.focus();\n\t}\n\n\tfunction onKeyDown(event: KeyboardEvent): void {\n\t\tif (disabled() || root.readOnly()) return;\n\t\tif (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n\t\t\tevent.preventDefault();\n\t\t\tconst details = createChangeEventDetails(\n\t\t\t\tREASONS.listNavigation,\n\t\t\t\tevent,\n\t\t\t) as ComboboxRootChangeEventDetails;\n\t\t\troot.setOpen(true, details);\n\t\t\troot.inputRef.current?.focus();\n\t\t}\n\t}\n\n\tconst internal = {\n\t\ttabIndex: -1,\n\t\t\"aria-haspopup\": \"listbox\" as const,\n\t\tget \"aria-expanded\"() {\n\t\t\treturn root.open() ? (\"true\" as const) : (\"false\" as const);\n\t\t},\n\t\tget \"aria-controls\"() {\n\t\t\treturn root.open() ? (root.listElement()?.id ?? \"\") : \"\";\n\t\t},\n\t\tonClick,\n\t\tonKeyDown,\n\t\t// triggerStateAttributesMapping projection.\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\tget \"data-disabled\"() {\n\t\t\treturn state().disabled ? \"\" : undefined;\n\t\t},\n\t\tget \"data-readonly\"() {\n\t\t\treturn state().readOnly ? \"\" : undefined;\n\t\t},\n\t\tget \"data-required\"() {\n\t\t\treturn state().required ? \"\" : undefined;\n\t\t},\n\t\tget \"data-list-empty\"() {\n\t\t\treturn state().listEmpty ? \"\" : undefined;\n\t\t},\n\t\tget \"data-popup-side\"() {\n\t\t\treturn state().popupSide ?? undefined;\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\"disabled\",\n\t\t\"nativeButton\",\n\t);\n\n\tlet merged: Record<string, unknown> = mergeRootProps(buttonProps, internal);\n\tmerged = mergeRootProps(merged, userClassStyle);\n\tmerged = mergeRootProps(merged, userProps);\n\n\tconst setTriggerEl = (el: HTMLElement | null): void => {\n\t\troot.setTriggerElement(el);\n\t};\n\n\tconst Tag = dynamic(() => props.as ?? \"button\");\n\treturn (\n\t\t<Tag\n\t\t\t{...merged}\n\t\t\tref={composeRefs(buttonRef, setTriggerEl, userRef(props))}\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}