{"version":3,"names":["dynamic","createMemo","omit","useComboboxRootContext","composeRefs","userRef","mergeRootProps","resolveClassStyle","AutocompleteInputGroup","props","root","listEmpty","flatFilteredItems","length","state","open","disabled","readOnly","popupSide","onMouseDown","event","target","inputRef","current","focus","internal","role","data-popup-open","undefined","data-disabled","data-readonly","data-list-empty","data-popup-side","userClassStyle","userProps","merged","Tag","as"],"sources":["autocomplete-input-group.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\n/**\n * `<Autocomplete.InputGroup>` — a wrapper for the input and its associated\n * controls.\n */\n\nimport { dynamic } from \"@solidjs/web\";\nimport { createMemo, omit } from \"solid-js\";\nimport type { ComboboxSide } from \"../../combobox/positioner/positioner-context\";\nimport { useComboboxRootContext } from \"../../combobox/root/combobox-root-context\";\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\";\n\nexport interface AutocompleteInputGroupState {\n\topen: boolean;\n\tdisabled: boolean;\n\treadOnly: boolean;\n\tpopupSide: ComboboxSide | null;\n\tlistEmpty: boolean;\n}\n\nexport interface AutocompleteInputGroupProps\n\textends BaseUIComponentProps<\"div\", AutocompleteInputGroupState> {\n\tas?: ValidComponent;\n}\n\n/**\n * A wrapper for the input and its associated controls.\n * Renders a `<div>` element.\n */\nexport function AutocompleteInputGroup(\n\tprops: AutocompleteInputGroupProps,\n): JSX.Element {\n\tconst root = useComboboxRootContext();\n\n\tconst listEmpty = createMemo<boolean>(\n\t\t() => root.flatFilteredItems().length === 0,\n\t);\n\n\tconst state = createMemo<AutocompleteInputGroupState>(() => ({\n\t\topen: root.open(),\n\t\tdisabled: root.disabled(),\n\t\treadOnly: root.readOnly(),\n\t\tpopupSide: root.popupSide(),\n\t\tlistEmpty: listEmpty(),\n\t}));\n\n\tfunction onMouseDown(event: MouseEvent): void {\n\t\tconst target = event.target as HTMLElement | null;\n\t\tif (target && target !== root.inputRef.current) {\n\t\t\troot.inputRef.current?.focus();\n\t\t}\n\t}\n\n\tconst internal = {\n\t\trole: \"group\" as const,\n\t\tonMouseDown,\n\t\t// inputGroupStateAttributesMapping 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\");\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 <Tag {...merged} ref={composeRefs(userRef(props))} />;\n}\n"],"mappings":"AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,cAAc;AACtC,SAASC,UAAU,EAAEC,IAAI,QAAQ,UAAU;AAE3C,SAASC,sBAAsB,QAAQ,2CAA2C;AAClF,SAASC,WAAW,EAAEC,OAAO,QAAQ,8BAA8B;AACnE,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,iBAAiB,QAAQ,qCAAqC;AAgBvE;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACrCC,KAAkC,EACpB;EACd,MAAMC,IAAI,GAAGP,sBAAsB,CAAC,CAAC;EAErC,MAAMQ,SAAS,GAAGV,UAAU,CAC3B,MAAMS,IAAI,CAACE,iBAAiB,CAAC,CAAC,CAACC,MAAM,KAAK,CAC3C,CAAC;EAED,MAAMC,KAAK,GAAGb,UAAU,CAA8B,OAAO;IAC5Dc,IAAI,EAAEL,IAAI,CAACK,IAAI,CAAC,CAAC;IACjBC,QAAQ,EAAEN,IAAI,CAACM,QAAQ,CAAC,CAAC;IACzBC,QAAQ,EAAEP,IAAI,CAACO,QAAQ,CAAC,CAAC;IACzBC,SAAS,EAAER,IAAI,CAACQ,SAAS,CAAC,CAAC;IAC3BP,SAAS,EAAEA,SAAS,CAAC;EACtB,CAAC,CAAC,CAAC;EAEH,SAASQ,WAAWA,CAACC,KAAiB,EAAQ;IAC7C,MAAMC,MAAM,GAAGD,KAAK,CAACC,MAA4B;IACjD,IAAIA,MAAM,IAAIA,MAAM,KAAKX,IAAI,CAACY,QAAQ,CAACC,OAAO,EAAE;MAC/Cb,IAAI,CAACY,QAAQ,CAACC,OAAO,EAAEC,KAAK,CAAC,CAAC;IAC/B;EACD;EAEA,MAAMC,QAAQ,GAAG;IAChBC,IAAI,EAAE,OAAgB;IACtBP,WAAW;IACX;IACA,IAAI,iBAAiBQ,CAAA,EAAG;MACvB,OAAOb,KAAK,CAAC,CAAC,CAACC,IAAI,GAAG,EAAE,GAAGa,SAAS;IACrC,CAAC;IACD,IAAI,eAAeC,CAAA,EAAG;MACrB,OAAOf,KAAK,CAAC,CAAC,CAACE,QAAQ,GAAG,EAAE,GAAGY,SAAS;IACzC,CAAC;IACD,IAAI,eAAeE,CAAA,EAAG;MACrB,OAAOhB,KAAK,CAAC,CAAC,CAACG,QAAQ,GAAG,EAAE,GAAGW,SAAS;IACzC,CAAC;IACD,IAAI,iBAAiBG,CAAA,EAAG;MACvB,OAAOjB,KAAK,CAAC,CAAC,CAACH,SAAS,GAAG,EAAE,GAAGiB,SAAS;IAC1C,CAAC;IACD,IAAI,iBAAiBI,CAAA,EAAG;MACvB,OAAOlB,KAAK,CAAC,CAAC,CAACI,SAAS,IAAIU,SAAS;IACtC;EACD,CAAC;EAED,MAAMK,cAAc,GAAG1B,iBAAiB,CAACE,KAAK,EAAE,MAAMK,KAAK,CAAC,CAAC,CAAC;EAC9D,MAAMoB,SAAS,GAAGhC,IAAI,CAACO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;EAE9D,IAAI0B,MAA+B,GAAG7B,cAAc,CACnDmB,QAAQ,EACRQ,cACD,CAAC;EACDE,MAAM,GAAG7B,cAAc,CAAC6B,MAAM,EAAED,SAAS,CAAC;EAE1C,MAAME,GAAG,GAAGpC,OAAO,CAAC,MAAMS,KAAK,CAAC4B,EAAE,IAAI,KAAK,CAAC;EAC5C,OAAO,CAAC,GAAG,CAAC,IAAIF,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC/B,WAAW,CAACC,OAAO,CAACI,KAAK,CAAC,CAAC,CAAC,GAAG;AAC7D","ignoreList":[]}