@qualcomm-ui/core 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/collapsible/index.cjs +1 -1
- package/dist/collapsible/index.cjs.map +2 -2
- package/dist/collapsible/index.js +1 -1
- package/dist/collapsible/index.js.map +2 -2
- package/dist/combobox/combobox.api.d.ts.map +1 -1
- package/dist/combobox/combobox.types.d.ts +1 -0
- package/dist/combobox/combobox.types.d.ts.map +1 -1
- package/dist/combobox/index.cjs +1 -1
- package/dist/combobox/index.cjs.map +2 -2
- package/dist/combobox/index.js +1 -1
- package/dist/combobox/index.js.map +2 -2
- package/dist/dialog/index.cjs +1 -1
- package/dist/dialog/index.cjs.map +2 -2
- package/dist/dialog/index.js +1 -1
- package/dist/dialog/index.js.map +2 -2
- package/dist/presence/index.cjs +1 -1
- package/dist/presence/index.cjs.map +2 -2
- package/dist/presence/index.js +1 -1
- package/dist/presence/index.js.map +2 -2
- package/dist/presence/presence.machine.d.ts.map +1 -1
- package/dist/tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/combobox/index.ts", "../../src/combobox/combobox.api.ts", "../../src/combobox/internal/combobox.dom.ts", "../../src/combobox/combobox.collection.ts", "../../src/combobox/combobox.machine.ts", "../../src/combobox/combobox.props.ts"],
|
|
4
|
-
"sourcesContent": ["export * from \"./combobox.api\"\nexport * from \"./combobox.collection\"\nexport * from \"./combobox.machine\"\nexport * from \"./combobox.props\"\nexport type * from \"./combobox.types\"\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {getPlacementStyles} from \"@qualcomm-ui/dom/floating-ui\"\nimport {isFocusVisible} from \"@qualcomm-ui/dom/focus-visible\"\nimport {\n getEventKey,\n isComposingEvent,\n isContextMenuEvent,\n isDownloadingEvent,\n isLeftClick,\n isOpeningInNewTab,\n} from \"@qualcomm-ui/dom/query\"\nimport {booleanAriaAttr, booleanDataAttr} from \"@qualcomm-ui/utils/attributes\"\nimport type {CollectionItem} from \"@qualcomm-ui/utils/collection\"\nimport type {DirectionProperty} from \"@qualcomm-ui/utils/direction\"\nimport {ensure} from \"@qualcomm-ui/utils/guard\"\nimport type {\n EventKeyMap,\n IdRegistrationProps,\n Machine,\n PropNormalizer,\n} from \"@qualcomm-ui/utils/machine\"\n\nimport type {\n ComboboxApi,\n ComboboxApiItemProps,\n ComboboxClearTriggerBindings,\n ComboboxControlBindings,\n ComboboxEmptyBindings,\n ComboboxErrorIndicatorBindings,\n ComboboxErrorTextBindings,\n ComboboxHintBindings,\n ComboboxItemBindings,\n ComboboxItemContext,\n ComboboxItemGroupBindings,\n ComboboxItemGroupLabelBindings,\n ComboboxItemIndicatorBindings,\n ComboboxItemTextBindings,\n ComboboxLabelBindings,\n ComboboxPositionerBindings,\n ComboboxRootBindings,\n ComboboxSchema,\n ComboboxTriggerBindings,\n} from \"./combobox.types\"\nimport {\n domEls,\n domIds,\n getItemGroupId,\n getItemGroupLabelId,\n getItemId,\n} from \"./internal\"\n\nexport function createComboboxApi(\n machine: Machine<ComboboxSchema>,\n normalize: PropNormalizer,\n): ComboboxApi {\n const {computed, context, event, prop, refs, scope, send, state} = machine\n\n const translations = prop(\"translations\")\n const collection = prop(\"collection\")\n\n const disabled = !!prop(\"disabled\")\n const interactive = computed(\"isInteractive\")\n const invalid = !!prop(\"invalid\")\n const required = !!prop(\"required\")\n const readOnly = !!prop(\"readOnly\")\n\n const open = state.hasTag(\"open\")\n const focused = state.hasTag(\"focused\")\n const composite = prop(\"composite\")\n const highlightedValue = context.get(\"highlightedValue\")\n\n const popperStyles = getPlacementStyles({\n ...prop(\"positioning\"),\n placement: context.get(\"currentPlacement\"),\n })\n\n function getItemState(\n props: ComboboxApiItemProps<CollectionItem>,\n ): ComboboxItemContext {\n const itemDisabled = collection.getItemDisabled(props.item)\n const value = collection.getItemValue(props.item)\n ensure(\n value,\n () =>\n `[@qualcomm-ui/core] No value found for item ${JSON.stringify(props.item)}`,\n )\n return {\n ...props,\n disabled: disabled || itemDisabled,\n highlighted: highlightedValue === value,\n selected: context.get(\"value\").includes(value),\n value,\n }\n }\n\n const commonBindings: {\"data-scope\": \"combobox\"} & DirectionProperty = {\n \"data-scope\": \"combobox\",\n dir: prop(\"dir\"),\n }\n\n return {\n clearHighlightValue() {\n send({type: \"HIGHLIGHTED_VALUE.CLEAR\"})\n },\n clearValue(value) {\n if (value != null) {\n send({type: \"ITEM.CLEAR\", value})\n } else {\n send({type: \"VALUE.CLEAR\"})\n }\n },\n collection: prop(\"collection\"),\n disabled: !!disabled,\n focus() {\n domEls.input(scope)?.focus()\n },\n focused,\n hasSelectedItems: computed(\"hasSelectedItems\"),\n highlightedItem: context.get(\"highlightedItem\"),\n highlightedValue,\n inputValue: context.get(\"inputValue\"),\n multiple: !!prop(\"multiple\"),\n open,\n reposition(options = {}) {\n send({options, type: \"POSITIONING.SET\"})\n },\n required: prop(\"required\"),\n selectedItems: context.get(\"selectedItems\"),\n selectValue(value) {\n send({type: \"ITEM.SELECT\", value})\n },\n setHighlightValue(value) {\n send({type: \"HIGHLIGHTED_VALUE.SET\", value})\n },\n setInputValue(value, reason = \"script\") {\n send({src: reason, type: \"INPUT_VALUE.SET\", value})\n },\n setOpen(nextOpen, reason = \"script\") {\n const open = state.hasTag(\"open\")\n if (open === nextOpen) {\n return\n }\n send({src: reason, type: nextOpen ? \"OPEN\" : \"CLOSE\"})\n },\n setScrollToIndexFn(fn) {\n refs.set(\"scrollToIndexFn\", fn)\n },\n setValue(value) {\n send({type: \"VALUE.SET\", value})\n },\n syncSelectedItems() {\n send({type: \"SELECTED_ITEMS.SYNC\"})\n },\n value: context.get(\"value\"),\n valueAsString: computed(\"valueAsString\"),\n\n // group: bindings\n getClearTriggerBindings(props): ComboboxClearTriggerBindings {\n scope.ids.register(\"clearTrigger\", props)\n return normalize.button({\n ...commonBindings,\n \"aria-controls\": domIds.input(scope),\n \"aria-label\": translations.clearTriggerLabel,\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"clear-trigger\",\n\n disabled,\n hidden: !context.get(\"value\").length,\n id: props.id,\n onClick(event) {\n if (event.defaultPrevented) {\n return\n }\n if (!interactive) {\n return\n }\n send({src: \"clear-trigger\", type: \"VALUE.CLEAR\"})\n },\n onPointerDown(event) {\n if (!isLeftClick(event)) {\n return\n }\n event.preventDefault()\n },\n tabIndex: -1,\n type: \"button\",\n })\n },\n\n getContentBindings(props) {\n scope.ids.register(\"content\", props)\n return normalize.element({\n ...commonBindings,\n \"aria-labelledby\": domIds.label(scope),\n \"aria-multiselectable\":\n prop(\"multiple\") && composite ? \"true\" : undefined,\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-empty\": booleanDataAttr(collection.size === 0),\n \"data-focus-visible\": booleanDataAttr(isFocusVisible()),\n \"data-part\": \"content\",\n \"data-placement\": context.get(\"currentPlacement\"),\n \"data-state\": open ? \"open\" : \"closed\",\n hidden: !open,\n id: props.id,\n onPointerDown(event) {\n if (!isLeftClick(event)) {\n return\n }\n // prevent options or elements within listbox from taking focus\n event.preventDefault()\n },\n role: !composite ? \"dialog\" : \"listbox\",\n tabIndex: -1,\n })\n },\n\n getControlBindings(props): ComboboxControlBindings {\n scope.ids.register(\"control\", props)\n return normalize.element({\n ...commonBindings,\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-focus\": booleanDataAttr(focused),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"control\",\n \"data-state\": open ? \"open\" : \"closed\",\n id: props.id,\n })\n },\n\n getEmptyBindings(): ComboboxEmptyBindings {\n return normalize.element({\n ...commonBindings,\n \"data-part\": \"empty\",\n hidden: collection.size > 0,\n role: \"presentation\",\n })\n },\n\n getErrorIndicatorBindings(): ComboboxErrorIndicatorBindings {\n return normalize.element({\n ...commonBindings,\n \"aria-label\": \"Error\",\n \"data-part\": \"error-indicator\",\n hidden: !prop(\"invalid\"),\n })\n },\n\n getErrorTextBindings(\n props: IdRegistrationProps,\n ): ComboboxErrorTextBindings {\n scope.ids.register(\"errorText\", props)\n return normalize.element({\n ...commonBindings,\n \"aria-live\": \"polite\",\n \"data-part\": \"error-text\",\n hidden: !prop(\"invalid\"),\n id: props.id,\n })\n },\n\n getHintBindings(props: IdRegistrationProps): ComboboxHintBindings {\n scope.ids.register(\"hint\", props)\n return normalize.element({\n ...commonBindings,\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-part\": \"hint\",\n id: props.id,\n })\n },\n\n getInputBindings(props) {\n scope.ids.register(\"input\", props)\n return normalize.input({\n ...commonBindings,\n \"aria-activedescendant\": highlightedValue\n ? getItemId(scope, highlightedValue)\n : undefined,\n \"aria-autocomplete\": computed(\"autoComplete\") ? \"both\" : \"list\",\n \"aria-controls\": domIds.content(scope),\n \"aria-expanded\": booleanAriaAttr(open),\n \"aria-invalid\": booleanAriaAttr(invalid),\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n \"data-autofocus\": booleanDataAttr(prop(\"autoFocus\")),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"input\",\n \"data-state\": open ? \"open\" : \"closed\",\n defaultValue: context.get(\"inputValue\"),\n disabled,\n form: prop(\"form\"),\n id: props.id,\n name: prop(\"name\"),\n onBlur() {\n if (disabled) {\n return\n }\n send({type: \"INPUT.BLUR\"})\n },\n onChange(event) {\n send({\n src: \"input-change\",\n type: \"INPUT.CHANGE\",\n value: event.currentTarget.value,\n })\n },\n onClick(event) {\n if (event.defaultPrevented) {\n return\n }\n if (!prop(\"openOnClick\")) {\n return\n }\n if (!interactive) {\n return\n }\n send({src: \"input-click\", type: \"INPUT.CLICK\"})\n },\n onFocus() {\n if (disabled) {\n return\n }\n send({type: \"INPUT.FOCUS\"})\n },\n onKeyDown(event) {\n if (event.defaultPrevented || !interactive) {\n return\n }\n if (event.ctrlKey || event.shiftKey || isComposingEvent(event)) {\n return\n }\n\n const openOnKeyPress = prop(\"openOnKeyPress\")\n const isModifierKey = event.ctrlKey || event.metaKey || event.shiftKey\n const keypress = true\n\n const keymap: EventKeyMap = {\n ArrowDown(event) {\n if (!openOnKeyPress && !open) {\n return\n }\n send({\n keypress,\n src: \"arrow-key\",\n type: event.altKey ? \"OPEN\" : \"INPUT.ARROW_DOWN\",\n })\n event.preventDefault()\n },\n ArrowUp() {\n if (!openOnKeyPress && !open) {\n return\n }\n send({\n keypress,\n src: \"arrow-key\",\n type: event.altKey ? \"CLOSE\" : \"INPUT.ARROW_UP\",\n })\n event.preventDefault()\n },\n End(event) {\n if (isModifierKey) {\n return\n }\n send({keypress, type: \"INPUT.END\"})\n if (open) {\n event.preventDefault()\n }\n },\n Enter(event) {\n send({keypress, src: \"item-select\", type: \"INPUT.ENTER\"})\n\n // when there's a form owner, allow submitting custom value if\n // `allowCustomValue` is true\n const submittable =\n computed(\"isCustomValue\") && prop(\"allowCustomValue\")\n // Also allow submission when there's no highlighted item (bug fix)\n const hasHighlight = highlightedValue != null\n // Allow submission when alwaysSubmitOnEnter is true\n const alwaysSubmit = prop(\"alwaysSubmitOnEnter\")\n\n if (open && !submittable && !alwaysSubmit && hasHighlight) {\n event.preventDefault()\n }\n },\n Escape() {\n send({keypress, src: \"escape-key\", type: \"INPUT.ESCAPE\"})\n event.preventDefault()\n },\n Home(event) {\n if (isModifierKey) {\n return\n }\n send({keypress, type: \"INPUT.HOME\"})\n if (open) {\n event.preventDefault()\n }\n },\n }\n\n const key = getEventKey(event, {dir: prop(\"dir\")})\n const exec = keymap[key]\n exec?.(event)\n },\n placeholder: prop(\"placeholder\"),\n readOnly,\n required: prop(\"required\"),\n role: \"combobox\",\n spellCheck: \"false\",\n type: \"text\",\n })\n },\n\n getItemBindings(itemState): ComboboxItemBindings {\n const value = itemState.value\n\n return normalize.element({\n ...commonBindings,\n \"aria-disabled\": booleanAriaAttr(itemState.disabled),\n \"aria-selected\": booleanAriaAttr(itemState.highlighted),\n \"data-disabled\": booleanDataAttr(itemState.disabled),\n \"data-highlighted\": booleanDataAttr(itemState.highlighted),\n \"data-part\": \"item\",\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n \"data-value\": itemState.value,\n id: getItemId(scope, value),\n onClick(event) {\n if (isDownloadingEvent(event)) {\n return\n }\n if (isOpeningInNewTab(event)) {\n return\n }\n if (isContextMenuEvent(event)) {\n return\n }\n if (itemState.disabled) {\n return\n }\n send({src: \"item-select\", type: \"ITEM.CLICK\", value})\n },\n onPointerLeave() {\n if (itemState.persistFocus) {\n return\n }\n if (itemState.disabled) {\n return\n }\n const prev = event.previous()\n const mouseMoved = prev?.type.includes(\"POINTER\")\n if (!mouseMoved) {\n return\n }\n send({type: \"ITEM.POINTER_LEAVE\", value})\n },\n onPointerMove() {\n if (itemState.disabled) {\n return\n }\n if (itemState.highlighted) {\n return\n }\n send({type: \"ITEM.POINTER_MOVE\", value})\n },\n role: \"option\",\n tabIndex: -1,\n })\n },\n\n getItemGroupBindings(props): ComboboxItemGroupBindings {\n const {id} = props\n return normalize.element({\n ...commonBindings,\n \"aria-labelledby\": getItemGroupLabelId(scope, id),\n \"data-empty\": booleanDataAttr(collection.size === 0),\n \"data-part\": \"item-group\",\n id: getItemGroupId(scope, id),\n role: \"group\",\n })\n },\n\n getItemGroupLabelBindings(props): ComboboxItemGroupLabelBindings {\n return normalize.element({\n ...commonBindings,\n \"data-part\": \"item-group-label\",\n id: getItemGroupLabelId(scope, props.htmlFor),\n role: \"presentation\",\n })\n },\n\n getItemIndicatorBindings(itemState): ComboboxItemIndicatorBindings {\n return normalize.element({\n ...commonBindings,\n \"aria-hidden\": true,\n \"data-part\": \"item-indicator\",\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n hidden: !itemState.selected,\n })\n },\n\n getItemState,\n\n getItemTextBindings(itemState): ComboboxItemTextBindings {\n return normalize.element({\n ...commonBindings,\n \"data-disabled\": booleanDataAttr(itemState.disabled),\n \"data-highlighted\": booleanDataAttr(itemState.highlighted),\n \"data-part\": \"item-text\",\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n })\n },\n\n getLabelBindings(props): ComboboxLabelBindings {\n scope.ids.register(\"label\", props)\n return normalize.label({\n ...commonBindings,\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-focus\": booleanDataAttr(focused),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"label\",\n \"data-readonly\": booleanDataAttr(readOnly),\n \"data-required\": booleanDataAttr(required),\n htmlFor: domIds.input(scope),\n id: props.id,\n onClick(event) {\n if (composite) {\n return\n }\n event.preventDefault()\n domEls.trigger(scope)?.focus({preventScroll: true})\n },\n })\n },\n\n getPositionerBindings(props): ComboboxPositionerBindings {\n scope.ids.register(\"positioner\", props)\n return normalize.element({\n ...commonBindings,\n \"data-part\": \"positioner\",\n id: props.id,\n style: popperStyles.floating,\n })\n },\n\n getRootBindings(props): ComboboxRootBindings {\n scope.ids.register(\"root\", props)\n return normalize.element({\n ...commonBindings,\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"root\",\n \"data-readonly\": booleanDataAttr(readOnly),\n id: props.id,\n })\n },\n\n getTriggerBindings(props): ComboboxTriggerBindings {\n scope.ids.register(\"trigger\", props)\n return normalize.button({\n ...commonBindings,\n \"aria-controls\": open ? domIds.content(scope) : undefined,\n \"aria-expanded\": booleanAriaAttr(open),\n \"aria-haspopup\": composite ? \"listbox\" : \"dialog\",\n \"aria-label\": translations.triggerLabel,\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-focusable\": booleanDataAttr(props.focusable),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"trigger\",\n \"data-readonly\": booleanDataAttr(readOnly),\n \"data-state\": open ? \"open\" : \"closed\",\n disabled,\n id: props.id,\n onClick(event) {\n if (event.defaultPrevented) {\n return\n }\n if (!interactive) {\n return\n }\n if (!isLeftClick(event)) {\n return\n }\n send({src: \"trigger-click\", type: \"TRIGGER.CLICK\"})\n },\n onFocus() {\n if (!props.focusable) {\n return\n }\n send({src: \"trigger\", type: \"INPUT.FOCUS\"})\n },\n onKeyDown(event) {\n if (event.defaultPrevented) {\n return\n }\n if (composite) {\n return\n }\n\n const keyMap: EventKeyMap = {\n ArrowDown() {\n send({src: \"arrow-key\", type: \"INPUT.ARROW_DOWN\"})\n },\n ArrowUp() {\n send({src: \"arrow-key\", type: \"INPUT.ARROW_UP\"})\n },\n }\n\n const key = getEventKey(event, {dir: prop(\"dir\")})\n const exec = keyMap[key]\n\n if (exec) {\n exec(event as any)\n event.preventDefault()\n }\n },\n onPointerDown(event) {\n if (!interactive) {\n return\n }\n if (event.pointerType === \"touch\") {\n return\n }\n if (!isLeftClick(event)) {\n return\n }\n event.preventDefault()\n queueMicrotask(() => {\n domEls.input(scope)?.focus({preventScroll: true})\n })\n },\n tabIndex: props.focusable ? undefined : -1,\n type: \"button\",\n })\n },\n }\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {query} from \"@qualcomm-ui/dom/query\"\nimport type {ScopeDomElements, ScopeDomIds} from \"@qualcomm-ui/utils/machine\"\n\nimport type {ComboboxElementIds, ComboboxScope} from \"../combobox.types\"\n\nexport const domIds: ScopeDomIds<\n Omit<ComboboxElementIds, \"itemGroupLabel\">,\n ComboboxScope\n> = {\n clearTrigger: (scope) => scope.ids.get(\"clearTrigger\"),\n content: (scope) => scope.ids.get(\"content\"),\n control: (scope) => scope.ids.get(\"control\"),\n errorText: (scope) => scope.ids.get(\"errorText\"),\n hint: (scope) => scope.ids.get(\"hint\"),\n input: (scope) => scope.ids.get(\"input\"),\n label: (scope) => scope.ids.get(\"label\"),\n positioner: (scope) => scope.ids.get(\"positioner\"),\n root: (scope) => scope.ids.get(\"root\"),\n trigger: (scope) => scope.ids.get(\"trigger\"),\n}\n\nexport const domEls: ScopeDomElements<\n Omit<ComboboxElementIds, \"itemGroup\" | \"itemGroupLabel\" | \"input\">,\n ComboboxScope\n> & {\n input: (scope: ComboboxScope) => HTMLInputElement | null\n} = {\n clearTrigger: (scope) => scope.getById(domIds.clearTrigger(scope)),\n content: (scope) => scope.getById(domIds.content(scope)),\n control: (scope) => scope.getById(domIds.control(scope)),\n errorText: (scope) => scope.getById(domIds.errorText(scope)),\n hint: (scope) => scope.getById(domIds.hint(scope)),\n input: (scope) => scope.getById(domIds.input(scope)),\n label: (scope) => scope.getById(domIds.label?.(scope)),\n positioner: (scope) => scope.getById(domIds.positioner(scope)),\n root: (scope) => scope.getById(domIds.root(scope)),\n trigger: (scope) => scope.getById(domIds.trigger(scope)),\n}\n\nexport function getItemGroupId(scope: ComboboxScope, id: string) {\n return `${scope.ids.get(\"root\")}-item-group-${id}`\n}\n\nexport function getItemId(ctx: ComboboxScope, id: string) {\n return `${domIds.root(ctx)}-item-${id}`\n}\n\nexport function getItemGroupLabelId(ctx: ComboboxScope, id: string) {\n return `${domIds.root(ctx)}-item-group-label-${id}`\n}\n\nexport function getItemEl(\n ctx: ComboboxScope,\n value: string | null,\n): HTMLElement | null {\n if (value == null) {\n return null\n }\n const selector = `[role=option][data-value=\"${CSS.escape(value)}\"]`\n return query(domEls.content(ctx), selector)\n}\n\nexport function focusInputEl(ctx: ComboboxScope): void {\n const inputEl = domEls.input(ctx)\n if (ctx.isActiveElement(inputEl)) {\n return\n }\n inputEl?.focus({preventScroll: true})\n}\n\nexport function focusTriggerEl(ctx: ComboboxScope): void {\n const triggerEl = domEls.trigger(ctx)\n if (ctx.isActiveElement(triggerEl)) {\n return\n }\n triggerEl?.focus({preventScroll: true})\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n type CollectionItem,\n ListCollection,\n type ListCollectionOptions,\n} from \"@qualcomm-ui/utils/collection\"\n\nexport const comboboxCollection = <T extends CollectionItem = CollectionItem>(\n options: ListCollectionOptions<T>,\n): ListCollection<T> => {\n return new ListCollection<T>(options)\n}\n\nexport const emptyCollection = <\n T extends CollectionItem = CollectionItem,\n>(): ListCollection<T> => {\n return new ListCollection<T>({items: []})\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {ariaHidden} from \"@qualcomm-ui/dom/aria-hidden\"\nimport {trackDismissableElement} from \"@qualcomm-ui/dom/dismissable\"\nimport {getPlacement, type Placement} from \"@qualcomm-ui/dom/floating-ui\"\nimport {trackFocusVisible} from \"@qualcomm-ui/dom/focus-visible\"\nimport {\n nextTick,\n observeAttributes,\n raf,\n scrollIntoView,\n setCaretToEnd,\n} from \"@qualcomm-ui/dom/query\"\nimport {addOrRemove, remove} from \"@qualcomm-ui/utils/array\"\nimport {isEqual} from \"@qualcomm-ui/utils/equal\"\nimport {match} from \"@qualcomm-ui/utils/functions\"\nimport {isBoolean} from \"@qualcomm-ui/utils/guard\"\nimport {\n createChoose,\n createGuards,\n createMachine,\n type GuardFn,\n type MachineConfig,\n} from \"@qualcomm-ui/utils/machine\"\n\nimport {emptyCollection} from \"./combobox.collection\"\nimport type {ComboboxOpenChangeReason, ComboboxSchema} from \"./combobox.types\"\nimport {domEls, focusInputEl, focusTriggerEl, getItemEl} from \"./internal\"\n\nconst {and, not} = createGuards<ComboboxSchema>()\n\nexport const comboboxMachine: MachineConfig<ComboboxSchema> =\n createMachine<ComboboxSchema>({\n actions: {\n autofillInputValue({computed, context, event, prop, scope}) {\n const inputEl = domEls.input(scope)\n const collection = prop(\"collection\")\n if (!computed(\"autoComplete\") || !inputEl || !event.keypress) {\n return\n }\n const valueText = collection.stringify(context.get(\"highlightedValue\"))\n raf(() => {\n inputEl.value = valueText || context.get(\"inputValue\")\n })\n },\n clearHighlightedValue({context}) {\n context.set(\"highlightedValue\", null)\n },\n clearInputValue({context}) {\n context.set(\"inputValue\", \"\")\n },\n clearItem(params) {\n const {context, event, flush, prop} = params\n if (event.value == null) {\n return\n }\n flush(() => {\n const nextValue = remove(context.get(\"value\"), event.value)\n context.set(\"value\", nextValue)\n\n // set input value\n const inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: prop(\"collection\").stringifyMany(nextValue),\n })\n context.set(\"inputValue\", inputValue)\n })\n },\n clearSelectedItems(params) {\n const {context, flush, prop} = params\n flush(() => {\n context.set(\"value\", [])\n\n // set input value\n const inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: prop(\"collection\").stringifyMany([]),\n })\n context.set(\"inputValue\", inputValue)\n })\n },\n highlightFirstItem({context, prop, scope}) {\n const exec = domEls.content(scope) ? queueMicrotask : raf\n exec(() => {\n const value = prop(\"collection\").firstValue\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n })\n },\n highlightFirstItemIfNeeded({action, computed}) {\n if (!computed(\"autoHighlight\")) {\n return\n }\n action([\"highlightFirstItem\"])\n },\n highlightFirstOrSelectedItem({computed, context, prop}) {\n raf(() => {\n let value: string | null = null\n if (computed(\"hasSelectedItems\")) {\n value = prop(\"collection\").sort(context.get(\"value\"))[0]\n } else {\n value = prop(\"collection\").firstValue\n }\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n })\n },\n highlightFirstSelectedItem({context, prop}) {\n raf(() => {\n const [value] = prop(\"collection\").sort(context.get(\"value\"))\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n })\n },\n highlightLastItem({context, prop, scope}) {\n const exec = domEls.content(scope) ? queueMicrotask : raf\n exec(() => {\n const value = prop(\"collection\").lastValue\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n })\n },\n highlightLastOrSelectedItem({computed, context, prop}) {\n raf(() => {\n const collection = prop(\"collection\")\n let value: string | null = null\n if (computed(\"hasSelectedItems\")) {\n value = collection.sort(context.get(\"value\"))[0]\n } else {\n value = collection.lastValue\n }\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n })\n },\n highlightNextItem({context, prop}) {\n let value: string | null = null\n const highlightedValue = context.get(\"highlightedValue\")\n const collection = prop(\"collection\")\n if (highlightedValue) {\n value = collection.getNextValue(highlightedValue)\n if (!value && prop(\"loopFocus\")) {\n value = collection.firstValue\n }\n } else {\n value = collection.firstValue\n }\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n },\n highlightPrevItem({context, prop}) {\n let value: string | null = null\n const highlightedValue = context.get(\"highlightedValue\")\n const collection = prop(\"collection\")\n if (highlightedValue) {\n value = collection.getPreviousValue(highlightedValue)\n if (!value && prop(\"loopFocus\")) {\n value = collection.lastValue\n }\n } else {\n value = collection.lastValue\n }\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n },\n invokeOnClose({event, prop}) {\n const reason = getOpenChangeReason(event)\n prop(\"onOpenChange\")?.({open: false, reason})\n },\n invokeOnOpen({event, prop}) {\n const reason = getOpenChangeReason(event)\n prop(\"onOpenChange\")?.({open: true, reason})\n },\n reposition({context, event, prop, scope}) {\n const controlEl = () => domEls.control(scope)\n const positionerEl = () => domEls.positioner(scope)\n getPlacement(controlEl, positionerEl, {\n ...prop(\"positioning\"),\n ...event.options,\n defer: true,\n listeners: false,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement)\n },\n })\n },\n revertInputValue({computed, context, prop}) {\n const selectionBehavior = prop(\"selectionBehavior\")\n // Without this, all items briefly render as the text input filter is\n // removed. This creates a noticeable jump as the content expands briefly\n // before it closes.\n raf(() => {\n const inputValue = match(selectionBehavior, {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: computed(\"hasSelectedItems\")\n ? computed(\"valueAsString\")\n : \"\",\n })\n context.set(\"inputValue\", inputValue)\n })\n },\n scrollContentToTop({prop, refs, scope}) {\n const scrollToIndexFn = refs.get(\"scrollToIndexFn\")\n if (scrollToIndexFn) {\n const firstValue = prop(\"collection\").firstValue\n scrollToIndexFn({\n getElement: () => getItemEl(scope, firstValue),\n immediate: true,\n index: 0,\n })\n } else {\n const contentEl = domEls.content(scope)\n if (!contentEl) {\n return\n }\n contentEl.scrollTop = 0\n }\n },\n scrollToHighlightedItem({context, prop, refs, scope}) {\n nextTick(() => {\n const highlightedValue = context.get(\"highlightedValue\")\n if (highlightedValue == null) {\n return\n }\n\n const itemEl = getItemEl(scope, highlightedValue)\n const contentEl = domEls.content(scope)\n\n const scrollToIndexFn = refs.get(\"scrollToIndexFn\")\n if (scrollToIndexFn) {\n const highlightedIndex =\n prop(\"collection\").indexOf(highlightedValue)\n scrollToIndexFn({\n getElement: () => getItemEl(scope, highlightedValue),\n immediate: true,\n index: highlightedIndex,\n })\n return\n }\n\n scrollIntoView(itemEl, {block: \"nearest\", rootEl: contentEl})\n })\n },\n selectHighlightedItem(params) {\n const {context, prop} = params\n const collection = prop(\"collection\")\n\n // check if item is valid\n const highlightedValue = context.get(\"highlightedValue\")\n if (!highlightedValue || !collection.has(highlightedValue)) {\n return\n }\n\n // select item\n const nextValue = prop(\"multiple\")\n ? addOrRemove(context.get(\"value\"), highlightedValue)\n : [highlightedValue]\n prop(\"onSelect\")?.({itemValue: highlightedValue, value: nextValue})\n context.set(\"value\", nextValue)\n\n // set input value\n const inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: collection.stringifyMany(nextValue),\n })\n context.set(\"inputValue\", inputValue)\n },\n selectItem(params) {\n const {context, event, flush, prop} = params\n if (event.value == null) {\n return\n }\n flush(() => {\n const nextValue = prop(\"multiple\")\n ? addOrRemove(context.get(\"value\"), event.value)\n : [event.value]\n prop(\"onSelect\")?.({itemValue: event.value, value: nextValue})\n context.set(\"value\", nextValue)\n\n // set input value\n const inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: prop(\"collection\").stringifyMany(nextValue),\n })\n context.set(\"inputValue\", inputValue)\n })\n },\n setFinalFocus({scope}) {\n raf(() => {\n const triggerEl = domEls.trigger(scope)\n if (triggerEl?.dataset.focusable == null) {\n focusInputEl(scope)\n } else {\n focusTriggerEl(scope)\n }\n })\n },\n setHighlightedValue({context, event}) {\n if (event.value == null) {\n return\n }\n context.set(\"highlightedValue\", event.value)\n },\n setInitialFocus({scope}) {\n raf(() => {\n focusInputEl(scope)\n })\n },\n setInputValue({context, event}) {\n context.set(\"inputValue\", event.value)\n },\n setValue(params) {\n const {context, event, flush, prop} = params\n flush(() => {\n context.set(\"value\", event.value)\n\n // set input value\n const inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: prop(\"collection\").stringifyMany(event.value),\n })\n context.set(\"inputValue\", inputValue)\n })\n },\n syncHighlightedItem({context, prop}) {\n const item = prop(\"collection\").find(context.get(\"highlightedValue\"))\n context.set(\"highlightedItem\", item, {})\n },\n syncInputFocus({scope, state}) {\n const input = domEls.input(scope)\n if (!input) {\n return\n }\n if (\n input.ownerDocument.activeElement === input &&\n state.get() !== \"focused\"\n ) {\n state.set(\"focused\")\n }\n },\n syncInputValue({context, event, scope}) {\n const inputEl = domEls.input(scope)\n\n if (!inputEl) {\n return\n }\n inputEl.value = context.get(\"inputValue\")\n\n queueMicrotask(() => {\n if (event.current().type === \"INPUT.CHANGE\") {\n return\n }\n setCaretToEnd(inputEl)\n })\n },\n syncSelectedItems(params) {\n queueMicrotask(() => {\n const {context, prop} = params\n const collection = prop(\"collection\")\n const value = context.get(\"value\")\n\n // set selected items (based on value)\n const selectedItems = value.map((v) => {\n const item = context\n .get(\"selectedItems\")\n .find((item) => collection.getItemValue(item) === v)\n return item || collection.find(v)\n })\n context.set(\"selectedItems\", selectedItems)\n\n // set input value\n const inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: collection.stringifyMany(value),\n })\n context.set(\"inputValue\", inputValue)\n })\n },\n toggleVisibility({event, prop, send}) {\n send({\n previousEvent: event,\n type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\",\n })\n },\n },\n\n computed: {\n autoComplete: ({prop}) => prop(\"inputBehavior\") === \"autocomplete\",\n autoHighlight: ({prop}) => prop(\"inputBehavior\") === \"autohighlight\",\n hasSelectedItems: ({context}) => context.get(\"value\").length > 0,\n isCustomValue: ({computed, context}) =>\n context.get(\"inputValue\") !== computed(\"valueAsString\"),\n isInputValueEmpty: ({context}) => context.get(\"inputValue\").length === 0,\n isInteractive: ({prop}) => !(prop(\"readOnly\") || prop(\"disabled\")),\n valueAsString: ({context, prop}) =>\n prop(\"collection\").stringifyItems(context.get(\"selectedItems\")),\n },\n\n context({bindable, getContext, getEvent, prop}) {\n return {\n currentPlacement: bindable<Placement | undefined>(() => ({\n defaultValue: undefined,\n })),\n highlightedItem: bindable<string | null>(() => {\n const highlightedValue = prop(\"highlightedValue\")\n const highlightedItem = prop(\"collection\").find(highlightedValue)\n return {defaultValue: highlightedItem}\n }),\n highlightedValue: bindable<string | null>(() => ({\n defaultValue: prop(\"defaultHighlightedValue\") || null,\n onChange(value) {\n const item = prop(\"collection\").find(value)\n prop(\"onHighlightChange\")?.({\n highlightedItem: item,\n highlightedValue: value,\n })\n },\n value: prop(\"highlightedValue\"),\n })),\n inputValue: bindable<string>(() => {\n let inputValue = prop(\"inputValue\") || prop(\"defaultInputValue\") || \"\"\n const value = prop(\"value\") || prop(\"defaultValue\") || []\n\n if (!inputValue.trim() && !prop(\"multiple\")) {\n const valueAsString = prop(\"collection\").stringifyMany(value)\n inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: inputValue || valueAsString,\n replace: valueAsString,\n })\n }\n\n return {\n defaultValue: inputValue,\n onChange(value) {\n const event = getEvent()\n const reason = (event.previousEvent || event).src\n prop(\"onInputValueChange\")?.({inputValue: value, reason})\n },\n value: prop(\"inputValue\"),\n }\n }),\n selectedItems: bindable<string[]>(() => {\n const value = prop(\"value\") || prop(\"defaultValue\") || []\n const selectedItems = prop(\"collection\").findMany(value)\n return {defaultValue: selectedItems}\n }),\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n hash(value) {\n return value.join(\",\")\n },\n isEqual,\n onChange(value) {\n const context = getContext()\n const prevSelectedItems = context.get(\"selectedItems\")\n const collection = prop(\"collection\")\n\n const nextItems: any[] = value.map((v: string) => {\n const item = prevSelectedItems.find(\n (item: any) => collection.getItemValue(item) === v,\n )\n return item || collection.find(v)\n })\n\n context.set(\"selectedItems\", nextItems)\n\n prop(\"onValueChange\")?.({items: nextItems, value})\n },\n value: prop(\"value\"),\n })),\n }\n },\n\n effects: {\n hideOtherElements({scope}) {\n return ariaHidden([\n domEls.input(scope),\n domEls.content(scope),\n domEls.trigger(scope),\n domEls.clearTrigger(scope),\n ])\n },\n scrollToHighlightedItem({context, event, prop, refs, scope}) {\n const inputEl = domEls.input(scope)\n\n const cleanups: VoidFunction[] = []\n\n const exec = (immediate: boolean) => {\n const pointer = event.current().type.includes(\"POINTER\")\n const highlightedValue = context.get(\"highlightedValue\")\n if (pointer || !highlightedValue) {\n return\n }\n\n const contentEl = domEls.content(scope)\n\n const scrollToIndexFn = refs.get(\"scrollToIndexFn\")\n if (scrollToIndexFn) {\n const highlightedIndex =\n prop(\"collection\").indexOf(highlightedValue)\n scrollToIndexFn({\n getElement: () => getItemEl(scope, highlightedValue),\n immediate,\n index: highlightedIndex,\n })\n return\n }\n\n const itemEl = getItemEl(scope, highlightedValue)\n const raf_cleanup = raf(() => {\n scrollIntoView(itemEl, {block: \"nearest\", rootEl: contentEl})\n })\n cleanups.push(raf_cleanup)\n }\n\n const rafCleanup = raf(() => exec(true))\n cleanups.push(rafCleanup)\n\n const observerCleanup = observeAttributes(inputEl, {\n attributes: [\"aria-activedescendant\"],\n callback: () => exec(false),\n })\n cleanups.push(observerCleanup)\n\n return () => {\n cleanups.forEach((cleanup) => cleanup())\n }\n },\n trackDismissableLayer({prop, scope, send}) {\n if (prop(\"disableLayer\")) {\n return\n }\n const contentEl = () => domEls.content(scope)\n return trackDismissableElement(contentEl, {\n defer: true,\n exclude: () => [\n domEls.input(scope),\n domEls.trigger(scope),\n domEls.clearTrigger(scope),\n ],\n onDismiss() {\n send({\n restoreFocus: false,\n src: \"interact-outside\",\n type: \"LAYER.INTERACT_OUTSIDE\",\n })\n },\n onEscapeKeyDown(event) {\n event.preventDefault()\n event.stopPropagation()\n send({src: \"escape-key\", type: \"LAYER.ESCAPE\"})\n },\n onFocusOutside: prop(\"onFocusOutside\"),\n onInteractOutside: prop(\"onInteractOutside\"),\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n type: \"listbox\",\n })\n },\n trackFocusVisible({scope}) {\n return trackFocusVisible({root: scope.getRootNode?.()})\n },\n trackPlacement({context, prop, scope}) {\n const anchorEl = () => domEls.control(scope) || domEls.trigger(scope)\n const positionerEl = () => domEls.positioner(scope)\n\n context.set(\"currentPlacement\", prop(\"positioning\").placement)\n return getPlacement(anchorEl, positionerEl, {\n ...prop(\"positioning\"),\n defer: true,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement)\n },\n })\n },\n },\n\n guards: {\n allowCustomValue: ({prop}) => !!prop(\"allowCustomValue\"),\n autoComplete: ({computed, prop}) =>\n computed(\"autoComplete\") && !prop(\"multiple\"),\n autoFocus: ({prop}) => !!prop(\"autoFocus\"),\n autoHighlight: ({computed}) => computed(\"autoHighlight\"),\n closeOnSelect: ({prop}) => !!prop(\"closeOnSelect\"),\n hasHighlightedItem: ({context}) =>\n context.get(\"highlightedValue\") != null,\n isChangeEvent: ({event}) => event.previousEvent?.type === \"INPUT.CHANGE\",\n isCustomValue: ({computed}) => computed(\"isCustomValue\"),\n isFirstItemHighlighted: ({context, prop}) =>\n prop(\"collection\").firstValue === context.get(\"highlightedValue\"),\n isHighlightedItemRemoved: ({context, prop}) =>\n !prop(\"collection\").has(context.get(\"highlightedValue\")),\n isInputValueEmpty: ({computed}) => computed(\"isInputValueEmpty\"),\n isLastItemHighlighted: ({context, prop}) =>\n prop(\"collection\").lastValue === context.get(\"highlightedValue\"),\n isOpenControlled: ({prop}) => prop(\"open\") != null,\n openOnChange: ({context, prop}) => {\n const openOnChange = prop(\"openOnChange\")\n if (isBoolean(openOnChange)) {\n return openOnChange\n }\n return !!openOnChange?.({inputValue: context.get(\"inputValue\")})\n },\n restoreFocus: ({event}) =>\n event.restoreFocus == null ? true : !!event.restoreFocus,\n },\n\n ids: ({bindableId, ids}) => {\n return {\n clearTrigger: bindableId(ids?.clearTrigger),\n content: bindableId(ids?.content),\n control: bindableId(ids?.control),\n errorText: bindableId(ids?.errorText),\n hint: bindableId(ids?.hint),\n input: bindableId(ids?.input),\n label: bindableId(ids?.label),\n positioner: bindableId(ids?.positioner),\n root: bindableId(ids?.root),\n trigger: bindableId(ids?.trigger),\n }\n },\n\n initialState({prop}) {\n const open = prop(\"open\") || prop(\"defaultOpen\")\n return open ? \"suggesting\" : \"idle\"\n },\n\n on: {\n \"HIGHLIGHTED_VALUE.CLEAR\": {\n actions: [\"clearHighlightedValue\"],\n },\n \"HIGHLIGHTED_VALUE.SET\": {\n actions: [\"setHighlightedValue\"],\n },\n \"INPUT_VALUE.SET\": {\n actions: [\"setInputValue\"],\n },\n \"ITEM.CLEAR\": {\n actions: [\"clearItem\"],\n },\n \"ITEM.SELECT\": {\n actions: [\"selectItem\"],\n },\n \"POSITIONING.SET\": {\n actions: [\"reposition\"],\n },\n \"SELECTED_ITEMS.SYNC\": {\n actions: [\"syncSelectedItems\"],\n },\n \"VALUE.SET\": {\n actions: [\"setValue\"],\n },\n },\n\n onInit: {\n actions: [\n createChoose<ComboboxSchema>([\n {\n actions: [\"setInitialFocus\"],\n guard: \"autoFocus\",\n },\n ]) as any,\n \"syncInputFocus\",\n ],\n effects: [\"trackFocusVisible\"],\n },\n\n props({props}) {\n return {\n allowCustomValue: false,\n alwaysSubmitOnEnter: false,\n closeOnSelect: !props.multiple,\n collection: props.collection || emptyCollection(),\n composite: true,\n defaultInputValue: \"\",\n defaultValue: [],\n inputBehavior: \"none\",\n loopFocus: true,\n openOnChange: true,\n openOnClick: false,\n openOnKeyPress: true,\n selectionBehavior: props.multiple ? \"clear\" : \"replace\",\n ...props,\n positioning: {\n gutter: 2,\n placement: \"bottom-start\",\n sameWidth: true,\n ...props.positioning,\n },\n translations: {\n clearTriggerLabel: \"Clear value\",\n triggerLabel: \"Toggle suggestions\",\n ...props.translations,\n },\n }\n },\n\n refs: ({prop}) => {\n return {\n scrollToIndexFn: prop(\"scrollToIndexFn\"),\n }\n },\n\n states: {\n focused: {\n entry: [\"scrollContentToTop\", \"clearHighlightedValue\"],\n on: {\n \"CONTROLLED.OPEN\": [\n {\n guard: \"isChangeEvent\",\n target: \"suggesting\",\n },\n {\n target: \"interacting\",\n },\n ],\n \"INPUT.ARROW_DOWN\": [\n // == group 1 ==\n {\n actions: [\"invokeOnOpen\"],\n guard: and(\"isOpenControlled\", \"autoComplete\"),\n },\n {\n actions: [\"invokeOnOpen\"],\n guard: \"autoComplete\",\n target: \"interacting\",\n },\n // == group 2 ==\n {\n actions: [\"highlightFirstOrSelectedItem\", \"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"highlightFirstOrSelectedItem\", \"invokeOnOpen\"],\n target: \"interacting\",\n },\n ],\n \"INPUT.ARROW_UP\": [\n // == group 1 ==\n {\n actions: [\"invokeOnOpen\"],\n guard: \"autoComplete\",\n target: \"interacting\",\n },\n {\n actions: [\"invokeOnOpen\"],\n guard: \"autoComplete\",\n target: \"interacting\",\n },\n // == group 2 ==\n {\n actions: [\"highlightLastOrSelectedItem\", \"invokeOnOpen\"],\n target: \"interacting\",\n },\n {\n actions: [\"highlightLastOrSelectedItem\", \"invokeOnOpen\"],\n target: \"interacting\",\n },\n ],\n \"INPUT.BLUR\": {\n target: \"idle\",\n },\n \"INPUT.CHANGE\": [\n {\n actions: [\n \"setInputValue\",\n \"invokeOnOpen\",\n \"highlightFirstItemIfNeeded\",\n ],\n guard: and(\"isOpenControlled\", \"openOnChange\"),\n },\n {\n actions: [\n \"setInputValue\",\n \"invokeOnOpen\",\n \"highlightFirstItemIfNeeded\",\n ],\n guard: \"openOnChange\",\n target: \"suggesting\",\n },\n {\n actions: [\"setInputValue\"],\n },\n ],\n \"INPUT.CLICK\": [\n {\n actions: [\"highlightFirstSelectedItem\", \"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"highlightFirstSelectedItem\", \"invokeOnOpen\"],\n target: \"interacting\",\n },\n ],\n \"INPUT.ESCAPE\": {\n actions: [\"revertInputValue\"],\n guard: and(\"isCustomValue\", not(\"allowCustomValue\")),\n },\n \"LAYER.INTERACT_OUTSIDE\": {\n target: \"idle\",\n },\n OPEN: [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnOpen\"],\n target: \"interacting\",\n },\n ],\n \"TRIGGER.CLICK\": [\n {\n actions: [\n \"setInitialFocus\",\n \"highlightFirstSelectedItem\",\n \"invokeOnOpen\",\n ],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"setInitialFocus\",\n \"highlightFirstSelectedItem\",\n \"invokeOnOpen\",\n ],\n target: \"interacting\",\n },\n ],\n \"VALUE.CLEAR\": {\n actions: [\"clearInputValue\", \"clearSelectedItems\"],\n },\n },\n tags: [\"focused\", \"closed\"],\n },\n\n idle: {\n entry: [\"scrollContentToTop\", \"clearHighlightedValue\"],\n on: {\n \"CONTROLLED.OPEN\": {\n target: \"interacting\",\n },\n \"INPUT.CLICK\": [\n {\n actions: [\"highlightFirstSelectedItem\", \"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"highlightFirstSelectedItem\", \"invokeOnOpen\"],\n target: \"interacting\",\n },\n ],\n \"INPUT.FOCUS\": {\n target: \"focused\",\n },\n OPEN: [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnOpen\"],\n target: \"interacting\",\n },\n ],\n \"TRIGGER.CLICK\": [\n {\n actions: [\n \"setInitialFocus\",\n \"highlightFirstSelectedItem\",\n \"invokeOnOpen\",\n ],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"setInitialFocus\",\n \"highlightFirstSelectedItem\",\n \"invokeOnOpen\",\n ],\n target: \"interacting\",\n },\n ],\n \"VALUE.CLEAR\": {\n actions: [\n \"clearInputValue\",\n \"clearSelectedItems\",\n \"setInitialFocus\",\n ],\n target: \"focused\",\n },\n },\n tags: [\"idle\", \"closed\"],\n },\n\n interacting: {\n effects: [\n \"scrollToHighlightedItem\",\n \"trackDismissableLayer\",\n \"trackPlacement\",\n \"hideOtherElements\",\n ],\n entry: [\"setInitialFocus\"],\n on: {\n CHILDREN_CHANGE: [\n {\n actions: [\"clearHighlightedValue\"],\n guard: \"isHighlightedItemRemoved\",\n },\n {\n actions: [\"scrollToHighlightedItem\"],\n },\n ],\n CLOSE: [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\", \"setFinalFocus\"],\n target: \"focused\",\n },\n ],\n \"CONTROLLED.CLOSE\": [\n {\n actions: [\"setFinalFocus\"],\n guard: \"restoreFocus\",\n target: \"focused\",\n },\n {\n target: \"idle\",\n },\n ],\n \"INPUT.ARROW_DOWN\": [\n {\n actions: [\"clearHighlightedValue\", \"scrollContentToTop\"],\n guard: and(\"autoComplete\", \"isLastItemHighlighted\"),\n },\n {\n actions: [\"highlightNextItem\"],\n },\n ],\n \"INPUT.ARROW_UP\": [\n {\n actions: [\"clearHighlightedValue\"],\n guard: and(\"autoComplete\", \"isFirstItemHighlighted\"),\n },\n {\n actions: [\"highlightPrevItem\"],\n },\n ],\n \"INPUT.CHANGE\": [\n {\n actions: [\"setInputValue\"],\n guard: \"autoComplete\",\n target: \"suggesting\",\n },\n {\n actions: [\"clearHighlightedValue\", \"setInputValue\"],\n target: \"suggesting\",\n },\n ],\n \"INPUT.END\": {\n actions: [\"highlightLastItem\"],\n },\n \"INPUT.ENTER\": [\n // == group 1 ==\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\n \"isOpenControlled\",\n // TODO: fix and type\n \"isCustomValue\" as keyof GuardFn<ComboboxSchema>,\n not(\"hasHighlightedItem\"),\n not(\"allowCustomValue\"),\n ),\n },\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\n \"isCustomValue\",\n not(\"hasHighlightedItem\"),\n not(\"allowCustomValue\"),\n ),\n target: \"focused\",\n },\n // == group 2 ==\n {\n actions: [\"selectHighlightedItem\", \"invokeOnClose\"],\n guard: and(\"isOpenControlled\", \"closeOnSelect\"),\n },\n {\n actions: [\n \"selectHighlightedItem\",\n \"invokeOnClose\",\n \"setFinalFocus\",\n ],\n guard: \"closeOnSelect\",\n target: \"focused\",\n },\n {\n actions: [\"selectHighlightedItem\"],\n },\n ],\n \"INPUT.HOME\": {\n actions: [\"highlightFirstItem\"],\n },\n \"ITEM.CLICK\": [\n {\n actions: [\"selectItem\", \"invokeOnClose\"],\n guard: and(\"isOpenControlled\", \"closeOnSelect\"),\n },\n {\n actions: [\"selectItem\", \"invokeOnClose\", \"setFinalFocus\"],\n guard: \"closeOnSelect\",\n target: \"focused\",\n },\n {\n actions: [\"selectItem\"],\n },\n ],\n \"ITEM.POINTER_LEAVE\": {\n actions: [\"clearHighlightedValue\"],\n },\n \"ITEM.POINTER_MOVE\": {\n actions: [\"setHighlightedValue\"],\n },\n \"LAYER.ESCAPE\": [\n {\n actions: [\"syncInputValue\", \"invokeOnClose\"],\n guard: and(\"isOpenControlled\", \"autoComplete\"),\n },\n {\n actions: [\"syncInputValue\", \"invokeOnClose\"],\n guard: \"autoComplete\",\n target: \"focused\",\n },\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\", \"setFinalFocus\"],\n target: \"focused\",\n },\n ],\n \"LAYER.INTERACT_OUTSIDE\": [\n // == group 1 ==\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\n \"isOpenControlled\",\n \"isCustomValue\" as keyof GuardFn<ComboboxSchema>,\n not(\"allowCustomValue\"),\n ),\n },\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\"isCustomValue\", not(\"allowCustomValue\")),\n target: \"idle\",\n },\n // == group 2 ==\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\"],\n target: \"idle\",\n },\n ],\n \"TRIGGER.CLICK\": [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\"],\n target: \"focused\",\n },\n ],\n \"VALUE.CLEAR\": [\n {\n actions: [\n \"clearInputValue\",\n \"clearSelectedItems\",\n \"invokeOnClose\",\n ],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"clearInputValue\",\n \"clearSelectedItems\",\n \"invokeOnClose\",\n \"setFinalFocus\",\n ],\n target: \"focused\",\n },\n ],\n },\n tags: [\"open\", \"focused\"],\n },\n\n suggesting: {\n effects: [\n \"trackDismissableLayer\",\n \"scrollToHighlightedItem\",\n \"trackPlacement\",\n \"hideOtherElements\",\n ],\n entry: [\"setInitialFocus\"],\n on: {\n CHILDREN_CHANGE: [\n {\n actions: [\"highlightFirstItem\"],\n guard: \"autoHighlight\",\n },\n {\n actions: [\"clearHighlightedValue\"],\n guard: \"isHighlightedItemRemoved\",\n },\n ],\n CLOSE: [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\", \"setFinalFocus\"],\n target: \"focused\",\n },\n ],\n \"CONTROLLED.CLOSE\": [\n {\n actions: [\"setFinalFocus\"],\n guard: \"restoreFocus\",\n target: \"focused\",\n },\n {\n target: \"idle\",\n },\n ],\n \"INPUT.ARROW_DOWN\": {\n actions: [\"highlightNextItem\"],\n target: \"interacting\",\n },\n \"INPUT.ARROW_UP\": {\n actions: [\"highlightPrevItem\"],\n target: \"interacting\",\n },\n \"INPUT.CHANGE\": {\n actions: [\"setInputValue\"],\n },\n \"INPUT.END\": {\n actions: [\"highlightLastItem\"],\n target: \"interacting\",\n },\n \"INPUT.ENTER\": [\n // == group 1 ==\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\n \"isOpenControlled\",\n \"isCustomValue\" as keyof GuardFn<ComboboxSchema>,\n not(\"hasHighlightedItem\"),\n not(\"allowCustomValue\"),\n ),\n },\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\n \"isCustomValue\",\n not(\"hasHighlightedItem\"),\n not(\"allowCustomValue\"),\n ),\n target: \"focused\",\n },\n // == group 2 ==\n {\n actions: [\"selectHighlightedItem\", \"invokeOnClose\"],\n guard: and(\"isOpenControlled\", \"closeOnSelect\"),\n },\n {\n actions: [\n \"selectHighlightedItem\",\n \"invokeOnClose\",\n \"setFinalFocus\",\n ],\n guard: \"closeOnSelect\",\n target: \"focused\",\n },\n {\n actions: [\"selectHighlightedItem\"],\n },\n ],\n \"INPUT.HOME\": {\n actions: [\"highlightFirstItem\"],\n target: \"interacting\",\n },\n \"ITEM.CLICK\": [\n {\n actions: [\"selectItem\", \"invokeOnClose\"],\n guard: and(\"isOpenControlled\", \"closeOnSelect\"),\n },\n {\n actions: [\"selectItem\", \"invokeOnClose\", \"setFinalFocus\"],\n guard: \"closeOnSelect\",\n target: \"focused\",\n },\n {\n actions: [\"selectItem\"],\n },\n ],\n \"ITEM.POINTER_LEAVE\": {\n actions: [\"clearHighlightedValue\"],\n },\n \"ITEM.POINTER_MOVE\": {\n actions: [\"setHighlightedValue\"],\n target: \"interacting\",\n },\n \"LAYER.ESCAPE\": [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\"],\n target: \"focused\",\n },\n ],\n \"LAYER.INTERACT_OUTSIDE\": [\n // == group 1 ==\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\n \"isOpenControlled\",\n \"isCustomValue\" as keyof GuardFn<ComboboxSchema>,\n not(\"allowCustomValue\"),\n ),\n },\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\"isCustomValue\", not(\"allowCustomValue\")),\n target: \"idle\",\n },\n // == group 2 ==\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\"],\n target: \"idle\",\n },\n ],\n \"TRIGGER.CLICK\": [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\"],\n target: \"focused\",\n },\n ],\n \"VALUE.CLEAR\": [\n {\n actions: [\n \"clearInputValue\",\n \"clearSelectedItems\",\n \"invokeOnClose\",\n ],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"clearInputValue\",\n \"clearSelectedItems\",\n \"invokeOnClose\",\n \"setFinalFocus\",\n ],\n target: \"focused\",\n },\n ],\n },\n tags: [\"open\", \"focused\"],\n },\n },\n\n watch({action, context, prop, send, track}) {\n track([() => context.hash(\"value\")], () => {\n action([\"syncSelectedItems\"])\n })\n track([() => context.get(\"inputValue\")], () => {\n action([\"syncInputValue\"])\n })\n track([() => context.get(\"highlightedValue\")], () => {\n action([\"syncHighlightedItem\", \"autofillInputValue\"])\n })\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"])\n })\n track([() => prop(\"collection\").toString()], () => {\n send({type: \"CHILDREN_CHANGE\"})\n })\n },\n })\n\nfunction getOpenChangeReason(\n event: ComboboxSchema[\"events\"],\n): ComboboxOpenChangeReason | undefined {\n return (event.previousEvent || event).src\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {createProps, createSplitProps} from \"@qualcomm-ui/utils/object\"\n\nimport type {ComboboxApiProps} from \"./combobox.types\"\n\nexport const comboboxProps: (keyof ComboboxApiProps)[] =\n createProps<ComboboxApiProps>()(\n \"allowCustomValue\",\n \"alwaysSubmitOnEnter\",\n \"autoFocus\",\n \"closeOnSelect\",\n \"collection\",\n \"composite\",\n \"defaultHighlightedValue\",\n \"defaultInputValue\",\n \"defaultOpen\",\n \"defaultValue\",\n \"dir\",\n \"disabled\",\n \"disableLayer\",\n \"form\",\n \"getRootNode\",\n \"highlightedValue\",\n \"ids\",\n \"inputBehavior\",\n \"inputValue\",\n \"invalid\",\n \"loopFocus\",\n \"multiple\",\n \"name\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInputValueChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onSelect\",\n \"onValueChange\",\n \"open\",\n \"openOnChange\",\n \"openOnClick\",\n \"openOnKeyPress\",\n \"placeholder\",\n \"positioning\",\n \"readOnly\",\n \"required\",\n \"scrollToIndexFn\",\n \"selectionBehavior\",\n \"translations\",\n \"value\",\n )\n\nexport const splitComboboxProps: <Props extends ComboboxApiProps>(\n props: Props,\n) => [ComboboxApiProps, Omit<Props, keyof ComboboxApiProps>] =\n createSplitProps<ComboboxApiProps>(comboboxProps)\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["export * from \"./combobox.api\"\nexport * from \"./combobox.collection\"\nexport * from \"./combobox.machine\"\nexport * from \"./combobox.props\"\nexport type * from \"./combobox.types\"\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {getPlacementStyles} from \"@qualcomm-ui/dom/floating-ui\"\nimport {isFocusVisible} from \"@qualcomm-ui/dom/focus-visible\"\nimport {\n getEventKey,\n isComposingEvent,\n isContextMenuEvent,\n isDownloadingEvent,\n isLeftClick,\n isOpeningInNewTab,\n} from \"@qualcomm-ui/dom/query\"\nimport {booleanAriaAttr, booleanDataAttr} from \"@qualcomm-ui/utils/attributes\"\nimport type {CollectionItem} from \"@qualcomm-ui/utils/collection\"\nimport type {DirectionProperty} from \"@qualcomm-ui/utils/direction\"\nimport {ensure} from \"@qualcomm-ui/utils/guard\"\nimport type {\n EventKeyMap,\n IdRegistrationProps,\n Machine,\n PropNormalizer,\n} from \"@qualcomm-ui/utils/machine\"\n\nimport type {\n ComboboxApi,\n ComboboxApiItemProps,\n ComboboxClearTriggerBindings,\n ComboboxControlBindings,\n ComboboxEmptyBindings,\n ComboboxErrorIndicatorBindings,\n ComboboxErrorTextBindings,\n ComboboxHintBindings,\n ComboboxItemBindings,\n ComboboxItemContext,\n ComboboxItemGroupBindings,\n ComboboxItemGroupLabelBindings,\n ComboboxItemIndicatorBindings,\n ComboboxItemTextBindings,\n ComboboxLabelBindings,\n ComboboxPositionerBindings,\n ComboboxRootBindings,\n ComboboxSchema,\n ComboboxTriggerBindings,\n} from \"./combobox.types\"\nimport {\n domEls,\n domIds,\n getItemGroupId,\n getItemGroupLabelId,\n getItemId,\n} from \"./internal\"\n\nexport function createComboboxApi(\n machine: Machine<ComboboxSchema>,\n normalize: PropNormalizer,\n): ComboboxApi {\n const {computed, context, event, prop, refs, scope, send, state} = machine\n\n const translations = prop(\"translations\")\n const collection = prop(\"collection\")\n\n const disabled = !!prop(\"disabled\")\n const interactive = computed(\"isInteractive\")\n const invalid = !!prop(\"invalid\")\n const required = !!prop(\"required\")\n const readOnly = !!prop(\"readOnly\")\n\n const open = state.hasTag(\"open\")\n const focused = state.hasTag(\"focused\")\n const composite = prop(\"composite\")\n const highlightedValue = context.get(\"highlightedValue\")\n\n const popperStyles = getPlacementStyles({\n ...prop(\"positioning\"),\n placement: context.get(\"currentPlacement\"),\n })\n\n function getItemState(\n props: ComboboxApiItemProps<CollectionItem>,\n ): ComboboxItemContext {\n const itemDisabled = collection.getItemDisabled(props.item)\n const value = collection.getItemValue(props.item)\n ensure(\n value,\n () =>\n `[@qualcomm-ui/core] No value found for item ${JSON.stringify(props.item)}`,\n )\n return {\n ...props,\n disabled: disabled || itemDisabled,\n highlighted: highlightedValue === value,\n selected: context.get(\"value\").includes(value),\n value,\n }\n }\n\n const commonBindings: {\"data-scope\": \"combobox\"} & DirectionProperty = {\n \"data-scope\": \"combobox\",\n dir: prop(\"dir\"),\n }\n\n return {\n clearHighlightValue() {\n send({type: \"HIGHLIGHTED_VALUE.CLEAR\"})\n },\n clearValue(value) {\n if (value != null) {\n send({type: \"ITEM.CLEAR\", value})\n } else {\n send({type: \"VALUE.CLEAR\"})\n }\n },\n collection: prop(\"collection\"),\n disabled: !!disabled,\n focus() {\n domEls.input(scope)?.focus()\n },\n focused,\n hasSelectedItems: computed(\"hasSelectedItems\"),\n highlightedItem: context.get(\"highlightedItem\"),\n highlightedValue,\n inputValue: context.get(\"inputValue\"),\n multiple: !!prop(\"multiple\"),\n open,\n reposition(options = {}) {\n send({options, type: \"POSITIONING.SET\"})\n },\n required: prop(\"required\"),\n selectedItems: context.get(\"selectedItems\"),\n selectValue(value) {\n send({type: \"ITEM.SELECT\", value})\n },\n setHighlightValue(value) {\n send({type: \"HIGHLIGHTED_VALUE.SET\", value})\n },\n setInputValue(value, reason = \"script\") {\n send({src: reason, type: \"INPUT_VALUE.SET\", value})\n },\n setOpen(nextOpen, reason = \"script\") {\n const open = state.hasTag(\"open\")\n if (open === nextOpen) {\n return\n }\n send({src: reason, type: nextOpen ? \"OPEN\" : \"CLOSE\"})\n },\n setScrollToIndexFn(fn) {\n refs.set(\"scrollToIndexFn\", fn)\n },\n setValue(value) {\n send({type: \"VALUE.SET\", value})\n },\n syncSelectedItems() {\n send({type: \"SELECTED_ITEMS.SYNC\"})\n },\n value: context.get(\"value\"),\n valueAsString: computed(\"valueAsString\"),\n\n // group: bindings\n getClearTriggerBindings(props): ComboboxClearTriggerBindings {\n scope.ids.register(\"clearTrigger\", props)\n return normalize.button({\n ...commonBindings,\n \"aria-controls\": domIds.input(scope),\n \"aria-label\": translations.clearTriggerLabel,\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"clear-trigger\",\n\n disabled,\n hidden: !context.get(\"value\").length,\n id: props.id,\n onClick(event) {\n if (event.defaultPrevented) {\n return\n }\n if (!interactive) {\n return\n }\n send({src: \"clear-trigger\", type: \"VALUE.CLEAR\"})\n },\n onPointerDown(event) {\n if (!isLeftClick(event)) {\n return\n }\n event.preventDefault()\n },\n tabIndex: -1,\n type: \"button\",\n })\n },\n\n getContentBindings(props) {\n scope.ids.register(\"content\", props)\n return normalize.element({\n ...commonBindings,\n \"aria-labelledby\": domIds.label(scope),\n \"aria-multiselectable\":\n prop(\"multiple\") && composite ? \"true\" : undefined,\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-empty\": booleanDataAttr(collection.size === 0),\n \"data-focus-visible\": booleanDataAttr(isFocusVisible()),\n \"data-part\": \"content\",\n \"data-placement\": context.get(\"currentPlacement\"),\n \"data-state\": open ? \"open\" : \"closed\",\n hidden: !open,\n id: props.id,\n onPointerDown(event) {\n if (!isLeftClick(event)) {\n return\n }\n // prevent options or elements within listbox from taking focus\n event.preventDefault()\n },\n role: !composite ? \"dialog\" : \"listbox\",\n tabIndex: -1,\n })\n },\n\n getControlBindings(props): ComboboxControlBindings {\n scope.ids.register(\"control\", props)\n return normalize.element({\n ...commonBindings,\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-focus\": booleanDataAttr(focused),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"control\",\n \"data-state\": open ? \"open\" : \"closed\",\n id: props.id,\n })\n },\n\n getEmptyBindings(): ComboboxEmptyBindings {\n return normalize.element({\n ...commonBindings,\n \"data-part\": \"empty\",\n hidden: collection.size > 0,\n role: \"presentation\",\n })\n },\n\n getErrorIndicatorBindings(): ComboboxErrorIndicatorBindings {\n return normalize.element({\n ...commonBindings,\n \"aria-label\": \"Error\",\n \"data-part\": \"error-indicator\",\n hidden: !prop(\"invalid\"),\n })\n },\n\n getErrorTextBindings(\n props: IdRegistrationProps,\n ): ComboboxErrorTextBindings {\n scope.ids.register(\"errorText\", props)\n return normalize.element({\n ...commonBindings,\n \"aria-live\": \"polite\",\n \"data-part\": \"error-text\",\n hidden: !prop(\"invalid\"),\n id: props.id,\n })\n },\n\n getHintBindings(props: IdRegistrationProps): ComboboxHintBindings {\n scope.ids.register(\"hint\", props)\n return normalize.element({\n ...commonBindings,\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-part\": \"hint\",\n id: props.id,\n })\n },\n\n getInputBindings(props) {\n scope.ids.register(\"input\", props)\n return normalize.input({\n ...commonBindings,\n \"aria-activedescendant\": highlightedValue\n ? getItemId(scope, highlightedValue)\n : undefined,\n \"aria-autocomplete\": computed(\"autoComplete\") ? \"both\" : \"list\",\n \"aria-controls\": domIds.content(scope),\n \"aria-expanded\": booleanAriaAttr(open),\n \"aria-invalid\": booleanAriaAttr(invalid),\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n \"data-autofocus\": booleanDataAttr(prop(\"autoFocus\")),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"input\",\n \"data-state\": open ? \"open\" : \"closed\",\n defaultValue: context.get(\"inputValue\"),\n disabled,\n form: prop(\"form\"),\n id: props.id,\n name: prop(\"name\"),\n onBlur() {\n if (disabled) {\n return\n }\n send({type: \"INPUT.BLUR\"})\n },\n onChange(event) {\n send({\n src: \"input-change\",\n type: \"INPUT.CHANGE\",\n value: event.currentTarget.value,\n })\n },\n onClick(event) {\n if (event.defaultPrevented) {\n return\n }\n if (!prop(\"openOnClick\")) {\n return\n }\n if (!interactive) {\n return\n }\n send({src: \"input-click\", type: \"INPUT.CLICK\"})\n },\n onFocus() {\n if (disabled) {\n return\n }\n send({type: \"INPUT.FOCUS\"})\n },\n onKeyDown(event) {\n if (event.defaultPrevented || !interactive) {\n return\n }\n if (event.ctrlKey || event.shiftKey || isComposingEvent(event)) {\n return\n }\n\n const openOnKeyPress = prop(\"openOnKeyPress\")\n const isModifierKey = event.ctrlKey || event.metaKey || event.shiftKey\n const keypress = true\n\n const keymap: EventKeyMap = {\n ArrowDown(event) {\n if (!openOnKeyPress && !open) {\n return\n }\n send({\n keypress,\n src: \"arrow-key\",\n type: event.altKey ? \"OPEN\" : \"INPUT.ARROW_DOWN\",\n })\n event.preventDefault()\n },\n ArrowUp() {\n if (!openOnKeyPress && !open) {\n return\n }\n send({\n keypress,\n src: \"arrow-key\",\n type: event.altKey ? \"CLOSE\" : \"INPUT.ARROW_UP\",\n })\n event.preventDefault()\n },\n End(event) {\n if (isModifierKey) {\n return\n }\n send({keypress, type: \"INPUT.END\"})\n if (open) {\n event.preventDefault()\n }\n },\n Enter(event) {\n send({keypress, src: \"item-select\", type: \"INPUT.ENTER\"})\n\n // when there's a form owner, allow submitting custom value if\n // `allowCustomValue` is true\n const submittable =\n computed(\"isCustomValue\") && prop(\"allowCustomValue\")\n // Also allow submission when there's no highlighted item (bug fix)\n const hasHighlight = highlightedValue != null\n // Allow submission when alwaysSubmitOnEnter is true\n const alwaysSubmit = prop(\"alwaysSubmitOnEnter\")\n\n if (open && !submittable && !alwaysSubmit && hasHighlight) {\n event.preventDefault()\n }\n },\n Escape() {\n send({keypress, src: \"escape-key\", type: \"INPUT.ESCAPE\"})\n event.preventDefault()\n },\n Home(event) {\n if (isModifierKey) {\n return\n }\n send({keypress, type: \"INPUT.HOME\"})\n if (open) {\n event.preventDefault()\n }\n },\n }\n\n const key = getEventKey(event, {dir: prop(\"dir\")})\n const exec = keymap[key]\n exec?.(event)\n },\n placeholder: prop(\"placeholder\"),\n readOnly,\n required: prop(\"required\"),\n role: \"combobox\",\n spellCheck: \"false\",\n type: \"text\",\n })\n },\n\n getItemBindings(itemState): ComboboxItemBindings {\n const value = itemState.value\n\n return normalize.element({\n ...commonBindings,\n \"aria-disabled\": booleanAriaAttr(itemState.disabled),\n \"aria-selected\": booleanAriaAttr(itemState.highlighted),\n \"data-disabled\": booleanDataAttr(itemState.disabled),\n \"data-highlighted\": booleanDataAttr(itemState.highlighted),\n \"data-part\": \"item\",\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n \"data-value\": itemState.value,\n id: getItemId(scope, value),\n onClick(event) {\n if (isDownloadingEvent(event)) {\n return\n }\n if (isOpeningInNewTab(event)) {\n return\n }\n if (isContextMenuEvent(event)) {\n return\n }\n if (itemState.disabled) {\n return\n }\n send({src: \"item-select\", type: \"ITEM.CLICK\", value})\n },\n onPointerLeave() {\n if (itemState.persistFocus) {\n return\n }\n if (itemState.disabled) {\n return\n }\n const prev = event.previous()\n const mouseMoved = prev?.type.includes(\"POINTER\")\n if (!mouseMoved) {\n return\n }\n send({type: \"ITEM.POINTER_LEAVE\", value})\n },\n onPointerMove() {\n if (itemState.disabled) {\n return\n }\n if (itemState.highlighted) {\n return\n }\n send({type: \"ITEM.POINTER_MOVE\", value})\n },\n role: \"option\",\n tabIndex: -1,\n })\n },\n\n getItemGroupBindings(props): ComboboxItemGroupBindings {\n const {id} = props\n return normalize.element({\n ...commonBindings,\n \"aria-labelledby\": getItemGroupLabelId(scope, id),\n \"data-empty\": booleanDataAttr(collection.size === 0),\n \"data-part\": \"item-group\",\n id: getItemGroupId(scope, id),\n role: \"group\",\n })\n },\n\n getItemGroupLabelBindings(props): ComboboxItemGroupLabelBindings {\n return normalize.element({\n ...commonBindings,\n \"data-part\": \"item-group-label\",\n id: getItemGroupLabelId(scope, props.htmlFor),\n role: \"presentation\",\n })\n },\n\n getItemIndicatorBindings(itemState): ComboboxItemIndicatorBindings {\n return normalize.element({\n ...commonBindings,\n \"aria-hidden\": true,\n \"data-part\": \"item-indicator\",\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n hidden: !itemState.selected,\n })\n },\n\n getItemState,\n\n getItemTextBindings(itemState): ComboboxItemTextBindings {\n return normalize.element({\n ...commonBindings,\n \"data-disabled\": booleanDataAttr(itemState.disabled),\n \"data-highlighted\": booleanDataAttr(itemState.highlighted),\n \"data-part\": \"item-text\",\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n })\n },\n\n getLabelBindings(props): ComboboxLabelBindings {\n scope.ids.register(\"label\", props)\n return normalize.label({\n ...commonBindings,\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-focus\": booleanDataAttr(focused),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"label\",\n \"data-readonly\": booleanDataAttr(readOnly),\n \"data-required\": booleanDataAttr(required),\n htmlFor: domIds.input(scope),\n id: props.id,\n onClick(event) {\n if (composite) {\n return\n }\n event.preventDefault()\n domEls.trigger(scope)?.focus({preventScroll: true})\n },\n })\n },\n\n getPositionerBindings(props): ComboboxPositionerBindings {\n scope.ids.register(\"positioner\", props)\n return normalize.element({\n ...commonBindings,\n \"data-part\": \"positioner\",\n id: props.id,\n style: popperStyles.floating,\n })\n },\n\n getRootBindings(props): ComboboxRootBindings {\n scope.ids.register(\"root\", props)\n return normalize.element({\n ...commonBindings,\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"root\",\n \"data-readonly\": booleanDataAttr(readOnly),\n id: props.id,\n onClick: (event) => {\n if (event.target === domEls.control(scope)) {\n domEls.input(scope)?.focus({preventScroll: true})\n }\n },\n })\n },\n\n getTriggerBindings(props): ComboboxTriggerBindings {\n scope.ids.register(\"trigger\", props)\n return normalize.button({\n ...commonBindings,\n \"aria-controls\": open ? domIds.content(scope) : undefined,\n \"aria-expanded\": booleanAriaAttr(open),\n \"aria-haspopup\": composite ? \"listbox\" : \"dialog\",\n \"aria-label\": translations.triggerLabel,\n \"data-disabled\": booleanDataAttr(disabled),\n \"data-focusable\": booleanDataAttr(props.focusable),\n \"data-invalid\": booleanDataAttr(invalid),\n \"data-part\": \"trigger\",\n \"data-readonly\": booleanDataAttr(readOnly),\n \"data-state\": open ? \"open\" : \"closed\",\n disabled,\n id: props.id,\n onClick(event) {\n if (event.defaultPrevented) {\n return\n }\n if (!interactive) {\n return\n }\n if (!isLeftClick(event)) {\n return\n }\n send({src: \"trigger-click\", type: \"TRIGGER.CLICK\"})\n },\n onFocus() {\n if (!props.focusable) {\n return\n }\n send({src: \"trigger\", type: \"INPUT.FOCUS\"})\n },\n onKeyDown(event) {\n if (event.defaultPrevented) {\n return\n }\n if (composite) {\n return\n }\n\n const keyMap: EventKeyMap = {\n ArrowDown() {\n send({src: \"arrow-key\", type: \"INPUT.ARROW_DOWN\"})\n },\n ArrowUp() {\n send({src: \"arrow-key\", type: \"INPUT.ARROW_UP\"})\n },\n }\n\n const key = getEventKey(event, {dir: prop(\"dir\")})\n const exec = keyMap[key]\n\n if (exec) {\n exec(event as any)\n event.preventDefault()\n }\n },\n onPointerDown(event) {\n if (!interactive) {\n return\n }\n if (event.pointerType === \"touch\") {\n return\n }\n if (!isLeftClick(event)) {\n return\n }\n event.preventDefault()\n queueMicrotask(() => {\n domEls.input(scope)?.focus({preventScroll: true})\n })\n },\n tabIndex: props.focusable ? undefined : -1,\n type: \"button\",\n })\n },\n }\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {query} from \"@qualcomm-ui/dom/query\"\nimport type {ScopeDomElements, ScopeDomIds} from \"@qualcomm-ui/utils/machine\"\n\nimport type {ComboboxElementIds, ComboboxScope} from \"../combobox.types\"\n\nexport const domIds: ScopeDomIds<\n Omit<ComboboxElementIds, \"itemGroupLabel\">,\n ComboboxScope\n> = {\n clearTrigger: (scope) => scope.ids.get(\"clearTrigger\"),\n content: (scope) => scope.ids.get(\"content\"),\n control: (scope) => scope.ids.get(\"control\"),\n errorText: (scope) => scope.ids.get(\"errorText\"),\n hint: (scope) => scope.ids.get(\"hint\"),\n input: (scope) => scope.ids.get(\"input\"),\n label: (scope) => scope.ids.get(\"label\"),\n positioner: (scope) => scope.ids.get(\"positioner\"),\n root: (scope) => scope.ids.get(\"root\"),\n trigger: (scope) => scope.ids.get(\"trigger\"),\n}\n\nexport const domEls: ScopeDomElements<\n Omit<ComboboxElementIds, \"itemGroup\" | \"itemGroupLabel\" | \"input\">,\n ComboboxScope\n> & {\n input: (scope: ComboboxScope) => HTMLInputElement | null\n} = {\n clearTrigger: (scope) => scope.getById(domIds.clearTrigger(scope)),\n content: (scope) => scope.getById(domIds.content(scope)),\n control: (scope) => scope.getById(domIds.control(scope)),\n errorText: (scope) => scope.getById(domIds.errorText(scope)),\n hint: (scope) => scope.getById(domIds.hint(scope)),\n input: (scope) => scope.getById(domIds.input(scope)),\n label: (scope) => scope.getById(domIds.label?.(scope)),\n positioner: (scope) => scope.getById(domIds.positioner(scope)),\n root: (scope) => scope.getById(domIds.root(scope)),\n trigger: (scope) => scope.getById(domIds.trigger(scope)),\n}\n\nexport function getItemGroupId(scope: ComboboxScope, id: string) {\n return `${scope.ids.get(\"root\")}-item-group-${id}`\n}\n\nexport function getItemId(ctx: ComboboxScope, id: string) {\n return `${domIds.root(ctx)}-item-${id}`\n}\n\nexport function getItemGroupLabelId(ctx: ComboboxScope, id: string) {\n return `${domIds.root(ctx)}-item-group-label-${id}`\n}\n\nexport function getItemEl(\n ctx: ComboboxScope,\n value: string | null,\n): HTMLElement | null {\n if (value == null) {\n return null\n }\n const selector = `[role=option][data-value=\"${CSS.escape(value)}\"]`\n return query(domEls.content(ctx), selector)\n}\n\nexport function focusInputEl(ctx: ComboboxScope): void {\n const inputEl = domEls.input(ctx)\n if (ctx.isActiveElement(inputEl)) {\n return\n }\n inputEl?.focus({preventScroll: true})\n}\n\nexport function focusTriggerEl(ctx: ComboboxScope): void {\n const triggerEl = domEls.trigger(ctx)\n if (ctx.isActiveElement(triggerEl)) {\n return\n }\n triggerEl?.focus({preventScroll: true})\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n type CollectionItem,\n ListCollection,\n type ListCollectionOptions,\n} from \"@qualcomm-ui/utils/collection\"\n\nexport const comboboxCollection = <T extends CollectionItem = CollectionItem>(\n options: ListCollectionOptions<T>,\n): ListCollection<T> => {\n return new ListCollection<T>(options)\n}\n\nexport const emptyCollection = <\n T extends CollectionItem = CollectionItem,\n>(): ListCollection<T> => {\n return new ListCollection<T>({items: []})\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {ariaHidden} from \"@qualcomm-ui/dom/aria-hidden\"\nimport {trackDismissableElement} from \"@qualcomm-ui/dom/dismissable\"\nimport {getPlacement, type Placement} from \"@qualcomm-ui/dom/floating-ui\"\nimport {trackFocusVisible} from \"@qualcomm-ui/dom/focus-visible\"\nimport {\n nextTick,\n observeAttributes,\n raf,\n scrollIntoView,\n setCaretToEnd,\n} from \"@qualcomm-ui/dom/query\"\nimport {addOrRemove, remove} from \"@qualcomm-ui/utils/array\"\nimport {isEqual} from \"@qualcomm-ui/utils/equal\"\nimport {match} from \"@qualcomm-ui/utils/functions\"\nimport {isBoolean} from \"@qualcomm-ui/utils/guard\"\nimport {\n createChoose,\n createGuards,\n createMachine,\n type GuardFn,\n type MachineConfig,\n} from \"@qualcomm-ui/utils/machine\"\n\nimport {emptyCollection} from \"./combobox.collection\"\nimport type {ComboboxOpenChangeReason, ComboboxSchema} from \"./combobox.types\"\nimport {domEls, focusInputEl, focusTriggerEl, getItemEl} from \"./internal\"\n\nconst {and, not} = createGuards<ComboboxSchema>()\n\nexport const comboboxMachine: MachineConfig<ComboboxSchema> =\n createMachine<ComboboxSchema>({\n actions: {\n autofillInputValue({computed, context, event, prop, scope}) {\n const inputEl = domEls.input(scope)\n const collection = prop(\"collection\")\n if (!computed(\"autoComplete\") || !inputEl || !event.keypress) {\n return\n }\n const valueText = collection.stringify(context.get(\"highlightedValue\"))\n raf(() => {\n inputEl.value = valueText || context.get(\"inputValue\")\n })\n },\n clearHighlightedValue({context}) {\n context.set(\"highlightedValue\", null)\n },\n clearInputValue({context}) {\n context.set(\"inputValue\", \"\")\n },\n clearItem(params) {\n const {context, event, flush, prop} = params\n if (event.value == null) {\n return\n }\n flush(() => {\n const nextValue = remove(context.get(\"value\"), event.value)\n context.set(\"value\", nextValue)\n\n // set input value\n const inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: prop(\"collection\").stringifyMany(nextValue),\n })\n context.set(\"inputValue\", inputValue)\n })\n },\n clearSelectedItems(params) {\n const {context, flush, prop} = params\n flush(() => {\n context.set(\"value\", [])\n\n // set input value\n const inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: prop(\"collection\").stringifyMany([]),\n })\n context.set(\"inputValue\", inputValue)\n })\n },\n highlightFirstItem({context, prop, scope}) {\n const exec = domEls.content(scope) ? queueMicrotask : raf\n exec(() => {\n const value = prop(\"collection\").firstValue\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n })\n },\n highlightFirstItemIfNeeded({action, computed}) {\n if (!computed(\"autoHighlight\")) {\n return\n }\n action([\"highlightFirstItem\"])\n },\n highlightFirstOrSelectedItem({computed, context, prop}) {\n raf(() => {\n let value: string | null = null\n if (computed(\"hasSelectedItems\")) {\n value = prop(\"collection\").sort(context.get(\"value\"))[0]\n } else {\n value = prop(\"collection\").firstValue\n }\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n })\n },\n highlightFirstSelectedItem({context, prop}) {\n raf(() => {\n const [value] = prop(\"collection\").sort(context.get(\"value\"))\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n })\n },\n highlightLastItem({context, prop, scope}) {\n const exec = domEls.content(scope) ? queueMicrotask : raf\n exec(() => {\n const value = prop(\"collection\").lastValue\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n })\n },\n highlightLastOrSelectedItem({computed, context, prop}) {\n raf(() => {\n const collection = prop(\"collection\")\n let value: string | null = null\n if (computed(\"hasSelectedItems\")) {\n value = collection.sort(context.get(\"value\"))[0]\n } else {\n value = collection.lastValue\n }\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n })\n },\n highlightNextItem({context, prop}) {\n let value: string | null = null\n const highlightedValue = context.get(\"highlightedValue\")\n const collection = prop(\"collection\")\n if (highlightedValue) {\n value = collection.getNextValue(highlightedValue)\n if (!value && prop(\"loopFocus\")) {\n value = collection.firstValue\n }\n } else {\n value = collection.firstValue\n }\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n },\n highlightPrevItem({context, prop}) {\n let value: string | null = null\n const highlightedValue = context.get(\"highlightedValue\")\n const collection = prop(\"collection\")\n if (highlightedValue) {\n value = collection.getPreviousValue(highlightedValue)\n if (!value && prop(\"loopFocus\")) {\n value = collection.lastValue\n }\n } else {\n value = collection.lastValue\n }\n if (value) {\n context.set(\"highlightedValue\", value)\n }\n },\n invokeOnClose({event, prop}) {\n const reason = getOpenChangeReason(event)\n prop(\"onOpenChange\")?.({open: false, reason})\n },\n invokeOnOpen({event, prop}) {\n const reason = getOpenChangeReason(event)\n prop(\"onOpenChange\")?.({open: true, reason})\n },\n reposition({context, event, prop, scope}) {\n const controlEl = () => domEls.control(scope)\n const positionerEl = () => domEls.positioner(scope)\n getPlacement(controlEl, positionerEl, {\n ...prop(\"positioning\"),\n ...event.options,\n defer: true,\n listeners: false,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement)\n },\n })\n },\n revertInputValue({computed, context, prop}) {\n const selectionBehavior = prop(\"selectionBehavior\")\n // Without this, all items briefly render as the text input filter is\n // removed. This creates a noticeable jump as the content expands briefly\n // before it closes.\n raf(() => {\n const inputValue = match(selectionBehavior, {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: computed(\"hasSelectedItems\")\n ? computed(\"valueAsString\")\n : \"\",\n })\n context.set(\"inputValue\", inputValue)\n })\n },\n scrollContentToTop({prop, refs, scope}) {\n const scrollToIndexFn = refs.get(\"scrollToIndexFn\")\n if (scrollToIndexFn) {\n const firstValue = prop(\"collection\").firstValue\n scrollToIndexFn({\n getElement: () => getItemEl(scope, firstValue),\n immediate: true,\n index: 0,\n })\n } else {\n const contentEl = domEls.content(scope)\n if (!contentEl) {\n return\n }\n contentEl.scrollTop = 0\n }\n },\n scrollToHighlightedItem({context, prop, refs, scope}) {\n nextTick(() => {\n const highlightedValue = context.get(\"highlightedValue\")\n if (highlightedValue == null) {\n return\n }\n\n const itemEl = getItemEl(scope, highlightedValue)\n const contentEl = domEls.content(scope)\n\n const scrollToIndexFn = refs.get(\"scrollToIndexFn\")\n if (scrollToIndexFn) {\n const highlightedIndex =\n prop(\"collection\").indexOf(highlightedValue)\n scrollToIndexFn({\n getElement: () => getItemEl(scope, highlightedValue),\n immediate: true,\n index: highlightedIndex,\n })\n return\n }\n\n scrollIntoView(itemEl, {block: \"nearest\", rootEl: contentEl})\n })\n },\n selectHighlightedItem(params) {\n const {context, prop} = params\n const collection = prop(\"collection\")\n\n // check if item is valid\n const highlightedValue = context.get(\"highlightedValue\")\n if (!highlightedValue || !collection.has(highlightedValue)) {\n return\n }\n\n // select item\n const nextValue = prop(\"multiple\")\n ? addOrRemove(context.get(\"value\"), highlightedValue)\n : [highlightedValue]\n prop(\"onSelect\")?.({itemValue: highlightedValue, value: nextValue})\n context.set(\"value\", nextValue)\n\n // set input value\n const inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: collection.stringifyMany(nextValue),\n })\n context.set(\"inputValue\", inputValue)\n },\n selectItem(params) {\n const {context, event, flush, prop} = params\n if (event.value == null) {\n return\n }\n flush(() => {\n const nextValue = prop(\"multiple\")\n ? addOrRemove(context.get(\"value\"), event.value)\n : [event.value]\n prop(\"onSelect\")?.({itemValue: event.value, value: nextValue})\n context.set(\"value\", nextValue)\n\n // set input value\n const inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: prop(\"collection\").stringifyMany(nextValue),\n })\n context.set(\"inputValue\", inputValue)\n })\n },\n setFinalFocus({scope}) {\n raf(() => {\n const triggerEl = domEls.trigger(scope)\n if (triggerEl?.dataset.focusable == null) {\n focusInputEl(scope)\n } else {\n focusTriggerEl(scope)\n }\n })\n },\n setHighlightedValue({context, event}) {\n if (event.value == null) {\n return\n }\n context.set(\"highlightedValue\", event.value)\n },\n setInitialFocus({scope}) {\n raf(() => {\n focusInputEl(scope)\n })\n },\n setInputValue({context, event}) {\n context.set(\"inputValue\", event.value)\n },\n setValue(params) {\n const {context, event, flush, prop} = params\n flush(() => {\n context.set(\"value\", event.value)\n\n // set input value\n const inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: prop(\"collection\").stringifyMany(event.value),\n })\n context.set(\"inputValue\", inputValue)\n })\n },\n syncHighlightedItem({context, prop}) {\n const item = prop(\"collection\").find(context.get(\"highlightedValue\"))\n context.set(\"highlightedItem\", item, {})\n },\n syncInputFocus({scope, state}) {\n const input = domEls.input(scope)\n if (!input) {\n return\n }\n if (\n input.ownerDocument.activeElement === input &&\n state.get() !== \"focused\"\n ) {\n state.set(\"focused\")\n }\n },\n syncInputValue({context, event, scope}) {\n const inputEl = domEls.input(scope)\n\n if (!inputEl) {\n return\n }\n inputEl.value = context.get(\"inputValue\")\n\n queueMicrotask(() => {\n if (event.current().type === \"INPUT.CHANGE\") {\n return\n }\n setCaretToEnd(inputEl)\n })\n },\n syncSelectedItems(params) {\n queueMicrotask(() => {\n const {context, prop} = params\n const collection = prop(\"collection\")\n const value = context.get(\"value\")\n\n // set selected items (based on value)\n const selectedItems = value.map((v) => {\n const item = context\n .get(\"selectedItems\")\n .find((item) => collection.getItemValue(item) === v)\n return item || collection.find(v)\n })\n context.set(\"selectedItems\", selectedItems)\n\n // set input value\n const inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: context.get(\"inputValue\"),\n replace: collection.stringifyMany(value),\n })\n context.set(\"inputValue\", inputValue)\n })\n },\n toggleVisibility({event, prop, send}) {\n send({\n previousEvent: event,\n type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\",\n })\n },\n },\n\n computed: {\n autoComplete: ({prop}) => prop(\"inputBehavior\") === \"autocomplete\",\n autoHighlight: ({prop}) => prop(\"inputBehavior\") === \"autohighlight\",\n hasSelectedItems: ({context}) => context.get(\"value\").length > 0,\n isCustomValue: ({computed, context}) =>\n context.get(\"inputValue\") !== computed(\"valueAsString\"),\n isInputValueEmpty: ({context}) => context.get(\"inputValue\").length === 0,\n isInteractive: ({prop}) => !(prop(\"readOnly\") || prop(\"disabled\")),\n valueAsString: ({context, prop}) =>\n prop(\"collection\").stringifyItems(context.get(\"selectedItems\")),\n },\n\n context({bindable, getContext, getEvent, prop}) {\n return {\n currentPlacement: bindable<Placement | undefined>(() => ({\n defaultValue: undefined,\n })),\n highlightedItem: bindable<string | null>(() => {\n const highlightedValue = prop(\"highlightedValue\")\n const highlightedItem = prop(\"collection\").find(highlightedValue)\n return {defaultValue: highlightedItem}\n }),\n highlightedValue: bindable<string | null>(() => ({\n defaultValue: prop(\"defaultHighlightedValue\") || null,\n onChange(value) {\n const item = prop(\"collection\").find(value)\n prop(\"onHighlightChange\")?.({\n highlightedItem: item,\n highlightedValue: value,\n })\n },\n value: prop(\"highlightedValue\"),\n })),\n inputValue: bindable<string>(() => {\n let inputValue = prop(\"inputValue\") || prop(\"defaultInputValue\") || \"\"\n const value = prop(\"value\") || prop(\"defaultValue\") || []\n\n if (!inputValue.trim() && !prop(\"multiple\")) {\n const valueAsString = prop(\"collection\").stringifyMany(value)\n inputValue = match(prop(\"selectionBehavior\"), {\n clear: \"\",\n preserve: inputValue || valueAsString,\n replace: valueAsString,\n })\n }\n\n return {\n defaultValue: inputValue,\n onChange(value) {\n const event = getEvent()\n const reason = (event.previousEvent || event).src\n prop(\"onInputValueChange\")?.({inputValue: value, reason})\n },\n value: prop(\"inputValue\"),\n }\n }),\n selectedItems: bindable<string[]>(() => {\n const value = prop(\"value\") || prop(\"defaultValue\") || []\n const selectedItems = prop(\"collection\").findMany(value)\n return {defaultValue: selectedItems}\n }),\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n hash(value) {\n return value.join(\",\")\n },\n isEqual,\n onChange(value) {\n const context = getContext()\n const prevSelectedItems = context.get(\"selectedItems\")\n const collection = prop(\"collection\")\n\n const nextItems: any[] = value.map((v: string) => {\n const item = prevSelectedItems.find(\n (item: any) => collection.getItemValue(item) === v,\n )\n return item || collection.find(v)\n })\n\n context.set(\"selectedItems\", nextItems)\n\n prop(\"onValueChange\")?.({items: nextItems, value})\n },\n value: prop(\"value\"),\n })),\n }\n },\n\n effects: {\n hideOtherElements({scope}) {\n return ariaHidden([\n domEls.input(scope),\n domEls.content(scope),\n domEls.trigger(scope),\n domEls.clearTrigger(scope),\n ])\n },\n scrollToHighlightedItem({context, event, prop, refs, scope}) {\n const inputEl = domEls.input(scope)\n\n const cleanups: VoidFunction[] = []\n\n const exec = (immediate: boolean) => {\n const pointer = event.current().type.includes(\"POINTER\")\n const highlightedValue = context.get(\"highlightedValue\")\n if (pointer || !highlightedValue) {\n return\n }\n\n const contentEl = domEls.content(scope)\n\n const scrollToIndexFn = refs.get(\"scrollToIndexFn\")\n if (scrollToIndexFn) {\n const highlightedIndex =\n prop(\"collection\").indexOf(highlightedValue)\n scrollToIndexFn({\n getElement: () => getItemEl(scope, highlightedValue),\n immediate,\n index: highlightedIndex,\n })\n return\n }\n\n const itemEl = getItemEl(scope, highlightedValue)\n const raf_cleanup = raf(() => {\n scrollIntoView(itemEl, {block: \"nearest\", rootEl: contentEl})\n })\n cleanups.push(raf_cleanup)\n }\n\n const rafCleanup = raf(() => exec(true))\n cleanups.push(rafCleanup)\n\n const observerCleanup = observeAttributes(inputEl, {\n attributes: [\"aria-activedescendant\"],\n callback: () => exec(false),\n })\n cleanups.push(observerCleanup)\n\n return () => {\n cleanups.forEach((cleanup) => cleanup())\n }\n },\n trackDismissableLayer({prop, scope, send}) {\n if (prop(\"disableLayer\")) {\n return\n }\n const contentEl = () => domEls.content(scope)\n return trackDismissableElement(contentEl, {\n defer: true,\n exclude: () => [\n domEls.input(scope),\n domEls.trigger(scope),\n domEls.clearTrigger(scope),\n ],\n onDismiss() {\n send({\n restoreFocus: false,\n src: \"interact-outside\",\n type: \"LAYER.INTERACT_OUTSIDE\",\n })\n },\n onEscapeKeyDown(event) {\n event.preventDefault()\n event.stopPropagation()\n send({src: \"escape-key\", type: \"LAYER.ESCAPE\"})\n },\n onFocusOutside: prop(\"onFocusOutside\"),\n onInteractOutside: prop(\"onInteractOutside\"),\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n type: \"listbox\",\n })\n },\n trackFocusVisible({scope}) {\n return trackFocusVisible({root: scope.getRootNode?.()})\n },\n trackPlacement({context, prop, scope}) {\n const anchorEl = () => domEls.control(scope) || domEls.trigger(scope)\n const positionerEl = () => domEls.positioner(scope)\n\n context.set(\"currentPlacement\", prop(\"positioning\").placement)\n return getPlacement(anchorEl, positionerEl, {\n ...prop(\"positioning\"),\n defer: true,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement)\n },\n })\n },\n },\n\n guards: {\n allowCustomValue: ({prop}) => !!prop(\"allowCustomValue\"),\n autoComplete: ({computed, prop}) =>\n computed(\"autoComplete\") && !prop(\"multiple\"),\n autoFocus: ({prop}) => !!prop(\"autoFocus\"),\n autoHighlight: ({computed}) => computed(\"autoHighlight\"),\n closeOnSelect: ({prop}) => !!prop(\"closeOnSelect\"),\n hasHighlightedItem: ({context}) =>\n context.get(\"highlightedValue\") != null,\n isChangeEvent: ({event}) => event.previousEvent?.type === \"INPUT.CHANGE\",\n isCustomValue: ({computed}) => computed(\"isCustomValue\"),\n isFirstItemHighlighted: ({context, prop}) =>\n prop(\"collection\").firstValue === context.get(\"highlightedValue\"),\n isHighlightedItemRemoved: ({context, prop}) =>\n !prop(\"collection\").has(context.get(\"highlightedValue\")),\n isInputValueEmpty: ({computed}) => computed(\"isInputValueEmpty\"),\n isLastItemHighlighted: ({context, prop}) =>\n prop(\"collection\").lastValue === context.get(\"highlightedValue\"),\n isOpenControlled: ({prop}) => prop(\"open\") != null,\n openOnChange: ({context, prop}) => {\n const openOnChange = prop(\"openOnChange\")\n if (isBoolean(openOnChange)) {\n return openOnChange\n }\n return !!openOnChange?.({inputValue: context.get(\"inputValue\")})\n },\n restoreFocus: ({event}) =>\n event.restoreFocus == null ? true : !!event.restoreFocus,\n },\n\n ids: ({bindableId, ids}) => {\n return {\n clearTrigger: bindableId(ids?.clearTrigger),\n content: bindableId(ids?.content),\n control: bindableId(ids?.control),\n errorText: bindableId(ids?.errorText),\n hint: bindableId(ids?.hint),\n input: bindableId(ids?.input),\n label: bindableId(ids?.label),\n positioner: bindableId(ids?.positioner),\n root: bindableId(ids?.root),\n trigger: bindableId(ids?.trigger),\n }\n },\n\n initialState({prop}) {\n const open = prop(\"open\") || prop(\"defaultOpen\")\n return open ? \"suggesting\" : \"idle\"\n },\n\n on: {\n \"HIGHLIGHTED_VALUE.CLEAR\": {\n actions: [\"clearHighlightedValue\"],\n },\n \"HIGHLIGHTED_VALUE.SET\": {\n actions: [\"setHighlightedValue\"],\n },\n \"INPUT_VALUE.SET\": {\n actions: [\"setInputValue\"],\n },\n \"ITEM.CLEAR\": {\n actions: [\"clearItem\"],\n },\n \"ITEM.SELECT\": {\n actions: [\"selectItem\"],\n },\n \"POSITIONING.SET\": {\n actions: [\"reposition\"],\n },\n \"SELECTED_ITEMS.SYNC\": {\n actions: [\"syncSelectedItems\"],\n },\n \"VALUE.SET\": {\n actions: [\"setValue\"],\n },\n },\n\n onInit: {\n actions: [\n createChoose<ComboboxSchema>([\n {\n actions: [\"setInitialFocus\"],\n guard: \"autoFocus\",\n },\n ]) as any,\n \"syncInputFocus\",\n ],\n effects: [\"trackFocusVisible\"],\n },\n\n props({props}) {\n return {\n allowCustomValue: false,\n alwaysSubmitOnEnter: false,\n closeOnSelect: !props.multiple,\n collection: props.collection || emptyCollection(),\n composite: true,\n defaultInputValue: \"\",\n defaultValue: [],\n inputBehavior: \"none\",\n loopFocus: true,\n openOnChange: true,\n openOnClick: false,\n openOnKeyPress: true,\n selectionBehavior: props.multiple ? \"clear\" : \"replace\",\n ...props,\n positioning: {\n gutter: 2,\n placement: \"bottom-start\",\n sameWidth: true,\n ...props.positioning,\n },\n translations: {\n clearTriggerLabel: \"Clear value\",\n triggerLabel: \"Toggle suggestions\",\n ...props.translations,\n },\n }\n },\n\n refs: ({prop}) => {\n return {\n scrollToIndexFn: prop(\"scrollToIndexFn\"),\n }\n },\n\n states: {\n focused: {\n entry: [\"scrollContentToTop\", \"clearHighlightedValue\"],\n on: {\n \"CONTROLLED.OPEN\": [\n {\n guard: \"isChangeEvent\",\n target: \"suggesting\",\n },\n {\n target: \"interacting\",\n },\n ],\n \"INPUT.ARROW_DOWN\": [\n // == group 1 ==\n {\n actions: [\"invokeOnOpen\"],\n guard: and(\"isOpenControlled\", \"autoComplete\"),\n },\n {\n actions: [\"invokeOnOpen\"],\n guard: \"autoComplete\",\n target: \"interacting\",\n },\n // == group 2 ==\n {\n actions: [\"highlightFirstOrSelectedItem\", \"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"highlightFirstOrSelectedItem\", \"invokeOnOpen\"],\n target: \"interacting\",\n },\n ],\n \"INPUT.ARROW_UP\": [\n // == group 1 ==\n {\n actions: [\"invokeOnOpen\"],\n guard: \"autoComplete\",\n target: \"interacting\",\n },\n {\n actions: [\"invokeOnOpen\"],\n guard: \"autoComplete\",\n target: \"interacting\",\n },\n // == group 2 ==\n {\n actions: [\"highlightLastOrSelectedItem\", \"invokeOnOpen\"],\n target: \"interacting\",\n },\n {\n actions: [\"highlightLastOrSelectedItem\", \"invokeOnOpen\"],\n target: \"interacting\",\n },\n ],\n \"INPUT.BLUR\": {\n target: \"idle\",\n },\n \"INPUT.CHANGE\": [\n {\n actions: [\n \"setInputValue\",\n \"invokeOnOpen\",\n \"highlightFirstItemIfNeeded\",\n ],\n guard: and(\"isOpenControlled\", \"openOnChange\"),\n },\n {\n actions: [\n \"setInputValue\",\n \"invokeOnOpen\",\n \"highlightFirstItemIfNeeded\",\n ],\n guard: \"openOnChange\",\n target: \"suggesting\",\n },\n {\n actions: [\"setInputValue\"],\n },\n ],\n \"INPUT.CLICK\": [\n {\n actions: [\"highlightFirstSelectedItem\", \"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"highlightFirstSelectedItem\", \"invokeOnOpen\"],\n target: \"interacting\",\n },\n ],\n \"INPUT.ESCAPE\": {\n actions: [\"revertInputValue\"],\n guard: and(\"isCustomValue\", not(\"allowCustomValue\")),\n },\n \"LAYER.INTERACT_OUTSIDE\": {\n target: \"idle\",\n },\n OPEN: [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnOpen\"],\n target: \"interacting\",\n },\n ],\n \"TRIGGER.CLICK\": [\n {\n actions: [\n \"setInitialFocus\",\n \"highlightFirstSelectedItem\",\n \"invokeOnOpen\",\n ],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"setInitialFocus\",\n \"highlightFirstSelectedItem\",\n \"invokeOnOpen\",\n ],\n target: \"interacting\",\n },\n ],\n \"VALUE.CLEAR\": {\n actions: [\"clearInputValue\", \"clearSelectedItems\"],\n },\n },\n tags: [\"focused\", \"closed\"],\n },\n\n idle: {\n entry: [\"scrollContentToTop\", \"clearHighlightedValue\"],\n on: {\n \"CONTROLLED.OPEN\": {\n target: \"interacting\",\n },\n \"INPUT.CLICK\": [\n {\n actions: [\"highlightFirstSelectedItem\", \"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"highlightFirstSelectedItem\", \"invokeOnOpen\"],\n target: \"interacting\",\n },\n ],\n \"INPUT.FOCUS\": {\n target: \"focused\",\n },\n OPEN: [\n {\n actions: [\"invokeOnOpen\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnOpen\"],\n target: \"interacting\",\n },\n ],\n \"TRIGGER.CLICK\": [\n {\n actions: [\n \"setInitialFocus\",\n \"highlightFirstSelectedItem\",\n \"invokeOnOpen\",\n ],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"setInitialFocus\",\n \"highlightFirstSelectedItem\",\n \"invokeOnOpen\",\n ],\n target: \"interacting\",\n },\n ],\n \"VALUE.CLEAR\": {\n actions: [\n \"clearInputValue\",\n \"clearSelectedItems\",\n \"setInitialFocus\",\n ],\n target: \"focused\",\n },\n },\n tags: [\"idle\", \"closed\"],\n },\n\n interacting: {\n effects: [\n \"scrollToHighlightedItem\",\n \"trackDismissableLayer\",\n \"trackPlacement\",\n \"hideOtherElements\",\n ],\n entry: [\"setInitialFocus\"],\n on: {\n CHILDREN_CHANGE: [\n {\n actions: [\"clearHighlightedValue\"],\n guard: \"isHighlightedItemRemoved\",\n },\n {\n actions: [\"scrollToHighlightedItem\"],\n },\n ],\n CLOSE: [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\", \"setFinalFocus\"],\n target: \"focused\",\n },\n ],\n \"CONTROLLED.CLOSE\": [\n {\n actions: [\"setFinalFocus\"],\n guard: \"restoreFocus\",\n target: \"focused\",\n },\n {\n target: \"idle\",\n },\n ],\n \"INPUT.ARROW_DOWN\": [\n {\n actions: [\"clearHighlightedValue\", \"scrollContentToTop\"],\n guard: and(\"autoComplete\", \"isLastItemHighlighted\"),\n },\n {\n actions: [\"highlightNextItem\"],\n },\n ],\n \"INPUT.ARROW_UP\": [\n {\n actions: [\"clearHighlightedValue\"],\n guard: and(\"autoComplete\", \"isFirstItemHighlighted\"),\n },\n {\n actions: [\"highlightPrevItem\"],\n },\n ],\n \"INPUT.CHANGE\": [\n {\n actions: [\"setInputValue\"],\n guard: \"autoComplete\",\n target: \"suggesting\",\n },\n {\n actions: [\"clearHighlightedValue\", \"setInputValue\"],\n target: \"suggesting\",\n },\n ],\n \"INPUT.END\": {\n actions: [\"highlightLastItem\"],\n },\n \"INPUT.ENTER\": [\n // == group 1 ==\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\n \"isOpenControlled\",\n // TODO: fix and type\n \"isCustomValue\" as keyof GuardFn<ComboboxSchema>,\n not(\"hasHighlightedItem\"),\n not(\"allowCustomValue\"),\n ),\n },\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\n \"isCustomValue\",\n not(\"hasHighlightedItem\"),\n not(\"allowCustomValue\"),\n ),\n target: \"focused\",\n },\n // == group 2 ==\n {\n actions: [\"selectHighlightedItem\", \"invokeOnClose\"],\n guard: and(\"isOpenControlled\", \"closeOnSelect\"),\n },\n {\n actions: [\n \"selectHighlightedItem\",\n \"invokeOnClose\",\n \"setFinalFocus\",\n ],\n guard: \"closeOnSelect\",\n target: \"focused\",\n },\n {\n actions: [\"selectHighlightedItem\"],\n },\n ],\n \"INPUT.HOME\": {\n actions: [\"highlightFirstItem\"],\n },\n \"ITEM.CLICK\": [\n {\n actions: [\"selectItem\", \"invokeOnClose\"],\n guard: and(\"isOpenControlled\", \"closeOnSelect\"),\n },\n {\n actions: [\"selectItem\", \"invokeOnClose\", \"setFinalFocus\"],\n guard: \"closeOnSelect\",\n target: \"focused\",\n },\n {\n actions: [\"selectItem\"],\n },\n ],\n \"ITEM.POINTER_LEAVE\": {\n actions: [\"clearHighlightedValue\"],\n },\n \"ITEM.POINTER_MOVE\": {\n actions: [\"setHighlightedValue\"],\n },\n \"LAYER.ESCAPE\": [\n {\n actions: [\"syncInputValue\", \"invokeOnClose\"],\n guard: and(\"isOpenControlled\", \"autoComplete\"),\n },\n {\n actions: [\"syncInputValue\", \"invokeOnClose\"],\n guard: \"autoComplete\",\n target: \"focused\",\n },\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\", \"setFinalFocus\"],\n target: \"focused\",\n },\n ],\n \"LAYER.INTERACT_OUTSIDE\": [\n // == group 1 ==\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\n \"isOpenControlled\",\n \"isCustomValue\" as keyof GuardFn<ComboboxSchema>,\n not(\"allowCustomValue\"),\n ),\n },\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\"isCustomValue\", not(\"allowCustomValue\")),\n target: \"idle\",\n },\n // == group 2 ==\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\"],\n target: \"idle\",\n },\n ],\n \"TRIGGER.CLICK\": [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\"],\n target: \"focused\",\n },\n ],\n \"VALUE.CLEAR\": [\n {\n actions: [\n \"clearInputValue\",\n \"clearSelectedItems\",\n \"invokeOnClose\",\n ],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"clearInputValue\",\n \"clearSelectedItems\",\n \"invokeOnClose\",\n \"setFinalFocus\",\n ],\n target: \"focused\",\n },\n ],\n },\n tags: [\"open\", \"focused\"],\n },\n\n suggesting: {\n effects: [\n \"trackDismissableLayer\",\n \"scrollToHighlightedItem\",\n \"trackPlacement\",\n \"hideOtherElements\",\n ],\n entry: [\"setInitialFocus\"],\n on: {\n CHILDREN_CHANGE: [\n {\n actions: [\"highlightFirstItem\"],\n guard: \"autoHighlight\",\n },\n {\n actions: [\"clearHighlightedValue\"],\n guard: \"isHighlightedItemRemoved\",\n },\n ],\n CLOSE: [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\", \"setFinalFocus\"],\n target: \"focused\",\n },\n ],\n \"CONTROLLED.CLOSE\": [\n {\n actions: [\"setFinalFocus\"],\n guard: \"restoreFocus\",\n target: \"focused\",\n },\n {\n target: \"idle\",\n },\n ],\n \"INPUT.ARROW_DOWN\": {\n actions: [\"highlightNextItem\"],\n target: \"interacting\",\n },\n \"INPUT.ARROW_UP\": {\n actions: [\"highlightPrevItem\"],\n target: \"interacting\",\n },\n \"INPUT.CHANGE\": {\n actions: [\"setInputValue\"],\n },\n \"INPUT.END\": {\n actions: [\"highlightLastItem\"],\n target: \"interacting\",\n },\n \"INPUT.ENTER\": [\n // == group 1 ==\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\n \"isOpenControlled\",\n \"isCustomValue\" as keyof GuardFn<ComboboxSchema>,\n not(\"hasHighlightedItem\"),\n not(\"allowCustomValue\"),\n ),\n },\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\n \"isCustomValue\",\n not(\"hasHighlightedItem\"),\n not(\"allowCustomValue\"),\n ),\n target: \"focused\",\n },\n // == group 2 ==\n {\n actions: [\"selectHighlightedItem\", \"invokeOnClose\"],\n guard: and(\"isOpenControlled\", \"closeOnSelect\"),\n },\n {\n actions: [\n \"selectHighlightedItem\",\n \"invokeOnClose\",\n \"setFinalFocus\",\n ],\n guard: \"closeOnSelect\",\n target: \"focused\",\n },\n {\n actions: [\"selectHighlightedItem\"],\n },\n ],\n \"INPUT.HOME\": {\n actions: [\"highlightFirstItem\"],\n target: \"interacting\",\n },\n \"ITEM.CLICK\": [\n {\n actions: [\"selectItem\", \"invokeOnClose\"],\n guard: and(\"isOpenControlled\", \"closeOnSelect\"),\n },\n {\n actions: [\"selectItem\", \"invokeOnClose\", \"setFinalFocus\"],\n guard: \"closeOnSelect\",\n target: \"focused\",\n },\n {\n actions: [\"selectItem\"],\n },\n ],\n \"ITEM.POINTER_LEAVE\": {\n actions: [\"clearHighlightedValue\"],\n },\n \"ITEM.POINTER_MOVE\": {\n actions: [\"setHighlightedValue\"],\n target: \"interacting\",\n },\n \"LAYER.ESCAPE\": [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\"],\n target: \"focused\",\n },\n ],\n \"LAYER.INTERACT_OUTSIDE\": [\n // == group 1 ==\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\n \"isOpenControlled\",\n \"isCustomValue\" as keyof GuardFn<ComboboxSchema>,\n not(\"allowCustomValue\"),\n ),\n },\n {\n actions: [\"revertInputValue\", \"invokeOnClose\"],\n guard: and(\"isCustomValue\", not(\"allowCustomValue\")),\n target: \"idle\",\n },\n // == group 2 ==\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\"],\n target: \"idle\",\n },\n ],\n \"TRIGGER.CLICK\": [\n {\n actions: [\"invokeOnClose\"],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\"invokeOnClose\"],\n target: \"focused\",\n },\n ],\n \"VALUE.CLEAR\": [\n {\n actions: [\n \"clearInputValue\",\n \"clearSelectedItems\",\n \"invokeOnClose\",\n ],\n guard: \"isOpenControlled\",\n },\n {\n actions: [\n \"clearInputValue\",\n \"clearSelectedItems\",\n \"invokeOnClose\",\n \"setFinalFocus\",\n ],\n target: \"focused\",\n },\n ],\n },\n tags: [\"open\", \"focused\"],\n },\n },\n\n watch({action, context, prop, send, track}) {\n track([() => context.hash(\"value\")], () => {\n action([\"syncSelectedItems\"])\n })\n track([() => context.get(\"inputValue\")], () => {\n action([\"syncInputValue\"])\n })\n track([() => context.get(\"highlightedValue\")], () => {\n action([\"syncHighlightedItem\", \"autofillInputValue\"])\n })\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"])\n })\n track([() => prop(\"collection\").toString()], () => {\n send({type: \"CHILDREN_CHANGE\"})\n })\n },\n })\n\nfunction getOpenChangeReason(\n event: ComboboxSchema[\"events\"],\n): ComboboxOpenChangeReason | undefined {\n return (event.previousEvent || event).src\n}\n", "// Modified from https://github.com/chakra-ui/zag\n// MIT License\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {createProps, createSplitProps} from \"@qualcomm-ui/utils/object\"\n\nimport type {ComboboxApiProps} from \"./combobox.types\"\n\nexport const comboboxProps: (keyof ComboboxApiProps)[] =\n createProps<ComboboxApiProps>()(\n \"allowCustomValue\",\n \"alwaysSubmitOnEnter\",\n \"autoFocus\",\n \"closeOnSelect\",\n \"collection\",\n \"composite\",\n \"defaultHighlightedValue\",\n \"defaultInputValue\",\n \"defaultOpen\",\n \"defaultValue\",\n \"dir\",\n \"disabled\",\n \"disableLayer\",\n \"form\",\n \"getRootNode\",\n \"highlightedValue\",\n \"ids\",\n \"inputBehavior\",\n \"inputValue\",\n \"invalid\",\n \"loopFocus\",\n \"multiple\",\n \"name\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInputValueChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onSelect\",\n \"onValueChange\",\n \"open\",\n \"openOnChange\",\n \"openOnClick\",\n \"openOnKeyPress\",\n \"placeholder\",\n \"positioning\",\n \"readOnly\",\n \"required\",\n \"scrollToIndexFn\",\n \"selectionBehavior\",\n \"translations\",\n \"value\",\n )\n\nexport const splitComboboxProps: <Props extends ComboboxApiProps>(\n props: Props,\n) => [ComboboxApiProps, Omit<Props, keyof ComboboxApiProps>] =\n createSplitProps<ComboboxApiProps>(comboboxProps)\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["combobox_exports", "__export", "comboboxCollection", "comboboxMachine", "comboboxProps", "createComboboxApi", "emptyCollection", "splitComboboxProps", "__toCommonJS", "import_floating_ui", "import_focus_visible", "import_query", "import_attributes", "import_guard", "import_query", "domIds", "scope", "domEls", "getItemGroupId", "id", "getItemId", "ctx", "getItemGroupLabelId", "getItemEl", "value", "selector", "focusInputEl", "inputEl", "focusTriggerEl", "triggerEl", "createComboboxApi", "machine", "normalize", "computed", "context", "event", "prop", "refs", "scope", "send", "state", "translations", "collection", "disabled", "interactive", "invalid", "required", "readOnly", "open", "focused", "composite", "highlightedValue", "popperStyles", "getItemState", "props", "itemDisabled", "value", "commonBindings", "domEls", "options", "reason", "nextOpen", "fn", "domIds", "getItemId", "openOnKeyPress", "isModifierKey", "keypress", "keymap", "submittable", "hasHighlight", "alwaysSubmit", "key", "exec", "itemState", "id", "getItemGroupLabelId", "getItemGroupId", "keyMap", "import_collection", "comboboxCollection", "options", "emptyCollection", "import_aria_hidden", "import_dismissable", "import_floating_ui", "import_focus_visible", "import_query", "import_array", "import_equal", "import_functions", "import_guard", "import_machine", "and", "not", "comboboxMachine", "computed", "context", "event", "prop", "scope", "inputEl", "domEls", "collection", "valueText", "params", "flush", "nextValue", "inputValue", "value", "action", "highlightedValue", "reason", "getOpenChangeReason", "data", "selectionBehavior", "refs", "scrollToIndexFn", "firstValue", "getItemEl", "contentEl", "itemEl", "highlightedIndex", "focusInputEl", "focusTriggerEl", "item", "state", "input", "selectedItems", "v", "send", "bindable", "getContext", "getEvent", "valueAsString", "prevSelectedItems", "nextItems", "cleanups", "exec", "immediate", "pointer", "raf_cleanup", "rafCleanup", "observerCleanup", "cleanup", "anchorEl", "positionerEl", "openOnChange", "bindableId", "ids", "props", "emptyCollection", "track", "import_object", "comboboxProps", "splitComboboxProps"]
|
|
7
7
|
}
|