{"version":3,"names":["dynamic","createMemo","omit","useComboboxRootContext","createChangeEventDetails","REASONS","composeRefs","userRef","mergeRootProps","resolveClassStyle","useAutocompleteRootContext","AutocompleteInput","props","root","autocomplete","disabled","readOnly","listEmpty","flatFilteredItems","length","setInputRef","el","setInputElement","state","open","popupSide","ariaAutocomplete","mode","onInput","event","value","currentTarget","details","inputChange","setInputValue","openOnInputClick","setOpen","autoHighlightMode","setIndices","activeIndex","type","onKeyDown","keyboardActiveRef","current","key","ai","preventDefault","li","listRef","click","inputValue","escapeKey","onPointerMove","onPointerDown","internal","spellcheck","role","aria-expanded","aria-controls","listElement","id","aria-autocomplete","required","data-popup-open","undefined","data-disabled","data-readonly","data-list-empty","data-popup-side","userClassStyle","userProps","merged","interactions","getReferenceProps","Tag","as"],"sources":["autocomplete-input.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\n/**\n * `<Autocomplete.Input>` — the text input.\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 { BaseUIComponentProps } from \"../../internals/types\";\nimport { useAutocompleteRootContext } from \"../root/autocomplete-root-context\";\n\nexport interface AutocompleteInputState {\n\topen: boolean;\n\tdisabled: boolean;\n\treadOnly: boolean;\n\tpopupSide: ComboboxSide | null;\n\tlistEmpty: boolean;\n}\n\nexport interface AutocompleteInputProps\n\textends BaseUIComponentProps<\"input\", AutocompleteInputState> {\n\tas?: ValidComponent;\n\tdisabled?: boolean | undefined;\n}\n\nexport function AutocompleteInput(props: AutocompleteInputProps): JSX.Element {\n\tconst root = useComboboxRootContext();\n\tconst autocomplete = useAutocompleteRootContext();\n\n\tconst disabled = (): boolean => root.disabled() || (props.disabled ?? false);\n\tconst readOnly = (): boolean => root.readOnly();\n\tconst listEmpty = createMemo<boolean>(\n\t\t() => root.flatFilteredItems().length === 0,\n\t);\n\n\tconst setInputRef = (el: HTMLInputElement | null): void => {\n\t\troot.setInputElement(el);\n\t};\n\n\tconst state = createMemo<AutocompleteInputState>(() => ({\n\t\topen: root.open(),\n\t\tdisabled: disabled(),\n\t\treadOnly: readOnly(),\n\t\tpopupSide: root.popupSide(),\n\t\tlistEmpty: listEmpty(),\n\t}));\n\n\tconst ariaAutocomplete = (): \"list\" | \"both\" | \"inline\" | \"none\" => {\n\t\treturn autocomplete.mode();\n\t};\n\n\tfunction onInput(event: InputEvent): void {\n\t\tconst value = (event.currentTarget as HTMLInputElement).value;\n\t\tconst details = createChangeEventDetails(\n\t\t\tREASONS.inputChange,\n\t\t\tevent,\n\t\t) as ComboboxRootChangeEventDetails;\n\t\troot.setInputValue(value, details);\n\n\t\tif (!readOnly() && !disabled()) {\n\t\t\tif (!root.open() && (value !== \"\" || root.openOnInputClick())) {\n\t\t\t\troot.setOpen(true, details);\n\t\t\t}\n\t\t}\n\t\tif (!root.autoHighlightMode()) {\n\t\t\troot.setIndices({ activeIndex: null, type: \"keyboard\" });\n\t\t}\n\t}\n\n\tfunction onKeyDown(event: KeyboardEvent): void {\n\t\tif (disabled() || readOnly()) return;\n\t\troot.keyboardActiveRef.current = true;\n\n\t\tif (event.key === \"Enter\" && root.open()) {\n\t\t\tconst ai = root.activeIndex();\n\t\t\tif (ai == null) return;\n\t\t\tevent.preventDefault();\n\t\t\tconst li = root.listRef.current[ai];\n\t\t\tif (li) li.click();\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.key === \"Escape\" && !root.open() && root.inputValue() !== \"\") {\n\t\t\tconst details = createChangeEventDetails(\n\t\t\t\tREASONS.escapeKey,\n\t\t\t\tevent,\n\t\t\t) as ComboboxRootChangeEventDetails;\n\t\t\troot.setInputValue(\"\", details);\n\t\t}\n\t}\n\n\tfunction onPointerMove(): void {\n\t\troot.keyboardActiveRef.current = false;\n\t}\n\n\tfunction onPointerDown(): void {\n\t\troot.keyboardActiveRef.current = false;\n\t}\n\n\tconst internal = {\n\t\ttype: \"text\",\n\t\tautocomplete: \"off\" as const,\n\t\tspellcheck: false,\n\t\trole: \"combobox\",\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\tget \"aria-autocomplete\"() {\n\t\t\treturn ariaAutocomplete();\n\t\t},\n\t\tget value() {\n\t\t\treturn root.inputValue();\n\t\t},\n\t\tget disabled() {\n\t\t\treturn disabled();\n\t\t},\n\t\tget readOnly() {\n\t\t\treturn readOnly();\n\t\t},\n\t\tget required() {\n\t\t\treturn root.required();\n\t\t},\n\t\tonInput,\n\t\tonKeyDown,\n\t\tonPointerMove,\n\t\tonPointerDown,\n\t\t// inputStateAttributesMapping projection.\n\t\tget \"data-popup-open\"() {\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-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(props, \"as\", \"class\", \"style\", \"attrs\", \"disabled\");\n\n\tlet merged: Record<string, unknown> = mergeRootProps(\n\t\troot.interactions.getReferenceProps(),\n\t\tinternal,\n\t);\n\tmerged = mergeRootProps(merged, userClassStyle);\n\tmerged = mergeRootProps(merged, userProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"input\");\n\treturn <Tag {...merged} ref={composeRefs(setInputRef, userRef(props))} />;\n}\n"],"mappings":"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","ignoreList":[]}