{"version":3,"names":["dynamic","createEffect","createSignal","omit","composeRefs","userRef","CompositeList","mergeRootProps","resolveClassStyle","useComboboxRootContext","ComboboxChipsContext","EMPTY_STATE","ComboboxChips","props","root","highlightedChipIndex","setHighlightedChipIndex","undefined","ownedWrite","open","openVal","chipsRef","current","hasChips","sv","selectedValue","Array","isArray","length","contextValue","onMouseDown","readOnly","disabled","inputRef","focus","setContainerRef","el","chipsContainerRef","internal","role","userClassStyle","userProps","merged","Tag","as"],"sources":["combobox-chips.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { createEffect, createSignal, omit } from \"solid-js\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\nimport { CompositeList } from \"../../internals/composite/composite-list\";\nimport type { MutableRef } from \"../../internals/floating-ui/types\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\nimport { useComboboxRootContext } from \"../root/combobox-root-context\";\nimport {\n\tComboboxChipsContext,\n\ttype ComboboxChipsContextValue,\n} from \"./chips-context\";\n\nexport type ComboboxChipsState = Record<string, never>;\n\nexport interface ComboboxChipsProps\n\textends BaseUIComponentProps<\"div\", ComboboxChipsState> {\n\tas?: ValidComponent;\n}\n\nconst EMPTY_STATE: ComboboxChipsState = {};\n\n/**\n * A container for chips that represent values in a multiselectable input.\n * Renders a `<div>` — gets `role=\"toolbar\"` once at least one chip is\n * rendered so NVDA stays in focus mode during arrow-key traversal.\n */\nexport function ComboboxChips(props: ComboboxChipsProps): JSX.Element {\n\tconst root = useComboboxRootContext();\n\n\tconst [highlightedChipIndex, setHighlightedChipIndex] = createSignal<\n\t\tnumber | undefined\n\t>(undefined, { ownedWrite: true });\n\n\tcreateEffect(\n\t\t() => root.open(),\n\t\t(openVal) => {\n\t\t\tif (openVal && highlightedChipIndex() !== undefined) {\n\t\t\t\tsetHighlightedChipIndex(undefined);\n\t\t\t}\n\t\t},\n\t);\n\n\tconst chipsRef: MutableRef<Array<HTMLElement | null>> = { current: [] };\n\n\tconst hasChips = (): boolean => {\n\t\tconst sv = root.selectedValue() as unknown;\n\t\treturn Array.isArray(sv) && sv.length > 0;\n\t};\n\n\tconst contextValue: ComboboxChipsContextValue = {\n\t\thighlightedChipIndex,\n\t\tsetHighlightedChipIndex,\n\t\tchipsRef,\n\t};\n\n\tfunction onMouseDown(): void {\n\t\tif (root.readOnly() || root.disabled()) return;\n\t\troot.inputRef.current?.focus();\n\t}\n\n\tconst setContainerRef = (el: HTMLElement | null): void => {\n\t\troot.chipsContainerRef.current = el as HTMLDivElement | null;\n\t};\n\n\tconst internal = {\n\t\tget role() {\n\t\t\treturn hasChips() ? (\"toolbar\" as const) : undefined;\n\t\t},\n\t\tonMouseDown,\n\t};\n\n\tconst userClassStyle = resolveClassStyle(props, () => EMPTY_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 (\n\t\t<ComboboxChipsContext value={contextValue}>\n\t\t\t<CompositeList elementsRef={chipsRef.current}>\n\t\t\t\t<Tag {...merged} ref={composeRefs(setContainerRef, userRef(props))} />\n\t\t\t</CompositeList>\n\t\t</ComboboxChipsContext>\n\t);\n}\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,cAAc;AACtC,SAASC,YAAY,EAAEC,YAAY,EAAEC,IAAI,QAAQ,UAAU;AAC3D,SAASC,WAAW,EAAEC,OAAO,QAAQ,8BAA8B;AACnE,SAASC,aAAa,QAAQ,0CAA0C;AAExE,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,iBAAiB,QAAQ,qCAAqC;AAEvE,SAASC,sBAAsB,QAAQ,+BAA+B;AACtE,SACCC,oBAAoB,QAEd,iBAAiB;AASxB,MAAMC,WAA+B,GAAG,CAAC,CAAC;;AAE1C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,KAAyB,EAAe;EACrE,MAAMC,IAAI,GAAGL,sBAAsB,CAAC,CAAC;EAErC,MAAM,CAACM,oBAAoB,EAAEC,uBAAuB,CAAC,GAAGd,YAAY,CAElEe,SAAS,EAAE;IAAEC,UAAU,EAAE;EAAK,CAAC,CAAC;EAElCjB,YAAY,CACX,MAAMa,IAAI,CAACK,IAAI,CAAC,CAAC,EAChBC,OAAO,IAAK;IACZ,IAAIA,OAAO,IAAIL,oBAAoB,CAAC,CAAC,KAAKE,SAAS,EAAE;MACpDD,uBAAuB,CAACC,SAAS,CAAC;IACnC;EACD,CACD,CAAC;EAED,MAAMI,QAA+C,GAAG;IAAEC,OAAO,EAAE;EAAG,CAAC;EAEvE,MAAMC,QAAQ,GAAGA,CAAA,KAAe;IAC/B,MAAMC,EAAE,GAAGV,IAAI,CAACW,aAAa,CAAC,CAAY;IAC1C,OAAOC,KAAK,CAACC,OAAO,CAACH,EAAE,CAAC,IAAIA,EAAE,CAACI,MAAM,GAAG,CAAC;EAC1C,CAAC;EAED,MAAMC,YAAuC,GAAG;IAC/Cd,oBAAoB;IACpBC,uBAAuB;IACvBK;EACD,CAAC;EAED,SAASS,WAAWA,CAAA,EAAS;IAC5B,IAAIhB,IAAI,CAACiB,QAAQ,CAAC,CAAC,IAAIjB,IAAI,CAACkB,QAAQ,CAAC,CAAC,EAAE;IACxClB,IAAI,CAACmB,QAAQ,CAACX,OAAO,EAAEY,KAAK,CAAC,CAAC;EAC/B;EAEA,MAAMC,eAAe,GAAIC,EAAsB,IAAW;IACzDtB,IAAI,CAACuB,iBAAiB,CAACf,OAAO,GAAGc,EAA2B;EAC7D,CAAC;EAED,MAAME,QAAQ,GAAG;IAChB,IAAIC,IAAIA,CAAA,EAAG;MACV,OAAOhB,QAAQ,CAAC,CAAC,GAAI,SAAS,GAAaN,SAAS;IACrD,CAAC;IACDa;EACD,CAAC;EAED,MAAMU,cAAc,GAAGhC,iBAAiB,CAACK,KAAK,EAAE,MAAMF,WAAW,CAAC;EAClE,MAAM8B,SAAS,GAAGtC,IAAI,CAACU,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;EAE9D,IAAI6B,MAA+B,GAAGnC,cAAc,CACnD+B,QAAQ,EACRE,cACD,CAAC;EACDE,MAAM,GAAGnC,cAAc,CAACmC,MAAM,EAAED,SAAS,CAAC;EAE1C,MAAME,GAAG,GAAG3C,OAAO,CAAC,MAAMa,KAAK,CAAC+B,EAAE,IAAI,KAAK,CAAC;EAC5C,OACC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAACf,YAAY,CAAC;AAC5C,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAACR,QAAQ,CAACC,OAAO,CAAC;AAChD,IAAI,CAAC,GAAG,CAAC,IAAIoB,MAAM,CAAC,CAAC,GAAG,CAAC,CAACtC,WAAW,CAAC+B,eAAe,EAAE9B,OAAO,CAACQ,KAAK,CAAC,CAAC,CAAC;AACvE,GAAG,EAAE,aAAa;AAClB,EAAE,EAAE,oBAAoB,CAAC;AAEzB","ignoreList":[]}