{"version":3,"names":["createEffect","createMemo","createSignal","createUniqueId","onCleanup","untrack","INITIAL_LAST_HIGHLIGHT","getFilter","defaultItemEquality","findItemIndex","stringifyAsLabel","ComboboxRootContext","useComboboxRootContext","createChangeEventDetails","createGenericEventDetails","REASONS","createControlledState","useFieldRootContext","FloatingTree","useFloatingParentNodeId","useClick","useDismiss","useFloatingRootContext","useInteractions","useListNavigation","useRole","readOption","useOpenChangeComplete","useFieldControlValidation","useTransitionStatus","VISUALLY_HIDDEN_STYLE","createAutocomplete","AutocompleteRootContext","AutocompleteRootComponent","props","mode","enableInline","m","disabled","readOnly","required","modal","loopFocus","openOnInputClick","highlightItemOnHover","itemToStringLabel","itemToStringValue","isItemEqualToValue","autoHighlightMode","v","autoHighlight","selectedValueSignal","setSelectedValueSignal","ownedWrite","selectedValue","setSelectedValue","next","inlineInputValue","setInlineInputValue","typedValue","setUncontrolledValue","controlled","value","default","defaultValue","fallback","name","state","inputValue","inline","undefined","open","setUncontrolledOpen","Boolean","defaultOpen","mounted","transitionStatus","setMounted","labelId","setLabelId","fallbackId","id","triggerElement","setTriggerElementInternal","inputElement","setInputElementInternal","listElement","setListElementInternal","positionerElement","setPositionerElementInternal","popupSide","setPopupSide","listRef","current","labelsRef","popupRef","inputRef","emptyRef","clearRef","valuesRef","allValuesRef","chipsContainerRef","fieldControlRef","keyboardActiveRef","field","activeIndex","setActiveIndex","selectedIndex","setSelectedIndex","lastHighlightRef","setIndices","options","type","onItemHighlighted","index","activeValue","_primitive","items","filter","locale","isGrouped","query","filteredItems","flatFilteredItems","flatItems","list","flatMap","g","staticCollator","matchesQuery","q","trim","userFilter","contains","visibleItemTokens","Set","visibleItemTick","setVisibleItemTick","setItemVisible","token","visible","had","has","add","delete","t","visibleItemCount","size","hasItems","flat","length","map","item","setOpen","nextOpen","details","onOpenChange","isCanceled","setInputValue","onValueChange","setSelectedValueImpl","scalar","Array","isArray","reason","itemPress","none","clearPress","labelValue","handleSelection","event","passedValue","itemValue","ai","handleUnmount","onOpenChangeComplete","ref","onComplete","floatingRootContext","openValue","reference","floating","status","update","referenceElement","domReferenceElement","floatingElement","role","click","enabled","toggle","dismiss","outsidePressEvent","mouse","touch","listNavigation","virtual","allowEscape","focusItemOnOpen","focusItemOnHover","resetOnPointerLeave","onNavigate","nextActiveIndex","interactions","typed","ahm","count","hasQuery","activeIdx","validation","controlRef","getValue","el","initialFieldValue","present","initial","validityData","initialValue","setDirty","shouldValidateOnChange","commit","setFilled","actions","unmount","actionsRef","contextValue","selectionMode","grid","virtualized","setTriggerElement","setInputElement","setListElement","setPositionerElement","forceMount","sv","registry","idx","autocompleteContextValue","setHiddenInputRef","handleHiddenAutofill","target","currentTarget","nextValue","handleHiddenFocus","focus","hiddenStyle","children","AutocompleteRoot"],"sources":["autocomplete-root.tsx"],"sourcesContent":["import type { JSX } from \"@solidjs/web\";\n/**\n * `<Autocomplete.Root>` — Solid 2 port of Base UI React's\n * `AutocompleteRoot` (~280 LOC) layered on top of the combobox\n * primitives. Autocomplete is the \"input value is the source of truth\"\n * variant of combobox: the `value` prop controls the input text\n * directly, there's no separate selected value, and pressing an item\n * fills the input rather than committing a separate selection.\n *\n * ### Shipped scope\n *\n * - Single free-text autocomplete (`selectionMode: \"none\"`) under the\n *   hood — shares the combobox root-context shape so all combobox\n *   sub-parts (Portal, Positioner, Popup, List, Empty, Group,\n *   GroupLabel, ItemIndicator, Arrow, Clear) work via pass-through\n *   re-exports.\n * - Controlled + uncontrolled `value` (input text) and `open`.\n * - `mode` prop: `\"list\"` (default) / `\"both\"` / `\"inline\"` / `\"none\"`.\n *   `\"list\"` filters; `\"none\"` / `\"inline\"` disable filtering; `\"both\"`\n *   filters against the typed query even while inline-autocomplete\n *   updates the display value.\n * - `autoHighlight`, `openOnInputClick` (default `false`, unlike\n *   combobox where it defaults to `true`), `loopFocus`,\n *   `highlightItemOnHover`, `modal`, `keepHighlight` (prop accepted,\n *   hover-leave clearing mirrors combobox default).\n * - `onValueChange`, `onOpenChange`, `onOpenChangeComplete`,\n *   `onItemHighlighted` callbacks with `BaseUIChangeEventDetails`.\n * - Inline-autocomplete display-value composition: when the user\n *   keyboard-navigates over an item in `\"inline\"` / `\"both\"` modes, the\n *   input's visible value shows that item's label without updating the\n *   committed `value`.\n *\n * ### Deferred (inherits combobox's deferred sub-parts in shape)\n *\n * - Form-validation flow-through.\n * - `useClick` / `useDismiss` `enabled` latch.\n * - Positioning math in happy-dom.\n * - Input-inside-popup layout.\n * - Chips / multi-select / grid / virtualized (deferred sub-parts apply —\n *   autocomplete UX is single-input-only so these are less relevant).\n */\n\nimport {\n\tcreateEffect,\n\tcreateMemo,\n\tcreateSignal,\n\tcreateUniqueId,\n\tonCleanup,\n\tuntrack,\n} from \"solid-js\";\nimport { INITIAL_LAST_HIGHLIGHT } from \"../../combobox/internals/constants\";\nimport { type Filter, getFilter } from \"../../combobox/internals/filter\";\nimport {\n\tdefaultItemEquality,\n\tfindItemIndex,\n\ttype ItemEqualityComparer,\n} from \"../../combobox/internals/item-equality\";\nimport {\n\ttype Group,\n\tstringifyAsLabel,\n} from \"../../combobox/internals/resolve-value-label\";\nimport type { ComboboxSide } from \"../../combobox/positioner/positioner-context\";\nimport {\n\ttype ComboboxRootChangeEventDetails,\n\ttype ComboboxRootChangeEventReason,\n\tComboboxRootContext,\n\ttype ComboboxRootContextValue,\n\ttype ComboboxRootHighlightEventDetails,\n\ttype ComboboxRootHighlightEventReason,\n\tuseComboboxRootContext,\n} from \"../../combobox/root/combobox-root-context\";\nimport {\n\tcreateChangeEventDetails,\n\tcreateGenericEventDetails,\n\tREASONS,\n} from \"../../internals/change-event-details\";\nimport { createControlledState } from \"../../internals/create-controlled-state\";\nimport { useFieldRootContext } from \"../../internals/field-context\";\nimport type { FloatingRootStore } from \"../../internals/floating-ui/components/floating-root-store\";\nimport {\n\tFloatingTree,\n\tuseFloatingParentNodeId,\n} from \"../../internals/floating-ui/components/floating-tree\";\nimport { useClick } from \"../../internals/floating-ui/hooks/use-click\";\nimport { useDismiss } from \"../../internals/floating-ui/hooks/use-dismiss\";\nimport { useFloatingRootContext } from \"../../internals/floating-ui/hooks/use-floating-root-context\";\nimport {\n\ttype UseInteractionsReturn,\n\tuseInteractions,\n} from \"../../internals/floating-ui/hooks/use-interactions\";\nimport { useListNavigation } from \"../../internals/floating-ui/hooks/use-list-navigation\";\nimport { useRole } from \"../../internals/floating-ui/hooks/use-role\";\nimport type { MutableRef } from \"../../internals/floating-ui/types\";\nimport { type MaybeAccessor, readOption } from \"../../internals/maybe-accessor\";\nimport { useOpenChangeComplete } from \"../../internals/popups/use-open-change-complete\";\nimport { useFieldControlValidation } from \"../../internals/use-field-control-validation/use-field-control-validation\";\nimport { useTransitionStatus } from \"../../internals/use-transition-status/use-transition-status\";\nimport { VISUALLY_HIDDEN_STYLE } from \"../../internals/visually-hidden-style\";\nimport { createAutocomplete } from \"../create-autocomplete\";\nimport {\n\tAutocompleteRootContext,\n\ttype AutocompleteRootContextValue,\n} from \"./autocomplete-root-context\";\n\nexport type AutocompleteRootChangeEventReason = ComboboxRootChangeEventReason;\nexport type AutocompleteRootChangeEventDetails = ComboboxRootChangeEventDetails;\nexport type AutocompleteRootHighlightEventReason =\n\tComboboxRootHighlightEventReason;\nexport type AutocompleteRootHighlightEventDetails =\n\tComboboxRootHighlightEventDetails;\n\nimport type { AutocompleteMode } from \"../create-autocomplete\";\n\nexport type { AutocompleteMode };\n\nexport interface AutocompleteRootActions {\n\t/** Force-unmount the autocomplete popup immediately. */\n\tunmount: () => void;\n}\n\nexport interface AutocompleteRootProps<Value = unknown> {\n\t/**\n\t * Items to filter. Either a flat array or an array of groups with\n\t * `items`. When omitted, consumers render `<Autocomplete.Item>`s\n\t * manually and the composite-list path takes over.\n\t */\n\titems?: readonly Value[] | readonly Group<Value>[] | undefined;\n\t/**\n\t * Custom filter function. Pass `null` to disable filtering (show\n\t * everything). When omitted, uses `Intl.Collator`-backed\n\t * case/diacritics-insensitive \"contains\".\n\t */\n\tfilter?:\n\t\t| ((\n\t\t\t\titem: Value,\n\t\t\t\tquery: string,\n\t\t\t\titemToStringLabel?: (item: Value) => string,\n\t\t  ) => boolean)\n\t\t| null\n\t\t| undefined;\n\t/** Locale for the default `Intl.Collator`. */\n\tlocale?: Intl.LocalesArgument | undefined;\n\n\t/**\n\t * Controlled value — the input text (autocomplete has no separate\n\t * selection; the value IS the input text). When provided (resolved\n\t * value not `undefined` — the empty string IS controlled), the consumer\n\t * owns the state — pair with {@link onValueChange}. When omitted, the\n\t * autocomplete manages its own value (seeded from {@link defaultValue}).\n\t */\n\tvalue?: MaybeAccessor<string | undefined>;\n\t/**\n\t * Initial value when uncontrolled. Read once at mount.\n\t * @default \"\"\n\t */\n\tdefaultValue?: MaybeAccessor<string | undefined>;\n\t/**\n\t * Fires when the input value changes. Mirroring React Base UI's\n\t * `AutocompleteRoot`, the uncontrolled value is written BEFORE this\n\t * callback fires — `eventDetails.cancel()` does not roll it back\n\t * (unlike the `open` axis).\n\t */\n\tonValueChange?:\n\t\t| ((value: string, details: AutocompleteRootChangeEventDetails) => void)\n\t\t| undefined;\n\n\t/**\n\t * Controlled open state. When provided (resolved value not\n\t * `undefined`), the consumer owns the state — pair with\n\t * {@link onOpenChange}. When omitted, the autocomplete manages its own\n\t * open state (seeded from {@link defaultOpen}).\n\t */\n\topen?: MaybeAccessor<boolean | undefined>;\n\t/**\n\t * Initial open state when uncontrolled. Read once at mount.\n\t * @default false\n\t */\n\tdefaultOpen?: MaybeAccessor<boolean | undefined>;\n\t/**\n\t * Fires on every open/close request. Calling `eventDetails.cancel()`\n\t * keeps the autocomplete's own (uncontrolled) state unchanged,\n\t * mirroring React Base UI; controlled consumers simply don't update\n\t * their signal.\n\t */\n\tonOpenChange?:\n\t\t| ((open: boolean, details: AutocompleteRootChangeEventDetails) => void)\n\t\t| undefined;\n\t/** Fires once the open/close transition has settled. */\n\tonOpenChangeComplete?: ((open: boolean) => void) | undefined;\n\n\tonItemHighlighted?:\n\t\t| ((\n\t\t\t\tvalue: Value | undefined,\n\t\t\t\tdetails: AutocompleteRootHighlightEventDetails,\n\t\t  ) => void)\n\t\t| undefined;\n\n\t/**\n\t * Behaviour with respect to filtering and inline autocompletion.\n\t * @default \"list\"\n\t */\n\tmode?: AutocompleteMode | undefined;\n\n\tautoHighlight?: boolean | \"always\" | undefined;\n\t/** @default true */\n\thighlightItemOnHover?: boolean | undefined;\n\t/** @default false — autocomplete defaults to opening on typing only. */\n\topenOnInputClick?: boolean | undefined;\n\t/** @default true */\n\tloopFocus?: boolean | undefined;\n\t/** @default false */\n\tkeepHighlight?: boolean | undefined;\n\t/** @default false */\n\tmodal?: boolean | undefined;\n\n\tdisabled?: boolean | undefined;\n\treadOnly?: boolean | undefined;\n\trequired?: boolean | undefined;\n\n\titemToStringValue?: ((item: Value) => string) | undefined;\n\tisItemEqualToValue?: ((item: Value, value: Value) => boolean) | undefined;\n\n\tid?: string | undefined;\n\n\tactionsRef?:\n\t\t| ((actions: AutocompleteRootActions | null) => void)\n\t\t| { current: AutocompleteRootActions | null }\n\t\t| undefined;\n\n\tchildren?: JSX.Element;\n}\n\n// ---------------------------------------------------------------------------\n// Inner — assumes <FloatingTree> is in scope.\n// ---------------------------------------------------------------------------\n\nfunction AutocompleteRootComponent<Value>(\n\tprops: AutocompleteRootProps<Value>,\n): JSX.Element {\n\t// -------------------------------------------------------------------\n\t// Normalised props\n\t// -------------------------------------------------------------------\n\tconst mode = (): AutocompleteMode => props.mode ?? \"list\";\n\tconst enableInline = (): boolean => {\n\t\tconst m = mode();\n\t\treturn m === \"inline\" || m === \"both\";\n\t};\n\n\tconst disabled = (): boolean => props.disabled ?? false;\n\tconst readOnly = (): boolean => props.readOnly ?? false;\n\tconst required = (): boolean => props.required ?? false;\n\tconst modal = (): boolean => props.modal ?? false;\n\tconst loopFocus = (): boolean => props.loopFocus ?? true;\n\tconst openOnInputClick = (): boolean => props.openOnInputClick ?? false;\n\tconst highlightItemOnHover = (): boolean =>\n\t\tprops.highlightItemOnHover ?? true;\n\t// Treat the itemToStringValue prop as the label source (matches React).\n\tconst itemToStringLabel = (): ((item: Value) => string) | undefined =>\n\t\tprops.itemToStringValue;\n\tconst itemToStringValue = (): ((item: Value) => string) | undefined =>\n\t\tprops.itemToStringValue;\n\tconst isItemEqualToValue = (): ItemEqualityComparer<Value, Value> =>\n\t\t(props.isItemEqualToValue as ItemEqualityComparer<Value, Value>) ??\n\t\t(defaultItemEquality as ItemEqualityComparer<Value, Value>);\n\n\tconst autoHighlightMode = (): false | \"input-change\" | \"always\" => {\n\t\tconst v = props.autoHighlight;\n\t\tif (v === \"always\") return \"always\";\n\t\treturn v ? \"input-change\" : false;\n\t};\n\n\t// -------------------------------------------------------------------\n\t// Controlled / uncontrolled signals\n\t// -------------------------------------------------------------------\n\t// Autocomplete has NO separate selection — the input value is it. We\n\t// mirror React's shape by keeping a `selectedValue` signal that's\n\t// always `null` (unused), so downstream combobox parts that read it\n\t// (Clear, etc.) stay correct.\n\tconst [selectedValueSignal, setSelectedValueSignal] =\n\t\tcreateSignal<Value | null>(null, { ownedWrite: true });\n\tconst selectedValue = (): Value | null => selectedValueSignal();\n\tconst setSelectedValue = (next: Value | null): void => {\n\t\tsetSelectedValueSignal(() => next);\n\t};\n\n\t// Inline display value — the temporary input value derived from the\n\t// currently-highlighted item when `enableInline`. When non-empty, this\n\t// takes precedence over the user's typed value for display purposes.\n\tconst [inlineInputValue, setInlineInputValue] = createSignal<string>(\"\", {\n\t\townedWrite: true,\n\t});\n\n\t// Controlled / uncontrolled typed value (Base UI `value` / `defaultValue`\n\t// contract — autocomplete's `value` IS the input text): the `value` prop\n\t// wins while its resolved value is defined (\"\" IS controlled); otherwise\n\t// an internal signal (seeded once from `defaultValue`, mirroring React's\n\t// `useState(defaultValue ?? '')`) backs the state.\n\tconst [typedValue, setUncontrolledValue] = createControlledState<string>({\n\t\tcontrolled: () => readOption(props.value),\n\t\tdefault: () => readOption(props.defaultValue),\n\t\tfallback: \"\",\n\t\tname: \"<Autocomplete.Root>\",\n\t\tstate: \"value\",\n\t});\n\n\t// Composed input value — inline display takes precedence when present.\n\tconst inputValue = createMemo<string>(() => {\n\t\tconst inline = inlineInputValue();\n\t\tif (enableInline() && inline !== \"\") return inline;\n\t\treturn typedValue();\n\t});\n\n\t// When the controlled value updates externally, drop any transient\n\t// inline value to avoid stale display. React gates this on\n\t// `isControlled` — uncontrolled writes clear the inline value inside\n\t// `setInputValue` instead.\n\tcreateEffect(\n\t\t() => ({\n\t\t\tv: readOption(props.value),\n\t\t\tcontrolled: readOption(props.value) !== undefined,\n\t\t}),\n\t\t({ controlled }) => {\n\t\t\tif (controlled) setInlineInputValue(\"\");\n\t\t},\n\t);\n\n\t// Controlled / uncontrolled open state (Base UI `open` / `defaultOpen`\n\t// contract).\n\tconst [open, setUncontrolledOpen] = createControlledState<boolean>({\n\t\tcontrolled: () => {\n\t\t\tconst controlled = readOption(props.open);\n\t\t\treturn controlled === undefined ? undefined : Boolean(controlled);\n\t\t},\n\t\tdefault: () => readOption(props.defaultOpen),\n\t\tfallback: false,\n\t\tname: \"<Autocomplete.Root>\",\n\t\tstate: \"open\",\n\t});\n\n\tconst { mounted, transitionStatus, setMounted } = useTransitionStatus(\n\t\topen,\n\t\t() => true,\n\t\t() => false,\n\t);\n\n\t// -------------------------------------------------------------------\n\t// Identity / element slots\n\t// -------------------------------------------------------------------\n\tconst [labelId, setLabelId] = createSignal<string | undefined>(undefined, {\n\t\townedWrite: true,\n\t});\n\t// Base UI's React root auto-generates a stable `useId()` when the consumer\n\t// passes no `id`. Without that, item ids (`${root.id()}-${index}`) collapse\n\t// to the literal `\"undefined-0\"` and the input's `aria-activedescendant`\n\t// points at a nonexistent node — virtual focus / arrow-nav into the list\n\t// silently breaks (e.g. the gitcafe Command palette, which supplies no id).\n\t// Mirror that here with a `createUniqueId()` fallback, stable for the\n\t// lifetime of the root, only used when the consumer omits `id`.\n\tconst fallbackId = createUniqueId();\n\tconst id = (): string | undefined =>\n\t\ttypeof props.id === \"string\" ? props.id : fallbackId;\n\n\tconst [triggerElement, setTriggerElementInternal] =\n\t\tcreateSignal<HTMLElement | null>(null, { ownedWrite: true });\n\tconst [inputElement, setInputElementInternal] =\n\t\tcreateSignal<HTMLInputElement | null>(null, { ownedWrite: true });\n\tconst [listElement, setListElementInternal] =\n\t\tcreateSignal<HTMLElement | null>(null, { ownedWrite: true });\n\tconst [positionerElement, setPositionerElementInternal] =\n\t\tcreateSignal<HTMLElement | null>(null, { ownedWrite: true });\n\tconst [popupSide, setPopupSide] = createSignal<ComboboxSide | null>(null, {\n\t\townedWrite: true,\n\t});\n\n\tconst listRef: MutableRef<Array<HTMLElement | null>> = { current: [] };\n\tconst labelsRef: MutableRef<Array<string | null>> = { current: [] };\n\tconst popupRef: MutableRef<HTMLElement | null> = { current: null };\n\tconst inputRef: MutableRef<HTMLInputElement | null> = { current: null };\n\tconst emptyRef: MutableRef<HTMLElement | null> = { current: null };\n\tconst clearRef: MutableRef<HTMLButtonElement | null> = { current: null };\n\tconst valuesRef: MutableRef<Value[]> = { current: [] };\n\tconst allValuesRef: MutableRef<Value[]> = { current: [] };\n\tconst chipsContainerRef: MutableRef<HTMLDivElement | null> = {\n\t\tcurrent: null,\n\t};\n\tconst fieldControlRef: MutableRef<HTMLElement | null> = { current: null };\n\tconst keyboardActiveRef: MutableRef<boolean> = { current: true };\n\tconst field = useFieldRootContext();\n\n\t// -------------------------------------------------------------------\n\t// Active / selected indices\n\t// -------------------------------------------------------------------\n\tconst [activeIndex, setActiveIndex] = createSignal<number | null>(null, {\n\t\townedWrite: true,\n\t});\n\tconst [selectedIndex, setSelectedIndex] = createSignal<number | null>(null, {\n\t\townedWrite: true,\n\t});\n\tconst lastHighlightRef: MutableRef<{ value: unknown; index: number }> = {\n\t\tcurrent: INITIAL_LAST_HIGHLIGHT,\n\t};\n\n\t// Imperative highlight write. Called from event handlers AND from\n\t// effect-apply scopes (`useListNavigation` onNavigate, post-close\n\t// handleUnmount). Wrap in `untrack` so the inline-mode reads\n\t// (`enableInline()`, `itemToStringLabel()`) don't trip\n\t// `[STRICT_READ_UNTRACKED]`.\n\tconst setIndices = (options: {\n\t\tactiveIndex?: number | null | undefined;\n\t\tselectedIndex?: number | null | undefined;\n\t\ttype?: AutocompleteRootHighlightEventReason | undefined;\n\t}): void =>\n\t\tuntrack(() => {\n\t\t\tif (options.activeIndex !== undefined) {\n\t\t\t\tsetActiveIndex(options.activeIndex);\n\t\t\t}\n\t\t\tif (options.selectedIndex !== undefined) {\n\t\t\t\tsetSelectedIndex(options.selectedIndex);\n\t\t\t}\n\t\t\tconst type: AutocompleteRootHighlightEventReason = options.type ?? \"none\";\n\t\t\tif (options.activeIndex === undefined) return;\n\n\t\t\tif (options.activeIndex === null) {\n\t\t\t\t// Clear inline display when highlight is cleared.\n\t\t\t\tif (enableInline()) {\n\t\t\t\t\tsetInlineInputValue(\"\");\n\t\t\t\t}\n\t\t\t\tif (lastHighlightRef.current !== INITIAL_LAST_HIGHLIGHT) {\n\t\t\t\t\tlastHighlightRef.current = INITIAL_LAST_HIGHLIGHT;\n\t\t\t\t\tprops.onItemHighlighted?.(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tcreateGenericEventDetails(type, undefined, {\n\t\t\t\t\t\t\tindex: -1,\n\t\t\t\t\t\t}) as AutocompleteRootHighlightEventDetails,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst activeValue = valuesRef.current[options.activeIndex] as\n\t\t\t\t\t| Value\n\t\t\t\t\t| undefined;\n\t\t\t\tlastHighlightRef.current = {\n\t\t\t\t\tvalue: activeValue,\n\t\t\t\t\tindex: options.activeIndex,\n\t\t\t\t};\n\t\t\t\t// Inline-autocomplete: reflect the highlighted item's label in\n\t\t\t\t// the visible input — but only when highlight came from the\n\t\t\t\t// keyboard (pointer hover shouldn't overwrite typed text).\n\t\t\t\tif (enableInline() && type !== \"pointer\") {\n\t\t\t\t\tif (activeValue == null) {\n\t\t\t\t\t\tsetInlineInputValue(\"\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetInlineInputValue(\n\t\t\t\t\t\t\tstringifyAsLabel(\n\t\t\t\t\t\t\t\tactiveValue,\n\t\t\t\t\t\t\t\titemToStringLabel() as ((item: unknown) => string) | undefined,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else if (!enableInline()) {\n\t\t\t\t\tsetInlineInputValue(\"\");\n\t\t\t\t}\n\t\t\t\tprops.onItemHighlighted?.(\n\t\t\t\t\tactiveValue,\n\t\t\t\t\tcreateGenericEventDetails(type, undefined, {\n\t\t\t\t\t\tindex: options.activeIndex,\n\t\t\t\t\t}) as AutocompleteRootHighlightEventDetails,\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t// -------------------------------------------------------------------\n\t// Filtering — delegated to the createAutocomplete primitive.\n\t// The primitive owns items, isGrouped, filteredItems, flatFilteredItems,\n\t// and the query derivation. In \"both\" mode the primitive receives the\n\t// typed value (not the inline-overlay value) so the filter runs against\n\t// the actual user input, matching React's behaviour.\n\t// -------------------------------------------------------------------\n\tconst _primitive = createAutocomplete<Value>({\n\t\t// In \"both\" mode filter against the typed value (not the inline overlay).\n\t\tvalue: () => (mode() === \"both\" ? typedValue() : inputValue()),\n\t\topen,\n\t\titems: () => props.items,\n\t\tfilter: () => props.filter,\n\t\tlocale: () => props.locale,\n\t\tmode,\n\t\titemToStringLabel,\n\t\tisItemEqualToValue: () =>\n\t\t\t(props.isItemEqualToValue as\n\t\t\t\t| ItemEqualityComparer<Value, Value>\n\t\t\t\t| undefined) ??\n\t\t\t(defaultItemEquality as ItemEqualityComparer<Value, Value>),\n\t});\n\n\tconst items = _primitive.items;\n\tconst isGrouped = _primitive.isGrouped;\n\tconst query = _primitive.query;\n\tconst filteredItems = _primitive.filteredItems;\n\tconst flatFilteredItems = _primitive.flatFilteredItems;\n\n\tconst flatItems = createMemo<readonly Value[]>(() => {\n\t\tconst list = items();\n\t\tif (!list) return [];\n\t\tif (isGrouped()) {\n\t\t\treturn (list as ReadonlyArray<Group<Value>>).flatMap(\n\t\t\t\t(g) => g.items as Value[],\n\t\t\t);\n\t\t}\n\t\treturn list as readonly Value[];\n\t});\n\n\t// -------------------------------------------------------------------\n\t// Static-children filtering (no `items` prop — the cmdk pattern)\n\t// -------------------------------------------------------------------\n\t// When `items` is omitted the consumer renders `<Autocomplete.Item>`\n\t// children directly, so there is no `flatFilteredItems` to drive\n\t// empty-state / per-item visibility. We filter the registered children\n\t// against the live query here. `mode: \"inline\" | \"none\"` are the static\n\t// modes (Base UI Autocomplete contract: items are never filtered), so\n\t// `matchesQuery` short-circuits to `true` there — every child stays\n\t// visible. Otherwise it uses the same default `Intl.Collator` \"contains\"\n\t// filter as items-mode (honoring a custom `filter` / `filter={null}`).\n\tconst staticCollator = createMemo<Filter>(() =>\n\t\tgetFilter({ locale: props.locale as Intl.LocalesArgument | undefined }),\n\t);\n\tconst matchesQuery = (value: Value): boolean => {\n\t\tconst m = mode();\n\t\tif (m === \"inline\" || m === \"none\") return true;\n\t\tconst q = query().trim();\n\t\tif (q === \"\") return true;\n\t\tconst userFilter = props.filter;\n\t\tif (userFilter === null) return true;\n\t\tif (userFilter !== undefined) {\n\t\t\treturn userFilter(\n\t\t\t\tvalue,\n\t\t\t\tq,\n\t\t\t\titemToStringLabel() as ((item: Value) => string) | undefined,\n\t\t\t);\n\t\t}\n\t\treturn staticCollator().contains(\n\t\t\tvalue,\n\t\t\tq,\n\t\t\titemToStringLabel() as ((item: unknown) => string) | undefined,\n\t\t);\n\t};\n\n\tconst visibleItemTokens = new Set<symbol>();\n\tconst [visibleItemTick, setVisibleItemTick] = createSignal(0, {\n\t\townedWrite: true,\n\t});\n\tconst setItemVisible = (token: symbol, visible: boolean): void => {\n\t\tconst had = visibleItemTokens.has(token);\n\t\tif (visible === had) return;\n\t\tif (visible) visibleItemTokens.add(token);\n\t\telse visibleItemTokens.delete(token);\n\t\tsetVisibleItemTick((t) => t + 1);\n\t};\n\tconst visibleItemCount = createMemo<number>(() => {\n\t\tvisibleItemTick();\n\t\treturn visibleItemTokens.size;\n\t});\n\n\t// Keep `valuesRef` / `listRef` synced with the filtered flat list when\n\t// `items` is supplied. The apply-side `itemToStringLabel()` read is a\n\t// snapshot — `untrack` so it's silent when the effect re-runs as part\n\t// of a parent flush.\n\tcreateEffect(\n\t\t() => ({ hasItems: items() !== undefined, flat: flatFilteredItems() }),\n\t\t({ hasItems, flat }) =>\n\t\t\tuntrack(() => {\n\t\t\t\tif (!hasItems) return;\n\t\t\t\tvaluesRef.current = flat as Value[];\n\t\t\t\tlistRef.current.length = flat.length;\n\t\t\t\tlabelsRef.current = flat.map((item) =>\n\t\t\t\t\tstringifyAsLabel(\n\t\t\t\t\t\titem,\n\t\t\t\t\t\titemToStringLabel() as ((item: unknown) => string) | undefined,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}),\n\t);\n\n\t// -------------------------------------------------------------------\n\t// setOpen / setInputValue / handleSelection\n\t// -------------------------------------------------------------------\n\t// May be invoked from inside an effect-apply scope (e.g. floating-ui's\n\t// onOpenChange / onNavigate). Reads here are snapshots — wrap in\n\t// `untrack` to silence `[STRICT_READ_UNTRACKED]`.\n\t//\n\t// `setOpen` mirrors React's `AriaCombobox.setOpen` change flow: fire\n\t// `onOpenChange` FIRST, honor `details.cancel()`, then write the\n\t// uncontrolled state (a no-op for reads while the `open` prop is\n\t// controlled).\n\tconst setOpen = (\n\t\tnextOpen: boolean,\n\t\tdetails: AutocompleteRootChangeEventDetails,\n\t): void =>\n\t\tuntrack(() => {\n\t\t\tif (open() === nextOpen) return;\n\t\t\tprops.onOpenChange?.(nextOpen, details);\n\t\t\tif (details.isCanceled) return;\n\t\t\tsetUncontrolledOpen(nextOpen);\n\t\t});\n\n\t// Public input-value write. Mirrors React's `AutocompleteRoot`\n\t// `handleValueChange` EXACTLY: clear any transient inline value, write\n\t// the uncontrolled value, THEN fire `onValueChange`. Note Base UI writes\n\t// the internal value before the callback on this axis — `cancel()` does\n\t// not roll the typed value back (unlike `setOpen`).\n\tconst setInputValue = (\n\t\tnext: string,\n\t\tdetails: AutocompleteRootChangeEventDetails,\n\t): void =>\n\t\tuntrack(() => {\n\t\t\tsetInlineInputValue(\"\");\n\t\t\tsetUncontrolledValue(next);\n\t\t\tprops.onValueChange?.(next, details);\n\t\t});\n\n\t// Sub-parts call this via root.setSelectedValue. For autocomplete,\n\t// \"selecting\" an item means filling the input with its label — routed\n\t// through `setInputValue` so the uncontrolled value updates too (React\n\t// routes this through `AriaCombobox.setInputValue` → `handleValueChange`).\n\tconst setSelectedValueImpl = (\n\t\tnext: Value | Value[] | null,\n\t\tdetails: AutocompleteRootChangeEventDetails,\n\t): void =>\n\t\tuntrack(() => {\n\t\t\tconst scalar = Array.isArray(next) ? null : (next as Value | null);\n\t\t\tsetSelectedValue(scalar);\n\t\t\tif (\n\t\t\t\tdetails.reason === REASONS.itemPress ||\n\t\t\t\tdetails.reason === REASONS.none ||\n\t\t\t\tdetails.reason === REASONS.clearPress\n\t\t\t) {\n\t\t\t\tconst labelValue = stringifyAsLabel(\n\t\t\t\t\tscalar,\n\t\t\t\t\titemToStringLabel() as ((item: unknown) => string) | undefined,\n\t\t\t\t);\n\t\t\t\tsetInputValue(labelValue, details);\n\t\t\t}\n\t\t});\n\n\tconst handleSelection = (\n\t\tevent: MouseEvent | PointerEvent | KeyboardEvent,\n\t\tpassedValue?: Value,\n\t): void =>\n\t\tuntrack(() => {\n\t\t\tlet itemValue = passedValue;\n\t\t\tif (itemValue === undefined) {\n\t\t\t\tconst ai = activeIndex();\n\t\t\t\tif (ai === null) return;\n\t\t\t\titemValue = valuesRef.current[ai] as Value;\n\t\t\t}\n\t\t\tconst details = createChangeEventDetails(\n\t\t\t\tREASONS.itemPress,\n\t\t\t\tevent,\n\t\t\t) as AutocompleteRootChangeEventDetails;\n\t\t\tsetSelectedValueImpl(itemValue as Value | null, details);\n\t\t\tsetOpen(false, details);\n\t\t});\n\n\t// -------------------------------------------------------------------\n\t// Post-close\n\t// -------------------------------------------------------------------\n\t// `handleUnmount` and the `onComplete` callback fire from\n\t// `useOpenChangeComplete`'s effect-apply scope. The `props.*` reads are\n\t// snapshots — wrap in `untrack` to silence\n\t// `[STRICT_READ_UNTRACKED]` on the reactive props proxy.\n\tconst handleUnmount = (): void =>\n\t\tuntrack(() => {\n\t\t\tsetMounted(false);\n\t\t\tsetInlineInputValue(\"\");\n\t\t\tprops.onOpenChangeComplete?.(false);\n\t\t\tsetIndices({ activeIndex: null, selectedIndex: null });\n\t\t});\n\n\tuseOpenChangeComplete({\n\t\topen,\n\t\tref: popupRef,\n\t\tonComplete: () =>\n\t\t\tuntrack(() => {\n\t\t\t\tif (!open()) handleUnmount();\n\t\t\t\telse props.onOpenChangeComplete?.(true);\n\t\t\t}),\n\t});\n\n\t// -------------------------------------------------------------------\n\t// Floating-UI\n\t// -------------------------------------------------------------------\n\tconst floatingRootContext: FloatingRootStore = useFloatingRootContext({\n\t\topen: untrack(open),\n\t\tonOpenChange: (nextOpen, details) => {\n\t\t\tsetOpen(nextOpen, details as AutocompleteRootChangeEventDetails);\n\t\t},\n\t});\n\n\tcreateEffect(\n\t\t() => ({\n\t\t\topenValue: open(),\n\t\t\treference: inputElement() ?? triggerElement(),\n\t\t\tfloating: positionerElement(),\n\t\t\tstatus: transitionStatus(),\n\t\t}),\n\t\t({ openValue, reference, floating, status }) =>\n\t\t\tuntrack(() => {\n\t\t\t\tfloatingRootContext.update({\n\t\t\t\t\topen: openValue,\n\t\t\t\t\treferenceElement: reference,\n\t\t\t\t\tdomReferenceElement: reference,\n\t\t\t\t\tfloatingElement: floating,\n\t\t\t\t\ttransitionStatus: status,\n\t\t\t\t});\n\t\t\t}),\n\t);\n\n\tconst role = untrack(() => useRole(floatingRootContext, { role: \"listbox\" }));\n\n\tconst click = untrack(() =>\n\t\tuseClick(floatingRootContext, {\n\t\t\tenabled: () => !readOnly() && !disabled() && openOnInputClick(),\n\t\t\tevent: \"mousedown-only\",\n\t\t\ttoggle: false,\n\t\t}),\n\t);\n\n\tconst dismiss = untrack(() =>\n\t\tuseDismiss(floatingRootContext, {\n\t\t\tenabled: () => !readOnly() && !disabled(),\n\t\t\toutsidePressEvent: {\n\t\t\t\tmouse: \"sloppy\",\n\t\t\t\ttouch: \"intentional\",\n\t\t\t},\n\t\t}),\n\t);\n\n\tconst listNavigation = untrack(() =>\n\t\tuseListNavigation(floatingRootContext, {\n\t\t\tenabled: () => !readOnly() && !disabled(),\n\t\t\tid,\n\t\t\tlistRef,\n\t\t\tactiveIndex,\n\t\t\tselectedIndex,\n\t\t\tvirtual: true,\n\t\t\tloopFocus,\n\t\t\tallowEscape: () => loopFocus() && !autoHighlightMode(),\n\t\t\tfocusItemOnOpen: () => (autoHighlightMode() ? (\"auto\" as const) : false),\n\t\t\tfocusItemOnHover: highlightItemOnHover,\n\t\t\tresetOnPointerLeave: true,\n\t\t\t// onNavigate runs in an effect-apply scope inside `useListNavigation`.\n\t\t\t// Wrap in `untrack` to silence `[STRICT_READ_UNTRACKED]` on the\n\t\t\t// `open()` / `transitionStatus()` snapshot reads.\n\t\t\tonNavigate: (nextActiveIndex, event) =>\n\t\t\t\tuntrack(() => {\n\t\t\t\t\tif (!event && !open()) return;\n\t\t\t\t\tif (transitionStatus() === \"ending\") return;\n\t\t\t\t\tsetIndices({\n\t\t\t\t\t\tactiveIndex: nextActiveIndex,\n\t\t\t\t\t\ttype: event\n\t\t\t\t\t\t\t? keyboardActiveRef.current\n\t\t\t\t\t\t\t\t? \"keyboard\"\n\t\t\t\t\t\t\t\t: \"pointer\"\n\t\t\t\t\t\t\t: \"none\",\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t}),\n\t);\n\n\tconst interactions: UseInteractionsReturn = untrack(() =>\n\t\tuseInteractions([role, click, dismiss, listNavigation]),\n\t);\n\n\t// Auto-highlight on input change. Capture the `query()` and\n\t// `activeIndex()` reads in compute (snapshot) so the apply scope —\n\t// which is unowned/strict-read — doesn't trip\n\t// `[STRICT_READ_UNTRACKED]`.\n\t//\n\t// The navigable item count is mode-dependent: in items-mode it's the\n\t// filtered flat list (`flatFilteredItems().length`); in static-children\n\t// mode (the cmdk pattern, no `items` prop) `flatFilteredItems` is ALWAYS\n\t// empty, so we count the live registered+visible `<Autocomplete.Item>`s\n\t// via `visibleItemCount()`. Using `flatFilteredItems` unconditionally here\n\t// was the static-children nav bug: with an empty flat list the effect\n\t// (a) short-circuited so `autoHighlight=\"always\"` never highlighted item 0\n\t// and (b) — because `activeIndex()` is a dependency — re-ran on every\n\t// keyboard navigation and reset the freshly-set `activeIndex` back to\n\t// `null`, killing arrow-key movement entirely.\n\tcreateEffect(\n\t\t() => {\n\t\t\tconst hasItems = items() !== undefined;\n\t\t\treturn {\n\t\t\t\ttyped: typedValue(),\n\t\t\t\tahm: autoHighlightMode(),\n\t\t\t\tcount: hasItems ? flatFilteredItems().length : visibleItemCount(),\n\t\t\t\thasQuery: query() !== \"\",\n\t\t\t\tactiveIdx: activeIndex(),\n\t\t\t};\n\t\t},\n\t\t({ ahm, count, hasQuery, activeIdx }) =>\n\t\t\tuntrack(() => {\n\t\t\t\tif (!ahm) return;\n\t\t\t\tif (count === 0) {\n\t\t\t\t\tsetActiveIndex(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (ahm === \"always\" || (ahm === \"input-change\" && hasQuery)) {\n\t\t\t\t\tif (activeIdx == null) setIndices({ activeIndex: 0, type: \"none\" });\n\t\t\t\t}\n\t\t\t}),\n\t);\n\n\t// -------------------------------------------------------------------\n\t// Field-context integration\n\t// -------------------------------------------------------------------\n\tconst validation = useFieldControlValidation({\n\t\tvalue: inputValue,\n\t\tid,\n\t\tcontrolRef: fieldControlRef,\n\t\tgetValue: () => inputValue(),\n\t});\n\tcreateEffect(\n\t\t() => inputElement(),\n\t\t(el) => {\n\t\t\tfieldControlRef.current = el as HTMLElement | null;\n\t\t},\n\t);\n\tlet initialFieldValue = untrack(inputValue);\n\tcreateEffect(\n\t\t() => inputValue(),\n\t\t(v) =>\n\t\t\tuntrack(() => {\n\t\t\t\tif (!field.present) return;\n\t\t\t\tif (v === initialFieldValue) return;\n\t\t\t\tinitialFieldValue = v;\n\t\t\t\tconst initial = field.validityData().initialValue;\n\t\t\t\tfield.setDirty(v !== initial);\n\t\t\t\tif (field.shouldValidateOnChange()) {\n\t\t\t\t\tvoid validation.commit(v);\n\t\t\t\t} else {\n\t\t\t\t\tvoid validation.commit(v, true);\n\t\t\t\t}\n\t\t\t}),\n\t);\n\tcreateEffect(\n\t\t() => inputValue(),\n\t\t(v) =>\n\t\t\tuntrack(() => {\n\t\t\t\tif (!field.present) return;\n\t\t\t\tfield.setFilled(v !== \"\");\n\t\t\t}),\n\t);\n\n\t// Imperative actions.\n\tconst actions: AutocompleteRootActions = {\n\t\tunmount: () => setMounted(false),\n\t};\n\t// `actionsRef` is a setup-time wiring contract (like React refs) — read\n\t// once, untracked, so it doesn't trip `[STRICT_READ_UNTRACKED]`.\n\tconst ref = untrack(() => props.actionsRef);\n\tif (typeof ref === \"function\") {\n\t\tref(actions);\n\t\tonCleanup(() => ref(null));\n\t} else if (ref && typeof ref === \"object\") {\n\t\tref.current = actions;\n\t\tonCleanup(() => {\n\t\t\tref.current = null;\n\t\t});\n\t}\n\n\t// -------------------------------------------------------------------\n\t// Context (shape-compatible with Combobox so all combobox sub-parts\n\t// work via re-export).\n\t// -------------------------------------------------------------------\n\tconst contextValue: ComboboxRootContextValue<Value> = {\n\t\tid,\n\t\tlabelId,\n\t\tsetLabelId,\n\t\topen,\n\t\tmounted,\n\t\ttransitionStatus,\n\t\tinputValue,\n\t\tsetInputValue,\n\t\tselectedValue,\n\t\tsetSelectedValue: setSelectedValueImpl,\n\t\tselectionMode: () => \"none\" as const,\n\t\tactiveIndex,\n\t\tselectedIndex,\n\t\tsetIndices,\n\t\tdisabled,\n\t\treadOnly,\n\t\trequired,\n\t\tautoHighlightMode,\n\t\thighlightItemOnHover,\n\t\tmodal,\n\t\tloopFocus,\n\t\topenOnInputClick,\n\t\t// Autocomplete doesn't support grid/virtualized; provide inert accessors\n\t\t// for context-shape parity with combobox.\n\t\tgrid: () => false,\n\t\tvirtualized: () => false,\n\t\titemToStringLabel,\n\t\titemToStringValue,\n\t\tisItemEqualToValue,\n\t\titems,\n\t\tfilteredItems,\n\t\tflatFilteredItems,\n\t\tquery,\n\t\tmatchesQuery,\n\t\tsetItemVisible,\n\t\tvisibleItemCount,\n\t\tlistRef,\n\t\tlabelsRef,\n\t\tpopupRef,\n\t\tinputRef,\n\t\temptyRef,\n\t\tclearRef,\n\t\tvaluesRef,\n\t\tallValuesRef,\n\t\tchipsContainerRef,\n\t\ttriggerElement,\n\t\tsetTriggerElement: setTriggerElementInternal,\n\t\tinputElement,\n\t\tsetInputElement: (el) => {\n\t\t\tinputRef.current = el;\n\t\t\tsetInputElementInternal(el);\n\t\t},\n\t\tlistElement,\n\t\tsetListElement: setListElementInternal,\n\t\tpositionerElement,\n\t\tsetPositionerElement: setPositionerElementInternal,\n\t\tpopupSide,\n\t\tsetPopupSide,\n\t\tsetOpen,\n\t\thandleSelection,\n\t\tforceMount: () => {},\n\t\tfloatingRootContext,\n\t\tinteractions,\n\t\tkeyboardActiveRef,\n\t};\n\n\t// Sync selectedIndex when `selectedValue` changes (unused in\n\t// autocomplete but kept for context-shape parity with combobox).\n\tcreateEffect(\n\t\t() => ({ sv: selectedValue(), list: flatItems() }),\n\t\t({ sv, list }) =>\n\t\t\tuntrack(() => {\n\t\t\t\tif (sv == null) {\n\t\t\t\t\tsetSelectedIndex(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst registry = items() !== undefined ? list : allValuesRef.current;\n\t\t\t\tconst idx = findItemIndex(\n\t\t\t\t\tregistry,\n\t\t\t\t\tsv,\n\t\t\t\t\tisItemEqualToValue() as ItemEqualityComparer<Value, Value>,\n\t\t\t\t);\n\t\t\t\tsetSelectedIndex(idx === -1 ? null : idx);\n\t\t\t}),\n\t);\n\n\tconst autocompleteContextValue: AutocompleteRootContextValue = {\n\t\tmode,\n\t};\n\n\t// -------------------------------------------------------------------\n\t// Browser-autofill hidden control input\n\t// -------------------------------------------------------------------\n\t// Mirrors React's `AriaCombobox` hidden text input: a visually-hidden,\n\t// tab-skipped, `aria-hidden` `<input type=\"text\">` that receives native\n\t// browser-autofill events. When the browser writes a value into it via\n\t// autofill, we forward the value through `setInputValue` so the\n\t// autocomplete's root state (and the visible input) update in lockstep.\n\t// Focus delegation hands focus back to the visible input if an assistive\n\t// technology routes into the hidden control.\n\tconst setHiddenInputRef = (el: HTMLInputElement | null): void => {\n\t\tvalidation.inputRef.current = el;\n\t};\n\n\tfunction handleHiddenAutofill(event: Event): void {\n\t\t// Autocomplete's selection model is `'none'` — the input value IS the\n\t\t// autocomplete value. Mirror React's autofill branch: treat the\n\t\t// autofilled value as a user-typed write and commit through the same\n\t\t// pipeline.\n\t\tconst target = event.currentTarget as HTMLInputElement | null;\n\t\tif (!target) return;\n\t\tconst nextValue = target.value;\n\t\tconst details = createChangeEventDetails(\n\t\t\tREASONS.none,\n\t\t\tevent,\n\t\t) as AutocompleteRootChangeEventDetails;\n\t\tsetInputValue(nextValue, details);\n\t}\n\n\tfunction handleHiddenFocus(): void {\n\t\tconst visible = inputElement() ?? triggerElement();\n\t\t(visible as HTMLElement | null)?.focus();\n\t}\n\n\t// Fresh mutable copy — the base Solid style binding mutates its `prev`\n\t// object when reconciling, which would throw on a frozen / shared source.\n\tconst hiddenStyle = (): JSX.CSSProperties => ({ ...VISUALLY_HIDDEN_STYLE });\n\n\treturn (\n\t\t<ComboboxRootContext\n\t\t\tvalue={contextValue as ComboboxRootContextValue<unknown>}\n\t\t>\n\t\t\t<AutocompleteRootContext value={autocompleteContextValue}>\n\t\t\t\t{props.children}\n\t\t\t\t{/* biome-ignore lint/a11y/noAriaHiddenOnFocusable: tabindex={-1} is intentional — browsers focus this input during autofill, which we detect via onFocus/onInput. aria-hidden hides it from screen readers without blocking that native browser behavior. */}\n\t\t\t\t<input\n\t\t\t\t\tref={setHiddenInputRef}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tid={\n\t\t\t\t\t\ttypeof props.id === \"string\"\n\t\t\t\t\t\t\t? `${props.id}-hidden-input`\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\ttabindex={-1}\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tstyle={hiddenStyle()}\n\t\t\t\t\tdisabled={disabled()}\n\t\t\t\t\trequired={required()}\n\t\t\t\t\treadonly={readOnly()}\n\t\t\t\t\tvalue={inputValue()}\n\t\t\t\t\tonFocus={handleHiddenFocus}\n\t\t\t\t\tonInput={handleHiddenAutofill}\n\t\t\t\t\tonChange={handleHiddenAutofill}\n\t\t\t\t/>\n\t\t\t</AutocompleteRootContext>\n\t\t</ComboboxRootContext>\n\t);\n}\n\n/**\n * Groups all parts of the autocomplete. Doesn't render its own HTML element.\n */\nexport function AutocompleteRoot<Value = unknown>(\n\tprops: AutocompleteRootProps<Value>,\n): JSX.Element {\n\tif (\n\t\tuseComboboxRootContext(true) != null ||\n\t\tuseFloatingParentNodeId() != null\n\t) {\n\t\treturn <AutocompleteRootComponent<Value> {...props} />;\n\t}\n\treturn (\n\t\t<FloatingTree>\n\t\t\t<AutocompleteRootComponent<Value> {...props} />\n\t\t</FloatingTree>\n\t);\n}\n"],"mappings":"AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACCA,YAAY,EACZC,UAAU,EACVC,YAAY,EACZC,cAAc,EACdC,SAAS,EACTC,OAAO,QACD,UAAU;AACjB,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAAsBC,SAAS,QAAQ,iCAAiC;AACxE,SACCC,mBAAmB,EACnBC,aAAa,QAEP,wCAAwC;AAC/C,SAECC,gBAAgB,QACV,8CAA8C;AAErD,SAGCC,mBAAmB,EAInBC,sBAAsB,QAChB,2CAA2C;AAClD,SACCC,wBAAwB,EACxBC,yBAAyB,EACzBC,OAAO,QACD,sCAAsC;AAC7C,SAASC,qBAAqB,QAAQ,yCAAyC;AAC/E,SAASC,mBAAmB,QAAQ,+BAA+B;AAEnE,SACCC,YAAY,EACZC,uBAAuB,QACjB,sDAAsD;AAC7D,SAASC,QAAQ,QAAQ,6CAA6C;AACtE,SAASC,UAAU,QAAQ,+CAA+C;AAC1E,SAASC,sBAAsB,QAAQ,6DAA6D;AACpG,SAECC,eAAe,QACT,oDAAoD;AAC3D,SAASC,iBAAiB,QAAQ,uDAAuD;AACzF,SAASC,OAAO,QAAQ,4CAA4C;AAEpE,SAA6BC,UAAU,QAAQ,gCAAgC;AAC/E,SAASC,qBAAqB,QAAQ,iDAAiD;AACvF,SAASC,yBAAyB,QAAQ,2EAA2E;AACrH,SAASC,mBAAmB,QAAQ,6DAA6D;AACjG,SAASC,qBAAqB,QAAQ,uCAAuC;AAC7E,SAASC,kBAAkB,QAAQ,wBAAwB;AAC3D,SACCC,uBAAuB,QAEjB,6BAA6B;AAkIpC;AACA;AACA;;AAEA,SAASC,yBAAyBA,CACjCC,KAAmC,EACrB;EACd;EACA;EACA;EACA,MAAMC,IAAI,GAAGA,CAAA,KAAwBD,KAAK,CAACC,IAAI,IAAI,MAAM;EACzD,MAAMC,YAAY,GAAGA,CAAA,KAAe;IACnC,MAAMC,CAAC,GAAGF,IAAI,CAAC,CAAC;IAChB,OAAOE,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,MAAM;EACtC,CAAC;EAED,MAAMC,QAAQ,GAAGA,CAAA,KAAeJ,KAAK,CAACI,QAAQ,IAAI,KAAK;EACvD,MAAMC,QAAQ,GAAGA,CAAA,KAAeL,KAAK,CAACK,QAAQ,IAAI,KAAK;EACvD,MAAMC,QAAQ,GAAGA,CAAA,KAAeN,KAAK,CAACM,QAAQ,IAAI,KAAK;EACvD,MAAMC,KAAK,GAAGA,CAAA,KAAeP,KAAK,CAACO,KAAK,IAAI,KAAK;EACjD,MAAMC,SAAS,GAAGA,CAAA,KAAeR,KAAK,CAACQ,SAAS,IAAI,IAAI;EACxD,MAAMC,gBAAgB,GAAGA,CAAA,KAAeT,KAAK,CAACS,gBAAgB,IAAI,KAAK;EACvE,MAAMC,oBAAoB,GAAGA,CAAA,KAC5BV,KAAK,CAACU,oBAAoB,IAAI,IAAI;EACnC;EACA,MAAMC,iBAAiB,GAAGA,CAAA,KACzBX,KAAK,CAACY,iBAAiB;EACxB,MAAMA,iBAAiB,GAAGA,CAAA,KACzBZ,KAAK,CAACY,iBAAiB;EACxB,MAAMC,kBAAkB,GAAGA,CAAA,KACzBb,KAAK,CAACa,kBAAkB,IACxBvC,mBAA0D;EAE5D,MAAMwC,iBAAiB,GAAGA,CAAA,KAAyC;IAClE,MAAMC,CAAC,GAAGf,KAAK,CAACgB,aAAa;IAC7B,IAAID,CAAC,KAAK,QAAQ,EAAE,OAAO,QAAQ;IACnC,OAAOA,CAAC,GAAG,cAAc,GAAG,KAAK;EAClC,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM,CAACE,mBAAmB,EAAEC,sBAAsB,CAAC,GAClDlD,YAAY,CAAe,IAAI,EAAE;IAAEmD,UAAU,EAAE;EAAK,CAAC,CAAC;EACvD,MAAMC,aAAa,GAAGA,CAAA,KAAoBH,mBAAmB,CAAC,CAAC;EAC/D,MAAMI,gBAAgB,GAAIC,IAAkB,IAAW;IACtDJ,sBAAsB,CAAC,MAAMI,IAAI,CAAC;EACnC,CAAC;;EAED;EACA;EACA;EACA,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGxD,YAAY,CAAS,EAAE,EAAE;IACxEmD,UAAU,EAAE;EACb,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA,MAAM,CAACM,UAAU,EAAEC,oBAAoB,CAAC,GAAG5C,qBAAqB,CAAS;IACxE6C,UAAU,EAAEA,CAAA,KAAMnC,UAAU,CAACQ,KAAK,CAAC4B,KAAK,CAAC;IACzCC,OAAO,EAAEA,CAAA,KAAMrC,UAAU,CAACQ,KAAK,CAAC8B,YAAY,CAAC;IAC7CC,QAAQ,EAAE,EAAE;IACZC,IAAI,EAAE,qBAAqB;IAC3BC,KAAK,EAAE;EACR,CAAC,CAAC;;EAEF;EACA,MAAMC,UAAU,GAAGnE,UAAU,CAAS,MAAM;IAC3C,MAAMoE,MAAM,GAAGZ,gBAAgB,CAAC,CAAC;IACjC,IAAIrB,YAAY,CAAC,CAAC,IAAIiC,MAAM,KAAK,EAAE,EAAE,OAAOA,MAAM;IAClD,OAAOV,UAAU,CAAC,CAAC;EACpB,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA3D,YAAY,CACX,OAAO;IACNiD,CAAC,EAAEvB,UAAU,CAACQ,KAAK,CAAC4B,KAAK,CAAC;IAC1BD,UAAU,EAAEnC,UAAU,CAACQ,KAAK,CAAC4B,KAAK,CAAC,KAAKQ;EACzC,CAAC,CAAC,EACF,CAAC;IAAET;EAAW,CAAC,KAAK;IACnB,IAAIA,UAAU,EAAEH,mBAAmB,CAAC,EAAE,CAAC;EACxC,CACD,CAAC;;EAED;EACA;EACA,MAAM,CAACa,IAAI,EAAEC,mBAAmB,CAAC,GAAGxD,qBAAqB,CAAU;IAClE6C,UAAU,EAAEA,CAAA,KAAM;MACjB,MAAMA,UAAU,GAAGnC,UAAU,CAACQ,KAAK,CAACqC,IAAI,CAAC;MACzC,OAAOV,UAAU,KAAKS,SAAS,GAAGA,SAAS,GAAGG,OAAO,CAACZ,UAAU,CAAC;IAClE,CAAC;IACDE,OAAO,EAAEA,CAAA,KAAMrC,UAAU,CAACQ,KAAK,CAACwC,WAAW,CAAC;IAC5CT,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE,qBAAqB;IAC3BC,KAAK,EAAE;EACR,CAAC,CAAC;EAEF,MAAM;IAAEQ,OAAO;IAAEC,gBAAgB;IAAEC;EAAW,CAAC,GAAGhD,mBAAmB,CACpE0C,IAAI,EACJ,MAAM,IAAI,EACV,MAAM,KACP,CAAC;;EAED;EACA;EACA;EACA,MAAM,CAACO,OAAO,EAAEC,UAAU,CAAC,GAAG7E,YAAY,CAAqBoE,SAAS,EAAE;IACzEjB,UAAU,EAAE;EACb,CAAC,CAAC;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM2B,UAAU,GAAG7E,cAAc,CAAC,CAAC;EACnC,MAAM8E,EAAE,GAAGA,CAAA,KACV,OAAO/C,KAAK,CAAC+C,EAAE,KAAK,QAAQ,GAAG/C,KAAK,CAAC+C,EAAE,GAAGD,UAAU;EAErD,MAAM,CAACE,cAAc,EAAEC,yBAAyB,CAAC,GAChDjF,YAAY,CAAqB,IAAI,EAAE;IAAEmD,UAAU,EAAE;EAAK,CAAC,CAAC;EAC7D,MAAM,CAAC+B,YAAY,EAAEC,uBAAuB,CAAC,GAC5CnF,YAAY,CAA0B,IAAI,EAAE;IAAEmD,UAAU,EAAE;EAAK,CAAC,CAAC;EAClE,MAAM,CAACiC,WAAW,EAAEC,sBAAsB,CAAC,GAC1CrF,YAAY,CAAqB,IAAI,EAAE;IAAEmD,UAAU,EAAE;EAAK,CAAC,CAAC;EAC7D,MAAM,CAACmC,iBAAiB,EAAEC,4BAA4B,CAAC,GACtDvF,YAAY,CAAqB,IAAI,EAAE;IAAEmD,UAAU,EAAE;EAAK,CAAC,CAAC;EAC7D,MAAM,CAACqC,SAAS,EAAEC,YAAY,CAAC,GAAGzF,YAAY,CAAsB,IAAI,EAAE;IACzEmD,UAAU,EAAE;EACb,CAAC,CAAC;EAEF,MAAMuC,OAA8C,GAAG;IAAEC,OAAO,EAAE;EAAG,CAAC;EACtE,MAAMC,SAA2C,GAAG;IAAED,OAAO,EAAE;EAAG,CAAC;EACnE,MAAME,QAAwC,GAAG;IAAEF,OAAO,EAAE;EAAK,CAAC;EAClE,MAAMG,QAA6C,GAAG;IAAEH,OAAO,EAAE;EAAK,CAAC;EACvE,MAAMI,QAAwC,GAAG;IAAEJ,OAAO,EAAE;EAAK,CAAC;EAClE,MAAMK,QAA8C,GAAG;IAAEL,OAAO,EAAE;EAAK,CAAC;EACxE,MAAMM,SAA8B,GAAG;IAAEN,OAAO,EAAE;EAAG,CAAC;EACtD,MAAMO,YAAiC,GAAG;IAAEP,OAAO,EAAE;EAAG,CAAC;EACzD,MAAMQ,iBAAoD,GAAG;IAC5DR,OAAO,EAAE;EACV,CAAC;EACD,MAAMS,eAA+C,GAAG;IAAET,OAAO,EAAE;EAAK,CAAC;EACzE,MAAMU,iBAAsC,GAAG;IAAEV,OAAO,EAAE;EAAK,CAAC;EAChE,MAAMW,KAAK,GAAGvF,mBAAmB,CAAC,CAAC;;EAEnC;EACA;EACA;EACA,MAAM,CAACwF,WAAW,EAAEC,cAAc,CAAC,GAAGxG,YAAY,CAAgB,IAAI,EAAE;IACvEmD,UAAU,EAAE;EACb,CAAC,CAAC;EACF,MAAM,CAACsD,aAAa,EAAEC,gBAAgB,CAAC,GAAG1G,YAAY,CAAgB,IAAI,EAAE;IAC3EmD,UAAU,EAAE;EACb,CAAC,CAAC;EACF,MAAMwD,gBAA+D,GAAG;IACvEhB,OAAO,EAAEvF;EACV,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA,MAAMwG,UAAU,GAAIC,OAInB,IACA1G,OAAO,CAAC,MAAM;IACb,IAAI0G,OAAO,CAACN,WAAW,KAAKnC,SAAS,EAAE;MACtCoC,cAAc,CAACK,OAAO,CAACN,WAAW,CAAC;IACpC;IACA,IAAIM,OAAO,CAACJ,aAAa,KAAKrC,SAAS,EAAE;MACxCsC,gBAAgB,CAACG,OAAO,CAACJ,aAAa,CAAC;IACxC;IACA,MAAMK,IAA0C,GAAGD,OAAO,CAACC,IAAI,IAAI,MAAM;IACzE,IAAID,OAAO,CAACN,WAAW,KAAKnC,SAAS,EAAE;IAEvC,IAAIyC,OAAO,CAACN,WAAW,KAAK,IAAI,EAAE;MACjC;MACA,IAAIrE,YAAY,CAAC,CAAC,EAAE;QACnBsB,mBAAmB,CAAC,EAAE,CAAC;MACxB;MACA,IAAImD,gBAAgB,CAAChB,OAAO,KAAKvF,sBAAsB,EAAE;QACxDuG,gBAAgB,CAAChB,OAAO,GAAGvF,sBAAsB;QACjD4B,KAAK,CAAC+E,iBAAiB,GACtB3C,SAAS,EACTxD,yBAAyB,CAACkG,IAAI,EAAE1C,SAAS,EAAE;UAC1C4C,KAAK,EAAE,CAAC;QACT,CAAC,CACF,CAAC;MACF;IACD,CAAC,MAAM;MACN,MAAMC,WAAW,GAAGhB,SAAS,CAACN,OAAO,CAACkB,OAAO,CAACN,WAAW,CAE7C;MACZI,gBAAgB,CAAChB,OAAO,GAAG;QAC1B/B,KAAK,EAAEqD,WAAW;QAClBD,KAAK,EAAEH,OAAO,CAACN;MAChB,CAAC;MACD;MACA;MACA;MACA,IAAIrE,YAAY,CAAC,CAAC,IAAI4E,IAAI,KAAK,SAAS,EAAE;QACzC,IAAIG,WAAW,IAAI,IAAI,EAAE;UACxBzD,mBAAmB,CAAC,EAAE,CAAC;QACxB,CAAC,MAAM;UACNA,mBAAmB,CAClBhD,gBAAgB,CACfyG,WAAW,EACXtE,iBAAiB,CAAC,CACnB,CACD,CAAC;QACF;MACD,CAAC,MAAM,IAAI,CAACT,YAAY,CAAC,CAAC,EAAE;QAC3BsB,mBAAmB,CAAC,EAAE,CAAC;MACxB;MACAxB,KAAK,CAAC+E,iBAAiB,GACtBE,WAAW,EACXrG,yBAAyB,CAACkG,IAAI,EAAE1C,SAAS,EAAE;QAC1C4C,KAAK,EAAEH,OAAO,CAACN;MAChB,CAAC,CACF,CAAC;IACF;EACD,CAAC,CAAC;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMW,UAAU,GAAGrF,kBAAkB,CAAQ;IAC5C;IACA+B,KAAK,EAAEA,CAAA,KAAO3B,IAAI,CAAC,CAAC,KAAK,MAAM,GAAGwB,UAAU,CAAC,CAAC,GAAGS,UAAU,CAAC,CAAE;IAC9DG,IAAI;IACJ8C,KAAK,EAAEA,CAAA,KAAMnF,KAAK,CAACmF,KAAK;IACxBC,MAAM,EAAEA,CAAA,KAAMpF,KAAK,CAACoF,MAAM;IAC1BC,MAAM,EAAEA,CAAA,KAAMrF,KAAK,CAACqF,MAAM;IAC1BpF,IAAI;IACJU,iBAAiB;IACjBE,kBAAkB,EAAEA,CAAA,KAClBb,KAAK,CAACa,kBAAkB,IAGxBvC;EACH,CAAC,CAAC;EAEF,MAAM6G,KAAK,GAAGD,UAAU,CAACC,KAAK;EAC9B,MAAMG,SAAS,GAAGJ,UAAU,CAACI,SAAS;EACtC,MAAMC,KAAK,GAAGL,UAAU,CAACK,KAAK;EAC9B,MAAMC,aAAa,GAAGN,UAAU,CAACM,aAAa;EAC9C,MAAMC,iBAAiB,GAAGP,UAAU,CAACO,iBAAiB;EAEtD,MAAMC,SAAS,GAAG3H,UAAU,CAAmB,MAAM;IACpD,MAAM4H,IAAI,GAAGR,KAAK,CAAC,CAAC;IACpB,IAAI,CAACQ,IAAI,EAAE,OAAO,EAAE;IACpB,IAAIL,SAAS,CAAC,CAAC,EAAE;MAChB,OAAQK,IAAI,CAAiCC,OAAO,CAClDC,CAAC,IAAKA,CAAC,CAACV,KACV,CAAC;IACF;IACA,OAAOQ,IAAI;EACZ,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMG,cAAc,GAAG/H,UAAU,CAAS,MACzCM,SAAS,CAAC;IAAEgH,MAAM,EAAErF,KAAK,CAACqF;EAA2C,CAAC,CACvE,CAAC;EACD,MAAMU,YAAY,GAAInE,KAAY,IAAc;IAC/C,MAAMzB,CAAC,GAAGF,IAAI,CAAC,CAAC;IAChB,IAAIE,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,MAAM,EAAE,OAAO,IAAI;IAC/C,MAAM6F,CAAC,GAAGT,KAAK,CAAC,CAAC,CAACU,IAAI,CAAC,CAAC;IACxB,IAAID,CAAC,KAAK,EAAE,EAAE,OAAO,IAAI;IACzB,MAAME,UAAU,GAAGlG,KAAK,CAACoF,MAAM;IAC/B,IAAIc,UAAU,KAAK,IAAI,EAAE,OAAO,IAAI;IACpC,IAAIA,UAAU,KAAK9D,SAAS,EAAE;MAC7B,OAAO8D,UAAU,CAChBtE,KAAK,EACLoE,CAAC,EACDrF,iBAAiB,CAAC,CACnB,CAAC;IACF;IACA,OAAOmF,cAAc,CAAC,CAAC,CAACK,QAAQ,CAC/BvE,KAAK,EACLoE,CAAC,EACDrF,iBAAiB,CAAC,CACnB,CAAC;EACF,CAAC;EAED,MAAMyF,iBAAiB,GAAG,IAAIC,GAAG,CAAS,CAAC;EAC3C,MAAM,CAACC,eAAe,EAAEC,kBAAkB,CAAC,GAAGvI,YAAY,CAAC,CAAC,EAAE;IAC7DmD,UAAU,EAAE;EACb,CAAC,CAAC;EACF,MAAMqF,cAAc,GAAGA,CAACC,KAAa,EAAEC,OAAgB,KAAW;IACjE,MAAMC,GAAG,GAAGP,iBAAiB,CAACQ,GAAG,CAACH,KAAK,CAAC;IACxC,IAAIC,OAAO,KAAKC,GAAG,EAAE;IACrB,IAAID,OAAO,EAAEN,iBAAiB,CAACS,GAAG,CAACJ,KAAK,CAAC,CAAC,KACrCL,iBAAiB,CAACU,MAAM,CAACL,KAAK,CAAC;IACpCF,kBAAkB,CAAEQ,CAAC,IAAKA,CAAC,GAAG,CAAC,CAAC;EACjC,CAAC;EACD,MAAMC,gBAAgB,GAAGjJ,UAAU,CAAS,MAAM;IACjDuI,eAAe,CAAC,CAAC;IACjB,OAAOF,iBAAiB,CAACa,IAAI;EAC9B,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACAnJ,YAAY,CACX,OAAO;IAAEoJ,QAAQ,EAAE/B,KAAK,CAAC,CAAC,KAAK/C,SAAS;IAAE+E,IAAI,EAAE1B,iBAAiB,CAAC;EAAE,CAAC,CAAC,EACtE,CAAC;IAAEyB,QAAQ;IAAEC;EAAK,CAAC,KAClBhJ,OAAO,CAAC,MAAM;IACb,IAAI,CAAC+I,QAAQ,EAAE;IACfjD,SAAS,CAACN,OAAO,GAAGwD,IAAe;IACnCzD,OAAO,CAACC,OAAO,CAACyD,MAAM,GAAGD,IAAI,CAACC,MAAM;IACpCxD,SAAS,CAACD,OAAO,GAAGwD,IAAI,CAACE,GAAG,CAAEC,IAAI,IACjC9I,gBAAgB,CACf8I,IAAI,EACJ3G,iBAAiB,CAAC,CACnB,CACD,CAAC;EACF,CAAC,CACH,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM4G,OAAO,GAAGA,CACfC,QAAiB,EACjBC,OAA2C,KAE3CtJ,OAAO,CAAC,MAAM;IACb,IAAIkE,IAAI,CAAC,CAAC,KAAKmF,QAAQ,EAAE;IACzBxH,KAAK,CAAC0H,YAAY,GAAGF,QAAQ,EAAEC,OAAO,CAAC;IACvC,IAAIA,OAAO,CAACE,UAAU,EAAE;IACxBrF,mBAAmB,CAACkF,QAAQ,CAAC;EAC9B,CAAC,CAAC;;EAEH;EACA;EACA;EACA;EACA;EACA,MAAMI,aAAa,GAAGA,CACrBtG,IAAY,EACZmG,OAA2C,KAE3CtJ,OAAO,CAAC,MAAM;IACbqD,mBAAmB,CAAC,EAAE,CAAC;IACvBE,oBAAoB,CAACJ,IAAI,CAAC;IAC1BtB,KAAK,CAAC6H,aAAa,GAAGvG,IAAI,EAAEmG,OAAO,CAAC;EACrC,CAAC,CAAC;;EAEH;EACA;EACA;EACA;EACA,MAAMK,oBAAoB,GAAGA,CAC5BxG,IAA4B,EAC5BmG,OAA2C,KAE3CtJ,OAAO,CAAC,MAAM;IACb,MAAM4J,MAAM,GAAGC,KAAK,CAACC,OAAO,CAAC3G,IAAI,CAAC,GAAG,IAAI,GAAIA,IAAqB;IAClED,gBAAgB,CAAC0G,MAAM,CAAC;IACxB,IACCN,OAAO,CAACS,MAAM,KAAKrJ,OAAO,CAACsJ,SAAS,IACpCV,OAAO,CAACS,MAAM,KAAKrJ,OAAO,CAACuJ,IAAI,IAC/BX,OAAO,CAACS,MAAM,KAAKrJ,OAAO,CAACwJ,UAAU,EACpC;MACD,MAAMC,UAAU,GAAG9J,gBAAgB,CAClCuJ,MAAM,EACNpH,iBAAiB,CAAC,CACnB,CAAC;MACDiH,aAAa,CAACU,UAAU,EAAEb,OAAO,CAAC;IACnC;EACD,CAAC,CAAC;EAEH,MAAMc,eAAe,GAAGA,CACvBC,KAAgD,EAChDC,WAAmB,KAEnBtK,OAAO,CAAC,MAAM;IACb,IAAIuK,SAAS,GAAGD,WAAW;IAC3B,IAAIC,SAAS,KAAKtG,SAAS,EAAE;MAC5B,MAAMuG,EAAE,GAAGpE,WAAW,CAAC,CAAC;MACxB,IAAIoE,EAAE,KAAK,IAAI,EAAE;MACjBD,SAAS,GAAGzE,SAAS,CAACN,OAAO,CAACgF,EAAE,CAAU;IAC3C;IACA,MAAMlB,OAAO,GAAG9I,wBAAwB,CACvCE,OAAO,CAACsJ,SAAS,EACjBK,KACD,CAAuC;IACvCV,oBAAoB,CAACY,SAAS,EAAkBjB,OAAO,CAAC;IACxDF,OAAO,CAAC,KAAK,EAAEE,OAAO,CAAC;EACxB,CAAC,CAAC;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMmB,aAAa,GAAGA,CAAA,KACrBzK,OAAO,CAAC,MAAM;IACbwE,UAAU,CAAC,KAAK,CAAC;IACjBnB,mBAAmB,CAAC,EAAE,CAAC;IACvBxB,KAAK,CAAC6I,oBAAoB,GAAG,KAAK,CAAC;IACnCjE,UAAU,CAAC;MAAEL,WAAW,EAAE,IAAI;MAAEE,aAAa,EAAE;IAAK,CAAC,CAAC;EACvD,CAAC,CAAC;EAEHhF,qBAAqB,CAAC;IACrB4C,IAAI;IACJyG,GAAG,EAAEjF,QAAQ;IACbkF,UAAU,EAAEA,CAAA,KACX5K,OAAO,CAAC,MAAM;MACb,IAAI,CAACkE,IAAI,CAAC,CAAC,EAAEuG,aAAa,CAAC,CAAC,CAAC,KACxB5I,KAAK,CAAC6I,oBAAoB,GAAG,IAAI,CAAC;IACxC,CAAC;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA,MAAMG,mBAAsC,GAAG5J,sBAAsB,CAAC;IACrEiD,IAAI,EAAElE,OAAO,CAACkE,IAAI,CAAC;IACnBqF,YAAY,EAAEA,CAACF,QAAQ,EAAEC,OAAO,KAAK;MACpCF,OAAO,CAACC,QAAQ,EAAEC,OAA6C,CAAC;IACjE;EACD,CAAC,CAAC;EAEF3J,YAAY,CACX,OAAO;IACNmL,SAAS,EAAE5G,IAAI,CAAC,CAAC;IACjB6G,SAAS,EAAEhG,YAAY,CAAC,CAAC,IAAIF,cAAc,CAAC,CAAC;IAC7CmG,QAAQ,EAAE7F,iBAAiB,CAAC,CAAC;IAC7B8F,MAAM,EAAE1G,gBAAgB,CAAC;EAC1B,CAAC,CAAC,EACF,CAAC;IAAEuG,SAAS;IAAEC,SAAS;IAAEC,QAAQ;IAAEC;EAAO,CAAC,KAC1CjL,OAAO,CAAC,MAAM;IACb6K,mBAAmB,CAACK,MAAM,CAAC;MAC1BhH,IAAI,EAAE4G,SAAS;MACfK,gBAAgB,EAAEJ,SAAS;MAC3BK,mBAAmB,EAAEL,SAAS;MAC9BM,eAAe,EAAEL,QAAQ;MACzBzG,gBAAgB,EAAE0G;IACnB,CAAC,CAAC;EACH,CAAC,CACH,CAAC;EAED,MAAMK,IAAI,GAAGtL,OAAO,CAAC,MAAMoB,OAAO,CAACyJ,mBAAmB,EAAE;IAAES,IAAI,EAAE;EAAU,CAAC,CAAC,CAAC;EAE7E,MAAMC,KAAK,GAAGvL,OAAO,CAAC,MACrBe,QAAQ,CAAC8J,mBAAmB,EAAE;IAC7BW,OAAO,EAAEA,CAAA,KAAM,CAACtJ,QAAQ,CAAC,CAAC,IAAI,CAACD,QAAQ,CAAC,CAAC,IAAIK,gBAAgB,CAAC,CAAC;IAC/D+H,KAAK,EAAE,gBAAgB;IACvBoB,MAAM,EAAE;EACT,CAAC,CACF,CAAC;EAED,MAAMC,OAAO,GAAG1L,OAAO,CAAC,MACvBgB,UAAU,CAAC6J,mBAAmB,EAAE;IAC/BW,OAAO,EAAEA,CAAA,KAAM,CAACtJ,QAAQ,CAAC,CAAC,IAAI,CAACD,QAAQ,CAAC,CAAC;IACzC0J,iBAAiB,EAAE;MAClBC,KAAK,EAAE,QAAQ;MACfC,KAAK,EAAE;IACR;EACD,CAAC,CACF,CAAC;EAED,MAAMC,cAAc,GAAG9L,OAAO,CAAC,MAC9BmB,iBAAiB,CAAC0J,mBAAmB,EAAE;IACtCW,OAAO,EAAEA,CAAA,KAAM,CAACtJ,QAAQ,CAAC,CAAC,IAAI,CAACD,QAAQ,CAAC,CAAC;IACzC2C,EAAE;IACFW,OAAO;IACPa,WAAW;IACXE,aAAa;IACbyF,OAAO,EAAE,IAAI;IACb1J,SAAS;IACT2J,WAAW,EAAEA,CAAA,KAAM3J,SAAS,CAAC,CAAC,IAAI,CAACM,iBAAiB,CAAC,CAAC;IACtDsJ,eAAe,EAAEA,CAAA,KAAOtJ,iBAAiB,CAAC,CAAC,GAAI,MAAM,GAAa,KAAM;IACxEuJ,gBAAgB,EAAE3J,oBAAoB;IACtC4J,mBAAmB,EAAE,IAAI;IACzB;IACA;IACA;IACAC,UAAU,EAAEA,CAACC,eAAe,EAAEhC,KAAK,KAClCrK,OAAO,CAAC,MAAM;MACb,IAAI,CAACqK,KAAK,IAAI,CAACnG,IAAI,CAAC,CAAC,EAAE;MACvB,IAAIK,gBAAgB,CAAC,CAAC,KAAK,QAAQ,EAAE;MACrCkC,UAAU,CAAC;QACVL,WAAW,EAAEiG,eAAe;QAC5B1F,IAAI,EAAE0D,KAAK,GACRnE,iBAAiB,CAACV,OAAO,GACxB,UAAU,GACV,SAAS,GACV;MACJ,CAAC,CAAC;IACH,CAAC;EACH,CAAC,CACF,CAAC;EAED,MAAM8G,YAAmC,GAAGtM,OAAO,CAAC,MACnDkB,eAAe,CAAC,CAACoK,IAAI,EAAEC,KAAK,EAAEG,OAAO,EAAEI,cAAc,CAAC,CACvD,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACAnM,YAAY,CACX,MAAM;IACL,MAAMoJ,QAAQ,GAAG/B,KAAK,CAAC,CAAC,KAAK/C,SAAS;IACtC,OAAO;MACNsI,KAAK,EAAEjJ,UAAU,CAAC,CAAC;MACnBkJ,GAAG,EAAE7J,iBAAiB,CAAC,CAAC;MACxB8J,KAAK,EAAE1D,QAAQ,GAAGzB,iBAAiB,CAAC,CAAC,CAAC2B,MAAM,GAAGJ,gBAAgB,CAAC,CAAC;MACjE6D,QAAQ,EAAEtF,KAAK,CAAC,CAAC,KAAK,EAAE;MACxBuF,SAAS,EAAEvG,WAAW,CAAC;IACxB,CAAC;EACF,CAAC,EACD,CAAC;IAAEoG,GAAG;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAU,CAAC,KACnC3M,OAAO,CAAC,MAAM;IACb,IAAI,CAACwM,GAAG,EAAE;IACV,IAAIC,KAAK,KAAK,CAAC,EAAE;MAChBpG,cAAc,CAAC,IAAI,CAAC;MACpB;IACD;IACA,IAAImG,GAAG,KAAK,QAAQ,IAAKA,GAAG,KAAK,cAAc,IAAIE,QAAS,EAAE;MAC7D,IAAIC,SAAS,IAAI,IAAI,EAAElG,UAAU,CAAC;QAAEL,WAAW,EAAE,CAAC;QAAEO,IAAI,EAAE;MAAO,CAAC,CAAC;IACpE;EACD,CAAC,CACH,CAAC;;EAED;EACA;EACA;EACA,MAAMiG,UAAU,GAAGrL,yBAAyB,CAAC;IAC5CkC,KAAK,EAAEM,UAAU;IACjBa,EAAE;IACFiI,UAAU,EAAE5G,eAAe;IAC3B6G,QAAQ,EAAEA,CAAA,KAAM/I,UAAU,CAAC;EAC5B,CAAC,CAAC;EACFpE,YAAY,CACX,MAAMoF,YAAY,CAAC,CAAC,EACnBgI,EAAE,IAAK;IACP9G,eAAe,CAACT,OAAO,GAAGuH,EAAwB;EACnD,CACD,CAAC;EACD,IAAIC,iBAAiB,GAAGhN,OAAO,CAAC+D,UAAU,CAAC;EAC3CpE,YAAY,CACX,MAAMoE,UAAU,CAAC,CAAC,EACjBnB,CAAC,IACD5C,OAAO,CAAC,MAAM;IACb,IAAI,CAACmG,KAAK,CAAC8G,OAAO,EAAE;IACpB,IAAIrK,CAAC,KAAKoK,iBAAiB,EAAE;IAC7BA,iBAAiB,GAAGpK,CAAC;IACrB,MAAMsK,OAAO,GAAG/G,KAAK,CAACgH,YAAY,CAAC,CAAC,CAACC,YAAY;IACjDjH,KAAK,CAACkH,QAAQ,CAACzK,CAAC,KAAKsK,OAAO,CAAC;IAC7B,IAAI/G,KAAK,CAACmH,sBAAsB,CAAC,CAAC,EAAE;MACnC,KAAKV,UAAU,CAACW,MAAM,CAAC3K,CAAC,CAAC;IAC1B,CAAC,MAAM;MACN,KAAKgK,UAAU,CAACW,MAAM,CAAC3K,CAAC,EAAE,IAAI,CAAC;IAChC;EACD,CAAC,CACH,CAAC;EACDjD,YAAY,CACX,MAAMoE,UAAU,CAAC,CAAC,EACjBnB,CAAC,IACD5C,OAAO,CAAC,MAAM;IACb,IAAI,CAACmG,KAAK,CAAC8G,OAAO,EAAE;IACpB9G,KAAK,CAACqH,SAAS,CAAC5K,CAAC,KAAK,EAAE,CAAC;EAC1B,CAAC,CACH,CAAC;;EAED;EACA,MAAM6K,OAAgC,GAAG;IACxCC,OAAO,EAAEA,CAAA,KAAMlJ,UAAU,CAAC,KAAK;EAChC,CAAC;EACD;EACA;EACA,MAAMmG,GAAG,GAAG3K,OAAO,CAAC,MAAM6B,KAAK,CAAC8L,UAAU,CAAC;EAC3C,IAAI,OAAOhD,GAAG,KAAK,UAAU,EAAE;IAC9BA,GAAG,CAAC8C,OAAO,CAAC;IACZ1N,SAAS,CAAC,MAAM4K,GAAG,CAAC,IAAI,CAAC,CAAC;EAC3B,CAAC,MAAM,IAAIA,GAAG,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC1CA,GAAG,CAACnF,OAAO,GAAGiI,OAAO;IACrB1N,SAAS,CAAC,MAAM;MACf4K,GAAG,CAACnF,OAAO,GAAG,IAAI;IACnB,CAAC,CAAC;EACH;;EAEA;EACA;EACA;EACA;EACA,MAAMoI,YAA6C,GAAG;IACrDhJ,EAAE;IACFH,OAAO;IACPC,UAAU;IACVR,IAAI;IACJI,OAAO;IACPC,gBAAgB;IAChBR,UAAU;IACV0F,aAAa;IACbxG,aAAa;IACbC,gBAAgB,EAAEyG,oBAAoB;IACtCkE,aAAa,EAAEA,CAAA,KAAM,MAAe;IACpCzH,WAAW;IACXE,aAAa;IACbG,UAAU;IACVxE,QAAQ;IACRC,QAAQ;IACRC,QAAQ;IACRQ,iBAAiB;IACjBJ,oBAAoB;IACpBH,KAAK;IACLC,SAAS;IACTC,gBAAgB;IAChB;IACA;IACAwL,IAAI,EAAEA,CAAA,KAAM,KAAK;IACjBC,WAAW,EAAEA,CAAA,KAAM,KAAK;IACxBvL,iBAAiB;IACjBC,iBAAiB;IACjBC,kBAAkB;IAClBsE,KAAK;IACLK,aAAa;IACbC,iBAAiB;IACjBF,KAAK;IACLQ,YAAY;IACZS,cAAc;IACdQ,gBAAgB;IAChBtD,OAAO;IACPE,SAAS;IACTC,QAAQ;IACRC,QAAQ;IACRC,QAAQ;IACRC,QAAQ;IACRC,SAAS;IACTC,YAAY;IACZC,iBAAiB;IACjBnB,cAAc;IACdmJ,iBAAiB,EAAElJ,yBAAyB;IAC5CC,YAAY;IACZkJ,eAAe,EAAGlB,EAAE,IAAK;MACxBpH,QAAQ,CAACH,OAAO,GAAGuH,EAAE;MACrB/H,uBAAuB,CAAC+H,EAAE,CAAC;IAC5B,CAAC;IACD9H,WAAW;IACXiJ,cAAc,EAAEhJ,sBAAsB;IACtCC,iBAAiB;IACjBgJ,oBAAoB,EAAE/I,4BAA4B;IAClDC,SAAS;IACTC,YAAY;IACZ8D,OAAO;IACPgB,eAAe;IACfgE,UAAU,EAAEA,CAAA,KAAM,CAAC,CAAC;IACpBvD,mBAAmB;IACnByB,YAAY;IACZpG;EACD,CAAC;;EAED;EACA;EACAvG,YAAY,CACX,OAAO;IAAE0O,EAAE,EAAEpL,aAAa,CAAC,CAAC;IAAEuE,IAAI,EAAED,SAAS,CAAC;EAAE,CAAC,CAAC,EAClD,CAAC;IAAE8G,EAAE;IAAE7G;EAAK,CAAC,KACZxH,OAAO,CAAC,MAAM;IACb,IAAIqO,EAAE,IAAI,IAAI,EAAE;MACf9H,gBAAgB,CAAC,IAAI,CAAC;MACtB;IACD;IACA,MAAM+H,QAAQ,GAAGtH,KAAK,CAAC,CAAC,KAAK/C,SAAS,GAAGuD,IAAI,GAAGzB,YAAY,CAACP,OAAO;IACpE,MAAM+I,GAAG,GAAGnO,aAAa,CACxBkO,QAAQ,EACRD,EAAE,EACF3L,kBAAkB,CAAC,CACpB,CAAC;IACD6D,gBAAgB,CAACgI,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,GAAGA,GAAG,CAAC;EAC1C,CAAC,CACH,CAAC;EAED,MAAMC,wBAAsD,GAAG;IAC9D1M;EACD,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM2M,iBAAiB,GAAI1B,EAA2B,IAAW;IAChEH,UAAU,CAACjH,QAAQ,CAACH,OAAO,GAAGuH,EAAE;EACjC,CAAC;EAED,SAAS2B,oBAAoBA,CAACrE,KAAY,EAAQ;IACjD;IACA;IACA;IACA;IACA,MAAMsE,MAAM,GAAGtE,KAAK,CAACuE,aAAwC;IAC7D,IAAI,CAACD,MAAM,EAAE;IACb,MAAME,SAAS,GAAGF,MAAM,CAAClL,KAAK;IAC9B,MAAM6F,OAAO,GAAG9I,wBAAwB,CACvCE,OAAO,CAACuJ,IAAI,EACZI,KACD,CAAuC;IACvCZ,aAAa,CAACoF,SAAS,EAAEvF,OAAO,CAAC;EAClC;EAEA,SAASwF,iBAAiBA,CAAA,EAAS;IAClC,MAAMvG,OAAO,GAAGxD,YAAY,CAAC,CAAC,IAAIF,cAAc,CAAC,CAAC;IACjD0D,OAAO,EAAyBwG,KAAK,CAAC,CAAC;EACzC;;EAEA;EACA;EACA,MAAMC,WAAW,GAAGA,CAAA,MAA0B;IAAE,GAAGvN;EAAsB,CAAC,CAAC;EAE3E,OACC,CAAC,mBAAmB,CACnB,KAAK,CAAC,CAACmM,YAAiD,CAAC;AAE5D,GAAG,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAACY,wBAAwB,CAAC;AAC5D,IAAI,CAAC3M,KAAK,CAACoN,QAAQ;AACnB,IAAI,CAAC,4PAA4P;AACjQ,IAAI,CAAC,KAAK,CACL,GAAG,CAAC,CAACR,iBAAiB,CAAC,CACvB,IAAI,CAAC,MAAM,CACX,EAAE,CAAC,CACF,OAAO5M,KAAK,CAAC+C,EAAE,KAAK,QAAQ,GACzB,GAAG/C,KAAK,CAAC+C,EAAE,eAAe,GAC1BX,SACJ,CAAC,CACD,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CACb,WAAW,CAAC,MAAM,CAClB,KAAK,CAAC,CAAC+K,WAAW,CAAC,CAAC,CAAC,CACrB,QAAQ,CAAC,CAAC/M,QAAQ,CAAC,CAAC,CAAC,CACrB,QAAQ,CAAC,CAACE,QAAQ,CAAC,CAAC,CAAC,CACrB,QAAQ,CAAC,CAACD,QAAQ,CAAC,CAAC,CAAC,CACrB,KAAK,CAAC,CAAC6B,UAAU,CAAC,CAAC,CAAC,CACpB,OAAO,CAAC,CAAC+K,iBAAiB,CAAC,CAC3B,OAAO,CAAC,CAACJ,oBAAoB,CAAC,CAC9B,QAAQ,CAAC,CAACA,oBAAoB,CAAC;AAEpC,GAAG,EAAE,uBAAuB;AAC5B,EAAE,EAAE,mBAAmB,CAAC;AAExB;;AAEA;AACA;AACA;AACA,OAAO,SAASQ,gBAAgBA,CAC/BrN,KAAmC,EACrB;EACd,IACCtB,sBAAsB,CAAC,IAAI,CAAC,IAAI,IAAI,IACpCO,uBAAuB,CAAC,CAAC,IAAI,IAAI,EAChC;IACD,OAAO,CAAC,yBAAyB,CAAQ,IAAIe,KAAK,CAAC,GAAG;EACvD;EACA,OACC,CAAC,YAAY;AACf,GAAG,CAAC,yBAAyB,CAAQ,IAAIA,KAAK,CAAC;AAC/C,EAAE,EAAE,YAAY,CAAC;AAEjB","ignoreList":[]}