{"version":3,"names":["dynamic","createMemo","omit","createChangeEventDetails","REASONS","composeRefs","userRef","useCompositeListItem","stopEvent","mergeRootProps","resolveClassStyle","useComboboxChipsContext","useComboboxRootContext","ComboboxChipContext","ComboboxChip","props","root","chipsCtxRaw","Error","chipsCtx","disabled","readOnly","listItem","state","handleKeyDown","event","index","chipsCount","chipsRef","current","length","selected","selectedValue","selectedArr","Array","isArray","nextIndex","key","preventDefault","undefined","computedNext","setIndices","activeIndex","selectedIndex","type","details","none","setSelectedValue","filter","_","i","listNavigation","setOpen","ctrlKey","metaKey","altKey","onKeyDown","next","setHighlightedChipIndex","inputRef","focus","internal","tabIndex","aria-disabled","aria-readonly","data-disabled","children","userClassStyle","userProps","merged","Tag","as","ref"],"sources":["combobox-chip.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { createMemo, omit } from \"solid-js\";\nimport {\n\tcreateChangeEventDetails,\n\tREASONS,\n} from \"../../internals/change-event-details\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\nimport { useCompositeListItem } from \"../../internals/composite/composite-list\";\nimport { stopEvent } from \"../../internals/floating-ui/utils/event\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\nimport { useComboboxChipsContext } from \"../chips/chips-context\";\nimport {\n\ttype ComboboxRootChangeEventDetails,\n\tuseComboboxRootContext,\n} from \"../root/combobox-root-context\";\nimport { ComboboxChipContext } from \"./chip-context\";\n\nexport interface ComboboxChipState {\n\tdisabled: boolean;\n}\n\nexport interface ComboboxChipProps\n\textends BaseUIComponentProps<\"div\", ComboboxChipState> {\n\tas?: ValidComponent;\n}\n\n/**\n * An individual chip that represents a value in a multiselectable input.\n * Renders a `<div>` element.\n */\nexport function ComboboxChip(props: ComboboxChipProps): JSX.Element {\n\tconst root = useComboboxRootContext();\n\tconst chipsCtxRaw = useComboboxChipsContext();\n\tif (chipsCtxRaw == null) {\n\t\tthrow new Error(\n\t\t\t\"Base UI: <Combobox.Chip> must be rendered inside <Combobox.Chips>.\",\n\t\t);\n\t}\n\tconst chipsCtx = chipsCtxRaw;\n\n\tconst disabled = (): boolean => root.disabled();\n\tconst readOnly = (): boolean => root.readOnly();\n\n\tconst listItem = useCompositeListItem<null>();\n\n\tconst state = createMemo<ComboboxChipState>(() => ({\n\t\tdisabled: disabled(),\n\t}));\n\n\tfunction handleKeyDown(event: KeyboardEvent): number | undefined {\n\t\tconst index = listItem.index();\n\t\tconst chipsCount = chipsCtx.chipsRef.current.length;\n\t\tconst selected = root.selectedValue() as unknown;\n\t\tconst selectedArr = Array.isArray(selected) ? (selected as unknown[]) : [];\n\t\tlet nextIndex: number | undefined = index;\n\n\t\tif (event.key === \"ArrowLeft\") {\n\t\t\tevent.preventDefault();\n\t\t\tnextIndex = index > 0 ? index - 1 : undefined;\n\t\t} else if (event.key === \"ArrowRight\") {\n\t\t\tevent.preventDefault();\n\t\t\tnextIndex = index < chipsCount - 1 ? index + 1 : undefined;\n\t\t} else if (event.key === \"Backspace\" || event.key === \"Delete\") {\n\t\t\tconst computedNext =\n\t\t\t\tindex >= selectedArr.length - 1 ? selectedArr.length - 2 : index;\n\t\t\tnextIndex = computedNext >= 0 ? computedNext : undefined;\n\t\t\tstopEvent(event);\n\t\t\troot.setIndices({\n\t\t\t\tactiveIndex: null,\n\t\t\t\tselectedIndex: null,\n\t\t\t\ttype: \"keyboard\",\n\t\t\t});\n\t\t\tconst details = createChangeEventDetails(\n\t\t\t\tREASONS.none,\n\t\t\t\tevent,\n\t\t\t) as ComboboxRootChangeEventDetails;\n\t\t\troot.setSelectedValue(\n\t\t\t\tselectedArr.filter((_, i) => i !== index) as never,\n\t\t\t\tdetails,\n\t\t\t);\n\t\t} else if (event.key === \"Enter\" || event.key === \" \") {\n\t\t\tstopEvent(event);\n\t\t\tnextIndex = undefined;\n\t\t} else if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n\t\t\tstopEvent(event);\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\tnextIndex = undefined;\n\t\t} else if (\n\t\t\tevent.key.length === 1 &&\n\t\t\t!event.ctrlKey &&\n\t\t\t!event.metaKey &&\n\t\t\t!event.altKey\n\t\t) {\n\t\t\tnextIndex = undefined;\n\t\t}\n\n\t\treturn nextIndex;\n\t}\n\n\tfunction onKeyDown(event: KeyboardEvent): void {\n\t\tif (disabled() || readOnly()) return;\n\t\tconst next = handleKeyDown(event);\n\t\tchipsCtx.setHighlightedChipIndex(next);\n\t\tif (next === undefined) {\n\t\t\troot.inputRef.current?.focus();\n\t\t} else {\n\t\t\tchipsCtx.chipsRef.current[next]?.focus();\n\t\t}\n\t}\n\n\tconst internal = {\n\t\ttabIndex: -1,\n\t\tget \"aria-disabled\"() {\n\t\t\treturn disabled() ? (\"true\" as const) : undefined;\n\t\t},\n\t\tget \"aria-readonly\"() {\n\t\t\treturn readOnly() ? (\"true\" as const) : undefined;\n\t\t},\n\t\tonKeyDown,\n\t\t// Default state-attr projection: data-disabled present when true.\n\t\tget \"data-disabled\"() {\n\t\t\treturn state().disabled ? \"\" : undefined;\n\t\t},\n\t\tget children() {\n\t\t\treturn props.children;\n\t\t},\n\t};\n\n\tconst userClassStyle = resolveClassStyle(props, () => state());\n\tconst userProps = omit(props, \"as\", \"class\", \"style\", \"attrs\", \"children\");\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<ComboboxChipContext value={{ index: listItem.index }}>\n\t\t\t<Tag {...merged} ref={composeRefs(listItem.ref, userRef(props))} />\n\t\t</ComboboxChipContext>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}