{
  "version": 3,
  "sources": ["../../../src/index.ts", "../../../src/components/accordion/Accordion.ts", "../../../src/states/create-select-state.ts", "../../../src/utils/assert.ts", "../../../src/utils/is-equal.ts", "../../../src/utils/create-dynamic.ts", "../../../src/utils/dynamic-prop.ts", "../../../src/utils/state-props.ts", "../../../src/utils/use-event-listener.ts", "../../../src/components/accordion/AccordionContext.ts", "../../../src/utils/focus-query.ts", "../../../src/utils/namespace.ts", "../../../src/utils/virtual-focus.ts", "../../../src/utils/focus-navigation.ts", "../../../src/utils/focus-navigator.ts", "../../../src/components/accordion/tags.ts", "../../../src/components/accordion/AccordionButton.ts", "../../../src/states/create-select-option-state.ts", "../../../src/components/button/index.ts", "../../../src/components/accordion/AccordionItemContext.ts", "../../../src/components/accordion/AccordionHeader.ts", "../../../src/components/accordion/AccordionItem.ts", "../../../src/components/accordion/AccordionPanel.ts", "../../../src/utils/create-unmountable.ts", "../../../src/components/alert/index.ts", "../../../src/components/alert-dialog/AlertDialog.ts", "../../../src/states/create-disclosure-state.ts", "../../../src/utils/use-focus-start-point.ts", "../../../src/utils/focus-start-point.ts", "../../../src/components/alert-dialog/AlertDialogContext.ts", "../../../src/components/alert-dialog/tags.ts", "../../../src/components/alert-dialog/AlertDialogDescription.ts", "../../../src/components/alert-dialog/AlertDialogOverlay.ts", "../../../src/components/alert-dialog/AlertDialogPanel.ts", "../../../src/components/alert-dialog/AlertDialogTitle.ts", "../../../src/components/checkbox/Checkbox.ts", "../../../src/states/create-check-state.ts", "../../../src/components/checkbox/CheckboxContext.ts", "../../../src/components/checkbox/tags.ts", "../../../src/components/checkbox/CheckboxDescription.ts", "../../../src/components/checkbox/CheckboxIndicator.ts", "../../../src/components/checkbox/CheckboxLabel.ts", "../../../src/components/color-scheme/index.ts", "../../../src/components/combobox/Combobox.ts", "../../../src/states/create-autocomplete-state.ts", "../../../src/utils/create-input-reader.ts", "../../../src/components/combobox/ComboboxContext.ts", "../../../src/components/combobox/tags.ts", "../../../src/components/combobox/ComboboxInput.ts", "../../../src/components/command/tags.ts", "../../../src/components/combobox/ComboboxLabel.ts", "../../../src/components/combobox/ComboboxOption.ts", "../../../src/states/create-autocomplete-option-state.ts", "../../../src/components/combobox/ComboboxOptions.ts", "../../../src/components/command/Command.ts", "../../../src/components/command/CommandContext.ts", "../../../src/components/command/CommandInput.ts", "../../../src/components/command/CommandLabel.ts", "../../../src/components/command/CommandOption.ts", "../../../src/components/command/CommandOptions.ts", "../../../src/components/command-bar/CommandBar.ts", "../../../src/components/command-bar/CommandBarContext.ts", "../../../src/components/command-bar/tags.ts", "../../../src/components/command-bar/CommandBarDescription.ts", "../../../src/components/command-bar/CommandBarOverlay.ts", "../../../src/components/command-bar/CommandBarPanel.ts", "../../../src/components/command-bar/CommandBarTitle.ts", "../../../src/components/context-menu/ContextMenu.ts", "../../../src/components/context-menu/ContextMenuContext.ts", "../../../src/components/context-menu/tags.ts", "../../../src/components/context-menu/ContextMenuBoundary.ts", "../../../src/components/context-menu/ContextMenuOverlay.ts", "../../../src/components/context-menu/ContextMenuPanel.ts", "../../../src/components/dialog/Dialog.ts", "../../../src/components/dialog/DialogContext.ts", "../../../src/components/dialog/tags.ts", "../../../src/components/dialog/DialogDescription.ts", "../../../src/components/dialog/DialogOverlay.ts", "../../../src/components/dialog/DialogPanel.ts", "../../../src/components/dialog/DialogTitle.ts", "../../../src/components/disclosure/Disclosure.ts", "../../../src/components/disclosure/DisclosureContext.ts", "../../../src/components/disclosure/tags.ts", "../../../src/components/disclosure/DisclosureButton.ts", "../../../src/components/disclosure/DisclosurePanel.ts", "../../../src/components/feed/Feed.ts", "../../../src/components/feed/FeedContext.ts", "../../../src/components/feed/tags.ts", "../../../src/components/feed/FeedArticle.ts", "../../../src/components/feed/FeedArticleContext.ts", "../../../src/components/feed/FeedArticleDescription.ts", "../../../src/components/feed/FeedArticleLabel.ts", "../../../src/components/feed/FeedContent.ts", "../../../src/components/feed/FeedContentContext.ts", "../../../src/components/feed/FeedLabel.ts", "../../../src/components/listbox/Listbox.ts", "../../../src/components/listbox/ListboxContext.ts", "../../../src/components/listbox/tags.ts", "../../../src/components/listbox/ListboxButton.ts", "../../../src/components/listbox/ListboxLabel.ts", "../../../src/components/listbox/ListboxOption.ts", "../../../src/components/listbox/ListboxOptionsContext.ts", "../../../src/components/listbox/ListboxOptions.ts", "../../../src/utils/create-type-ahead.ts", "../../../src/components/menu/Menu.ts", "../../../src/components/menu/MenuContext.ts", "../../../src/components/menu/tags.ts", "../../../src/components/menu/MenuChild.ts", "../../../src/components/menu/MenuItem.ts", "../../../src/components/popover/Popover.ts", "../../../src/components/popover/PopoverContext.ts", "../../../src/components/popover/tags.ts", "../../../src/components/popover/PopoverButton.ts", "../../../src/components/popover/PopoverOverlay.ts", "../../../src/components/popover/PopoverPanel.ts", "../../../src/components/radio-group/RadioGroup.ts", "../../../src/components/radio-group/RadioGroupContext.ts", "../../../src/components/radio-group/RadioGroupRootContext.ts", "../../../src/components/radio-group/tags.ts", "../../../src/components/radio-group/RadioGroupDescription.ts", "../../../src/components/radio-group/RadioGroupLabel.ts", "../../../src/components/radio-group/RadioGroupOption.ts", "../../../src/components/select/Select.ts", "../../../src/components/select/SelectContext.ts", "../../../src/components/select/tags.ts", "../../../src/components/select/SelectOption.ts", "../../../src/components/tabs/Tab.ts", "../../../src/components/tabs/TabGroupContext.ts", "../../../src/components/tabs/TabListContext.ts", "../../../src/components/tabs/tags.ts", "../../../src/components/tabs/TabGroup.ts", "../../../src/components/tabs/TabList.ts", "../../../src/components/tabs/TabPanel.ts", "../../../src/components/toast/index.ts", "../../../src/components/toggle/index.ts", "../../../src/states/create-toggle-state.ts", "../../../src/components/toolbar/index.ts", "../../../src/components/transition/index.ts", "../../../src/states/create-input-state.ts", "../../../src/utils/Fragment.ts"],
  "sourcesContent": ["export * from './components/accordion';\nexport * from './components/alert';\nexport * from './components/alert-dialog';\nexport * from './components/button';\nexport * from './components/checkbox';\nexport * from './components/color-scheme';\nexport * from './components/combobox';\nexport * from './components/command';\nexport * from './components/command-bar';\nexport * from './components/context-menu';\nexport * from './components/dialog';\nexport * from './components/disclosure';\nexport * from './components/feed';\nexport * from './components/listbox';\nexport * from './components/menu';\nexport * from './components/popover';\nexport * from './components/radio-group';\nexport * from './components/select';\nexport * from './components/tabs';\nexport * from './components/toast';\nexport * from './components/toggle';\nexport * from './components/toolbar';\nexport * from './components/transition';\n\nexport type {\n  AutocompleteStateProperties,\n  AutocompleteStateRenderProps,\n  SingleAutocompleteStateControlledOptions,\n  SingleAutocompleteStateOptions,\n  SingleAutocompleteStateUncontrolledOptions,\n  MultipleAutocompleteStateControlledOptions,\n  MultipleAutocompleteStateOptions,\n  MultipleAutocompleteStateUncontrolledOptions,\n} from './states/create-autocomplete-state';\nexport {\n  AutocompleteStateChild,\n  createSingleAutocompleteState,\n  createMultipleAutocompleteState,\n  useAutocompleteState,\n} from './states/create-autocomplete-state';\nexport type {\n  CheckStateControlledOptions,\n  CheckStateOptions,\n  CheckStateProperties,\n  CheckStateRenderProps,\n  CheckStateUncontrolledOptions,\n} from './states/create-check-state';\nexport {\n  CheckStateChild,\n  createCheckState,\n  useCheckState,\n} from './states/create-check-state';\nexport type {\n  DisclosureStateControlledOptions,\n  DisclosureStateOptions,\n  DisclosureStateProperties,\n  DisclosureStateRenderProps,\n  DisclosureStateUncontrolledOptions,\n} from './states/create-disclosure-state';\nexport {\n  DisclosureStateChild,\n  useDisclosureState,\n  createDisclosureState,\n} from './states/create-disclosure-state';\nexport type {\n  InputStateControlledOptions,\n  InputStateOptions,\n  InputStateProperties,\n  InputStateRenderProps,\n  InputStateUncontrolledOptions,\n} from './states/create-input-state';\nexport {\n  InputStateChild,\n  useInputState,\n  createInputState,\n} from './states/create-input-state';\nexport type {\n  SelectOptionStateOptions,\n  SelectOptionStateProperties,\n  SelectOptionStateRenderProps,\n} from './states/create-select-option-state';\nexport {\n  SelectOptionStateChild,\n  useSelectOptionState,\n  createSelectOptionState,\n} from './states/create-select-option-state';\nexport type {\n  SelectStateProperties,\n  SelectStateRenderProps,\n  SingleSelectStateControlledOptions,\n  SingleSelectStateOptions,\n  SingleSelectStateUncontrolledOptions,\n  MultipleSelectStateControlledOptions,\n  MultipleSelectStateOptions,\n  MultipleSelectStateUncontrolledOptions,\n} from './states/create-select-state';\nexport {\n  SelectStateChild,\n  useSelectState,\n  createSingleSelectState,\n  createMultipleSelectState,\n} from './states/create-select-state';\nexport type {\n  ToggleStateControlledOptions,\n  ToggleStateOptions,\n  ToggleStateProperties,\n  ToggleStateRenderProps,\n  ToggleStateUncontrolledOptions,\n} from './states/create-toggle-state';\nexport {\n  ToggleStateChild,\n  useToggleState,\n  createToggleState,\n} from './states/create-toggle-state';\n\nexport type { FragmentProps } from './utils/Fragment';\nexport { default as Fragment } from './utils/Fragment';\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createMemo,\n  mergeProps,\n  onCleanup,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  MultipleSelectStateControlledOptions,\n  MultipleSelectStateUncontrolledOptions,\n  SelectStateRenderProps,\n  SingleSelectStateControlledOptions,\n  SingleSelectStateUncontrolledOptions,\n} from '../../states/create-select-state';\nimport {\n  SelectStateProvider,\n  createMultipleSelectState,\n  createSingleSelectState,\n} from '../../states/create-select-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createHasActiveState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport {\n  AccordionContext,\n  createAccordionFocusNavigator,\n} from './AccordionContext';\nimport { ACCORDION_TAG } from './tags';\n\nexport type AccordionSingleControlledBaseProps<V> = Prettify<\n  SingleSelectStateControlledOptions<V> & SelectStateRenderProps<V>\n>;\n\nexport type AccordionSingleControlledProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessPropsWithRef<T, AccordionSingleControlledBaseProps<V>>;\n\nexport type AccordionSingleUncontrolledBaseProps<V> = Prettify<\n  SingleSelectStateUncontrolledOptions<V> & SelectStateRenderProps<V>\n>;\n\nexport type AccordionSingleUncontrolledProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessPropsWithRef<T, AccordionSingleUncontrolledBaseProps<V>>;\n\nexport type AccordionMultipleControlledBaseProps<V> = Prettify<\n  MultipleSelectStateControlledOptions<V> & SelectStateRenderProps<V>\n>;\n\nexport type AccordionMultipleControlledProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessPropsWithRef<T, AccordionMultipleControlledBaseProps<V>>;\n\nexport type AccordionMultipleUncontrolledBaseProps<V> = Prettify<\n  MultipleSelectStateUncontrolledOptions<V> & SelectStateRenderProps<V>\n>;\n\nexport type AccordionMultipleUncontrolledProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessPropsWithRef<T, AccordionMultipleUncontrolledBaseProps<V>>;\n\nexport type AccordionProps<V, T extends ValidConstructor = 'div'> =\n  | AccordionSingleControlledProps<V, T>\n  | AccordionSingleUncontrolledProps<V, T>\n  | AccordionMultipleControlledProps<V, T>\n  | AccordionMultipleUncontrolledProps<V, T>;\n\nfunction isAccordionUncontrolled<V, T extends ValidConstructor = 'div'>(\n  props: AccordionProps<V, T>,\n): props is\n  | AccordionSingleUncontrolledProps<V, T>\n  | AccordionMultipleUncontrolledProps<V, T> {\n  return 'defaultValue' in props;\n}\n\nfunction isAccordionMultiple<V, T extends ValidConstructor = 'div'>(\n  props: AccordionProps<V, T>,\n): props is\n  | AccordionMultipleUncontrolledProps<V, T>\n  | AccordionMultipleControlledProps<V, T> {\n  return !!props.multiple;\n}\n\nexport function Accordion<V, T extends ValidConstructor = 'div'>(\n  props: AccordionProps<V, T>,\n): JSX.Element {\n  return createMemo(() => {\n    const state = isAccordionMultiple(props)\n      ? createMultipleSelectState(props)\n      : createSingleSelectState(props);\n    const controller = createAccordionFocusNavigator();\n    const [ref, setRef] = createForwardRef(props);\n\n    createEffect(() => {\n      const current = ref();\n      if (current instanceof HTMLElement) {\n        controller.setRef(current);\n        onCleanup(() => {\n          controller.clearRef();\n        });\n        useEventListener(current, 'keydown', e => {\n          if (!state.disabled()) {\n            switch (e.key) {\n              case 'ArrowUp': {\n                e.preventDefault();\n                controller.setPrevChecked(true);\n                break;\n              }\n              case 'ArrowDown': {\n                e.preventDefault();\n                controller.setNextChecked(true);\n                break;\n              }\n              case 'Home': {\n                e.preventDefault();\n                controller.setFirstChecked();\n                break;\n              }\n              case 'End': {\n                e.preventDefault();\n                controller.setLastChecked();\n                break;\n              }\n              default:\n                break;\n            }\n          }\n        });\n        useEventListener(current, 'focusin', e => {\n          if (e.target && e.target !== current) {\n            controller.setCurrent(e.target as HTMLElement);\n          }\n        });\n      }\n    });\n\n    return createComponent(AccordionContext.Provider, {\n      value: controller,\n      get children() {\n        return createDynamic(\n          () => props.as || ('div' as T),\n          mergeProps(\n            isAccordionUncontrolled(props)\n              ? omitProps(props, [\n                  'as',\n                  'by',\n                  'children',\n                  'defaultValue',\n                  'disabled',\n                  'multiple',\n                  'onChange',\n                  'ref',\n                  'toggleable',\n                ])\n              : omitProps(props, [\n                  'as',\n                  'by',\n                  'children',\n                  'value',\n                  'disabled',\n                  'multiple',\n                  'onChange',\n                  'ref',\n                  'toggleable',\n                ]),\n            ACCORDION_TAG,\n            {\n              ref: setRef,\n              id: controller.getId(),\n            },\n            createDisabledState(() => state.disabled()),\n            createARIADisabledState(() => state.disabled()),\n            createHasSelectedState(() => state.hasSelected()),\n            createHasActiveState(() => state.hasActive()),\n            {\n              get children() {\n                return createComponent(SelectStateProvider, {\n                  state,\n                  get children() {\n                    return props.children;\n                  },\n                });\n              },\n            },\n          ) as DynamicProps<T>,\n        );\n      },\n    });\n  }) as unknown as JSX.Element;\n}\n", "import type { Accessor, JSX } from 'solid-js';\nimport {\n  createComponent,\n  createContext,\n  createMemo,\n  createSignal,\n  untrack,\n  useContext,\n} from 'solid-js';\nimport assert from '../utils/assert';\nimport isEqual from '../utils/is-equal';\nimport type { Ref } from '../utils/types';\n\nexport interface SelectStateProperties<T> {\n  isSelected(value: T): boolean;\n  select(value: T): void;\n  hasSelected(): boolean;\n  isActive(value: T): boolean;\n  hasActive(): boolean;\n  focus(value: T): void;\n  blur(): void;\n  disabled(): boolean;\n}\n\nexport interface SingleSelectStateControlledOptions<T> {\n  multiple?: false;\n  toggleable?: boolean;\n  value: T;\n  onChange?: (value?: T) => void;\n  disabled?: boolean;\n  by?: (a: T, b: T) => boolean;\n}\n\nexport interface SingleSelectStateUncontrolledOptions<T> {\n  multiple?: false;\n  toggleable?: boolean;\n  defaultValue: T;\n  onChange?: (value?: T) => void;\n  disabled?: boolean;\n  by?: (a: T, b: T) => boolean;\n}\n\nexport type SingleSelectStateOptions<T> =\n  | SingleSelectStateControlledOptions<T>\n  | SingleSelectStateUncontrolledOptions<T>;\n\nexport function createSingleSelectState<T>(\n  options: SingleSelectStateOptions<T>,\n): SelectStateProperties<T> {\n  const [active, setActive] = createSignal<Ref<T>>();\n\n  let selectedValue: Accessor<T | undefined>;\n  let setSelectedValue: (value: T | undefined) => void;\n\n  const equals = options.by || isEqual;\n\n  if ('defaultValue' in options) {\n    const [selected, setSelected] = createSignal<T | undefined>(\n      options.defaultValue,\n    );\n    selectedValue = selected;\n    setSelectedValue = (value): void => {\n      setSelected(() => value);\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  } else {\n    selectedValue = createMemo(() => options.value);\n    setSelectedValue = (value): void => {\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  }\n\n  const isDisabled = createMemo(() => !!options.disabled);\n\n  return {\n    isSelected(value): boolean {\n      return isEqual(value, selectedValue());\n    },\n    select(value): void {\n      if (!untrack(isDisabled)) {\n        if (options.toggleable && equals(untrack(selectedValue) as T, value)) {\n          setSelectedValue(undefined);\n        } else {\n          setSelectedValue(value);\n        }\n      }\n    },\n    hasSelected(): boolean {\n      return selectedValue() != null;\n    },\n    disabled: isDisabled,\n    hasActive(): boolean {\n      return !!active();\n    },\n    isActive(value): boolean {\n      const ref = active();\n      return ref ? equals(value, ref.value) : false;\n    },\n    focus(value): void {\n      if (!untrack(isDisabled)) {\n        setActive({\n          value,\n        });\n      }\n    },\n    blur(): void {\n      if (!untrack(isDisabled)) {\n        setActive(undefined);\n      }\n    },\n  };\n}\n\nexport interface MultipleSelectStateControlledOptions<T> {\n  multiple: true;\n  toggleable?: boolean;\n  value: T[];\n  onChange?: (value: T[]) => void;\n  disabled?: boolean;\n  by?: (a: T, b: T) => boolean;\n}\n\nexport interface MultipleSelectStateUncontrolledOptions<T> {\n  multiple: true;\n  toggleable?: boolean;\n  defaultValue: T[];\n  onChange?: (value: T[]) => void;\n  disabled?: boolean;\n  by?: (a: T, b: T) => boolean;\n}\n\nexport type MultipleSelectStateOptions<T> =\n  | MultipleSelectStateControlledOptions<T>\n  | MultipleSelectStateUncontrolledOptions<T>;\n\nexport function createMultipleSelectState<T>(\n  options: MultipleSelectStateOptions<T>,\n): SelectStateProperties<T> {\n  const [active, setActive] = createSignal<Ref<T>>();\n\n  let selectedValues: Accessor<T[]>;\n  let setSelectedValues: (value: T[]) => void;\n\n  const equals = options.by || isEqual;\n\n  if ('defaultValue' in options) {\n    const [selected, setSelected] = createSignal<T[]>(options.defaultValue);\n    selectedValues = selected;\n    setSelectedValues = (value): void => {\n      setSelected(() => value);\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  } else {\n    selectedValues = createMemo(() => options.value);\n    setSelectedValues = (value): void => {\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  }\n\n  const isDisabled = createMemo(() => !!options.disabled);\n\n  return {\n    isSelected(value): boolean {\n      const values = selectedValues();\n      // Looks up for the value\n      for (let i = 0, len = values.length; i < len; i += 1) {\n        if (equals(value, values[i])) {\n          return true;\n        }\n      }\n      return false;\n    },\n    select(value): void {\n      if (!untrack(isDisabled)) {\n        const newValues: T[] = [];\n        const currentValues = untrack(selectedValues);\n        let hasValue = false;\n        for (let i = 0, len = currentValues.length; i < len; i += 1) {\n          const item = currentValues[i];\n          // Compare ahead\n          const isSame = equals(item, value);\n          // If it's the same then we mark the the target value\n          // as already existing in the array\n          if (isSame) {\n            hasValue = true;\n          }\n          // If it's the same and the list is toggleable\n          // don't push the item\n          if (!(options.toggleable && isSame)) {\n            newValues.push(item);\n          }\n        }\n        // The value doesn't exist, push the new value\n        if (!hasValue) {\n          newValues.push(value);\n        }\n        setSelectedValues(newValues);\n      }\n    },\n    hasSelected: createMemo(() => selectedValues().length > 0),\n    disabled: isDisabled,\n    hasActive: createMemo(() => !!active()),\n    isActive(value): boolean {\n      const ref = active();\n      if (ref) {\n        return equals(value, ref.value);\n      }\n      return false;\n    },\n    focus(value): void {\n      if (!untrack(isDisabled)) {\n        setActive({\n          value,\n        });\n      }\n    },\n    blur(): void {\n      if (!untrack(isDisabled)) {\n        setActive(undefined);\n      }\n    },\n  };\n}\n\nexport interface SelectStateRenderProps<T> {\n  children?: JSX.Element | ((state: SelectStateProperties<T>) => JSX.Element);\n}\n\nexport interface SelectStateProviderProps<T> extends SelectStateRenderProps<T> {\n  state: SelectStateProperties<T>;\n}\n\nconst SelectStateContext = createContext<SelectStateProperties<unknown>>();\n\nexport function SelectStateProvider<T>(\n  props: SelectStateProviderProps<T>,\n): JSX.Element {\n  return createComponent(SelectStateContext.Provider, {\n    value: props.state,\n    get children() {\n      const current = props.children;\n      if (typeof current === 'function') {\n        return current(props.state);\n      }\n      return current;\n    },\n  });\n}\n\nexport function useSelectState<T>(): SelectStateProperties<T> {\n  const ctx = useContext(SelectStateContext);\n  assert(ctx, new Error('Missing <SelectStateProvider>'));\n  return ctx;\n}\n\nexport function SelectStateChild<T>(\n  props: SelectStateRenderProps<T>,\n): JSX.Element {\n  const state = useSelectState<T>();\n  return createMemo(() => {\n    const current = props.children;\n    if (typeof current === 'function' && current.length === 1) {\n      return createMemo(() => current(state));\n    }\n    return current;\n  }) as unknown as JSX.Element;\n}\n", "export default function assert<T extends Error>(\n  cond: unknown,\n  error: T,\n): asserts cond {\n  if (!cond) {\n    throw error;\n  }\n}\n", "// Object.is is too slow\n// === is too inaccurate\nexport default function isEqual(a: unknown, b: unknown): boolean {\n  return a === b || (a !== a && b !== b);\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { Dynamic } from 'solid-js/web';\nimport type { DynamicProps, ValidConstructor } from './dynamic-prop';\n\n// This is just a shorthand for creating dynamic components\nexport default function createDynamic<T extends ValidConstructor>(\n  source: () => T,\n  props: DynamicProps<T>,\n): JSX.Element {\n  return createComponent(\n    Dynamic,\n    mergeProps(\n      {\n        get component() {\n          return source();\n        },\n      },\n      props,\n    ) as any,\n  );\n}\n", "import type { JSX, Signal } from 'solid-js';\nimport { createEffect, createSignal } from 'solid-js';\nimport type { OmitAndMerge } from './types';\n\nexport type ValidElements = keyof JSX.IntrinsicElements;\nexport type ValidComponent<P> = (props: P) => JSX.Element;\nexport type ValidConstructor =\n  | ValidElements\n  | ValidComponent<any>\n  | (string & {});\n\nexport type DynamicProps<T extends ValidConstructor> = T extends ValidElements\n  ? JSX.IntrinsicElements[T]\n  : T extends ValidComponent<infer U>\n    ? U\n    : Record<string, unknown>;\n\ntype UnboxIntrinsicElements<T> = T extends JSX.HTMLAttributes<infer U>\n  ? U\n  : never;\n\ntype RefCallback<T> = (el: T) => void;\ntype RefField<T> = T | RefCallback<T>;\n\ntype UnboxComponentProp<U> = U extends { ref: infer X } ? X : never;\n\nexport type DynamicNode<T extends ValidConstructor> = T extends ValidElements\n  ? UnboxIntrinsicElements<JSX.IntrinsicElements[T]>\n  : T extends ValidComponent<infer U>\n    ? UnboxComponentProp<U>\n    : never;\n\n// Just a dynamic way to make a `ref` property\n// based on the constructor\nexport interface WithRef<T extends ValidConstructor> {\n  ref?: RefField<DynamicNode<T>>;\n}\n\nexport interface DynamicComponent<T extends ValidConstructor> {\n  as?: T;\n}\n\nexport interface DynamicComponentWithRef<T extends ValidConstructor>\n  extends WithRef<T> {\n  as?: T;\n}\n\nexport type HeadlessProps<T extends ValidConstructor, V = {}> = OmitAndMerge<\n  V & DynamicComponent<T>,\n  DynamicProps<T>\n>;\n\nexport type HeadlessPropsWithRef<\n  T extends ValidConstructor,\n  V = {},\n> = OmitAndMerge<V & DynamicComponentWithRef<T>, DynamicProps<T>>;\n\nfunction isRefFunction<U extends ValidConstructor>(\n  callback?: RefField<DynamicNode<U>>,\n): callback is RefCallback<DynamicNode<U>> {\n  return typeof callback === 'function';\n}\n\n// `props.ref` could have been used however it doesn't enforce\n// proper timing. We want to make sure that `ref` is called in\n// a way that it behaves the same way as if it were called\n// natively on an element (which runs in the same scope as the component)\n// This is useful if the ref function itself has ownership-based calls\n// like createEffect\nexport function createForwardRef<U extends ValidConstructor>(\n  props: WithRef<U>,\n): Signal<DynamicNode<U> | undefined> {\n  const [ref, setRef] = createSignal<DynamicNode<U>>();\n\n  createEffect(() => {\n    const current = ref();\n    // Technically Solid compiles refs on components into\n    // a function, despite the fact that its type definition\n    // says that it is either a function or the ref type\n    if (current && 'ref' in props && isRefFunction(props.ref)) {\n      props.ref(current);\n    }\n  });\n\n  return [ref, setRef];\n}\n", "type Booleanish = '' | undefined;\n\nfunction toBooleanish(value?: boolean): Booleanish {\n  return value ? '' : undefined;\n}\n\n/**\n * ARIA states\n */\n\ninterface ARIADisabledProps {\n  disabled?: boolean;\n  'aria-disabled'?: boolean;\n}\n\nexport function createARIADisabledState(\n  disabled: () => boolean | undefined,\n): ARIADisabledProps {\n  return {\n    get disabled(): boolean | undefined {\n      return disabled();\n    },\n    get 'aria-disabled'(): boolean | undefined {\n      return disabled();\n    },\n  };\n}\n\ninterface ARIAExpandedProps {\n  'aria-expanded'?: boolean;\n}\n\nexport function createARIAExpandedState(\n  expanded: () => boolean | undefined,\n): ARIAExpandedProps {\n  return {\n    get 'aria-expanded'(): boolean | undefined {\n      return expanded();\n    },\n  };\n}\n\ninterface ARIACheckedProps {\n  'aria-checked': boolean | 'mixed';\n}\n\nexport function createARIACheckedState(\n  checked: () => boolean | undefined,\n): ARIACheckedProps {\n  return {\n    get 'aria-checked'(): boolean | 'mixed' {\n      return checked() ?? 'mixed';\n    },\n  };\n}\ninterface ARIASelectedProps {\n  'aria-selected': boolean;\n}\n\nexport function createARIASelectedState(\n  selected: () => boolean,\n): ARIASelectedProps {\n  return {\n    get 'aria-selected'(): boolean {\n      return selected();\n    },\n  };\n}\n\ninterface ARIAPressedProps {\n  'aria-pressed': boolean;\n}\n\nexport function createARIAPressedState(\n  pressed: () => boolean,\n): ARIAPressedProps {\n  return {\n    get 'aria-pressed'(): boolean {\n      return pressed();\n    },\n  };\n}\n\n/**\n * Terracotta States\n */\n\ninterface DisabledProps {\n  'tc-disabled'?: Booleanish;\n}\n\nexport function createDisabledState(\n  disabled: () => boolean | undefined,\n): DisabledProps {\n  return {\n    get 'tc-disabled'(): Booleanish {\n      return toBooleanish(disabled());\n    },\n  };\n}\n\ninterface ExpandedProps {\n  'tc-expanded'?: Booleanish;\n}\n\nexport function createExpandedState(\n  expanded: () => boolean | undefined,\n): ExpandedProps {\n  return {\n    get 'tc-expanded'(): Booleanish {\n      return toBooleanish(expanded());\n    },\n  };\n}\n\ninterface CheckedProps {\n  'tc-checked': Booleanish | 'mixed';\n}\n\nexport function createCheckedState(\n  isChecked: () => boolean | undefined,\n): CheckedProps {\n  return {\n    get 'tc-checked'(): Booleanish | 'mixed' {\n      const result = isChecked();\n      return result == null ? 'mixed' : toBooleanish(result);\n    },\n  };\n}\n\ninterface SelectedProps {\n  'tc-selected': Booleanish;\n}\n\nexport function createSelectedState(isSelected: () => boolean): SelectedProps {\n  return {\n    get 'tc-selected'(): Booleanish {\n      return toBooleanish(isSelected());\n    },\n  };\n}\n\ninterface ActiveProps {\n  'tc-active': Booleanish;\n}\n\nexport function createActiveState(isActive: () => boolean): ActiveProps {\n  return {\n    get 'tc-active'(): Booleanish {\n      return toBooleanish(isActive());\n    },\n  };\n}\n\ninterface MatchesProps {\n  'tc-matches': Booleanish;\n}\n\nexport function createMatchesState(matches: () => boolean): MatchesProps {\n  return {\n    get 'tc-matches'(): Booleanish {\n      return toBooleanish(matches());\n    },\n  };\n}\n\ninterface HasSelectedProps {\n  'tc-has-selected': Booleanish;\n}\n\nexport function createHasSelectedState(\n  hasSelected: () => boolean,\n): HasSelectedProps {\n  return {\n    get 'tc-has-selected'(): Booleanish {\n      return toBooleanish(hasSelected());\n    },\n  };\n}\n\ninterface HasActiveProps {\n  'tc-has-active': Booleanish;\n}\n\nexport function createHasActiveState(hasActive: () => boolean): HasActiveProps {\n  return {\n    get 'tc-has-active'(): Booleanish {\n      return toBooleanish(hasActive());\n    },\n  };\n}\n\ninterface HasQueryProps {\n  'tc-has-query': Booleanish;\n}\n\nexport function createHasQueryState(hasQuery: () => boolean): HasQueryProps {\n  return {\n    get 'tc-has-query'(): Booleanish {\n      return toBooleanish(hasQuery());\n    },\n  };\n}\n\ninterface PressedProps {\n  'tc-pressed': Booleanish;\n}\n\nexport function createPressedState(pressed: () => boolean): PressedProps {\n  return {\n    get 'tc-pressed'(): Booleanish {\n      return toBooleanish(pressed());\n    },\n  };\n}\n", "import { onCleanup } from 'solid-js';\n\nfunction useEventListener<\n  T extends HTMLElement,\n  K extends keyof HTMLElementEventMap,\n>(\n  node: T,\n  type: K,\n  listener: (ev: HTMLElementEventMap[K]) => void,\n  options?: boolean | AddEventListenerOptions,\n): void;\nfunction useEventListener<T extends Window, K extends keyof WindowEventMap>(\n  node: T,\n  type: K,\n  listener: (ev: WindowEventMap[K]) => void,\n  options?: boolean | AddEventListenerOptions,\n): void;\nfunction useEventListener<T extends Document, K extends keyof DocumentEventMap>(\n  node: T,\n  type: K,\n  listener: (ev: DocumentEventMap[K]) => void,\n  options?: boolean | AddEventListenerOptions,\n): void;\nfunction useEventListener<T extends Document, K extends keyof DocumentEventMap>(\n  node: T,\n  type: K,\n  listener: (ev: DocumentEventMap[K]) => void,\n  options?: boolean | AddEventListenerOptions,\n): void {\n  node.addEventListener(type, listener, options);\n  onCleanup(() => {\n    node.removeEventListener(type, listener, options);\n  });\n}\n\nexport default useEventListener;\n", "import { createContext, createUniqueId, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\nimport FocusNavigator from '../../utils/focus-navigator';\n\nexport const AccordionContext = createContext<FocusNavigator>();\n\nexport function useAccordionContext(componentName: string): FocusNavigator {\n  const context = useContext(AccordionContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <Accordion>`),\n  );\n  return context;\n}\n\nexport function createAccordionFocusNavigator(): FocusNavigator {\n  return new FocusNavigator(createUniqueId());\n}\n", "// This is just a close approximation\n// I'm not sure if this is accurate\nconst QUERY =\n  'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex]:not([tabindex=\"-1\"]), [contenteditable]';\n\nexport default function getFocusableElements(\n  node: HTMLElement,\n  filter?: HTMLElement,\n): HTMLElement[] {\n  const nodes = node.querySelectorAll(QUERY);\n  const replicated: Element[] = [];\n\n  for (let i = 0, len = nodes.length; i < len; i += 1) {\n    if (!(filter && filter.contains(nodes[i]))) {\n      replicated.push(nodes[i]);\n    }\n  }\n\n  return replicated as HTMLElement[];\n}\n", "export const DATA_SET_NAMESPACE = 'tc';\n\nexport const DISABLED_NODE = `[${DATA_SET_NAMESPACE}-disabled]`;\nexport const SELECTED_NODE = `[${DATA_SET_NAMESPACE}-selected]`;\nexport const CHECKED_NODE = `[${DATA_SET_NAMESPACE}-checked]`;\nexport const MATCHES_NODE = `[${DATA_SET_NAMESPACE}-matches]`;\n\ntype TerracottaTag = {\n  [key in `${typeof DATA_SET_NAMESPACE}-${string}`]: string;\n};\n\nexport function createTag(tag: string): TerracottaTag {\n  return {\n    [`${DATA_SET_NAMESPACE}-${tag}`]: '',\n  };\n}\n", "import { onCleanup } from 'solid-js';\n\ntype FocusListener = (el: HTMLElement) => void;\n\nconst LISTENERS = new Set<FocusListener>();\n\nexport function useVirtualFocus(listener: FocusListener): void {\n  LISTENERS.add(listener);\n\n  onCleanup(() => {\n    LISTENERS.delete(listener);\n  });\n}\n\n// This is just a way to emulate focus without actually losing the focused element\n// This is useful in combination with `aria-activedescendant`\n// References\n// https://www.w3.org/WAI/GL/wiki/Using_aria-activedescendant_to_allow_changes_in_focus_within_widgets_to_be_communicated_to_Assistive_Technology\n// https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-activedescendant\nexport function focusVirtually<T extends HTMLElement>(el: T): void {\n  for (const listener of LISTENERS.keys()) {\n    listener(el);\n  }\n}\n", "import getFocusableElements from './focus-query';\nimport { DISABLED_NODE } from './namespace';\nimport { focusVirtually } from './virtual-focus';\n\nconst enum Direction {\n  Next = 1,\n  Prev = -1,\n}\n\nfunction isFocusable(el: HTMLElement): boolean {\n  return !el.matches(DISABLED_NODE);\n}\n\n// Gets the next focusable element\nfunction getNextFocusable(\n  nodes: HTMLElement[] | NodeListOf<HTMLElement>,\n  anchor: number,\n  direction: Direction,\n  loop: boolean,\n): HTMLElement | undefined {\n  let current = anchor + direction;\n  if (loop) {\n    if (direction === Direction.Next && current === nodes.length) {\n      current = 0;\n    }\n    if (direction === Direction.Prev && current === -1) {\n      current = nodes.length - 1;\n    }\n    while (anchor !== current) {\n      if (isFocusable(nodes[current])) {\n        return nodes[current];\n      }\n      current += direction;\n      if (direction === Direction.Next && current >= nodes.length) {\n        current = 0;\n      }\n      if (direction === Direction.Prev && current < 0) {\n        current = nodes.length - 1;\n      }\n    }\n    return undefined;\n  }\n  while (current >= 0 && current < nodes.length) {\n    if (isFocusable(nodes[current])) {\n      return nodes[current];\n    }\n    current += direction;\n  }\n  return undefined;\n}\n\nexport function focusNode(\n  node: HTMLElement | undefined,\n  virtual: boolean,\n): HTMLElement | undefined {\n  if (node) {\n    if (virtual) {\n      focusVirtually(node);\n    } else {\n      node.focus();\n    }\n  }\n  return node;\n}\n\nexport function focusNext(\n  nodes: HTMLElement[] | NodeListOf<HTMLElement>,\n  targetNode: HTMLElement,\n  loop: boolean,\n  virtual: boolean,\n): HTMLElement | undefined {\n  for (let i = 0, len = nodes.length; i < len; i += 1) {\n    if (targetNode === nodes[i] || nodes[i].contains(targetNode)) {\n      return focusNode(\n        getNextFocusable(nodes, i, Direction.Next, loop),\n        virtual,\n      );\n    }\n  }\n  return undefined;\n}\n\nexport function focusPrev(\n  nodes: HTMLElement[] | NodeListOf<HTMLElement>,\n  targetNode: HTMLElement,\n  loop: boolean,\n  virtual: boolean,\n): HTMLElement | undefined {\n  for (let i = 0, len = nodes.length; i < len; i += 1) {\n    if (nodes[i].contains(targetNode)) {\n      return focusNode(\n        getNextFocusable(nodes, i, Direction.Prev, loop),\n        virtual,\n      );\n    }\n  }\n  return undefined;\n}\n\nexport function focusFirst(\n  nodes: HTMLElement[] | NodeListOf<HTMLElement>,\n  virtual: boolean,\n): HTMLElement | undefined {\n  if (nodes.length) {\n    return focusNode(\n      getNextFocusable(nodes, -1, Direction.Next, false),\n      virtual,\n    );\n  }\n  return undefined;\n}\n\nexport function focusLast(\n  nodes: HTMLElement[] | NodeListOf<HTMLElement>,\n  virtual: boolean,\n): HTMLElement | undefined {\n  if (nodes.length) {\n    return focusNode(\n      getNextFocusable(nodes, nodes.length, Direction.Prev, false),\n      virtual,\n    );\n  }\n  return undefined;\n}\n\nexport function focusMatch(\n  nodes: HTMLElement[] | NodeListOf<HTMLElement>,\n  character: string,\n  virtual: boolean,\n): HTMLElement | undefined {\n  const lower = character.toLowerCase();\n  for (let i = 0, l = nodes.length; i < l; i += 1) {\n    const content = nodes[i].textContent;\n    if (content != null && content.toLowerCase().startsWith(lower)) {\n      return focusNode(nodes[i], virtual);\n    }\n  }\n  return undefined;\n}\n\nexport function lockFocus(\n  ref: HTMLElement,\n  reverse: boolean,\n  virtual: boolean,\n): HTMLElement | undefined {\n  const nodes = getFocusableElements(ref);\n  if (reverse) {\n    if (!(document.activeElement && ref.contains(document.activeElement))) {\n      return focusLast(nodes, virtual);\n    }\n    return focusPrev(\n      nodes,\n      document.activeElement as HTMLElement,\n      true,\n      virtual,\n    );\n  }\n  if (!(document.activeElement && ref.contains(document.activeElement))) {\n    return focusFirst(nodes, virtual);\n  }\n  return focusNext(nodes, document.activeElement as HTMLElement, true, virtual);\n}\n", "import assert from './assert';\nimport {\n  focusFirst,\n  focusLast,\n  focusMatch,\n  focusNext,\n  focusNode,\n  focusPrev,\n} from './focus-navigation';\nimport { DATA_SET_NAMESPACE, DISABLED_NODE } from './namespace';\n\nconst OWNER = `${DATA_SET_NAMESPACE}-owner` as const;\n\nfunction queryNodes<T extends Element>(\n  el: T,\n  ownerID: string,\n  condition = '',\n): NodeListOf<HTMLElement> {\n  // We only query nodes that are:\n  // - owned by the root component via ownerID\n  // - node isn't disabled\n  // - extra condition\n  const query = `[${OWNER}=\"${ownerID}\"]:not(${DISABLED_NODE})${condition}`;\n  const nodes = el.querySelectorAll<HTMLElement>(query);\n  return nodes;\n}\n\ntype OwnerAttribute = {\n  [key in typeof OWNER]: string;\n};\n\nexport function createOwnerAttribute(ownerID: string): OwnerAttribute {\n  return {\n    [OWNER]: ownerID,\n  };\n}\n\nexport interface FocusNavigatorOptions {\n  virtual: boolean;\n  base: string;\n}\n\nexport default class FocusNavigator {\n  private ownerID: string;\n\n  private options: FocusNavigatorOptions;\n\n  private internalRef?: HTMLElement;\n\n  private current: HTMLElement | undefined;\n\n  constructor(ownerID: string, options: Partial<FocusNavigatorOptions> = {}) {\n    this.ownerID = ownerID;\n    this.options = {\n      virtual: options.virtual ?? false,\n      base: options.base ?? '',\n    };\n  }\n\n  setRef(ref: HTMLElement): void {\n    this.internalRef = ref;\n  }\n\n  clearRef(): void {\n    this.internalRef = undefined;\n  }\n\n  private query(ref: HTMLElement, condition = ''): NodeListOf<HTMLElement> {\n    return queryNodes(ref, this.ownerID, `${this.options.base}${condition}`);\n  }\n\n  setCurrent(node: HTMLElement): void {\n    this.current = node;\n  }\n\n  setChecked(node: HTMLElement): void {\n    this.current = focusNode(node, this.options.virtual);\n  }\n\n  setNextChecked(loop: boolean): void {\n    if (this.internalRef instanceof HTMLElement) {\n      assert(this.current, new Error('missing current ref'));\n      const current = focusNext(\n        this.query(this.internalRef),\n        this.current,\n        loop,\n        this.options.virtual,\n      );\n      if (current) {\n        this.current = current;\n      }\n    }\n  }\n\n  setPrevChecked(loop: boolean): void {\n    if (this.internalRef instanceof HTMLElement) {\n      assert(this.current, new Error('missing current ref'));\n      const current = focusPrev(\n        this.query(this.internalRef),\n        this.current,\n        loop,\n        this.options.virtual,\n      );\n      if (current) {\n        this.current = current;\n      }\n    }\n  }\n\n  setFirstChecked(condition = ''): void {\n    if (this.internalRef instanceof HTMLElement) {\n      const current = focusFirst(\n        this.query(this.internalRef, condition),\n        this.options.virtual,\n      );\n      if (current) {\n        this.current = current;\n      }\n    }\n  }\n\n  setLastChecked(condition = ''): void {\n    if (this.internalRef instanceof HTMLElement) {\n      const current = focusLast(\n        this.query(this.internalRef, condition),\n        this.options.virtual,\n      );\n      if (current) {\n        this.current = current;\n      }\n    }\n  }\n\n  setFirstMatch(character: string): void {\n    if (this.internalRef instanceof HTMLElement) {\n      const current = focusMatch(\n        this.query(this.internalRef),\n        character,\n        this.options.virtual,\n      );\n      if (current) {\n        this.current = current;\n      }\n    }\n  }\n\n  getId(): string {\n    return this.ownerID;\n  }\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const ACCORDION_TAG = createTag('accordion');\nexport const ACCORDION_BUTTON_TAG = createTag('accordion-button');\nexport const ACCORDION_HEADER_TAG = createTag('accordion-header');\nexport const ACCORDION_ITEM_TAG = createTag('accordion-item');\nexport const ACCORDION_PANEL_TAG = createTag('accordion-panel');\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { SelectOptionStateRenderProps } from '../../states/create-select-option-state';\nimport {\n  SelectOptionStateChild,\n  useSelectOptionState,\n} from '../../states/create-select-option-state';\nimport type {\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { createOwnerAttribute } from '../../utils/focus-navigator';\nimport {\n  createARIADisabledState,\n  createARIAExpandedState,\n  createActiveState,\n  createDisabledState,\n  createExpandedState,\n  createSelectedState,\n} from '../../utils/state-props';\nimport type { OmitAndMerge } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport type { ButtonProps } from '../button';\nimport { Button } from '../button';\nimport { useAccordionContext } from './AccordionContext';\nimport { useAccordionItemContext } from './AccordionItemContext';\nimport { ACCORDION_BUTTON_TAG } from './tags';\n\nexport type AccordionButtonProps<T extends ValidConstructor = 'button'> =\n  HeadlessPropsWithRef<\n    T,\n    OmitAndMerge<SelectOptionStateRenderProps, ButtonProps<T>>\n  >;\n\nexport function AccordionButton<T extends ValidConstructor = 'button'>(\n  props: AccordionButtonProps<T>,\n): JSX.Element {\n  const rootContext = useAccordionContext('AccordionButton');\n  const itemContext = useAccordionItemContext('AccordionButton');\n  const state = useSelectOptionState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  const isDisabled = (): boolean | undefined =>\n    state.disabled() || props.disabled;\n\n  createEffect(() => {\n    const current = internalRef();\n\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        if (!isDisabled()) {\n          state.select();\n        }\n      });\n      useEventListener(current, 'focus', () => {\n        if (!isDisabled()) {\n          state.focus();\n        }\n      });\n      useEventListener(current, 'blur', () => {\n        if (!isDisabled()) {\n          state.blur();\n        }\n      });\n    }\n  });\n\n  return createComponent(\n    Button,\n    mergeProps(\n      omitProps(props, ['children', 'ref', 'disabled']),\n      ACCORDION_BUTTON_TAG,\n      {\n        id: itemContext.buttonID,\n        ref: setInternalRef,\n        get 'aria-controls'() {\n          return state.isSelected() && itemContext.panelID;\n        },\n      },\n      createOwnerAttribute(rootContext.getId()),\n      createDisabledState(isDisabled),\n      createARIADisabledState(isDisabled),\n      createSelectedState(() => state.isSelected()),\n      createExpandedState(() => state.isSelected()),\n      createARIAExpandedState(() => state.isSelected()),\n      createActiveState(() => state.isActive()),\n      {\n        get children() {\n          return createComponent(SelectOptionStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n    ) as ButtonProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createContext,\n  createMemo,\n  untrack,\n  useContext,\n} from 'solid-js';\nimport assert from '../utils/assert';\nimport { useSelectState } from './create-select-state';\n\nexport interface SelectOptionStateOptions<T> {\n  value: T;\n  disabled?: boolean;\n}\n\nexport interface SelectOptionStateProperties {\n  isSelected(): boolean;\n  select(): void;\n  isActive(): boolean;\n  focus(): void;\n  blur(): void;\n  disabled(): boolean;\n}\n\nexport function createSelectOptionState<T>(\n  options: SelectOptionStateOptions<T>,\n): SelectOptionStateProperties {\n  const state = useSelectState<T>();\n  const isDisabled = createMemo(() => options.disabled || state.disabled());\n  return {\n    isSelected: createMemo(() => state.isSelected(options.value)),\n    isActive: createMemo(() => state.isActive(options.value)),\n    select(): void {\n      if (!untrack(isDisabled)) {\n        state.select(options.value);\n      }\n    },\n    focus(): void {\n      if (!untrack(isDisabled)) {\n        state.focus(options.value);\n      }\n    },\n    blur(): void {\n      if (!untrack(isDisabled) && this.isActive()) {\n        state.blur();\n      }\n    },\n    disabled: isDisabled,\n  };\n}\n\nexport interface SelectOptionStateRenderProps {\n  children?:\n    | JSX.Element\n    | ((state: SelectOptionStateProperties) => JSX.Element);\n}\n\nexport interface SelectOptionStateProviderProps\n  extends SelectOptionStateRenderProps {\n  state: SelectOptionStateProperties;\n}\n\nconst SelectOptionStateContext = createContext<SelectOptionStateProperties>();\n\nexport function SelectOptionStateProvider(\n  props: SelectOptionStateProviderProps,\n): JSX.Element {\n  return createComponent(SelectOptionStateContext.Provider, {\n    value: props.state,\n    get children() {\n      const current = props.children;\n      if (typeof current === 'function') {\n        return current(props.state);\n      }\n      return current;\n    },\n  });\n}\n\nexport function useSelectOptionState(): SelectOptionStateProperties {\n  const ctx = useContext(SelectOptionStateContext);\n  assert(ctx, new Error('Missing <SelectOptionStateProvider>'));\n  return ctx;\n}\n\nexport function SelectOptionStateChild(\n  props: SelectOptionStateRenderProps,\n): JSX.Element {\n  const state = useSelectOptionState();\n  return createMemo(() => {\n    const current = props.children;\n    if (typeof current === 'function' && current.length === 1) {\n      return createMemo(() => current(state));\n    }\n    return current;\n  }) as unknown as JSX.Element;\n}\n", "import type { JSX } from 'solid-js';\nimport { createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { createTag } from '../../utils/namespace';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\n\nconst BUTTON_TAG = createTag('button');\n\ninterface ButtonBaseProps {\n  disabled?: boolean;\n}\n\nexport type ButtonProps<T extends ValidConstructor = 'button'> =\n  HeadlessPropsWithRef<T, ButtonBaseProps>;\n\nexport function Button<T extends ValidConstructor = 'button'>(\n  props: ButtonProps<T>,\n): JSX.Element {\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      // This behavior is redundant for buttons\n      if (current.tagName !== 'BUTTON') {\n        useEventListener(current, 'keydown', e => {\n          switch (e.key) {\n            case 'Enter':\n            case ' ': {\n              current.click();\n              break;\n            }\n          }\n        });\n      }\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('button' as T),\n    mergeProps(\n      BUTTON_TAG,\n      {\n        get tabindex() {\n          return props.disabled ? -1 : 0;\n        },\n        role: 'button',\n      },\n      createDisabledState(() => props.disabled),\n      createARIADisabledState(() => props.disabled),\n      omitProps(props, ['as', 'ref']),\n      {\n        ref: setInternalRef,\n      },\n    ) as DynamicProps<T>,\n  );\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\n\ninterface AccordionItemContextData {\n  buttonID: string;\n  panelID: string;\n}\n\nexport const AccordionItemContext = createContext<AccordionItemContextData>();\n\nexport function useAccordionItemContext(\n  componentName: string,\n): AccordionItemContextData {\n  const context = useContext(AccordionItemContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <AccordionItem>`),\n  );\n  return context;\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { SelectOptionStateRenderProps } from '../../states/create-select-option-state';\nimport {\n  SelectOptionStateChild,\n  useSelectOptionState,\n} from '../../states/create-select-option-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createActiveState,\n  createDisabledState,\n  createExpandedState,\n  createSelectedState,\n} from '../../utils/state-props';\nimport { useAccordionItemContext } from './AccordionItemContext';\nimport { ACCORDION_HEADER_TAG } from './tags';\n\nexport type AccordionHeaderProps<T extends ValidConstructor = 'h3'> =\n  HeadlessProps<T, SelectOptionStateRenderProps>;\n\nexport function AccordionHeader<T extends ValidConstructor = 'h3'>(\n  props: AccordionHeaderProps<T>,\n): JSX.Element {\n  useAccordionItemContext('AccordionHeader');\n  const state = useSelectOptionState();\n  return createDynamic<T>(\n    () => props.as || ('h3' as T),\n    mergeProps(\n      omitProps(props, ['as', 'children']),\n      ACCORDION_HEADER_TAG,\n      createDisabledState(() => state.disabled()),\n      createSelectedState(() => state.isSelected()),\n      createExpandedState(() => state.isSelected()),\n      createActiveState(() => state.isActive()),\n      {\n        get children() {\n          return createComponent(SelectOptionStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createUniqueId, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  SelectOptionStateOptions,\n  SelectOptionStateRenderProps,\n} from '../../states/create-select-option-state';\nimport {\n  SelectOptionStateProvider,\n  createSelectOptionState,\n} from '../../states/create-select-option-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createActiveState,\n  createDisabledState,\n  createExpandedState,\n  createSelectedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport { useAccordionContext } from './AccordionContext';\nimport { AccordionItemContext } from './AccordionItemContext';\nimport { ACCORDION_ITEM_TAG } from './tags';\n\nexport type AccordionItemprops<V> = Prettify<\n  SelectOptionStateOptions<V> & SelectOptionStateRenderProps\n>;\n\nexport type AccordionItemProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, AccordionItemprops<V>>;\n\nexport function AccordionItem<V, T extends ValidConstructor = 'div'>(\n  props: AccordionItemProps<V, T>,\n): JSX.Element {\n  useAccordionContext('AccordionItem');\n  const buttonID = createUniqueId();\n  const panelID = createUniqueId();\n  const state = createSelectOptionState(props);\n\n  return createComponent(AccordionItemContext.Provider, {\n    value: { buttonID, panelID },\n    get children() {\n      return createDynamic(\n        () => props.as || ('div' as T),\n        mergeProps(\n          omitProps(props, ['as', 'children', 'value', 'disabled']),\n          ACCORDION_ITEM_TAG,\n          createDisabledState(() => state.disabled()),\n          createARIADisabledState(() => state.disabled()),\n          createSelectedState(() => state.isSelected()),\n          createExpandedState(() => state.isSelected()),\n          createActiveState(() => state.isActive()),\n          {\n            get children() {\n              return createComponent(SelectOptionStateProvider, {\n                state,\n                get children() {\n                  return props.children;\n                },\n              });\n            },\n          },\n        ) as DynamicProps<T>,\n      );\n    },\n  });\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { SelectOptionStateRenderProps } from '../../states/create-select-option-state';\nimport {\n  SelectOptionStateChild,\n  useSelectOptionState,\n} from '../../states/create-select-option-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type { UnmountableProps } from '../../utils/create-unmountable';\nimport { createUnmountable } from '../../utils/create-unmountable';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createActiveState,\n  createDisabledState,\n  createExpandedState,\n  createSelectedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport { useAccordionItemContext } from './AccordionItemContext';\nimport { ACCORDION_PANEL_TAG } from './tags';\n\nexport type AccordionPanelBaseProps = Prettify<\n  SelectOptionStateRenderProps & UnmountableProps\n>;\n\nexport type AccordionPanelProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, AccordionPanelBaseProps>;\n\nexport function AccordionPanel<T extends ValidConstructor = 'div'>(\n  props: AccordionPanelProps<T>,\n): JSX.Element {\n  const context = useAccordionItemContext('AccordionPanel');\n  const state = useSelectOptionState();\n\n  return createUnmountable(\n    props,\n    () => state.isSelected(),\n    () =>\n      createDynamic(\n        () => props.as || ('div' as T),\n        mergeProps(\n          omitProps(props, ['as', 'children', 'unmount']),\n          ACCORDION_PANEL_TAG,\n          {\n            id: context.panelID,\n            'aria-labelledby': context.buttonID,\n          },\n          createDisabledState(() => state.disabled()),\n          createSelectedState(() => state.isSelected()),\n          createExpandedState(() => state.isSelected()),\n          createActiveState(() => state.isActive()),\n          {\n            get children() {\n              return createComponent(SelectOptionStateChild, {\n                get children() {\n                  return props.children;\n                },\n              });\n            },\n          },\n        ) as DynamicProps<T>,\n      ),\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { children, createMemo } from 'solid-js';\n\n// An `unmountable` is a kind of component\n// where one can decide if it should conditionally\n// render or not.\n// This is only used for disclosure-based properties\n// as some implementations may allow users to use various\n// ways to hide the element (e.g. opacity, display, visibility)\nexport interface UnmountableProps {\n  unmount?: boolean | 'offscreen';\n}\n\nexport function createUnmountable(\n  props: UnmountableProps,\n  shouldMount: () => boolean,\n  render: () => JSX.Element,\n): JSX.Element {\n  const mode = createMemo(() => (props.unmount == null ? true : props.unmount));\n  return createMemo(() => {\n    const currentMode = mode();\n\n    if (currentMode === 'offscreen') {\n      const condition = createMemo(() => shouldMount());\n      const current = children(() => render());\n      return createMemo(() => condition() && current);\n    }\n    if (currentMode) {\n      const condition = createMemo(() => shouldMount());\n      return createMemo(() => condition() && render);\n    }\n    return render;\n  }) as unknown as JSX.Element;\n}\n", "import type { JSX } from 'solid-js';\nimport { createUniqueId, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createTag } from '../../utils/namespace';\n\nconst ALERT_TAG = createTag('alert');\n\nexport type AlertProps<T extends ValidConstructor = 'div'> = HeadlessProps<T>;\n\nexport function Alert<T extends ValidConstructor = 'div'>(\n  props: AlertProps<T>,\n): JSX.Element {\n  const alertID = createUniqueId();\n\n  return createDynamic(\n    () => props.as || ('div' as T),\n    mergeProps(\n      {\n        id: alertID,\n      },\n      omitProps(props, ['as']),\n      ALERT_TAG,\n      {\n        role: 'alert',\n      },\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createUniqueId,\n  mergeProps,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  DisclosureStateControlledOptions,\n  DisclosureStateRenderProps,\n  DisclosureStateUncontrolledOptions,\n} from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateProvider,\n  createDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type { UnmountableProps } from '../../utils/create-unmountable';\nimport { createUnmountable } from '../../utils/create-unmountable';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useFocusStartPoint from '../../utils/use-focus-start-point';\nimport { AlertDialogContext } from './AlertDialogContext';\nimport { ALERT_DIALOG_TAG } from './tags';\n\nexport type AlertDialogControlledBaseProps = Prettify<\n  DisclosureStateControlledOptions &\n    DisclosureStateRenderProps &\n    UnmountableProps\n>;\n\nexport type AlertDialogControlledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, AlertDialogControlledBaseProps>;\n\nexport type AlertDialogUncontrolledBaseProps = Prettify<\n  DisclosureStateUncontrolledOptions &\n    DisclosureStateRenderProps &\n    UnmountableProps\n>;\n\nexport type AlertDialogUncontrolledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, AlertDialogUncontrolledBaseProps>;\n\nexport type AlertDialogProps<T extends ValidConstructor = 'div'> =\n  | AlertDialogControlledProps<T>\n  | AlertDialogUncontrolledProps<T>;\n\nfunction isAlertDialogUncontrolled<T extends ValidConstructor = 'div'>(\n  props: AlertDialogProps<T>,\n): props is AlertDialogUncontrolledProps<T> {\n  return 'defaultOpen' in props;\n}\n\nexport function AlertDialog<T extends ValidConstructor = 'div'>(\n  props: AlertDialogProps<T>,\n): JSX.Element {\n  const ownerID = createUniqueId();\n  const panelID = createUniqueId();\n  const titleID = createUniqueId();\n  const descriptionID = createUniqueId();\n\n  const fsp = useFocusStartPoint();\n\n  const state = createDisclosureState(props);\n\n  createEffect(() => {\n    if (state.isOpen()) {\n      fsp.save();\n    } else {\n      fsp.load();\n    }\n  });\n\n  return createComponent(AlertDialogContext.Provider, {\n    value: {\n      ownerID,\n      panelID,\n      titleID,\n      descriptionID,\n    },\n    get children() {\n      return createUnmountable(\n        props,\n        () => state.isOpen(),\n        () =>\n          createDynamic(\n            () => props.as || ('div' as T),\n            mergeProps(\n              isAlertDialogUncontrolled(props)\n                ? omitProps(props, [\n                    'as',\n                    'children',\n                    'defaultOpen',\n                    'disabled',\n                    'onChange',\n                    'onClose',\n                    'onOpen',\n                    'unmount',\n                  ])\n                : omitProps(props, [\n                    'as',\n                    'children',\n                    'isOpen',\n                    'disabled',\n                    'onChange',\n                    'onClose',\n                    'onOpen',\n                    'unmount',\n                  ]),\n              ALERT_DIALOG_TAG,\n              {\n                id: ownerID,\n                role: 'alertdialog',\n                'aria-modal': true,\n                'aria-labelledby': titleID,\n                'aria-describedby': descriptionID,\n                get children() {\n                  return createComponent(DisclosureStateProvider, {\n                    state,\n                    get children() {\n                      return props.children;\n                    },\n                  });\n                },\n              },\n              createDisabledState(() => state.disabled()),\n              createARIADisabledState(() => state.disabled()),\n              createExpandedState(() => state.isOpen()),\n            ) as DynamicProps<T>,\n          ),\n      );\n    },\n  });\n}\n", "import type { Accessor, JSX } from 'solid-js';\nimport {\n  createComponent,\n  createContext,\n  createMemo,\n  createSignal,\n  untrack,\n  useContext,\n} from 'solid-js';\nimport assert from '../utils/assert';\n\nexport interface DisclosureStateControlledOptions {\n  isOpen: boolean;\n  disabled?: boolean;\n  onChange?: (state: boolean) => void;\n  onClose?: () => void;\n  onOpen?: () => void;\n}\nexport interface DisclosureStateUncontrolledOptions {\n  defaultOpen: boolean;\n  disabled?: boolean;\n  onChange?: (state: boolean) => void;\n  onClose?: () => void;\n  onOpen?: () => void;\n}\n\nexport type DisclosureStateOptions =\n  | DisclosureStateControlledOptions\n  | DisclosureStateUncontrolledOptions;\n\nexport interface DisclosureStateProperties {\n  isOpen(): boolean;\n  setState(newState: boolean): void;\n  disabled(): boolean;\n  close(): void;\n  open(): void;\n  toggle(): void;\n}\n\nexport function createDisclosureState(\n  options: DisclosureStateOptions,\n): DisclosureStateProperties {\n  let signal: Accessor<boolean>;\n  let setSignal: (value: boolean) => void;\n\n  if ('defaultOpen' in options) {\n    const [isOpen, setIsOpen] = createSignal(options.defaultOpen);\n    signal = isOpen;\n    setSignal = (value): void => {\n      setIsOpen(value);\n      if (value && options.onOpen) {\n        options.onOpen();\n      }\n      if (options.onChange) {\n        options.onChange(value);\n      }\n      if (!value && options.onClose) {\n        options.onClose();\n      }\n    };\n  } else {\n    signal = createMemo(() => options.isOpen);\n    setSignal = (value): void => {\n      if (value && options.onOpen) {\n        options.onOpen();\n      }\n      if (options.onChange) {\n        options.onChange(value);\n      }\n      if (!value && options.onClose) {\n        options.onClose();\n      }\n    };\n  }\n\n  const isDisabled = createMemo(() => !!options.disabled);\n\n  return {\n    isOpen(): boolean {\n      return signal();\n    },\n    setState(value): void {\n      if (!untrack(isDisabled)) {\n        setSignal(value);\n      }\n    },\n    disabled: isDisabled,\n    open(): void {\n      if (!untrack(isDisabled)) {\n        setSignal(true);\n      }\n    },\n    close(): void {\n      if (!untrack(isDisabled)) {\n        setSignal(false);\n      }\n    },\n    toggle(): void {\n      if (!untrack(isDisabled)) {\n        setSignal(!untrack(signal));\n      }\n    },\n  };\n}\n\nexport interface DisclosureStateRenderProps {\n  children?: JSX.Element | ((state: DisclosureStateProperties) => JSX.Element);\n}\n\nexport interface DisclosureStateProviderProps\n  extends DisclosureStateRenderProps {\n  state: DisclosureStateProperties;\n}\n\nconst DisclosureStateContext = createContext<DisclosureStateProperties>();\n\nexport function DisclosureStateProvider(\n  props: DisclosureStateProviderProps,\n): JSX.Element {\n  return createComponent(DisclosureStateContext.Provider, {\n    value: props.state,\n    get children() {\n      const current = props.children;\n      if (typeof current === 'function') {\n        return current(props.state);\n      }\n      return current;\n    },\n  });\n}\n\nexport function useDisclosureState(): DisclosureStateProperties {\n  const ctx = useContext(DisclosureStateContext);\n  assert(ctx, new Error('Missing <DisclosureStateProvider>'));\n  return ctx;\n}\n\nexport function DisclosureStateChild(\n  props: DisclosureStateRenderProps,\n): JSX.Element {\n  const state = useDisclosureState();\n  return createMemo(() => {\n    const current = props.children;\n    if (typeof current === 'function' && current.length === 1) {\n      return createMemo(() => current(state));\n    }\n    return current;\n  }) as unknown as JSX.Element;\n}\n", "import { onCleanup } from 'solid-js';\nimport { isServer } from 'solid-js/web';\nimport { getFocusStartPoint, setFocusStartPoint } from './focus-start-point';\n\nclass FocusStartPoint {\n  private returnElement: Element | null | undefined;\n\n  private fsp: HTMLElement | null | undefined;\n\n  constructor() {\n    if (!isServer) {\n      this.returnElement = document.activeElement;\n      this.fsp = getFocusStartPoint();\n      onCleanup(() => {\n        this.load();\n      });\n    }\n  }\n\n  load(): void {\n    if (this.returnElement instanceof HTMLElement) {\n      this.returnElement.focus();\n    } else {\n      setFocusStartPoint(this.fsp);\n    }\n  }\n\n  save(): void {\n    this.returnElement = document.activeElement;\n    this.fsp = getFocusStartPoint();\n  }\n}\n\nexport default function useFocusStartPoint(): FocusStartPoint {\n  return new FocusStartPoint();\n}\n", "// document.activeElement isn't accurate for this specific behavior\n\nexport function getFocusStartPoint(): HTMLElement | null | undefined {\n  const selection = window.getSelection();\n  if (selection) {\n    const node = selection.focusNode;\n    if (node) {\n      return node.parentElement;\n    }\n  }\n  return undefined;\n}\n\nexport function setFocusStartPoint(element?: HTMLElement | null): void {\n  if (element) {\n    const tabindex = element.getAttribute('tabindex');\n\n    element.setAttribute('tabindex', '-1');\n    element.focus();\n    element.blur();\n\n    if (tabindex) {\n      element.setAttribute('tabindex', tabindex);\n    } else {\n      element.removeAttribute('tabindex');\n    }\n  }\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\n\ninterface AlertDialogContextData {\n  ownerID: string;\n  panelID: string;\n  titleID: string;\n  descriptionID: string;\n}\n\nexport const AlertDialogContext = createContext<AlertDialogContextData>();\n\nexport function useAlertDialogContext(\n  componentName: string,\n): AlertDialogContextData {\n  const context = useContext(AlertDialogContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <AlertDialog>`),\n  );\n  return context;\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const ALERT_DIALOG_TAG = createTag('alert-dialog');\nexport const ALERT_DIALOG_DESCRIPTION_TAG = createTag(\n  'alert-dialog-description',\n);\nexport const ALERT_DIALOG_OVERLAY_TAG = createTag('alert-dialog-overlay');\nexport const ALERT_DIALOG_PANEL_TAG = createTag('alert-dialog-panel');\nexport const ALERT_DIALOG_TITLE_TAG = createTag('alert-dialog-title');\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport { useAlertDialogContext } from './AlertDialogContext';\nimport { ALERT_DIALOG_DESCRIPTION_TAG } from './tags';\n\nexport type AlertDialogDescriptionProps<T extends ValidConstructor = 'p'> =\n  HeadlessProps<T, DisclosureStateRenderProps>;\n\nexport function AlertDialogDescription<T extends ValidConstructor = 'p'>(\n  props: AlertDialogDescriptionProps<T>,\n): JSX.Element {\n  const context = useAlertDialogContext('AlertDialogDescription');\n  const state = useDisclosureState();\n  return createDynamic(\n    () => props.as || ('p' as T),\n    mergeProps(\n      omitProps(props, ['as', 'children']),\n      ALERT_DIALOG_DESCRIPTION_TAG,\n      {\n        id: context.descriptionID,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useAlertDialogContext } from './AlertDialogContext';\nimport { ALERT_DIALOG_OVERLAY_TAG } from './tags';\n\nexport type AlertDialogOverlayProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, DisclosureStateRenderProps>;\n\nexport function AlertDialogOverlay<T extends ValidConstructor = 'div'>(\n  props: AlertDialogOverlayProps<T>,\n): JSX.Element {\n  useAlertDialogContext('AlertDialogOverlay');\n  const state = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        state.close();\n      });\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('div' as T),\n    mergeProps(\n      omitProps(props, ['as', 'children', 'ref']),\n      ALERT_DIALOG_OVERLAY_TAG,\n      {\n        ref: setInternalRef,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { focusFirst, lockFocus } from '../../utils/focus-navigation';\nimport getFocusableElements from '../../utils/focus-query';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useAlertDialogContext } from './AlertDialogContext';\nimport { ALERT_DIALOG_PANEL_TAG } from './tags';\n\nexport type AlertDialogPanelProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, DisclosureStateRenderProps>;\n\nexport function AlertDialogPanel<T extends ValidConstructor = 'div'>(\n  props: AlertDialogPanelProps<T>,\n): JSX.Element {\n  const context = useAlertDialogContext('AlertDialogPanel');\n  const state = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      if (state.isOpen()) {\n        focusFirst(getFocusableElements(current), false);\n\n        useEventListener(current, 'keydown', e => {\n          if (!props.disabled) {\n            switch (e.key) {\n              case 'Tab': {\n                e.preventDefault();\n                lockFocus(current, e.shiftKey, false);\n                break;\n              }\n              case 'Escape': {\n                state.close();\n                break;\n              }\n              default:\n                break;\n            }\n          }\n        });\n      }\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('div' as T),\n    mergeProps(\n      omitProps(props, ['as', 'children', 'ref']),\n      ALERT_DIALOG_PANEL_TAG,\n      {\n        id: context.panelID,\n        ref: setInternalRef,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport { useAlertDialogContext } from './AlertDialogContext';\nimport { ALERT_DIALOG_TITLE_TAG } from './tags';\n\nexport type AlertDialogTitleProps<T extends ValidConstructor = 'h2'> =\n  HeadlessPropsWithRef<T, DisclosureStateRenderProps>;\n\nexport function AlertDialogTitle<T extends ValidConstructor = 'h2'>(\n  props: AlertDialogTitleProps<T>,\n): JSX.Element {\n  const context = useAlertDialogContext('AlertDialogTitle');\n  const state = useDisclosureState();\n\n  return createDynamic(\n    () => props.as || ('h2' as T),\n    mergeProps(\n      omitProps(props, ['as', 'children']),\n      ALERT_DIALOG_TITLE_TAG,\n      {\n        id: context.titleID,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createUniqueId, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  CheckStateControlledOptions,\n  CheckStateRenderProps,\n  CheckStateUncontrolledOptions,\n} from '../../states/create-check-state';\nimport {\n  CheckStateProvider,\n  createCheckState,\n} from '../../states/create-check-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createCheckedState,\n  createDisabledState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport { CheckboxContext } from './CheckboxContext';\nimport { CHECKBOX_TAG } from './tags';\n\nexport type CheckboxControlledBaseProps = Prettify<\n  CheckStateControlledOptions & CheckStateRenderProps\n>;\n\nexport type CheckboxControlledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, CheckboxControlledBaseProps>;\n\nexport type CheckboxUncontrolledBaseProps = Prettify<\n  CheckStateUncontrolledOptions & CheckStateRenderProps\n>;\n\nexport type CheckboxUncontrolledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, CheckboxUncontrolledBaseProps>;\n\nexport type CheckboxProps<T extends ValidConstructor = 'div'> =\n  | CheckboxControlledProps<T>\n  | CheckboxUncontrolledProps<T>;\n\nfunction isCheckboxUncontrolled<T extends ValidConstructor = 'div'>(\n  props: CheckboxProps<T>,\n): props is CheckboxUncontrolledProps<T> {\n  return 'defaultChecked' in props;\n}\n\nexport function Checkbox<T extends ValidConstructor = 'div'>(\n  props: CheckboxProps<T>,\n): JSX.Element {\n  const ownerID = createUniqueId();\n  const labelID = createUniqueId();\n  const indicatorID = createUniqueId();\n  const descriptionID = createUniqueId();\n\n  const state = createCheckState(props);\n\n  return createComponent(CheckboxContext.Provider, {\n    value: {\n      ownerID,\n      labelID,\n      indicatorID,\n      descriptionID,\n    },\n    get children() {\n      return createDynamic(\n        () => props.as || 'div',\n        mergeProps(\n          CHECKBOX_TAG,\n          createDisabledState(() => state.disabled()),\n          createARIADisabledState(() => state.disabled()),\n          createCheckedState(() => state.checked()),\n          isCheckboxUncontrolled(props)\n            ? omitProps(props, [\n                'as',\n                'children',\n                'defaultChecked',\n                'disabled',\n                'onChange',\n              ])\n            : omitProps(props, [\n                'as',\n                'children',\n                'checked',\n                'disabled',\n                'onChange',\n              ]),\n          {\n            get children() {\n              return createComponent(CheckStateProvider, {\n                state,\n                get children() {\n                  return props.children;\n                },\n              });\n            },\n          },\n        ) as DynamicProps<T>,\n      );\n    },\n  });\n}\n", "import type { Accessor, JSX } from 'solid-js';\nimport {\n  createComponent,\n  createContext,\n  createMemo,\n  createSignal,\n  untrack,\n  useContext,\n} from 'solid-js';\nimport assert from '../utils/assert';\n\nexport interface CheckStateControlledOptions {\n  checked: boolean | undefined;\n  disabled?: boolean;\n  onChange?: (state?: boolean) => void;\n}\n\nexport interface CheckStateUncontrolledOptions {\n  defaultChecked: boolean | undefined;\n  disabled?: boolean;\n  onChange?: (state?: boolean) => void;\n}\n\nexport type CheckStateOptions =\n  | CheckStateControlledOptions\n  | CheckStateUncontrolledOptions;\n\nexport interface CheckStateProperties {\n  checked(): boolean | undefined;\n  setState(newState?: boolean): void;\n  disabled(): boolean;\n  check(): void;\n  uncheck(): void;\n  reset(): void;\n  toggle(): void;\n}\n\nexport function createCheckState(\n  options: CheckStateOptions,\n): CheckStateProperties {\n  // Reference to the signal read\n  let signal: Accessor<boolean | undefined>;\n  // Reference to the signal write\n  let setSignal: (value: boolean | undefined) => void;\n\n  // Type branding\n  // Check if state is uncontrolled\n  if ('defaultChecked' in options) {\n    // Uncontrolled toggle means the toggle\n    // manages its own state.\n    const [isOpen, setIsOpen] = createSignal<boolean | undefined>(\n      options.defaultChecked,\n    );\n    signal = isOpen;\n    setSignal = (value): void => {\n      setIsOpen(value);\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  } else {\n    // Controlled means relying on 3P state\n    signal = createMemo(() => options.checked);\n    setSignal = (value): void => {\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  }\n\n  const isDisabled = createMemo(() => !!options.disabled);\n\n  return {\n    checked(): boolean | undefined {\n      return signal();\n    },\n    setState(value): void {\n      if (!untrack(isDisabled)) {\n        setSignal(value);\n      }\n    },\n    disabled: isDisabled,\n    check(): void {\n      if (!untrack(isDisabled)) {\n        setSignal(true);\n      }\n    },\n    uncheck(): void {\n      if (!untrack(isDisabled)) {\n        setSignal(false);\n      }\n    },\n    reset(): void {\n      if (!untrack(isDisabled)) {\n        setSignal(undefined);\n      }\n    },\n    toggle(): void {\n      if (!untrack(isDisabled)) {\n        setSignal(!untrack(signal));\n      }\n    },\n  };\n}\n\nexport interface CheckStateRenderProps {\n  children?: JSX.Element | ((state: CheckStateProperties) => JSX.Element);\n}\n\nexport interface CheckStateProviderProps extends CheckStateRenderProps {\n  state: CheckStateProperties;\n}\n\nconst CheckStateContext = createContext<CheckStateProperties>();\n\nexport function CheckStateProvider(\n  props: CheckStateProviderProps,\n): JSX.Element {\n  return createComponent(CheckStateContext.Provider, {\n    value: props.state,\n    get children() {\n      const current = props.children;\n      if (typeof current === 'function') {\n        return current(props.state);\n      }\n      return current;\n    },\n  });\n}\n\nexport function useCheckState(): CheckStateProperties {\n  const ctx = useContext(CheckStateContext);\n  assert(ctx, new Error('Missing <CheckStateProvider>'));\n  return ctx;\n}\n\nexport function CheckStateChild(props: CheckStateRenderProps): JSX.Element {\n  const state = useCheckState();\n  return createMemo(() => {\n    const current = props.children;\n    if (typeof current === 'function' && current.length === 1) {\n      return createMemo(() => current(state));\n    }\n    return current;\n  }) as unknown as JSX.Element;\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\n\ninterface CheckboxContextData {\n  ownerID: string;\n  labelID: string;\n  indicatorID: string;\n  descriptionID: string;\n}\n\nexport const CheckboxContext = createContext<CheckboxContextData>();\n\nexport function useCheckboxContext(componentName: string): CheckboxContextData {\n  const context = useContext(CheckboxContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <Checkbox>`),\n  );\n  return context;\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const CHECKBOX_TAG = createTag('checkbox');\nexport const CHECKBOX_DESCRIPTION = createTag('checkbox-description');\nexport const CHECKBOX_INDICATOR = createTag('checkbox-indicator');\nexport const CHECKBOX_LABEL = createTag('checkbox-label');\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { CheckStateRenderProps } from '../../states/create-check-state';\nimport {\n  CheckStateChild,\n  useCheckState,\n} from '../../states/create-check-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createCheckedState,\n  createDisabledState,\n} from '../../utils/state-props';\nimport { useCheckboxContext } from './CheckboxContext';\nimport { CHECKBOX_DESCRIPTION } from './tags';\n\nexport type CheckboxDescriptionProps<T extends ValidConstructor = 'p'> =\n  HeadlessProps<T, CheckStateRenderProps>;\n\nexport function CheckboxDescription<T extends ValidConstructor = 'p'>(\n  props: CheckboxDescriptionProps<T>,\n): JSX.Element {\n  const context = useCheckboxContext('CheckboxDescription');\n  const state = useCheckState();\n  return createDynamic(\n    () => props.as || ('p' as T),\n    mergeProps(\n      omitProps(props, ['as', 'children']),\n      CHECKBOX_DESCRIPTION,\n      {\n        id: context.descriptionID,\n        get children() {\n          return createComponent(CheckStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createCheckedState(() => state.checked()),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { CheckStateRenderProps } from '../../states/create-check-state';\nimport {\n  CheckStateChild,\n  useCheckState,\n} from '../../states/create-check-state';\nimport type {\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createCheckedState,\n  createDisabledState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport type { ButtonProps } from '../button';\nimport { Button } from '../button';\nimport { useCheckboxContext } from './CheckboxContext';\nimport { CHECKBOX_INDICATOR } from './tags';\n\nexport type CheckboxIndicatorProps<T extends ValidConstructor = 'button'> =\n  HeadlessPropsWithRef<T, CheckStateRenderProps>;\n\nexport function CheckboxIndicator<T extends ValidConstructor = 'button'>(\n  props: CheckboxIndicatorProps<T>,\n): JSX.Element {\n  const context = useCheckboxContext('CheckboxIndicator');\n  const state = useCheckState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        state.toggle();\n      });\n    }\n  });\n\n  return createComponent(\n    Button,\n    mergeProps(\n      omitProps(props, ['children', 'ref']),\n      CHECKBOX_INDICATOR,\n      {\n        id: context.indicatorID,\n        role: 'checkbox',\n        'aria-labelledby': context.labelID,\n        'aria-describedby': context.descriptionID,\n        ref: setInternalRef,\n      },\n      createDisabledState(() => state.disabled()),\n      createARIADisabledState(() => state.disabled()),\n      createCheckedState(() => state.checked()),\n      {\n        get children() {\n          return createComponent(CheckStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n    ) as ButtonProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { CheckStateRenderProps } from '../../states/create-check-state';\nimport {\n  CheckStateChild,\n  useCheckState,\n} from '../../states/create-check-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createCheckedState,\n  createDisabledState,\n} from '../../utils/state-props';\nimport { useCheckboxContext } from './CheckboxContext';\nimport { CHECKBOX_LABEL } from './tags';\n\nexport type CheckboxLabelProps<T extends ValidConstructor = 'label'> =\n  HeadlessProps<T, CheckStateRenderProps>;\n\nexport function CheckboxLabel<T extends ValidConstructor = 'label'>(\n  props: CheckboxLabelProps<T>,\n): JSX.Element {\n  const context = useCheckboxContext('CheckboxLabel');\n  const state = useCheckState();\n  return createDynamic(\n    () => props.as || ('label' as T),\n    mergeProps(\n      omitProps(props, ['as', 'children']),\n      CHECKBOX_LABEL,\n      {\n        id: context.labelID,\n        for: context.indicatorID,\n        get children() {\n          return createComponent(CheckStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createCheckedState(() => state.checked()),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { Accessor, JSX } from 'solid-js';\nimport {\n  createComponent,\n  createContext,\n  createEffect,\n  createMemo,\n  createSignal,\n  useContext,\n} from 'solid-js';\nimport { usePrefersDark } from 'solid-use/media-query';\nimport usePageVisibility from 'solid-use/page-visibility';\nimport assert from '../../utils/assert';\nimport useEventListener from '../../utils/use-event-listener';\n\nexport type NativeColorScheme = 'light' | 'dark';\nexport type ColorScheme = NativeColorScheme | 'system';\n\nexport interface ColorSchemeProviderControlledProps {\n  value: ColorScheme;\n  onChange?: (scheme: ColorScheme) => void;\n  children?: JSX.Element;\n}\nexport interface ColorSchemeProviderUncontrolledProps {\n  initialValue: ColorScheme;\n  onChange?: (scheme: ColorScheme) => void;\n  children?: JSX.Element;\n}\n\nexport type ColorSchemeProviderProps =\n  | ColorSchemeProviderControlledProps\n  | ColorSchemeProviderUncontrolledProps;\n\ninterface ColorSchemeContextData {\n  value: ColorScheme;\n  setValue: (newScheme: ColorScheme) => void;\n  native: NativeColorScheme;\n  preferred: NativeColorScheme;\n}\n\nconst ColorSchemeContext = createContext<ColorSchemeContextData>();\n\nconst STORAGE_KEY = 'theme-preference';\n\nexport function ColorSchemeProvider(\n  props: ColorSchemeProviderProps,\n): JSX.Element {\n  let get: Accessor<ColorScheme>;\n  let set: (scheme: ColorScheme) => void;\n\n  if ('initialValue' in props) {\n    const [scheme, setScheme] = createSignal<ColorScheme>(props.initialValue);\n    get = scheme;\n    set = (value): void => {\n      setScheme(value);\n      if (props.onChange) {\n        props.onChange(value);\n      }\n    };\n  } else {\n    get = (): ColorScheme => props.value;\n    set = (value): void => {\n      if (props.onChange) {\n        props.onChange(value);\n      }\n    };\n  }\n\n  const prefersDark = usePrefersDark();\n  const isVisible = usePageVisibility();\n\n  const shouldToggle = createMemo(\n    () => (get() === 'system' && prefersDark()) || get() === 'dark',\n  );\n\n  // Since storage events only work for other windows\n  // we need to make the main window sync\n  createEffect(() => {\n    isVisible();\n\n    const onChange = (): void => {\n      const value = localStorage.getItem(STORAGE_KEY);\n\n      if (value) {\n        set(value as ColorScheme);\n      } else {\n        set('system');\n      }\n    };\n    onChange();\n    useEventListener(window, 'storage', onChange, false);\n  });\n\n  // Sync storage when signal changes\n  createEffect(() => {\n    localStorage.setItem(STORAGE_KEY, get());\n  });\n\n  // Sync document class\n  createEffect(() => {\n    document.documentElement.classList.toggle('dark', shouldToggle());\n  });\n\n  return createComponent(ColorSchemeContext.Provider, {\n    value: {\n      get value() {\n        return get();\n      },\n      setValue(val) {\n        set(val);\n      },\n      get preferred() {\n        return shouldToggle() ? 'dark' : 'light';\n      },\n      get native() {\n        return prefersDark() ? 'dark' : 'light';\n      },\n    },\n    get children() {\n      return props.children;\n    },\n  });\n}\n\nfunction useColorSchemeContext(): ColorSchemeContextData {\n  const ctx = useContext(ColorSchemeContext);\n  assert(ctx, new Error('Missing <ColorSchemeProvider>'));\n  return ctx;\n}\n\nexport function useColorScheme(): [\n  () => ColorScheme,\n  (newScheme: ColorScheme) => void,\n] {\n  const ctx = useColorSchemeContext();\n  return [(): ColorScheme => ctx.value, ctx.setValue];\n}\n\nexport function useNativeColorScheme(): () => NativeColorScheme {\n  const ctx = useColorSchemeContext();\n  return () => ctx.native;\n}\n\nexport function usePreferredColorScheme(): () => NativeColorScheme {\n  const ctx = useColorSchemeContext();\n  return () => ctx.preferred;\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createMemo,\n  createSignal,\n  createUniqueId,\n  mergeProps,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  MultipleAutocompleteStateControlledOptions,\n  MultipleAutocompleteStateUncontrolledOptions,\n  SingleAutocompleteStateControlledOptions,\n  SingleAutocompleteStateUncontrolledOptions,\n} from '../../states/create-autocomplete-state';\nimport {\n  AutocompleteStateProvider,\n  createMultipleAutocompleteState,\n  createSingleAutocompleteState,\n} from '../../states/create-autocomplete-state';\nimport type {\n  DisclosureStateControlledOptions,\n  DisclosureStateUncontrolledOptions,\n} from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateProvider,\n  createDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createExpandedState,\n  createHasActiveState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport {\n  ComboboxContext,\n  createComboboxOptionFocusNavigator,\n} from './ComboboxContext';\nimport { COMBOBOX_TAG } from './tags';\n\nexport interface ComboboxBaseProps {\n  onDisclosureChange?: (value: boolean) => void;\n}\n\nexport interface ComboboxMultipleBaseProps<V> {\n  onSelectChange?: (value: V[]) => void;\n}\n\nexport interface ComboboxSingleBaseProps<V> {\n  onSelectChange?: (value?: V) => void;\n}\n\n// SCSCD = Single, Controlled Select, Controlled Disclosure\nexport type ComboboxSCSCDBaseProps<V> = Prettify<\n  ComboboxBaseProps &\n    ComboboxSingleBaseProps<V> &\n    Omit<SingleAutocompleteStateControlledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateControlledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ComboboxSCSCDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ComboboxSCSCDBaseProps<V>>;\n\n// SCSCD = Single, Controlled Select, Uncontrolled Disclosure\nexport type ComboboxSCSUDBaseProps<V> = Prettify<\n  ComboboxBaseProps &\n    ComboboxSingleBaseProps<V> &\n    Omit<SingleAutocompleteStateControlledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateUncontrolledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ComboboxSCSUDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ComboboxSCSUDBaseProps<V>>;\n\n// SCSCD = Single, Uncontrolled Select, Controlled Disclosure\nexport type ComboboxSUSCDBaseProps<V> = Prettify<\n  ComboboxBaseProps &\n    ComboboxSingleBaseProps<V> &\n    Omit<SingleAutocompleteStateUncontrolledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateControlledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ComboboxSUSCDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ComboboxSUSCDBaseProps<V>>;\n\n// SCSCD = Single, Uncontrolled Select, Uncontrolled Disclosure\nexport type ComboboxSUSUDBaseProps<V> = Prettify<\n  ComboboxBaseProps &\n    ComboboxSingleBaseProps<V> &\n    Omit<SingleAutocompleteStateUncontrolledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateUncontrolledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ComboboxSUSUDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ComboboxSUSUDBaseProps<V>>;\n\nexport type ComboboxSingleProps<V, T extends ValidConstructor = 'div'> =\n  | ComboboxSCSCDProps<V, T>\n  | ComboboxSCSUDProps<V, T>\n  | ComboboxSUSCDProps<V, T>\n  | ComboboxSUSUDProps<V, T>;\n\n// MCSCD = Multiple, Controlled Select, Controlled Disclosure\nexport type ComboboxMCSCDBaseProps<V> = Prettify<\n  ComboboxBaseProps &\n    ComboboxMultipleBaseProps<V> &\n    Omit<MultipleAutocompleteStateControlledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateControlledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ComboboxMCSCDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ComboboxMCSCDBaseProps<V>>;\n\n// MCSCD = Multiple, Controlled Select, Uncontrolled Disclosure\nexport type ComboboxMCSUDBaseProps<V> = Prettify<\n  ComboboxBaseProps &\n    ComboboxMultipleBaseProps<V> &\n    Omit<MultipleAutocompleteStateControlledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateUncontrolledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ComboboxMCSUDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ComboboxMCSUDBaseProps<V>>;\n\n// MCSCD = Multiple, Uncontrolled Select, Controlled Disclosure\nexport type ComboboxMUSCDBaseProps<V> = Prettify<\n  ComboboxBaseProps &\n    ComboboxMultipleBaseProps<V> &\n    Omit<MultipleAutocompleteStateUncontrolledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateControlledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ComboboxMUSCDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ComboboxMUSCDBaseProps<V>>;\n\n// MCSCD = Multiple, Uncontrolled Select, Uncontrolled Disclosure\nexport type ComboboxMUSUDBaseProps<V> = Prettify<\n  ComboboxBaseProps &\n    ComboboxMultipleBaseProps<V> &\n    Omit<MultipleAutocompleteStateUncontrolledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateUncontrolledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ComboboxMUSUDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ComboboxMUSUDBaseProps<V>>;\n\nexport type ComboboxMultipleProps<V, T extends ValidConstructor = 'div'> =\n  | ComboboxMCSCDProps<V, T>\n  | ComboboxMCSUDProps<V, T>\n  | ComboboxMUSCDProps<V, T>\n  | ComboboxMUSUDProps<V, T>;\n\ntype ComboboxSelectUncontrolledProps<V, T extends ValidConstructor = 'div'> =\n  | ComboboxMUSCDProps<V, T>\n  | ComboboxMUSUDProps<V, T>\n  | ComboboxSUSCDProps<V, T>\n  | ComboboxSUSUDProps<V, T>;\n\ntype ComboboxDisclosureUncontrolledProps<\n  V,\n  T extends ValidConstructor = 'div',\n> =\n  | ComboboxMCSUDProps<V, T>\n  | ComboboxMUSUDProps<V, T>\n  | ComboboxSCSUDProps<V, T>\n  | ComboboxSUSUDProps<V, T>;\n\nexport type ComboboxProps<V, T extends ValidConstructor = 'div'> =\n  | ComboboxMultipleProps<V, T>\n  | ComboboxSingleProps<V, T>;\n\nfunction isComboboxMultiple<V, T extends ValidConstructor = 'div'>(\n  props: ComboboxProps<V, T>,\n): props is ComboboxMultipleProps<V, T> {\n  return !!props.multiple;\n}\n\nfunction isComboboxSelectUncontrolled<V, T extends ValidConstructor = 'div'>(\n  props: ComboboxProps<V, T>,\n): props is ComboboxSelectUncontrolledProps<V, T> {\n  return 'defaultValue' in props;\n}\n\nfunction isComboboxDisclosureUncontrolled<\n  V,\n  T extends ValidConstructor = 'div',\n>(\n  props: ComboboxProps<V, T>,\n): props is ComboboxDisclosureUncontrolledProps<V, T> {\n  return 'defaultOpen' in props;\n}\n\nfunction getProps<V, T extends ValidConstructor = 'div'>(\n  props: ComboboxProps<V, T>,\n): DynamicProps<T> {\n  if (isComboboxSelectUncontrolled(props)) {\n    if (isComboboxDisclosureUncontrolled(props)) {\n      return omitProps(props, [\n        'as',\n        'by',\n        'children',\n        'defaultOpen',\n        'defaultValue',\n        'disabled',\n        'matchBy',\n        'multiple',\n        'onClose',\n        'onDisclosureChange',\n        'onOpen',\n        'onSelectChange',\n        'toggleable',\n      ]) as DynamicProps<T>;\n    }\n    return omitProps(props, [\n      'as',\n      'by',\n      'children',\n      'defaultValue',\n      'disabled',\n      'isOpen',\n      'matchBy',\n      'multiple',\n      'onClose',\n      'onDisclosureChange',\n      'onOpen',\n      'onSelectChange',\n      'toggleable',\n    ]) as DynamicProps<T>;\n  }\n  if (isComboboxDisclosureUncontrolled(props)) {\n    return omitProps(props, [\n      'as',\n      'by',\n      'children',\n      'defaultOpen',\n      'disabled',\n      'matchBy',\n      'multiple',\n      'onClose',\n      'onDisclosureChange',\n      'onOpen',\n      'onSelectChange',\n      'toggleable',\n      'value',\n    ]) as DynamicProps<T>;\n  }\n  return omitProps(props, [\n    'as',\n    'by',\n    'children',\n    'disabled',\n    'isOpen',\n    'matchBy',\n    'multiple',\n    'onClose',\n    'onDisclosureChange',\n    'onOpen',\n    'onSelectChange',\n    'toggleable',\n    'value',\n  ]) as DynamicProps<T>;\n}\n\nexport function Combobox<V, T extends ValidConstructor = 'div'>(\n  props: ComboboxProps<V, T>,\n): JSX.Element {\n  return createMemo(() => {\n    const labelID = createUniqueId();\n    const inputID = createUniqueId();\n    const optionsID = createUniqueId();\n\n    const disclosureState = createDisclosureState(\n      mergeProps(props, {\n        onChange(value: boolean) {\n          if (props.onDisclosureChange) {\n            props.onDisclosureChange(value);\n          }\n        },\n      }),\n    );\n\n    const autocompleteState = isComboboxMultiple(props)\n      ? createMultipleAutocompleteState(\n          mergeProps(props, {\n            onChange(value: V[]) {\n              if (props.onSelectChange) {\n                props.onSelectChange(value);\n              }\n            },\n          }),\n        )\n      : createSingleAutocompleteState(\n          mergeProps(props, {\n            onChange(value?: V) {\n              if (props.onSelectChange) {\n                props.onSelectChange(value);\n              }\n            },\n          }),\n        );\n\n    const controller = createComboboxOptionFocusNavigator();\n    const [activeDescendant, setActiveDescendant] = createSignal<string>();\n    const [selectedDescendant, setSelectedDescendant] = createSignal<\n      string | undefined\n    >(undefined, {\n      equals: false,\n    });\n\n    createEffect(() => {\n      if (!autocompleteState.hasActive()) {\n        setActiveDescendant(undefined);\n      }\n    });\n\n    return createComponent(ComboboxContext.Provider, {\n      value: {\n        get multiple() {\n          return props.multiple;\n        },\n        labelID,\n        inputID,\n        optionsID,\n        controller,\n        inputHovering: false,\n        optionsHovering: false,\n        get activeDescendant() {\n          return activeDescendant();\n        },\n        set activeDescendant(value: string | undefined) {\n          setActiveDescendant(value);\n        },\n        get selectedDescendant() {\n          return selectedDescendant();\n        },\n        set selectedDescendant(value: string | undefined) {\n          setSelectedDescendant(value);\n        },\n      },\n      get children() {\n        return createComponent(AutocompleteStateProvider, {\n          state: autocompleteState,\n          get children() {\n            return createComponent(DisclosureStateProvider, {\n              state: disclosureState,\n              get children() {\n                return createDynamic(\n                  () => props.as || 'div',\n                  mergeProps(\n                    COMBOBOX_TAG,\n                    {\n                      'aria-labelledby': labelID,\n                      get children() {\n                        return props.children;\n                      },\n                    },\n                    createDisabledState(() => autocompleteState.disabled()),\n                    createARIADisabledState(() => autocompleteState.disabled()),\n                    createHasSelectedState(() =>\n                      autocompleteState.hasSelected(),\n                    ),\n                    createHasActiveState(() => autocompleteState.hasActive()),\n                    createExpandedState(() => disclosureState.isOpen()),\n                    getProps(props),\n                  ) as DynamicProps<T>,\n                );\n              },\n            });\n          },\n        });\n      },\n    });\n  }) as unknown as JSX.Element;\n}\n", "import type { Accessor, JSX } from 'solid-js';\nimport {\n  createComponent,\n  createContext,\n  createMemo,\n  createSignal,\n  untrack,\n  useContext,\n} from 'solid-js';\nimport assert from '../utils/assert';\nimport createInputReader from '../utils/create-input-reader';\nimport isEqual from '../utils/is-equal';\nimport type { Ref } from '../utils/types';\n\nexport interface AutocompleteStateProperties<T> {\n  isSelected(value: T): boolean;\n  select(value: T): void;\n  hasSelected(): boolean;\n  isActive(value: T): boolean;\n  hasActive(): boolean;\n  focus(value: T): void;\n  blur(): void;\n  disabled(): boolean;\n  query(): string;\n  setQuery(value: string): void;\n  matches(value: T): boolean;\n  hasQuery(): boolean;\n}\n\nexport interface SingleAutocompleteStateControlledOptions<T> {\n  multiple?: false;\n  toggleable?: boolean;\n  value: T;\n  matchBy: (value: T, query: string) => boolean;\n  onChange?: (value?: T) => void;\n  disabled?: boolean;\n  by?: (a: T, b: T) => boolean;\n}\n\nexport interface SingleAutocompleteStateUncontrolledOptions<T> {\n  multiple?: false;\n  toggleable?: boolean;\n  defaultValue: T;\n  matchBy: (value: T, query: string) => boolean;\n  onChange?: (value?: T) => void;\n  disabled?: boolean;\n  by?: (a: T, b: T) => boolean;\n}\n\nexport type SingleAutocompleteStateOptions<T> =\n  | SingleAutocompleteStateControlledOptions<T>\n  | SingleAutocompleteStateUncontrolledOptions<T>;\n\nexport function createSingleAutocompleteState<T>(\n  options: SingleAutocompleteStateOptions<T>,\n): AutocompleteStateProperties<T> {\n  const [active, setActive] = createSignal<Ref<T>>();\n\n  let selectedValue: Accessor<T | undefined>;\n  let setSelectedValue: (value: T | undefined) => void;\n\n  const equals = options.by || isEqual;\n\n  if ('defaultValue' in options) {\n    const [selected, setSelected] = createSignal<T | undefined>(\n      options.defaultValue,\n    );\n    selectedValue = selected;\n    setSelectedValue = (value): void => {\n      setSelected(() => value);\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  } else {\n    selectedValue = createMemo(() => options.value);\n    setSelectedValue = (value): void => {\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  }\n\n  const isDisabled = createMemo(() => !!options.disabled);\n\n  const [input, setInput] = createInputReader();\n\n  return {\n    isSelected(value): boolean {\n      return isEqual(value, selectedValue());\n    },\n    select(value): void {\n      if (!untrack(isDisabled)) {\n        if (options.toggleable && equals(untrack(selectedValue) as T, value)) {\n          setSelectedValue(undefined);\n        } else {\n          setSelectedValue(value);\n        }\n      }\n    },\n    hasSelected(): boolean {\n      return selectedValue() != null;\n    },\n    disabled: isDisabled,\n    hasActive(): boolean {\n      return !!active();\n    },\n    isActive(value): boolean {\n      const ref = active();\n      return ref ? equals(value, ref.value) : false;\n    },\n    focus(value): void {\n      if (!untrack(isDisabled)) {\n        setActive({\n          value,\n        });\n      }\n    },\n    blur(): void {\n      if (!untrack(isDisabled)) {\n        setActive(undefined);\n      }\n    },\n    query(): string {\n      return input();\n    },\n    setQuery(value): void {\n      if (!untrack(isDisabled)) {\n        setInput(value);\n      }\n    },\n    matches(value): boolean {\n      return options.matchBy(value, input());\n    },\n    hasQuery: createMemo(() => !!input()),\n  };\n}\n\nexport interface MultipleAutocompleteStateControlledOptions<T> {\n  multiple: true;\n  toggleable?: boolean;\n  value: T[];\n  matchBy: (value: T, query: string) => boolean;\n  onChange?: (value: T[]) => void;\n  disabled?: boolean;\n  by?: (a: T, b: T) => boolean;\n}\n\nexport interface MultipleAutocompleteStateUncontrolledOptions<T> {\n  multiple: true;\n  toggleable?: boolean;\n  defaultValue: T[];\n  matchBy: (value: T, query: string) => boolean;\n  onChange?: (value: T[]) => void;\n  disabled?: boolean;\n  by?: (a: T, b: T) => boolean;\n}\n\nexport type MultipleAutocompleteStateOptions<T> =\n  | MultipleAutocompleteStateControlledOptions<T>\n  | MultipleAutocompleteStateUncontrolledOptions<T>;\n\nexport function createMultipleAutocompleteState<T>(\n  options: MultipleAutocompleteStateOptions<T>,\n): AutocompleteStateProperties<T> {\n  const [active, setActive] = createSignal<Ref<T>>();\n\n  let selectedValues: Accessor<T[]>;\n  let setSelectedValues: (value: T[]) => void;\n\n  const equals = options.by || isEqual;\n\n  if ('defaultValue' in options) {\n    const [selected, setSelected] = createSignal<T[]>(options.defaultValue);\n    selectedValues = selected;\n    setSelectedValues = (value): void => {\n      setSelected(() => value);\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  } else {\n    selectedValues = createMemo(() => options.value);\n    setSelectedValues = (value): void => {\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  }\n\n  const isDisabled = createMemo(() => !!options.disabled);\n\n  const [input, setInput] = createInputReader();\n\n  return {\n    isSelected(value): boolean {\n      const values = selectedValues();\n      // Looks up for the value\n      for (let i = 0, len = values.length; i < len; i += 1) {\n        if (equals(value, values[i])) {\n          return true;\n        }\n      }\n      return false;\n    },\n    select(value): void {\n      if (!untrack(isDisabled)) {\n        const newValues: T[] = [];\n        const currentValues = untrack(selectedValues);\n        let hasValue = false;\n        for (let i = 0, len = currentValues.length; i < len; i += 1) {\n          const item = currentValues[i];\n          // Compare ahead\n          const isSame = equals(item, value);\n          // If it's the same then we mark the the target value\n          // as already existing in the array\n          if (isSame) {\n            hasValue = true;\n          }\n          // If it's the same and the list is toggleable\n          // don't push the item\n          if (!(options.toggleable && isSame)) {\n            newValues.push(item);\n          }\n        }\n        // The value doesn't exist, push the new value\n        if (!hasValue) {\n          newValues.push(value);\n        }\n        setSelectedValues(newValues);\n      }\n    },\n    hasSelected: createMemo(() => selectedValues().length > 0),\n    disabled: isDisabled,\n    hasActive: createMemo(() => !!active()),\n    isActive(value): boolean {\n      const ref = active();\n      if (ref) {\n        return equals(value, ref.value);\n      }\n      return false;\n    },\n    focus(value): void {\n      if (!untrack(isDisabled)) {\n        setActive({\n          value,\n        });\n      }\n    },\n    blur(): void {\n      if (!untrack(isDisabled)) {\n        setActive(undefined);\n      }\n    },\n    query(): string {\n      return input();\n    },\n    setQuery(value): void {\n      setInput(value);\n    },\n    matches(value): boolean {\n      return options.matchBy(value, input());\n    },\n    hasQuery: createMemo(() => !!input()),\n  };\n}\n\nexport interface AutocompleteStateRenderProps<T> {\n  children?:\n    | JSX.Element\n    | ((state: AutocompleteStateProperties<T>) => JSX.Element);\n}\n\nexport interface AutocompleteStateProviderProps<T>\n  extends AutocompleteStateRenderProps<T> {\n  state: AutocompleteStateProperties<T>;\n}\n\nconst AutocompleteStateContext =\n  createContext<AutocompleteStateProperties<unknown>>();\n\nexport function AutocompleteStateProvider<T>(\n  props: AutocompleteStateProviderProps<T>,\n): JSX.Element {\n  return createComponent(AutocompleteStateContext.Provider, {\n    value: props.state,\n    get children() {\n      const current = props.children;\n      if (typeof current === 'function') {\n        return current(props.state);\n      }\n      return current;\n    },\n  });\n}\n\nexport function useAutocompleteState<T>(): AutocompleteStateProperties<T> {\n  const ctx = useContext(AutocompleteStateContext);\n  assert(ctx, new Error('Missing <AutocompleteStateProvider>'));\n  return ctx;\n}\n\nexport function AutocompleteStateChild<T>(\n  props: AutocompleteStateRenderProps<T>,\n): JSX.Element {\n  const state = useAutocompleteState<T>();\n  return createMemo(() => {\n    const current = props.children;\n    if (typeof current === 'function' && current.length === 1) {\n      return createMemo(() => current(state));\n    }\n    return current;\n  }) as unknown as JSX.Element;\n}\n", "import { createSignal, onCleanup } from 'solid-js';\n\nconst INPUT_READER_DEBOUNCE_TIMEOUT = 250;\n\nexport default function createInputReader(\n  time = INPUT_READER_DEBOUNCE_TIMEOUT,\n): [read: () => string, write: (value: string) => void] {\n  let timeout: ReturnType<typeof setTimeout> | undefined;\n\n  onCleanup(() => {\n    if (timeout) {\n      clearTimeout(timeout);\n    }\n  });\n\n  const [signal, setSignal] = createSignal<string>('');\n\n  return [\n    signal,\n    value => {\n      if (timeout) {\n        clearTimeout(timeout);\n      }\n      timeout = setTimeout(() => {\n        setSignal(value);\n      }, time);\n    },\n  ];\n}\n", "import { createContext, createUniqueId, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\nimport FocusNavigator from '../../utils/focus-navigator';\nimport { MATCHES_NODE } from '../../utils/namespace';\n\ninterface ComboboxContextData {\n  multiple?: boolean;\n  controller: FocusNavigator;\n  activeDescendant: string | undefined;\n  selectedDescendant: string | undefined;\n  inputID: string;\n  labelID: string;\n  optionsID: string;\n  anchor?: HTMLElement | null;\n  inputHovering: boolean;\n  optionsHovering: boolean;\n}\n\nexport const ComboboxContext = createContext<ComboboxContextData>();\n\nexport function useComboboxContext(componentName: string): ComboboxContextData {\n  const context = useContext(ComboboxContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <Combobox>`),\n  );\n  return context;\n}\n\nexport function createComboboxOptionFocusNavigator(): FocusNavigator {\n  return new FocusNavigator(createUniqueId(), {\n    virtual: true,\n    base: MATCHES_NODE,\n  });\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const COMBOBOX_TAG = createTag('combobox');\nexport const COMBOBOX_INPUT_TAG = createTag('combobox-input');\nexport const COMBOBOX_OPTIONS_TAG = createTag('combobox-options');\nexport const COMBOBOX_OPTION_TAG = createTag('combobox-option');\nexport const COMBOBOX_LABEL_TAG = createTag('combobox-label');\n", "import type { JSX } from 'solid-js';\nimport { createEffect, mergeProps, untrack } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport { useAutocompleteState } from '../../states/create-autocomplete-state';\nimport { useDisclosureState } from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createARIAExpandedState,\n  createDisabledState,\n  createExpandedState,\n  createHasActiveState,\n  createHasQueryState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport { COMMAND_INPUT_TAG } from '../command/tags';\nimport { useComboboxContext } from './ComboboxContext';\n\nexport type ComboboxInputProps<T extends ValidConstructor = 'input'> =\n  HeadlessPropsWithRef<T>;\n\nexport function ComboboxInput<T extends ValidConstructor = 'input'>(\n  props: ComboboxInputProps<T>,\n): JSX.Element {\n  const context = useComboboxContext('ComboboxInput');\n  const autocompleteState = useAutocompleteState();\n  const disclosureState = useDisclosureState();\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  const isDisabled = (): boolean | undefined =>\n    autocompleteState.disabled() || props.disabled;\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      context.anchor = current;\n\n      if (current instanceof HTMLInputElement) {\n        useEventListener(current, 'input', () => {\n          if (!isDisabled()) {\n            autocompleteState.setQuery(current.value);\n          }\n        });\n      }\n\n      useEventListener(current, 'keydown', e => {\n        if (!isDisabled()) {\n          switch (e.key) {\n            case 'Escape': {\n              disclosureState.close();\n              break;\n            }\n            case 'ArrowUp': {\n              e.preventDefault();\n              if (disclosureState.isOpen()) {\n                context.controller.setPrevChecked(true);\n              } else {\n                disclosureState.open();\n              }\n              break;\n            }\n            case 'ArrowDown': {\n              e.preventDefault();\n              if (disclosureState.isOpen()) {\n                context.controller.setNextChecked(true);\n              } else {\n                disclosureState.open();\n              }\n              break;\n            }\n            case 'Enter': {\n              e.preventDefault();\n              if (disclosureState.isOpen()) {\n                context.selectedDescendant = context.activeDescendant;\n              }\n              break;\n            }\n            default:\n              break;\n          }\n        }\n      });\n      useEventListener(current, 'click', () => {\n        if (!isDisabled()) {\n          disclosureState.toggle();\n        }\n      });\n      useEventListener(current, 'blur', e => {\n        if (context.optionsHovering) {\n          return;\n        }\n        autocompleteState.blur();\n        if (!(e.relatedTarget && current.contains(e.relatedTarget as Node))) {\n          disclosureState.close();\n        }\n      });\n      useEventListener(current, 'mouseenter', () => {\n        context.inputHovering = true;\n      });\n      useEventListener(current, 'mouseleave', () => {\n        context.inputHovering = false;\n      });\n    }\n  });\n\n  createEffect(() => {\n    if (autocompleteState.query() !== '') {\n      if (untrack(() => disclosureState.isOpen())) {\n        context.controller.setFirstChecked();\n      } else {\n        disclosureState.open();\n      }\n    }\n  });\n\n  createEffect(() => {\n    if (context.activeDescendant) {\n      const current = document.getElementById(context.activeDescendant);\n      if (current) {\n        context.controller.setCurrent(current);\n      }\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('input' as T),\n    mergeProps(\n      COMMAND_INPUT_TAG,\n      {\n        id: context.inputID,\n        ref: setInternalRef,\n        // Guarantee it's a text\n        type: 'text',\n        // Guarantee it's interactive\n        tabindex: 0,\n        role: 'combobox',\n\n        // Controls the options listbox\n        'aria-haspopup': 'listbox',\n        'aria-controls': context.optionsID,\n        'aria-labelledby': context.labelID,\n\n        get 'aria-expanded'() {\n          return disclosureState.isOpen();\n        },\n        get 'aria-activedescendant'() {\n          return context.activeDescendant;\n        },\n      },\n      createDisabledState(isDisabled),\n      createARIADisabledState(isDisabled),\n      createExpandedState(() => disclosureState.isOpen()),\n      createARIAExpandedState(() => disclosureState.isOpen()),\n      createHasSelectedState(() => autocompleteState.hasSelected()),\n      createHasActiveState(() => autocompleteState.hasActive()),\n      createHasQueryState(() => autocompleteState.hasQuery()),\n      omitProps(props, ['as', 'ref']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const COMMAND_TAG = createTag('command');\nexport const COMMAND_INPUT_TAG = createTag('command-input');\nexport const COMMAND_OPTIONS_TAG = createTag('command-options');\nexport const COMMAND_OPTION_TAG = createTag('command-option');\nexport const COMMAND_LABEL_TAG = createTag('command-label');\n", "import type { JSX } from 'solid-js';\nimport { mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport { useAutocompleteState } from '../../states/create-autocomplete-state';\nimport { useDisclosureState } from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n  createHasActiveState,\n  createHasQueryState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport { useComboboxContext } from './ComboboxContext';\nimport { COMBOBOX_LABEL_TAG } from './tags';\n\nexport type ComboboxLabelProps<T extends ValidConstructor = 'label'> =\n  HeadlessProps<T>;\n\nexport function ComboboxLabel<T extends ValidConstructor = 'label'>(\n  props: ComboboxLabelProps<T>,\n): JSX.Element {\n  const context = useComboboxContext('ComboboxLabel');\n  const autocompleteState = useAutocompleteState();\n  const disclosureState = useDisclosureState();\n\n  return createDynamic(\n    () => props.as || ('label' as T),\n    mergeProps(\n      COMBOBOX_LABEL_TAG,\n      {\n        id: context.labelID,\n      },\n      createDisabledState(() => autocompleteState.disabled()),\n      createExpandedState(() => disclosureState.isOpen()),\n      createHasSelectedState(() => autocompleteState.hasSelected()),\n      createHasActiveState(() => autocompleteState.hasActive()),\n      createHasQueryState(() => autocompleteState.hasQuery()),\n      omitProps(props, ['as']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createRenderEffect,\n  createUniqueId,\n  mergeProps,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  AutocompleteOptionStateOptions,\n  AutocompleteOptionStateRenderProps,\n} from '../../states/create-autocomplete-option-state';\nimport {\n  AutocompleteOptionStateProvider,\n  createAutocompleteOptionState,\n} from '../../states/create-autocomplete-option-state';\nimport { useDisclosureState } from '../../states/create-disclosure-state';\nimport type {\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { createOwnerAttribute } from '../../utils/focus-navigator';\nimport {\n  createARIADisabledState,\n  createARIASelectedState,\n  createActiveState,\n  createDisabledState,\n  createMatchesState,\n  createSelectedState,\n} from '../../utils/state-props';\nimport type { OmitAndMerge, Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useVirtualFocus } from '../../utils/virtual-focus';\nimport type { ButtonProps } from '../button';\nimport { Button } from '../button';\nimport { useComboboxContext } from './ComboboxContext';\nimport { COMBOBOX_OPTION_TAG } from './tags';\n\nexport type ComboboxOptionBaseProps<V> = Prettify<\n  AutocompleteOptionStateOptions<V> & AutocompleteOptionStateRenderProps\n>;\n\nexport type ComboboxOptionProps<\n  V,\n  T extends ValidConstructor = 'li',\n> = HeadlessPropsWithRef<\n  T,\n  OmitAndMerge<ComboboxOptionBaseProps<V>, ButtonProps<T>>\n>;\n\nexport function ComboboxOption<V, T extends ValidConstructor = 'li'>(\n  props: ComboboxOptionProps<V, T>,\n): JSX.Element {\n  const context = useComboboxContext('ComboboxOptions');\n  const disclosure = useDisclosureState();\n  const state = createAutocompleteOptionState(props);\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  const id = createUniqueId();\n\n  createEffect(() => {\n    if (!state.disabled() && context.selectedDescendant === id) {\n      state.select();\n      if (!context.multiple) {\n        disclosure.close();\n      }\n    }\n  });\n\n  function focusOption(): void {\n    context.activeDescendant = id;\n    state.focus();\n  }\n\n  // I would really love to use createEffect but for some reason\n  // the timing is never accurate\n  createRenderEffect(() => {\n    const current = internalRef();\n\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        if (!state.disabled()) {\n          state.select();\n          focusOption();\n          if (!context.multiple) {\n            disclosure.close();\n          }\n        }\n      });\n      useEventListener(current, 'mouseenter', () => {\n        if (!state.disabled()) {\n          focusOption();\n        }\n      });\n      useEventListener(current, 'mouseleave', () => {\n        state.blur();\n      });\n      useVirtualFocus(el => {\n        if (el === current) {\n          focusOption();\n        }\n      });\n    }\n  });\n\n  return createComponent(\n    Button,\n    mergeProps(\n      COMBOBOX_OPTION_TAG,\n      createOwnerAttribute(context.controller.getId()),\n      {\n        id,\n        get as() {\n          return props.as || ('li' as T);\n        },\n        role: 'option',\n        tabindex: -1,\n        ref: setInternalRef,\n      },\n      createDisabledState(() => state.disabled()),\n      createARIADisabledState(() => state.disabled()),\n      createSelectedState(() => state.isSelected()),\n      createARIASelectedState(() => state.isSelected()),\n      createActiveState(() => state.isActive()),\n      createMatchesState(() => state.matches()),\n      omitProps(props, ['as', 'children', 'disabled', 'value', 'ref']),\n      {\n        get children() {\n          return createComponent(AutocompleteOptionStateProvider, {\n            state,\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n    ) as ButtonProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createContext,\n  createMemo,\n  untrack,\n  useContext,\n} from 'solid-js';\nimport assert from '../utils/assert';\nimport { useAutocompleteState } from './create-autocomplete-state';\n\nexport interface AutocompleteOptionStateOptions<T> {\n  value: T;\n  disabled?: boolean;\n}\n\nexport interface AutocompleteOptionStateProperties {\n  isSelected(): boolean;\n  select(): void;\n  isActive(): boolean;\n  focus(): void;\n  blur(): void;\n  disabled(): boolean;\n  matches(): boolean;\n}\n\nexport function createAutocompleteOptionState<T>(\n  options: AutocompleteOptionStateOptions<T>,\n): AutocompleteOptionStateProperties {\n  const state = useAutocompleteState<T>();\n  const isDisabled = createMemo(() => options.disabled || state.disabled());\n  return {\n    isSelected: createMemo(() => state.isSelected(options.value)),\n    isActive: createMemo(() => state.isActive(options.value)),\n    select(): void {\n      if (!untrack(isDisabled)) {\n        state.select(options.value);\n      }\n    },\n    focus(): void {\n      if (!untrack(isDisabled)) {\n        state.focus(options.value);\n      }\n    },\n    blur(): void {\n      if (!untrack(isDisabled) && this.isActive()) {\n        state.blur();\n      }\n    },\n    matches: createMemo(() => state.matches(options.value)),\n    disabled: isDisabled,\n  };\n}\n\nexport interface AutocompleteOptionStateRenderProps {\n  children?:\n    | JSX.Element\n    | ((state: AutocompleteOptionStateProperties) => JSX.Element);\n}\n\nexport interface AutocompleteOptionStateProviderProps\n  extends AutocompleteOptionStateRenderProps {\n  state: AutocompleteOptionStateProperties;\n}\n\nconst AutocompleteOptionStateContext =\n  createContext<AutocompleteOptionStateProperties>();\n\nexport function AutocompleteOptionStateProvider(\n  props: AutocompleteOptionStateProviderProps,\n): JSX.Element {\n  return createComponent(AutocompleteOptionStateContext.Provider, {\n    value: props.state,\n    get children() {\n      const current = props.children;\n      if (typeof current === 'function') {\n        return current(props.state);\n      }\n      return current;\n    },\n  });\n}\n\nexport function useAutocompleteOptionState(): AutocompleteOptionStateProperties {\n  const ctx = useContext(AutocompleteOptionStateContext);\n  assert(ctx, new Error('Missing <AutocompleteOptionStateProvider>'));\n  return ctx;\n}\n\nexport function AutocompleteOptionStateChild(\n  props: AutocompleteOptionStateRenderProps,\n): JSX.Element {\n  const state = useAutocompleteOptionState();\n  return createMemo(() => {\n    const current = props.children;\n    if (typeof current === 'function' && current.length === 1) {\n      return createMemo(() => current(state));\n    }\n    return current;\n  }) as unknown as JSX.Element;\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  mergeProps,\n  onCleanup,\n  onMount,\n  untrack,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { AutocompleteStateRenderProps } from '../../states/create-autocomplete-state';\nimport {\n  AutocompleteStateChild,\n  useAutocompleteState,\n} from '../../states/create-autocomplete-state';\nimport { useDisclosureState } from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type { UnmountableProps } from '../../utils/create-unmountable';\nimport { createUnmountable } from '../../utils/create-unmountable';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { SELECTED_NODE } from '../../utils/namespace';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createExpandedState,\n  createHasActiveState,\n  createHasQueryState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useComboboxContext } from './ComboboxContext';\nimport { COMBOBOX_OPTIONS_TAG } from './tags';\n\nexport type ComboboxOptionsBaseProps<V> = Prettify<\n  UnmountableProps & AutocompleteStateRenderProps<V>\n>;\n\nexport type ComboboxOptionsProps<\n  V,\n  T extends ValidConstructor = 'ul',\n> = HeadlessPropsWithRef<T, ComboboxOptionsBaseProps<V>>;\n\nexport function ComboboxOptions<V, T extends ValidConstructor = 'ul'>(\n  props: ComboboxOptionsProps<V, T>,\n): JSX.Element {\n  const context = useComboboxContext('ComboboxOptions');\n  const autocompleteState = useAutocompleteState();\n  const disclosureState = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      context.controller.setRef(current);\n      onCleanup(() => {\n        context.controller.clearRef();\n      });\n\n      useEventListener(current, 'focusin', () => {\n        if (context.anchor) {\n          context.anchor.focus();\n        }\n      });\n      useEventListener(current, 'mouseenter', () => {\n        context.optionsHovering = true;\n      });\n      useEventListener(current, 'mouseleave', () => {\n        context.optionsHovering = false;\n      });\n    }\n  });\n\n  createEffect(() => {\n    if (!disclosureState.isOpen()) {\n      setInternalRef(undefined);\n    }\n  });\n\n  onMount(() => {\n    createEffect(() => {\n      if (disclosureState.isOpen()) {\n        if (untrack(() => autocompleteState.hasSelected())) {\n          context.controller.setFirstChecked(SELECTED_NODE);\n        } else {\n          context.controller.setFirstChecked();\n        }\n      }\n    });\n  });\n\n  return createUnmountable(\n    props,\n    () => disclosureState.isOpen(),\n    () =>\n      createDynamic(\n        () => props.as || ('ul' as T),\n        mergeProps(\n          COMBOBOX_OPTIONS_TAG,\n          {\n            id: context.optionsID,\n            role: 'listbox',\n            'aria-multiselectable': context.multiple,\n            ref: setInternalRef,\n            // TODO should Combobox support \"horizontal\"?\n            'aria-orientation': 'vertical',\n            tabindex: -1,\n          },\n          createDisabledState(() => autocompleteState.disabled()),\n          createARIADisabledState(() => autocompleteState.disabled()),\n          createExpandedState(() => disclosureState.isOpen()),\n          createHasSelectedState(() => autocompleteState.hasSelected()),\n          createHasActiveState(() => autocompleteState.hasActive()),\n          createHasQueryState(() => autocompleteState.hasQuery()),\n          omitProps(props, ['as', 'children', 'ref']),\n          {\n            get children() {\n              return createComponent(AutocompleteStateChild, {\n                get children() {\n                  return props.children;\n                },\n              });\n            },\n          },\n        ) as DynamicProps<T>,\n      ),\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createMemo,\n  createSignal,\n  createUniqueId,\n  mergeProps,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  AutocompleteStateRenderProps,\n  MultipleAutocompleteStateControlledOptions,\n  MultipleAutocompleteStateUncontrolledOptions,\n  SingleAutocompleteStateControlledOptions,\n  SingleAutocompleteStateUncontrolledOptions,\n} from '../../states/create-autocomplete-state';\nimport {\n  AutocompleteStateProvider,\n  createMultipleAutocompleteState,\n  createSingleAutocompleteState,\n} from '../../states/create-autocomplete-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createHasActiveState,\n  createHasQueryState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport {\n  CommandContext,\n  createCommandOptionFocusNavigator,\n} from './CommandContext';\nimport { COMMAND_TAG } from './tags';\n\nexport interface CommandBaseProps {\n  horizontal?: boolean;\n}\n\nexport type SingleCommandControlledBaseProps<V> = Prettify<\n  CommandBaseProps &\n    SingleAutocompleteStateControlledOptions<V> &\n    AutocompleteStateRenderProps<V>\n>;\n\nexport type SingleCommandControlledProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, SingleCommandControlledBaseProps<V>>;\n\nexport type SingleCommandUncontrolledBaseProps<V> = Prettify<\n  CommandBaseProps &\n    SingleAutocompleteStateUncontrolledOptions<V> &\n    AutocompleteStateRenderProps<V>\n>;\n\nexport type SingleCommandUncontrolledProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, SingleCommandUncontrolledBaseProps<V>>;\n\nexport type SingleCommandProps<V, T extends ValidConstructor = 'div'> =\n  | SingleCommandControlledProps<V, T>\n  | SingleCommandUncontrolledProps<V, T>;\n\nexport type MultipleCommandControlledBaseProps<V> = Prettify<\n  CommandBaseProps &\n    MultipleAutocompleteStateControlledOptions<V> &\n    AutocompleteStateRenderProps<V>\n>;\n\nexport type MultipleCommandControlledProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, MultipleCommandControlledBaseProps<V>>;\n\nexport type MultipleCommandUncontrolledBaseProps<V> = Prettify<\n  CommandBaseProps &\n    MultipleAutocompleteStateUncontrolledOptions<V> &\n    AutocompleteStateRenderProps<V>\n>;\n\nexport type MultipleCommandUncontrolledProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, MultipleCommandUncontrolledBaseProps<V>>;\n\nexport type MultipleCommandProps<V, T extends ValidConstructor = 'div'> =\n  | MultipleCommandControlledProps<V, T>\n  | MultipleCommandUncontrolledProps<V, T>;\n\nexport type CommandProps<V, T extends ValidConstructor = 'div'> =\n  | SingleCommandProps<V, T>\n  | MultipleCommandProps<V, T>;\n\nfunction isCommandMultiple<V, T extends ValidConstructor = 'div'>(\n  props: CommandProps<V, T>,\n): props is MultipleCommandProps<V, T> {\n  return !!props.multiple;\n}\n\nfunction isCommandUncontrolled<V, T extends ValidConstructor = 'div'>(\n  props: CommandProps<V, T>,\n): props is\n  | SingleCommandUncontrolledProps<V, T>\n  | MultipleCommandUncontrolledProps<V, T> {\n  return 'defaultValue' in props;\n}\n\nexport function Command<V, T extends ValidConstructor = 'div'>(\n  props: CommandProps<V, T>,\n): JSX.Element {\n  return createMemo(() => {\n    const controller = createCommandOptionFocusNavigator();\n    const state = isCommandMultiple(props)\n      ? createMultipleAutocompleteState(props)\n      : createSingleAutocompleteState(props);\n    const [activeDescendant, setActiveDescendant] = createSignal<string>();\n    const [selectedDescendant, setSelectedDescendant] = createSignal<\n      string | undefined\n    >(undefined, {\n      equals: false,\n    });\n\n    const inputID = createUniqueId();\n    const optionsID = createUniqueId();\n    const labelID = createUniqueId();\n\n    createEffect(() => {\n      if (!state.hasActive()) {\n        setActiveDescendant(undefined);\n      }\n    });\n\n    return createComponent(CommandContext.Provider, {\n      value: {\n        multiple: !!props.multiple,\n        controller,\n        get activeDescendant() {\n          return activeDescendant();\n        },\n        set activeDescendant(value: string | undefined) {\n          setActiveDescendant(value);\n        },\n        get selectedDescendant() {\n          return selectedDescendant();\n        },\n        set selectedDescendant(value: string | undefined) {\n          setSelectedDescendant(value);\n        },\n        inputID,\n        optionsID,\n        labelID,\n        optionsHovering: false,\n      },\n      get children() {\n        return createDynamic(\n          () => props.as || 'div',\n          mergeProps(\n            COMMAND_TAG,\n            {\n              id: controller.getId(),\n              'aria-labelledby': labelID,\n            },\n            createDisabledState(() => state.disabled()),\n            createARIADisabledState(() => state.disabled()),\n            createHasSelectedState(() => state.hasSelected()),\n            createHasActiveState(() => state.hasActive()),\n            createHasQueryState(() => state.hasQuery()),\n            isCommandUncontrolled(props)\n              ? omitProps(props, [\n                  'as',\n                  'by',\n                  'children',\n                  'defaultValue',\n                  'disabled',\n                  'horizontal',\n                  'multiple',\n                  'onChange',\n                  'toggleable',\n                ])\n              : omitProps(props, [\n                  'as',\n                  'by',\n                  'children',\n                  'value',\n                  'disabled',\n                  'horizontal',\n                  'multiple',\n                  'onChange',\n                  'toggleable',\n                ]),\n            {\n              get children() {\n                return createComponent(AutocompleteStateProvider, {\n                  state,\n                  get children() {\n                    return props.children;\n                  },\n                });\n              },\n            },\n          ) as DynamicProps<T>,\n        );\n      },\n    });\n  }) as unknown as JSX.Element;\n}\n", "import { createContext, createUniqueId, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\nimport FocusNavigator from '../../utils/focus-navigator';\nimport { MATCHES_NODE } from '../../utils/namespace';\n\ninterface CommandContextData {\n  multiple: boolean;\n  controller: FocusNavigator;\n  activeDescendant: string | undefined;\n  selectedDescendant: string | undefined;\n  inputID: string;\n  labelID: string;\n  optionsID: string;\n  anchor?: HTMLElement | null;\n  optionsHovering: boolean;\n}\n\nexport const CommandContext = createContext<CommandContextData>();\n\nexport function useCommandContext(componentName: string): CommandContextData {\n  const context = useContext(CommandContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <Command>`),\n  );\n  return context;\n}\n\nexport function createCommandOptionFocusNavigator(): FocusNavigator {\n  return new FocusNavigator(createUniqueId(), {\n    virtual: true,\n    base: MATCHES_NODE,\n  });\n}\n", "import type { JSX } from 'solid-js';\nimport { createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport { useAutocompleteState } from '../../states/create-autocomplete-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { SELECTED_NODE } from '../../utils/namespace';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createHasActiveState,\n  createHasQueryState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useCommandContext } from './CommandContext';\nimport { COMMAND_INPUT_TAG } from './tags';\n\nexport type CommandInputProps<T extends ValidConstructor = 'input'> =\n  HeadlessPropsWithRef<T>;\n\nexport function CommandInput<T extends ValidConstructor = 'input'>(\n  props: CommandInputProps<T>,\n): JSX.Element {\n  const context = useCommandContext('CommandInput');\n  const state = useAutocompleteState();\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  const isDisabled = (): boolean | undefined =>\n    state.disabled() || props.disabled;\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      context.anchor = current;\n\n      if (current instanceof HTMLInputElement) {\n        useEventListener(current, 'input', () => {\n          if (!isDisabled()) {\n            state.setQuery(current.value);\n          }\n        });\n      }\n      useEventListener(current, 'keydown', e => {\n        if (!isDisabled()) {\n          switch (e.key) {\n            case 'ArrowUp': {\n              e.preventDefault();\n              context.controller.setPrevChecked(true);\n              break;\n            }\n            case 'ArrowDown': {\n              e.preventDefault();\n              context.controller.setNextChecked(true);\n              break;\n            }\n            case 'Enter': {\n              e.preventDefault();\n              context.selectedDescendant = context.activeDescendant;\n              break;\n            }\n          }\n        }\n      });\n      useEventListener(current, 'focus', () => {\n        if (context.activeDescendant) {\n          const ref = document.getElementById(context.activeDescendant);\n          if (ref) {\n            context.controller.setCurrent(ref);\n          }\n        } else if (state.hasSelected()) {\n          context.controller.setFirstChecked(SELECTED_NODE);\n        } else {\n          context.controller.setFirstChecked();\n        }\n      });\n      useEventListener(current, 'blur', () => {\n        if (!context.optionsHovering) {\n          state.blur();\n        }\n      });\n    }\n  });\n\n  createEffect(() => {\n    if (state.query() !== '') {\n      context.controller.setFirstChecked();\n    }\n  });\n\n  createEffect(() => {\n    if (context.activeDescendant) {\n      const ref = document.getElementById(context.activeDescendant);\n      if (ref) {\n        context.controller.setCurrent(ref);\n      }\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('input' as T),\n    mergeProps(\n      COMMAND_INPUT_TAG,\n      {\n        id: context.inputID,\n        ref: setInternalRef,\n        // Guarantee it's a text\n        type: 'text',\n        // Guarantee it's interactive\n        tabindex: 0,\n        role: 'combobox',\n\n        // Controls the options listbox\n        'aria-controls': context.optionsID,\n        // Since combobox roles have aria-expanded=false\n        // as default but Command has a visible listbox\n        // we set this to true\n        'aria-expanded': true,\n        get 'aria-activedescendant'() {\n          return context.activeDescendant;\n        },\n      },\n      createDisabledState(isDisabled),\n      createARIADisabledState(isDisabled),\n      createHasSelectedState(() => state.hasSelected()),\n      createHasActiveState(() => state.hasActive()),\n      createHasQueryState(() => state.hasQuery()),\n      omitProps(props, ['as', 'ref']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport { useAutocompleteState } from '../../states/create-autocomplete-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createHasActiveState,\n  createHasQueryState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport { useCommandContext } from './CommandContext';\nimport { COMMAND_LABEL_TAG } from './tags';\n\nexport type CommandLabelProps<T extends ValidConstructor = 'label'> =\n  HeadlessProps<T>;\n\nexport function CommandLabel<T extends ValidConstructor = 'label'>(\n  props: CommandLabelProps<T>,\n): JSX.Element {\n  const context = useCommandContext('CommandLabel');\n  const state = useAutocompleteState();\n\n  return createDynamic(\n    () => props.as || ('label' as T),\n    mergeProps(\n      omitProps(props, ['as']),\n      COMMAND_LABEL_TAG,\n      {\n        id: context.labelID,\n      },\n      createDisabledState(() => state.disabled()),\n      createHasSelectedState(() => state.hasSelected()),\n      createHasActiveState(() => state.hasActive()),\n      createHasQueryState(() => state.hasQuery()),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createUniqueId,\n  mergeProps,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  AutocompleteOptionStateOptions,\n  AutocompleteOptionStateRenderProps,\n} from '../../states/create-autocomplete-option-state';\nimport {\n  AutocompleteOptionStateProvider,\n  createAutocompleteOptionState,\n} from '../../states/create-autocomplete-option-state';\nimport type {\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { createOwnerAttribute } from '../../utils/focus-navigator';\nimport {\n  createARIADisabledState,\n  createARIASelectedState,\n  createActiveState,\n  createDisabledState,\n  createMatchesState,\n  createSelectedState,\n} from '../../utils/state-props';\nimport type { OmitAndMerge, Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useVirtualFocus } from '../../utils/virtual-focus';\nimport type { ButtonProps } from '../button';\nimport { Button } from '../button';\nimport { useCommandContext } from './CommandContext';\nimport { COMMAND_OPTION_TAG } from './tags';\n\nexport type CommandOptionBaseProps<V> = Prettify<\n  AutocompleteOptionStateOptions<V> & AutocompleteOptionStateRenderProps\n>;\n\nexport type CommandOptionProps<\n  V,\n  T extends ValidConstructor = 'li',\n> = HeadlessPropsWithRef<\n  T,\n  OmitAndMerge<CommandOptionBaseProps<V>, ButtonProps<T>>\n>;\n\nexport function CommandOption<V, T extends ValidConstructor = 'li'>(\n  props: CommandOptionProps<V, T>,\n): JSX.Element {\n  const context = useCommandContext('CommandOption');\n  const [internalRef, setInternalRef] = createForwardRef(props);\n  const state = createAutocompleteOptionState(props);\n  const id = createUniqueId();\n\n  createEffect(() => {\n    if (!state.disabled() && context.selectedDescendant === id) {\n      state.select();\n    }\n  });\n\n  function focusOption(): void {\n    context.activeDescendant = id;\n    state.focus();\n  }\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        if (!state.disabled()) {\n          state.select();\n          focusOption();\n        }\n      });\n      useEventListener(current, 'mouseenter', () => {\n        if (!state.disabled()) {\n          focusOption();\n        }\n      });\n      useEventListener(current, 'mouseleave', () => {\n        state.blur();\n      });\n      useVirtualFocus(el => {\n        if (el === current) {\n          focusOption();\n        }\n      });\n    }\n  });\n\n  return createComponent(\n    Button,\n    mergeProps(\n      COMMAND_OPTION_TAG,\n      createOwnerAttribute(context.controller.getId()),\n      {\n        id,\n        get as() {\n          return props.as || ('li' as T);\n        },\n        role: 'option',\n        tabindex: -1,\n        ref: setInternalRef,\n      },\n      createDisabledState(() => state.disabled()),\n      createARIADisabledState(() => state.disabled()),\n      createSelectedState(() => state.isSelected()),\n      createARIASelectedState(() => state.isSelected()),\n      createActiveState(() => state.isActive()),\n      createMatchesState(() => state.matches()),\n      omitProps(props, ['as', 'children', 'value', 'ref']),\n      {\n        get children() {\n          return createComponent(AutocompleteOptionStateProvider, {\n            state,\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n    ) as ButtonProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps, onCleanup } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { AutocompleteStateRenderProps } from '../../states/create-autocomplete-state';\nimport {\n  AutocompleteStateChild,\n  useAutocompleteState,\n} from '../../states/create-autocomplete-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createHasActiveState,\n  createHasQueryState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useCommandContext } from './CommandContext';\nimport { COMMAND_OPTIONS_TAG } from './tags';\n\nexport type CommandOptionsProps<\n  V,\n  T extends ValidConstructor = 'ul',\n> = HeadlessPropsWithRef<T, AutocompleteStateRenderProps<V>>;\n\nexport function CommandOptions<V, T extends ValidConstructor = 'ul'>(\n  props: CommandOptionsProps<V, T>,\n): JSX.Element {\n  const context = useCommandContext('CommandOptions');\n  const state = useAutocompleteState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      context.controller.setRef(current);\n      onCleanup(() => {\n        context.controller.clearRef();\n      });\n      useEventListener(current, 'focusin', () => {\n        if (context.anchor) {\n          context.anchor.focus();\n        }\n      });\n      useEventListener(current, 'mouseenter', () => {\n        context.optionsHovering = true;\n      });\n      useEventListener(current, 'mouseleave', () => {\n        context.optionsHovering = false;\n      });\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('ul' as T),\n    mergeProps(\n      COMMAND_OPTIONS_TAG,\n      {\n        id: context.optionsID,\n        role: 'listbox',\n        'aria-multiselectable': context.multiple,\n        ref: setInternalRef,\n        // TODO should Command support \"horizontal\"?\n        'aria-orientation': 'vertical',\n        tabindex: -1,\n      },\n      createDisabledState(() => state.disabled()),\n      createARIADisabledState(() => state.disabled()),\n      createHasSelectedState(() => state.hasSelected()),\n      createHasActiveState(() => state.hasActive()),\n      createHasQueryState(() => state.hasQuery()),\n      omitProps(props, ['as', 'children', 'ref']),\n      {\n        get children() {\n          return createComponent(AutocompleteStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createUniqueId,\n  mergeProps,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  DisclosureStateControlledOptions,\n  DisclosureStateRenderProps,\n  DisclosureStateUncontrolledOptions,\n} from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateProvider,\n  createDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type { UnmountableProps } from '../../utils/create-unmountable';\nimport { createUnmountable } from '../../utils/create-unmountable';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport useFocusStartPoint from '../../utils/use-focus-start-point';\nimport { CommandBarContext } from './CommandBarContext';\nimport { COMMAND_BAR_TAG } from './tags';\n\nexport type CommandBarControlledBaseProps = Prettify<\n  DisclosureStateControlledOptions &\n    DisclosureStateRenderProps &\n    UnmountableProps\n>;\n\nexport type CommandBarControlledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, CommandBarControlledBaseProps>;\n\nexport type CommandBarUncontrolledBaseProps = Prettify<\n  DisclosureStateUncontrolledOptions &\n    DisclosureStateRenderProps &\n    UnmountableProps\n>;\n\nexport type CommandBarUncontrolledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, CommandBarUncontrolledBaseProps>;\n\nexport type CommandBarProps<T extends ValidConstructor = 'div'> =\n  | CommandBarControlledProps<T>\n  | CommandBarUncontrolledProps<T>;\n\nfunction isCommandBarUncontrolled<T extends ValidConstructor = 'div'>(\n  props: CommandBarProps<T>,\n): props is CommandBarUncontrolledProps<T> {\n  return 'defaultOpen' in props;\n}\n\nexport function CommandBar<T extends ValidConstructor = 'div'>(\n  props: CommandBarProps<T>,\n): JSX.Element {\n  const ownerID = createUniqueId();\n  const panelID = createUniqueId();\n  const titleID = createUniqueId();\n  const descriptionID = createUniqueId();\n  const fsp = useFocusStartPoint();\n\n  const state = createDisclosureState(props);\n\n  createEffect(() => {\n    if (state.isOpen()) {\n      fsp.save();\n    } else {\n      fsp.load();\n    }\n  });\n\n  createEffect(() => {\n    useEventListener(window, 'keydown', e => {\n      if ((e.metaKey || e.ctrlKey) && e.key === 'k' && !e.defaultPrevented) {\n        e.preventDefault();\n        state.open();\n      }\n    });\n  });\n\n  return createComponent(CommandBarContext.Provider, {\n    value: {\n      ownerID,\n      panelID,\n      titleID,\n      descriptionID,\n    },\n    get children() {\n      return createUnmountable(\n        props,\n        () => state.isOpen(),\n        () =>\n          createDynamic(\n            () => props.as || ('div' as T),\n            mergeProps(\n              COMMAND_BAR_TAG,\n              createDisabledState(() => state.disabled()),\n              createARIADisabledState(() => state.disabled()),\n              createExpandedState(() => state.isOpen()),\n              {\n                id: ownerID,\n                role: 'dialog',\n                'aria-modal': true,\n                'aria-labelledby': titleID,\n                'aria-describedby': descriptionID,\n                get children() {\n                  return createComponent(DisclosureStateProvider, {\n                    state,\n                    get children() {\n                      return props.children;\n                    },\n                  });\n                },\n              },\n              isCommandBarUncontrolled(props)\n                ? omitProps(props, [\n                    'as',\n                    'children',\n                    'defaultOpen',\n                    'disabled',\n                    'onChange',\n                    'onClose',\n                    'onOpen',\n                    'unmount',\n                  ])\n                : omitProps(props, [\n                    'as',\n                    'children',\n                    'isOpen',\n                    'disabled',\n                    'onChange',\n                    'onClose',\n                    'onOpen',\n                    'unmount',\n                  ]),\n            ) as DynamicProps<T>,\n          ),\n      );\n    },\n  });\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\n\ninterface CommandBarContextData {\n  ownerID: string;\n  panelID: string;\n  titleID: string;\n  descriptionID: string;\n  onOpen?: () => void;\n  onClose?: () => void;\n}\n\nexport const CommandBarContext = createContext<CommandBarContextData>();\n\nexport function useCommandBarContext(\n  componentName: string,\n): CommandBarContextData {\n  const context = useContext(CommandBarContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <CommandBar>`),\n  );\n  return context;\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const COMMAND_BAR_TAG = createTag('command-bar');\nexport const COMMAND_BAR_DESCRIPTION_TAG = createTag('command-bar-description');\nexport const COMMAND_BAR_OVERLAY_TAG = createTag('command-bar-overlay');\nexport const COMMAND_BAR_PANEL_TAG = createTag('command-bar-panel');\nexport const COMMAND_BAR_TITLE_TAG = createTag('command-bar-title');\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport { useCommandBarContext } from './CommandBarContext';\nimport { COMMAND_BAR_DESCRIPTION_TAG } from './tags';\n\nexport type CommandBarDescriptionProps<T extends ValidConstructor = 'p'> =\n  HeadlessProps<T, DisclosureStateRenderProps>;\n\nexport function CommandBarDescription<T extends ValidConstructor = 'p'>(\n  props: CommandBarDescriptionProps<T>,\n): JSX.Element {\n  const context = useCommandBarContext('CommandBarDescription');\n  const state = useDisclosureState();\n  return createDynamic(\n    () => props.as || ('p' as T),\n    mergeProps(\n      COMMAND_BAR_DESCRIPTION_TAG,\n      {\n        id: context.descriptionID,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      omitProps(props, ['as', 'children']),\n      createExpandedState(() => state.isOpen()),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useCommandBarContext } from './CommandBarContext';\nimport { COMMAND_BAR_OVERLAY_TAG } from './tags';\n\nexport type CommandBarOverlayProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, DisclosureStateRenderProps>;\n\nexport function CommandBarOverlay<T extends ValidConstructor = 'p'>(\n  props: CommandBarOverlayProps<T>,\n): JSX.Element {\n  useCommandBarContext('CommandBarOverlay');\n  const state = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        state.close();\n      });\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('div' as T),\n    mergeProps(\n      COMMAND_BAR_OVERLAY_TAG,\n      {\n        ref: setInternalRef,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n      omitProps(props, ['as', 'children', 'ref']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { focusFirst, lockFocus } from '../../utils/focus-navigation';\nimport getFocusableElements from '../../utils/focus-query';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useCommandBarContext } from './CommandBarContext';\nimport { COMMAND_BAR_PANEL_TAG } from './tags';\n\nexport type CommandBarPanelProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, DisclosureStateRenderProps>;\n\nexport function CommandBarPanel<T extends ValidConstructor = 'div'>(\n  props: CommandBarPanelProps<T>,\n): JSX.Element {\n  const context = useCommandBarContext('CommandBarPanel');\n  const state = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      if (state.isOpen()) {\n        focusFirst(getFocusableElements(current), false);\n\n        useEventListener(current, 'keydown', e => {\n          if (!props.disabled) {\n            switch (e.key) {\n              case 'Tab': {\n                e.preventDefault();\n                lockFocus(current, e.shiftKey, false);\n                break;\n              }\n              case 'Escape': {\n                state.close();\n                break;\n              }\n              default:\n                break;\n            }\n          }\n        });\n      }\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('div' as T),\n    mergeProps(\n      COMMAND_BAR_PANEL_TAG,\n      {\n        id: context.panelID,\n        ref: setInternalRef,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n      omitProps(props, ['as', 'children', 'ref']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport { useCommandBarContext } from './CommandBarContext';\nimport { COMMAND_BAR_TITLE_TAG } from './tags';\n\nexport type CommandBarTitleProps<T extends ValidConstructor = 'h2'> =\n  HeadlessProps<T, DisclosureStateRenderProps>;\n\nexport function CommandBarTitle<T extends ValidConstructor = 'h2'>(\n  props: CommandBarTitleProps<T>,\n): JSX.Element {\n  const context = useCommandBarContext('CommandBarTitle');\n  const state = useDisclosureState();\n  return createDynamic(\n    () => props.as || ('h2' as T),\n    mergeProps(\n      COMMAND_BAR_TITLE_TAG,\n      {\n        id: context.titleID,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n      omitProps(props, ['as', 'children']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createUniqueId,\n  mergeProps,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  DisclosureStateControlledOptions,\n  DisclosureStateRenderProps,\n  DisclosureStateUncontrolledOptions,\n} from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateProvider,\n  createDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useFocusStartPoint from '../../utils/use-focus-start-point';\nimport { ContextMenuContext } from './ContextMenuContext';\nimport { CONTEXT_MENU_TAG } from './tags';\n\nexport type ContextMenuControlledBaseProps = Prettify<\n  DisclosureStateControlledOptions & DisclosureStateRenderProps\n>;\n\nexport type ContextMenuControlledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, ContextMenuControlledBaseProps>;\n\nexport type ContextMenuUncontrolledBaseProps = Prettify<\n  DisclosureStateUncontrolledOptions & DisclosureStateRenderProps\n>;\n\nexport type ContextMenuUncontrolledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, ContextMenuUncontrolledBaseProps>;\n\nexport type ContextMenuProps<T extends ValidConstructor = 'div'> =\n  | ContextMenuControlledProps<T>\n  | ContextMenuUncontrolledProps<T>;\n\nfunction isContextMenuUncontrolled<T extends ValidConstructor = 'div'>(\n  props: ContextMenuProps<T>,\n): props is ContextMenuUncontrolledProps<T> {\n  return 'defaultOpen' in props;\n}\n\nexport function ContextMenu<T extends ValidConstructor = 'div'>(\n  props: ContextMenuProps<T>,\n): JSX.Element {\n  const ownerID = createUniqueId();\n  const boundaryID = createUniqueId();\n  const panelID = createUniqueId();\n\n  const fsp = useFocusStartPoint();\n\n  const state = createDisclosureState(props);\n\n  createEffect(() => {\n    if (state.isOpen()) {\n      fsp.save();\n    } else {\n      fsp.load();\n    }\n  });\n\n  return createComponent(ContextMenuContext.Provider, {\n    value: {\n      ownerID,\n      boundaryID,\n      panelID,\n    },\n    get children() {\n      return createDynamic(\n        () => props.as || ('div' as T),\n        mergeProps(\n          CONTEXT_MENU_TAG,\n          createDisabledState(() => state.disabled()),\n          createARIADisabledState(() => state.disabled()),\n          createExpandedState(() => state.isOpen()),\n          isContextMenuUncontrolled(props)\n            ? omitProps(props, [\n                'as',\n                'children',\n                'defaultOpen',\n                'disabled',\n                'onChange',\n                'onClose',\n                'onOpen',\n              ])\n            : omitProps(props, [\n                'as',\n                'children',\n                'isOpen',\n                'disabled',\n                'onChange',\n                'onClose',\n                'onOpen',\n              ]),\n          {\n            get children() {\n              return createComponent(DisclosureStateProvider, {\n                state,\n                get children() {\n                  return props.children;\n                },\n              });\n            },\n          },\n        ) as DynamicProps<T>,\n      );\n    },\n  });\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\n\ninterface ContextMenuContextData {\n  ownerID: string;\n  boundaryID: string;\n  panelID: string;\n  anchor?: HTMLElement | null;\n}\n\nexport const ContextMenuContext = createContext<ContextMenuContextData>();\n\nexport function useContextMenuContext(\n  componentName: string,\n): ContextMenuContextData {\n  const context = useContext(ContextMenuContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <ContextMenu>`),\n  );\n  return context;\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const CONTEXT_MENU_TAG = createTag('context-menu');\nexport const CONTEXT_MENU_BOUNDARY_TAG = createTag('context-menu-boundary');\nexport const CONTEXT_MENU_OVERLAY_TAG = createTag('context-menu-overlay');\nexport const CONTEXT_MENU_PANEL_TAG = createTag('context-menu-panel');\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createARIAExpandedState,\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useContextMenuContext } from './ContextMenuContext';\nimport { CONTEXT_MENU_BOUNDARY_TAG } from './tags';\n\nexport type ContextMenuBoundaryProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, DisclosureStateRenderProps>;\n\nexport function ContextMenuBoundary<T extends ValidConstructor = 'div'>(\n  props: ContextMenuBoundaryProps<T>,\n): JSX.Element {\n  const context = useContextMenuContext('ContextMenuBoundary');\n  const state = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      context.anchor = current;\n      useEventListener(current, 'contextmenu', e => {\n        if (!state.disabled()) {\n          e.preventDefault();\n          state.open();\n        }\n      });\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('div' as T),\n    mergeProps(\n      CONTEXT_MENU_BOUNDARY_TAG,\n      {\n        id: context.boundaryID,\n        ref: setInternalRef,\n        get 'aria-controls'() {\n          return state.isOpen() && context.panelID;\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createARIADisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n      createARIAExpandedState(() => state.isOpen()),\n      omitProps(props, ['as', 'children', 'ref']),\n      {\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useContextMenuContext } from './ContextMenuContext';\nimport { CONTEXT_MENU_OVERLAY_TAG } from './tags';\n\nexport type ContextMenuOverlayProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, DisclosureStateRenderProps>;\n\nexport function ContextMenuOverlay<T extends ValidConstructor = 'div'>(\n  props: ContextMenuOverlayProps<T>,\n): JSX.Element {\n  useContextMenuContext('ContextMenuOverlay');\n  const state = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        state.close();\n      });\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('div' as T),\n    mergeProps(\n      CONTEXT_MENU_OVERLAY_TAG,\n      {\n        ref: setInternalRef,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n      omitProps(props, ['as', 'children', 'ref']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type { UnmountableProps } from '../../utils/create-unmountable';\nimport { createUnmountable } from '../../utils/create-unmountable';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { focusFirst, lockFocus } from '../../utils/focus-navigation';\nimport getFocusableElements from '../../utils/focus-query';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useContextMenuContext } from './ContextMenuContext';\nimport { CONTEXT_MENU_PANEL_TAG } from './tags';\n\nexport type ContextMenuPanelBaseProps = Prettify<\n  DisclosureStateRenderProps & UnmountableProps\n>;\n\nexport type ContextMenuPanelProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, ContextMenuPanelBaseProps>;\n\nexport function ContextMenuPanel<T extends ValidConstructor = 'div'>(\n  props: ContextMenuPanelProps<T>,\n): JSX.Element {\n  const context = useContextMenuContext('ContextMenuPanel');\n  const state = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      if (state.isOpen()) {\n        focusFirst(getFocusableElements(current), false);\n        useEventListener(current, 'keydown', e => {\n          if (!props.disabled) {\n            switch (e.key) {\n              case 'Tab': {\n                e.preventDefault();\n                lockFocus(current, e.shiftKey, false);\n                break;\n              }\n              case 'Escape': {\n                state.close();\n                break;\n              }\n              default:\n                break;\n            }\n          }\n        });\n        useEventListener(document, 'click', e => {\n          if (!current.contains(e.target as Node)) {\n            state.close();\n          }\n        });\n      }\n    }\n  });\n\n  return createUnmountable(\n    props,\n    () => state.isOpen(),\n    () =>\n      createDynamic(\n        () => props.as || ('div' as T),\n        mergeProps(\n          CONTEXT_MENU_PANEL_TAG,\n          {\n            id: context.panelID,\n            ref: setInternalRef,\n            get children() {\n              return createComponent(DisclosureStateChild, {\n                get children() {\n                  return props.children;\n                },\n              });\n            },\n          },\n          createDisabledState(() => state.disabled()),\n          createExpandedState(() => state.isOpen()),\n          omitProps(props, ['as', 'unmount', 'children', 'ref']),\n        ) as DynamicProps<T>,\n      ),\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createUniqueId,\n  mergeProps,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  DisclosureStateControlledOptions,\n  DisclosureStateRenderProps,\n  DisclosureStateUncontrolledOptions,\n} from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateProvider,\n  createDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type { UnmountableProps } from '../../utils/create-unmountable';\nimport { createUnmountable } from '../../utils/create-unmountable';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useFocusStartPoint from '../../utils/use-focus-start-point';\nimport { DialogContext } from './DialogContext';\nimport { DIALOG_TAG } from './tags';\n\nexport type DialogControlledBaseProps = Prettify<\n  DisclosureStateControlledOptions &\n    DisclosureStateRenderProps &\n    UnmountableProps\n>;\n\nexport type DialogControlledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, DialogControlledBaseProps>;\n\nexport type DialogUncontrolledBaseProps = Prettify<\n  DisclosureStateUncontrolledOptions &\n    DisclosureStateRenderProps &\n    UnmountableProps\n>;\n\nexport type DialogUncontrolledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, DialogUncontrolledBaseProps>;\n\nexport type DialogProps<T extends ValidConstructor = 'div'> =\n  | DialogControlledProps<T>\n  | DialogUncontrolledProps<T>;\n\nfunction isDialogUncontrolled<T extends ValidConstructor = 'div'>(\n  props: DialogProps<T>,\n): props is DialogUncontrolledProps<T> {\n  return 'defaultOpen' in props;\n}\n\nexport function Dialog<T extends ValidConstructor = 'div'>(\n  props: DialogProps<T>,\n): JSX.Element {\n  const ownerID = createUniqueId();\n  const panelID = createUniqueId();\n  const titleID = createUniqueId();\n  const descriptionID = createUniqueId();\n\n  const fsp = useFocusStartPoint();\n\n  const state = createDisclosureState(props);\n\n  createEffect(() => {\n    if (state.isOpen()) {\n      fsp.save();\n    } else {\n      fsp.load();\n    }\n  });\n\n  return createComponent(DialogContext.Provider, {\n    value: {\n      ownerID,\n      panelID,\n      titleID,\n      descriptionID,\n    },\n    get children() {\n      return createUnmountable(\n        props,\n        () => state.isOpen(),\n        () =>\n          createDynamic(\n            () => props.as || ('div' as T),\n            mergeProps(\n              DIALOG_TAG,\n              {\n                id: ownerID,\n                role: 'dialog',\n                'aria-modal': true,\n                'aria-labelledby': titleID,\n                'aria-describedby': descriptionID,\n                get children() {\n                  return createComponent(DisclosureStateProvider, {\n                    state,\n                    get children() {\n                      return props.children;\n                    },\n                  });\n                },\n              },\n              createDisabledState(() => state.disabled()),\n              createARIADisabledState(() => state.disabled()),\n              createExpandedState(() => state.isOpen()),\n              isDialogUncontrolled(props)\n                ? omitProps(props, [\n                    'as',\n                    'children',\n                    'defaultOpen',\n                    'disabled',\n                    'onChange',\n                    'onClose',\n                    'onOpen',\n                    'unmount',\n                  ])\n                : omitProps(props, [\n                    'as',\n                    'children',\n                    'isOpen',\n                    'disabled',\n                    'onChange',\n                    'onClose',\n                    'onOpen',\n                    'unmount',\n                  ]),\n            ) as DynamicProps<T>,\n          ),\n      );\n    },\n  });\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\n\ninterface DialogContextData {\n  ownerID: string;\n  panelID: string;\n  titleID: string;\n  descriptionID: string;\n}\n\nexport const DialogContext = createContext<DialogContextData>();\n\nexport function useDialogContext(componentName: string): DialogContextData {\n  const context = useContext(DialogContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <Dialog>`),\n  );\n  return context;\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const DIALOG_TAG = createTag('dialog');\nexport const DIALOG_DESCRIPTION_TAG = createTag('dialog-description');\nexport const DIALOG_OVERLAY_TAG = createTag('dialog-overlay');\nexport const DIALOG_PANEL_TAG = createTag('dialog-panel');\nexport const DIALOG_TITLE_TAG = createTag('dialog-title');\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport { useDialogContext } from './DialogContext';\nimport { DIALOG_DESCRIPTION_TAG } from './tags';\n\nexport type DialogDescriptionProps<T extends ValidConstructor = 'p'> =\n  HeadlessProps<T, DisclosureStateRenderProps>;\n\nexport function DialogDescription<T extends ValidConstructor = 'p'>(\n  props: DialogDescriptionProps<T>,\n): JSX.Element {\n  const context = useDialogContext('DialogDescription');\n  const state = useDisclosureState();\n  return createDynamic(\n    () => props.as || ('p' as T),\n    mergeProps(\n      DIALOG_DESCRIPTION_TAG,\n      {\n        id: context.descriptionID,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n      omitProps(props, ['as', 'children']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useDialogContext } from './DialogContext';\nimport { DIALOG_OVERLAY_TAG } from './tags';\n\nexport type DialogOverlayProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, DisclosureStateRenderProps>;\n\nexport function DialogOverlay<T extends ValidConstructor = 'div'>(\n  props: DialogOverlayProps<T>,\n): JSX.Element {\n  useDialogContext('DialogOverlay');\n  const state = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        state.close();\n      });\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('div' as T),\n    mergeProps(\n      DIALOG_OVERLAY_TAG,\n      {\n        ref: setInternalRef,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n      omitProps(props, ['as', 'children', 'ref']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { focusFirst, lockFocus } from '../../utils/focus-navigation';\nimport getFocusableElements from '../../utils/focus-query';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useDialogContext } from './DialogContext';\nimport { DIALOG_PANEL_TAG } from './tags';\n\nexport type DialogPanelProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, DisclosureStateRenderProps>;\n\nexport function DialogPanel<T extends ValidConstructor = 'div'>(\n  props: DialogPanelProps<T>,\n): JSX.Element {\n  const context = useDialogContext('DialogPanel');\n  const state = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement && state.isOpen()) {\n      focusFirst(getFocusableElements(current), false);\n      useEventListener(current, 'keydown', e => {\n        if (!props.disabled) {\n          switch (e.key) {\n            case 'Tab': {\n              e.preventDefault();\n              lockFocus(current, e.shiftKey, false);\n              break;\n            }\n            case 'Escape': {\n              state.close();\n              break;\n            }\n            default:\n              break;\n          }\n        }\n      });\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('div' as T),\n    mergeProps(\n      DIALOG_PANEL_TAG,\n      {\n        id: context.panelID,\n        ref: setInternalRef,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n      omitProps(props, ['as', 'children', 'ref']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport { useDialogContext } from './DialogContext';\nimport { DIALOG_TITLE_TAG } from './tags';\n\nexport type DialogTitleProps<T extends ValidConstructor = 'h2'> =\n  HeadlessPropsWithRef<T, DisclosureStateRenderProps>;\n\nexport function DialogTitle<T extends ValidConstructor = 'h2'>(\n  props: DialogTitleProps<T>,\n): JSX.Element {\n  const context = useDialogContext('DialogTitle');\n  const state = useDisclosureState();\n  return createDynamic(\n    () => props.as || ('h2' as T),\n    mergeProps(\n      DIALOG_TITLE_TAG,\n      {\n        id: context.titleID,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n      omitProps(props, ['as', 'children']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createUniqueId, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  DisclosureStateControlledOptions,\n  DisclosureStateRenderProps,\n  DisclosureStateUncontrolledOptions,\n} from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateProvider,\n  createDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport { DisclosureContext } from './DisclosureContext';\nimport { DISCLOSURE_TAG } from './tags';\n\nexport type DisclosureControlledBaseProps = Prettify<\n  DisclosureStateControlledOptions & DisclosureStateRenderProps\n>;\n\nexport type DisclosureControlledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, DisclosureControlledBaseProps>;\n\nexport type DisclosureUncontrolledBaseProps = Prettify<\n  DisclosureStateUncontrolledOptions & DisclosureStateRenderProps\n>;\n\nexport type DisclosureUncontrolledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, DisclosureUncontrolledBaseProps>;\n\nexport type DisclosureProps<T extends ValidConstructor = 'div'> =\n  | DisclosureControlledProps<T>\n  | DisclosureUncontrolledProps<T>;\n\nfunction isDisclosureUncontrolled<T extends ValidConstructor = 'div'>(\n  props: DisclosureProps<T>,\n): props is DisclosureUncontrolledProps<T> {\n  return 'defaultOpen' in props;\n}\n\nexport function Disclosure<T extends ValidConstructor = 'div'>(\n  props: DisclosureProps<T>,\n): JSX.Element {\n  const ownerID = createUniqueId();\n  const buttonID = createUniqueId();\n  const panelID = createUniqueId();\n  const state = createDisclosureState(props);\n\n  return createComponent(DisclosureContext.Provider, {\n    value: {\n      ownerID,\n      buttonID,\n      panelID,\n    },\n    get children() {\n      return createDynamic(\n        () => props.as || 'div',\n        mergeProps(\n          DISCLOSURE_TAG,\n          createDisabledState(() => state.disabled()),\n          createARIADisabledState(() => state.disabled()),\n          createExpandedState(() => state.isOpen()),\n          isDisclosureUncontrolled(props)\n            ? omitProps(props, [\n                'as',\n                'children',\n                'defaultOpen',\n                'disabled',\n                'onChange',\n                'onClose',\n                'onOpen',\n              ])\n            : omitProps(props, [\n                'as',\n                'children',\n                'isOpen',\n                'disabled',\n                'onChange',\n                'onClose',\n                'onOpen',\n              ]),\n          {\n            get children() {\n              return createComponent(DisclosureStateProvider, {\n                state,\n                get children() {\n                  return props.children;\n                },\n              });\n            },\n          },\n        ) as DynamicProps<T>,\n      );\n    },\n  });\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\n\ninterface DisclosureContextData {\n  ownerID: string;\n  buttonID: string;\n  panelID: string;\n}\n\nexport const DisclosureContext = createContext<DisclosureContextData>();\n\nexport function useDisclosureContext(\n  componentName: string,\n): DisclosureContextData {\n  const context = useContext(DisclosureContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <Disclosure>`),\n  );\n  return context;\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const DISCLOSURE_TAG = createTag('disclosure');\nexport const DISCLOSURE_BUTTON_TAG = createTag('disclosure-button');\nexport const DISCLOSURE_PANEL_TAG = createTag('disclosure-panel');\n", "import type { JSX } from 'solid-js';\nimport { createEffect, mergeProps } from 'solid-js';\nimport { createComponent } from 'solid-js/web';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport type {\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createARIAExpandedState,\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport type { OmitAndMerge } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport type { ButtonProps } from '../button';\nimport { Button } from '../button';\nimport { useDisclosureContext } from './DisclosureContext';\nimport { DISCLOSURE_BUTTON_TAG } from './tags';\n\nexport type DisclosureButtonProps<T extends ValidConstructor = 'button'> =\n  HeadlessPropsWithRef<\n    T,\n    OmitAndMerge<DisclosureStateRenderProps, ButtonProps<T>>\n  >;\n\nexport function DisclosureButton<T extends ValidConstructor = 'button'>(\n  props: DisclosureButtonProps<T>,\n): JSX.Element {\n  const context = useDisclosureContext('DisclosureButton');\n  const state = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  const isDisabled = (): boolean | undefined =>\n    state.disabled() || props.disabled;\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        if (!isDisabled()) {\n          state.toggle();\n        }\n      });\n    }\n  });\n\n  return createComponent(\n    Button,\n    mergeProps(\n      DISCLOSURE_BUTTON_TAG,\n      {\n        id: context.buttonID,\n        ref: setInternalRef,\n        get 'aria-controls'() {\n          return state.isOpen() && context.panelID;\n        },\n      },\n      createDisabledState(isDisabled),\n      createARIADisabledState(isDisabled),\n      createExpandedState(() => state.isOpen()),\n      createARIAExpandedState(() => state.isOpen()),\n      omitProps(props, ['children', 'ref']),\n      {\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n    ) as ButtonProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type { UnmountableProps } from '../../utils/create-unmountable';\nimport { createUnmountable } from '../../utils/create-unmountable';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport { useDisclosureContext } from './DisclosureContext';\nimport { DISCLOSURE_PANEL_TAG } from './tags';\n\nexport type DisclosurePanelBaseProps = Prettify<\n  DisclosureStateRenderProps & UnmountableProps\n>;\n\nexport type DisclosurePanelProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, DisclosurePanelBaseProps>;\n\nexport function DisclosurePanel<T extends ValidConstructor = 'div'>(\n  props: DisclosurePanelProps<T>,\n): JSX.Element {\n  const context = useDisclosureContext('DisclosurePanel');\n  const state = useDisclosureState();\n\n  return createUnmountable(\n    props,\n    () => state.isOpen(),\n    () =>\n      createDynamic(\n        () => props.as || ('div' as T),\n        mergeProps(\n          DISCLOSURE_PANEL_TAG,\n          {\n            id: context.panelID,\n            get children() {\n              return createComponent(DisclosureStateChild, {\n                get children() {\n                  return props.children;\n                },\n              });\n            },\n          },\n          createDisabledState(() => state.disabled()),\n          createExpandedState(() => state.isOpen()),\n          omitProps(props, ['as', 'unmount', 'children']),\n        ) as DynamicProps<T>,\n      ),\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createUniqueId, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { focusNext, focusPrev } from '../../utils/focus-navigation';\nimport getFocusableElements from '../../utils/focus-query';\nimport { FeedContext } from './FeedContext';\nimport { FEED_TAG } from './tags';\n\nexport interface FeedBaseProps {\n  size: number;\n  busy?: boolean;\n}\n\nexport type FeedProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, FeedBaseProps>;\n\nexport function Feed<T extends ValidConstructor = 'div'>(\n  props: FeedProps<T>,\n): JSX.Element {\n  const ownerID = createUniqueId();\n  const labelID = createUniqueId();\n  const contentID = createUniqueId();\n\n  const [ref, setRef] = createForwardRef(props);\n\n  return createComponent(FeedContext.Provider, {\n    value: {\n      ownerID,\n      labelID,\n      contentID,\n      get size() {\n        return props.size;\n      },\n      get busy() {\n        return !!props.busy;\n      },\n      focusNext() {\n        const current = ref();\n        if (current instanceof HTMLElement) {\n          focusNext(\n            getFocusableElements(document.documentElement),\n            current,\n            false,\n            false,\n          );\n        }\n      },\n      focusPrev() {\n        const current = ref();\n        if (current instanceof HTMLElement) {\n          focusPrev(\n            getFocusableElements(document.documentElement),\n            current,\n            false,\n            false,\n          );\n        }\n      },\n    },\n    get children() {\n      return createDynamic(\n        () => props.as || ('div' as T),\n        mergeProps(\n          FEED_TAG,\n          {\n            id: ownerID,\n            ref: setRef,\n          },\n          omitProps(props, ['as', 'busy', 'size']),\n        ) as DynamicProps<T>,\n      );\n    },\n  });\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\n\ninterface FeedContextData {\n  ownerID: string;\n  labelID: string;\n  contentID: string;\n  size: number;\n  busy: boolean;\n  focusPrev: () => void;\n  focusNext: () => void;\n}\n\nexport const FeedContext = createContext<FeedContextData>();\n\nexport function useFeedContext(componentName: string): FeedContextData {\n  const context = useContext(FeedContext);\n  assert(context, new Error(`<${componentName}> must be used inside a <Feed>`));\n  return context;\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const FEED_TAG = createTag('feed');\nexport const FEED_ARTICLE_TAG = createTag('feed-article');\nexport const FEED_ARTICLE_DESCRIPTION_TAG = createTag(\n  'feed-article-description',\n);\nexport const FEED_ARTICLE_LABEL_TAG = createTag('feed-article-label');\nexport const FEED_CONTENT_TAG = createTag('feed-content');\nexport const FEED_LABEL_TAG = createTag('feed-label');\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createUniqueId, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createOwnerAttribute } from '../../utils/focus-navigator';\nimport { FeedArticleContext } from './FeedArticleContext';\nimport { useFeedContext } from './FeedContext';\nimport { FEED_ARTICLE_TAG } from './tags';\n\nexport type FeedArticleProps<T extends ValidConstructor = 'article'> =\n  HeadlessPropsWithRef<T, { index: number }>;\n\nexport function FeedArticle<T extends ValidConstructor = 'article'>(\n  props: FeedArticleProps<T>,\n): JSX.Element {\n  const rootContext = useFeedContext('FeedArticle');\n\n  const ownerID = createUniqueId();\n  const labelID = createUniqueId();\n  const descriptionID = createUniqueId();\n\n  return createComponent(FeedArticleContext.Provider, {\n    value: {\n      ownerID,\n      labelID,\n      descriptionID,\n    },\n    get children() {\n      return createDynamic(\n        () => props.as || ('article' as T),\n        mergeProps(\n          FEED_ARTICLE_TAG,\n          createOwnerAttribute(rootContext.ownerID),\n          {\n            id: ownerID,\n            'aria-labelledby': labelID,\n            'aria-describedby': descriptionID,\n            tabindex: 0,\n            get 'aria-posinset'() {\n              return props.index + 1;\n            },\n            get 'aria-setsize'() {\n              return rootContext.size;\n            },\n          },\n          omitProps(props, ['as']),\n        ) as DynamicProps<T>,\n      );\n    },\n  });\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\n\ninterface FeedArticleContextData {\n  ownerID: string;\n  labelID: string;\n  descriptionID: string;\n}\n\nexport const FeedArticleContext = createContext<FeedArticleContextData>();\n\nexport function useFeedArticleContext(\n  componentName: string,\n): FeedArticleContextData {\n  const context = useContext(FeedArticleContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <FeedArticle>`),\n  );\n  return context;\n}\n", "import type { JSX } from 'solid-js';\nimport { mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { useFeedArticleContext } from './FeedArticleContext';\nimport { FEED_ARTICLE_DESCRIPTION_TAG } from './tags';\n\nexport type FeedArticleDescriptionProps<T extends ValidConstructor = 'p'> =\n  HeadlessProps<T>;\n\nexport function FeedArticleDescription<T extends ValidConstructor = 'p'>(\n  props: FeedArticleDescriptionProps<T>,\n): JSX.Element {\n  const context = useFeedArticleContext('FeedArticleDescription');\n  return createDynamic(\n    () => props.as || ('p' as T),\n    mergeProps(\n      FEED_ARTICLE_DESCRIPTION_TAG,\n      {\n        id: context.descriptionID,\n      },\n      omitProps(props, ['as']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { useFeedArticleContext } from './FeedArticleContext';\nimport { FEED_ARTICLE_LABEL_TAG } from './tags';\n\nexport type FeedArticleLabelProps<T extends ValidConstructor = 'span'> =\n  HeadlessProps<T>;\n\nexport function FeedArticleLabel<T extends ValidConstructor = 'span'>(\n  props: FeedArticleLabelProps<T>,\n): JSX.Element {\n  const context = useFeedArticleContext('FeedArticleLabel');\n  return createDynamic(\n    () => props.as || ('span' as T),\n    mergeProps(\n      FEED_ARTICLE_LABEL_TAG,\n      {\n        id: context.labelID,\n      },\n      omitProps(props, ['as']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps, onCleanup } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport useEventListener from '../../utils/use-event-listener';\nimport {\n  FeedContentContext,\n  createFeedArticleFocusNavigator,\n} from './FeedContentContext';\nimport { useFeedContext } from './FeedContext';\nimport { FEED_CONTENT_TAG } from './tags';\n\nexport type FeedContentProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T>;\n\nexport function FeedContent<T extends ValidConstructor = 'div'>(\n  props: FeedContentProps<T>,\n): JSX.Element {\n  const context = useFeedContext('FeedContent');\n  const controller = createFeedArticleFocusNavigator(context.ownerID);\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      controller.setRef(current);\n      onCleanup(() => {\n        controller.clearRef();\n      });\n      useEventListener(current, 'keydown', e => {\n        if (e.ctrlKey) {\n          switch (e.key) {\n            case 'Home': {\n              e.preventDefault();\n              context.focusPrev();\n              break;\n            }\n            case 'End': {\n              e.preventDefault();\n              context.focusNext();\n              break;\n            }\n            default:\n              break;\n          }\n        }\n        switch (e.key) {\n          case 'PageUp': {\n            e.preventDefault();\n            controller.setPrevChecked(false);\n            break;\n          }\n          case 'PageDown': {\n            e.preventDefault();\n            controller.setNextChecked(false);\n            break;\n          }\n          default:\n            break;\n        }\n      });\n      useEventListener(current, 'focusin', e => {\n        if (e.target && e.target !== current) {\n          controller.setCurrent(e.target as HTMLElement);\n        }\n      });\n    }\n  });\n\n  return createComponent(FeedContentContext.Provider, {\n    value: controller,\n    get children() {\n      return createDynamic(\n        () => props.as || ('div' as T),\n        mergeProps(\n          FEED_CONTENT_TAG,\n          {\n            id: context.contentID,\n            role: 'feed',\n            'aria-labelledby': context.labelID,\n            get 'aria-busy'() {\n              return context.busy;\n            },\n            ref: setInternalRef,\n          },\n          omitProps(props, ['as']),\n        ) as DynamicProps<T>,\n      );\n    },\n  });\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\nimport FocusNavigator from '../../utils/focus-navigator';\n\nexport const FeedContentContext = createContext<FocusNavigator>();\n\nexport function useFeedContentContext(componentName: string): FocusNavigator {\n  const context = useContext(FeedContentContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <FeedContent>`),\n  );\n  return context;\n}\n\nexport function createFeedArticleFocusNavigator(owner: string): FocusNavigator {\n  return new FocusNavigator(owner);\n}\n", "import type { JSX } from 'solid-js';\nimport { mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { useFeedContext } from './FeedContext';\nimport { FEED_LABEL_TAG } from './tags';\n\nexport type FeedLabelProps<T extends ValidConstructor = 'span'> =\n  HeadlessProps<T>;\n\nexport function FeedLabel<T extends ValidConstructor = 'span'>(\n  props: FeedLabelProps<T>,\n): JSX.Element {\n  const context = useFeedContext('FeedLabel');\n  return createDynamic(\n    () => props.as || ('span' as T),\n    mergeProps(\n      FEED_LABEL_TAG,\n      {\n        id: context.labelID,\n      },\n      omitProps(props, ['as']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createMemo,\n  createUniqueId,\n  mergeProps,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  DisclosureStateControlledOptions,\n  DisclosureStateUncontrolledOptions,\n} from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateProvider,\n  createDisclosureState,\n} from '../../states/create-disclosure-state';\nimport type {\n  MultipleSelectStateControlledOptions,\n  MultipleSelectStateUncontrolledOptions,\n  SingleSelectStateControlledOptions,\n  SingleSelectStateUncontrolledOptions,\n} from '../../states/create-select-state';\nimport {\n  SelectStateProvider,\n  createMultipleSelectState,\n  createSingleSelectState,\n} from '../../states/create-select-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createExpandedState,\n  createHasActiveState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useFocusStartPoint from '../../utils/use-focus-start-point';\nimport { ListboxContext } from './ListboxContext';\nimport { LISTBOX_TAG } from './tags';\n\nexport interface ListboxBaseProps {\n  horizontal?: boolean;\n  onDisclosureChange?: (value: boolean) => void;\n}\n\nexport interface ListboxMultipleBaseProps<V> {\n  onSelectChange?: (value: V[]) => void;\n}\n\nexport interface ListboxSingleBaseProps<V> {\n  onSelectChange?: (value?: V) => void;\n}\n\n// SCSCD = Single, Controlled Select, Controlled Disclosure\nexport type ListboxSCSCDBaseProps<V> = Prettify<\n  ListboxBaseProps &\n    ListboxSingleBaseProps<V> &\n    Omit<SingleSelectStateControlledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateControlledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ListboxSCSCDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ListboxSCSCDBaseProps<V>>;\n\n// SCSCD = Single, Controlled Select, Uncontrolled Disclosure\nexport type ListboxSCSUDBaseProps<V> = Prettify<\n  ListboxBaseProps &\n    ListboxSingleBaseProps<V> &\n    Omit<SingleSelectStateControlledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateUncontrolledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ListboxSCSUDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ListboxSCSUDBaseProps<V>>;\n\n// SCSCD = Single, Uncontrolled Select, Controlled Disclosure\nexport type ListboxSUSCDBaseProps<V> = Prettify<\n  ListboxBaseProps &\n    ListboxSingleBaseProps<V> &\n    Omit<SingleSelectStateUncontrolledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateControlledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ListboxSUSCDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ListboxSUSCDBaseProps<V>>;\n\n// SCSCD = Single, Uncontrolled Select, Uncontrolled Disclosure\nexport type ListboxSUSUDBaseProps<V> = Prettify<\n  ListboxBaseProps &\n    ListboxSingleBaseProps<V> &\n    Omit<SingleSelectStateUncontrolledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateUncontrolledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ListboxSUSUDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ListboxSUSUDBaseProps<V>>;\n\nexport type ListboxSingleProps<V, T extends ValidConstructor = 'div'> =\n  | ListboxSCSCDProps<V, T>\n  | ListboxSCSUDProps<V, T>\n  | ListboxSUSCDProps<V, T>\n  | ListboxSUSUDProps<V, T>;\n\n// MCSCD = Multiple, Controlled Select, Controlled Disclosure\nexport type ListboxMCSCDBaseProps<V> = Prettify<\n  ListboxBaseProps &\n    ListboxMultipleBaseProps<V> &\n    Omit<MultipleSelectStateControlledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateControlledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ListboxMCSCDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ListboxMCSCDBaseProps<V>>;\n\n// MCSCD = Multiple, Controlled Select, Uncontrolled Disclosure\nexport type ListboxMCSUDBaseProps<V> = Prettify<\n  ListboxBaseProps &\n    ListboxMultipleBaseProps<V> &\n    Omit<MultipleSelectStateControlledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateUncontrolledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ListboxMCSUDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ListboxMCSUDBaseProps<V>>;\n\n// MCSCD = Multiple, Uncontrolled Select, Controlled Disclosure\nexport type ListboxMUSCDBaseProps<V> = Prettify<\n  ListboxBaseProps &\n    ListboxMultipleBaseProps<V> &\n    Omit<MultipleSelectStateUncontrolledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateControlledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ListboxMUSCDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ListboxMUSCDBaseProps<V>>;\n\n// MCSCD = Multiple, Uncontrolled Select, Uncontrolled Disclosure\nexport type ListboxMUSUDBaseProps<V> = Prettify<\n  ListboxBaseProps &\n    ListboxMultipleBaseProps<V> &\n    Omit<MultipleSelectStateUncontrolledOptions<V>, 'onChange'> &\n    Omit<DisclosureStateUncontrolledOptions, 'onChange'> & {\n      children?: JSX.Element;\n    }\n>;\n\nexport type ListboxMUSUDProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, ListboxMUSUDBaseProps<V>>;\n\nexport type ListboxMultipleProps<V, T extends ValidConstructor = 'div'> =\n  | ListboxMCSCDProps<V, T>\n  | ListboxMCSUDProps<V, T>\n  | ListboxMUSCDProps<V, T>\n  | ListboxMUSUDProps<V, T>;\n\ntype ListboxSelectUncontrolledProps<V, T extends ValidConstructor = 'div'> =\n  | ListboxMUSCDProps<V, T>\n  | ListboxMUSUDProps<V, T>\n  | ListboxSUSCDProps<V, T>\n  | ListboxSUSUDProps<V, T>;\n\ntype ListboxDisclosureUncontrolledProps<V, T extends ValidConstructor = 'div'> =\n  | ListboxMCSUDProps<V, T>\n  | ListboxMUSUDProps<V, T>\n  | ListboxSCSUDProps<V, T>\n  | ListboxSUSUDProps<V, T>;\n\nexport type ListboxProps<V, T extends ValidConstructor = 'div'> =\n  | ListboxMultipleProps<V, T>\n  | ListboxSingleProps<V, T>;\n\nfunction isListboxMultiple<V, T extends ValidConstructor = 'div'>(\n  props: ListboxProps<V, T>,\n): props is ListboxMultipleProps<V, T> {\n  return !!props.multiple;\n}\n\nfunction isListboxSelectUncontrolled<V, T extends ValidConstructor = 'div'>(\n  props: ListboxProps<V, T>,\n): props is ListboxSelectUncontrolledProps<V, T> {\n  return 'defaultValue' in props;\n}\n\nfunction isListboxDisclosureUncontrolled<V, T extends ValidConstructor = 'div'>(\n  props: ListboxProps<V, T>,\n): props is ListboxDisclosureUncontrolledProps<V, T> {\n  return 'defaultOpen' in props;\n}\n\nfunction getProps<V, T extends ValidConstructor = 'div'>(\n  props: ListboxProps<V, T>,\n): DynamicProps<T> {\n  if (isListboxSelectUncontrolled(props)) {\n    if (isListboxDisclosureUncontrolled(props)) {\n      return omitProps(props, [\n        'as',\n        'by',\n        'children',\n        'defaultOpen',\n        'defaultValue',\n        'disabled',\n        'horizontal',\n        'multiple',\n        'onClose',\n        'onDisclosureChange',\n        'onOpen',\n        'onSelectChange',\n        'toggleable',\n      ]) as DynamicProps<T>;\n    }\n    return omitProps(props, [\n      'as',\n      'by',\n      'children',\n      'isOpen',\n      'defaultValue',\n      'disabled',\n      'horizontal',\n      'multiple',\n      'onClose',\n      'onDisclosureChange',\n      'onOpen',\n      'onSelectChange',\n      'toggleable',\n    ]) as DynamicProps<T>;\n  }\n  if (isListboxDisclosureUncontrolled(props)) {\n    return omitProps(props, [\n      'as',\n      'by',\n      'children',\n      'defaultOpen',\n      'value',\n      'disabled',\n      'horizontal',\n      'multiple',\n      'onClose',\n      'onDisclosureChange',\n      'onOpen',\n      'onSelectChange',\n      'toggleable',\n    ]) as DynamicProps<T>;\n  }\n  return omitProps(props, [\n    'as',\n    'by',\n    'children',\n    'isOpen',\n    'value',\n    'disabled',\n    'horizontal',\n    'multiple',\n    'onClose',\n    'onDisclosureChange',\n    'onOpen',\n    'onSelectChange',\n    'toggleable',\n  ]) as DynamicProps<T>;\n}\n\nexport function Listbox<V, T extends ValidConstructor = 'div'>(\n  props: ListboxProps<V, T>,\n): JSX.Element {\n  return createMemo(() => {\n    const ownerID = createUniqueId();\n    const labelID = createUniqueId();\n    const buttonID = createUniqueId();\n    const optionsID = createUniqueId();\n\n    const disclosureState = createDisclosureState(\n      mergeProps(props, {\n        onChange(value: boolean) {\n          if (props.onDisclosureChange) {\n            props.onDisclosureChange(value);\n          }\n        },\n      }),\n    );\n\n    const selectState = isListboxMultiple(props)\n      ? createMultipleSelectState(\n          mergeProps(props, {\n            onChange(value: V[]) {\n              if (props.onSelectChange) {\n                props.onSelectChange(value);\n              }\n            },\n          }),\n        )\n      : createSingleSelectState(\n          mergeProps(props, {\n            onChange(value?: V) {\n              if (props.onSelectChange) {\n                props.onSelectChange(value);\n              }\n            },\n          }),\n        );\n\n    const fsp = useFocusStartPoint();\n\n    createEffect(() => {\n      if (disclosureState.isOpen()) {\n        fsp.save();\n      } else {\n        fsp.load();\n      }\n    });\n    return createComponent(ListboxContext.Provider, {\n      value: {\n        get multiple() {\n          return props.multiple;\n        },\n        ownerID,\n        labelID,\n        buttonID,\n        optionsID,\n        get horizontal() {\n          return props.horizontal;\n        },\n        buttonHovering: false,\n        optionsHovering: false,\n      },\n      get children() {\n        return createComponent(SelectStateProvider, {\n          state: selectState,\n          get children() {\n            return createComponent(DisclosureStateProvider, {\n              state: disclosureState,\n              get children() {\n                return createDynamic(\n                  () => props.as || 'div',\n                  mergeProps(\n                    LISTBOX_TAG,\n                    {\n                      id: ownerID,\n                      'aria-labelledby': labelID,\n                    },\n                    createDisabledState(() => selectState.disabled()),\n                    createARIADisabledState(() => selectState.disabled()),\n                    createHasSelectedState(() => selectState.hasSelected()),\n                    createHasActiveState(() => selectState.hasActive()),\n                    createExpandedState(() => disclosureState.isOpen()),\n                    getProps(props),\n                    {\n                      get children() {\n                        return props.children;\n                      },\n                    },\n                  ) as DynamicProps<T>,\n                );\n              },\n            });\n          },\n        });\n      },\n    });\n  }) as unknown as JSX.Element;\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\n\ninterface ListboxContextData {\n  horizontal?: boolean;\n  multiple?: boolean;\n  ownerID: string;\n  labelID: string;\n  buttonID: string;\n  optionsID: string;\n  buttonHovering: boolean;\n  optionsHovering: boolean;\n  anchor?: HTMLElement | null;\n}\n\nexport const ListboxContext = createContext<ListboxContextData>();\n\nexport function useListboxContext(componentName: string): ListboxContextData {\n  const context = useContext(ListboxContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <Listbox>`),\n  );\n  return context;\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const LISTBOX_TAG = createTag('listbox');\nexport const LISTBOX_BUTTON_TAG = createTag('listbox-button');\nexport const LISTBOX_LABEL_TAG = createTag('listbox-label');\nexport const LISTBOX_OPTIONS_TAG = createTag('listbox-options');\nexport const LISTBOX_OPTION_TAG = createTag('listbox-option');\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport { useSelectState } from '../../states/create-select-state';\nimport type {\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createARIAExpandedState,\n  createDisabledState,\n  createExpandedState,\n  createHasActiveState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport type { OmitAndMerge } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport type { ButtonProps } from '../button';\nimport { Button } from '../button';\nimport { useListboxContext } from './ListboxContext';\nimport { LISTBOX_BUTTON_TAG } from './tags';\n\nexport type ListboxButtonProps<T extends ValidConstructor = 'button'> =\n  HeadlessPropsWithRef<\n    T,\n    OmitAndMerge<DisclosureStateRenderProps, ButtonProps<T>>\n  >;\n\nexport function ListboxButton<T extends ValidConstructor = 'button'>(\n  props: ListboxButtonProps<T>,\n): JSX.Element {\n  const context = useListboxContext('ListboxButton');\n  const disclosureState = useDisclosureState();\n  const selectState = useSelectState();\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  const isDisabled = (): boolean | undefined =>\n    disclosureState.disabled() || props.disabled;\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      context.anchor = current;\n\n      useEventListener(current, 'click', () => {\n        if (!isDisabled()) {\n          disclosureState.toggle();\n        }\n      });\n      useEventListener(current, 'keydown', e => {\n        if (!isDisabled()) {\n          switch (e.key) {\n            case 'ArrowUp':\n            case 'ArrowDown': {\n              e.preventDefault();\n              disclosureState.toggle();\n              break;\n            }\n          }\n        }\n      });\n      useEventListener(current, 'mouseenter', () => {\n        context.buttonHovering = true;\n      });\n      useEventListener(current, 'mouseleave', () => {\n        context.buttonHovering = false;\n      });\n    }\n  });\n\n  return createComponent(\n    Button,\n    mergeProps(\n      LISTBOX_BUTTON_TAG,\n      {\n        id: context.buttonID,\n        'aria-haspopup': 'listbox',\n        'aria-controls': context.optionsID,\n        ref: setInternalRef,\n      },\n      createDisabledState(isDisabled),\n      createARIADisabledState(isDisabled),\n      createExpandedState(() => disclosureState.isOpen()),\n      createARIAExpandedState(() => disclosureState.isOpen()),\n      createHasSelectedState(() => selectState.hasSelected()),\n      createHasActiveState(() => selectState.hasActive()),\n      omitProps(props, ['children', 'ref']),\n      {\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n    ) as ButtonProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport { useSelectState } from '../../states/create-select-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n  createHasActiveState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport { useListboxContext } from './ListboxContext';\nimport { LISTBOX_LABEL_TAG } from './tags';\n\nexport type ListboxLabelProps<T extends ValidConstructor = 'label'> =\n  HeadlessProps<T, DisclosureStateRenderProps>;\n\nexport function ListboxLabel<T extends ValidConstructor = 'label'>(\n  props: ListboxLabelProps<T>,\n): JSX.Element {\n  const context = useListboxContext('ListboxLabel');\n  const disclosureState = useDisclosureState();\n  const selectState = useSelectState();\n\n  return createDynamic(\n    () => props.as || ('label' as T),\n    mergeProps(\n      LISTBOX_LABEL_TAG,\n      {\n        id: context.labelID,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => disclosureState.disabled()),\n      createExpandedState(() => disclosureState.isOpen()),\n      createHasSelectedState(() => selectState.hasSelected()),\n      createHasActiveState(() => selectState.hasActive()),\n      omitProps(props, ['as', 'children']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createRenderEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport { useDisclosureState } from '../../states/create-disclosure-state';\nimport type {\n  SelectOptionStateOptions,\n  SelectOptionStateRenderProps,\n} from '../../states/create-select-option-state';\nimport {\n  SelectOptionStateProvider,\n  createSelectOptionState,\n} from '../../states/create-select-option-state';\nimport type {\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { createOwnerAttribute } from '../../utils/focus-navigator';\nimport {\n  createARIADisabledState,\n  createARIASelectedState,\n  createActiveState,\n  createDisabledState,\n  createSelectedState,\n} from '../../utils/state-props';\nimport type { OmitAndMerge, Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport type { ButtonProps } from '../button';\nimport { Button } from '../button';\nimport { useListboxContext } from './ListboxContext';\nimport { useListboxOptionsContext } from './ListboxOptionsContext';\nimport { LISTBOX_OPTION_TAG } from './tags';\n\nexport type ListboxOptionBaseProps<V> = Prettify<\n  SelectOptionStateOptions<V> & SelectOptionStateRenderProps\n>;\n\nexport type ListboxOptionProps<\n  V,\n  T extends ValidConstructor = 'li',\n> = HeadlessPropsWithRef<\n  T,\n  OmitAndMerge<ListboxOptionBaseProps<V>, ButtonProps<T>>\n>;\n\nexport function ListboxOption<V, T extends ValidConstructor = 'li'>(\n  props: ListboxOptionProps<V, T>,\n): JSX.Element {\n  const rootContext = useListboxContext('ListboxOptions');\n  const context = useListboxOptionsContext('ListboxOptions');\n  const disclosure = useDisclosureState();\n  const state = createSelectOptionState(props);\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  // I would really love to use createEffect but for some reason\n  // the timing is never accurate\n  createRenderEffect(() => {\n    const current = internalRef();\n\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        if (!state.disabled()) {\n          state.select();\n          if (!rootContext.multiple) {\n            disclosure.close();\n          }\n        }\n      });\n      useEventListener(current, 'focus', () => {\n        state.focus();\n      });\n      useEventListener(current, 'blur', () => {\n        state.blur();\n      });\n      useEventListener(current, 'mouseenter', () => {\n        if (!state.disabled()) {\n          current.focus({ preventScroll: true });\n        }\n      });\n      useEventListener(current, 'mouseleave', () => {\n        if (!state.disabled()) {\n          state.blur();\n        }\n      });\n    }\n  });\n\n  return createComponent(\n    Button,\n    mergeProps(\n      LISTBOX_OPTION_TAG,\n      createOwnerAttribute(context.getId()),\n      {\n        get as() {\n          return props.as || ('li' as T);\n        },\n        role: 'option',\n        tabindex: -1,\n        ref: setInternalRef,\n      },\n      createDisabledState(() => state.disabled()),\n      createARIADisabledState(() => state.disabled()),\n      createSelectedState(() => state.isSelected()),\n      createARIASelectedState(() => state.isSelected()),\n      createActiveState(() => state.isActive()),\n      omitProps(props, ['as', 'children', 'disabled', 'value', 'ref']),\n      {\n        get children() {\n          return createComponent(SelectOptionStateProvider, {\n            state,\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n    ) as ButtonProps<T>,\n  );\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\nimport FocusNavigator from '../../utils/focus-navigator';\n\nexport const ListboxOptionsContext = createContext<FocusNavigator>();\n\nexport function useListboxOptionsContext(\n  componentName: string,\n): FocusNavigator {\n  const context = useContext(ListboxOptionsContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <ListboxOptions>`),\n  );\n  return context;\n}\n\nexport function createListboxOptionsFocusNavigator(\n  owner: string,\n): FocusNavigator {\n  return new FocusNavigator(owner);\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  mergeProps,\n  onCleanup,\n  onMount,\n  untrack,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport { useDisclosureState } from '../../states/create-disclosure-state';\nimport type { SelectStateRenderProps } from '../../states/create-select-state';\nimport {\n  SelectStateProvider,\n  useSelectState,\n} from '../../states/create-select-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport createTypeAhead from '../../utils/create-type-ahead';\nimport type { UnmountableProps } from '../../utils/create-unmountable';\nimport { createUnmountable } from '../../utils/create-unmountable';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { SELECTED_NODE } from '../../utils/namespace';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createExpandedState,\n  createHasActiveState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useListboxContext } from './ListboxContext';\nimport {\n  ListboxOptionsContext,\n  createListboxOptionsFocusNavigator,\n} from './ListboxOptionsContext';\nimport { LISTBOX_OPTIONS_TAG } from './tags';\n\nexport type ListboxOptionsBaseProps<V> = Prettify<\n  UnmountableProps & SelectStateRenderProps<V>\n>;\n\nexport type ListboxOptionsProps<\n  V,\n  T extends ValidConstructor = 'ul',\n> = HeadlessPropsWithRef<T, ListboxOptionsBaseProps<V>>;\n\nexport function ListboxOptions<V, T extends ValidConstructor = 'ul'>(\n  props: ListboxOptionsProps<V, T>,\n): JSX.Element {\n  const context = useListboxContext('ListboxOptions');\n  const selectState = useSelectState();\n  const disclosureState = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  const controller = createListboxOptionsFocusNavigator(context.optionsID);\n\n  const pushCharacter = createTypeAhead(value => {\n    controller.setFirstMatch(value);\n  });\n\n  // This is a potential bug. The reason is that\n  // the ListboxOptions is focusing too early in such\n  // a way that the ListboxOption has yet to register\n  // the focus event\n  onMount(() => {\n    createEffect(() => {\n      const current = internalRef();\n      if (current instanceof HTMLElement && disclosureState.isOpen()) {\n        controller.setRef(current);\n        onCleanup(() => {\n          controller.clearRef();\n        });\n\n        if (untrack(() => selectState.hasSelected())) {\n          controller.setFirstChecked(SELECTED_NODE);\n        } else {\n          controller.setFirstChecked();\n        }\n\n        useEventListener(current, 'keydown', e => {\n          if (!selectState.disabled()) {\n            switch (e.key) {\n              case 'Escape': {\n                disclosureState.close();\n                break;\n              }\n              case 'ArrowLeft': {\n                if (context.horizontal) {\n                  e.preventDefault();\n                  controller.setPrevChecked(true);\n                }\n                break;\n              }\n              case 'ArrowUp': {\n                if (!context.horizontal) {\n                  e.preventDefault();\n                  controller.setPrevChecked(true);\n                }\n                break;\n              }\n              case 'ArrowRight': {\n                if (context.horizontal) {\n                  e.preventDefault();\n                  controller.setNextChecked(true);\n                }\n                break;\n              }\n              case 'ArrowDown': {\n                if (!context.horizontal) {\n                  e.preventDefault();\n                  controller.setNextChecked(true);\n                }\n                break;\n              }\n              case 'Home': {\n                e.preventDefault();\n                controller.setFirstChecked();\n                break;\n              }\n              case 'End': {\n                e.preventDefault();\n                controller.setLastChecked();\n                break;\n              }\n              case ' ':\n              case 'Enter': {\n                e.preventDefault();\n                break;\n              }\n              default: {\n                if (e.key.length === 1) {\n                  pushCharacter(e.key);\n                }\n                break;\n              }\n            }\n          }\n        });\n        useEventListener(current, 'focusout', e => {\n          if (context.buttonHovering || context.optionsHovering) {\n            return;\n          }\n          if (!(e.relatedTarget && current.contains(e.relatedTarget as Node))) {\n            disclosureState.close();\n          }\n        });\n        useEventListener(current, 'focusin', e => {\n          if (e.target && e.target !== current) {\n            controller.setCurrent(e.target as HTMLElement);\n          }\n        });\n        useEventListener(current, 'mouseenter', () => {\n          context.optionsHovering = true;\n        });\n        useEventListener(current, 'mouseleave', () => {\n          context.optionsHovering = false;\n        });\n      }\n    });\n  });\n\n  return createUnmountable(\n    props,\n    () => disclosureState.isOpen(),\n    () =>\n      createComponent(ListboxOptionsContext.Provider, {\n        value: controller,\n        get children() {\n          return createDynamic(\n            () => props.as || ('ul' as T),\n            mergeProps(\n              LISTBOX_OPTIONS_TAG,\n              {\n                id: context.optionsID,\n                role: 'listbox',\n                'aria-multiselectable': context.multiple,\n                'aria-labelledby': context.buttonID,\n                ref: setInternalRef,\n                get 'aria-orientation'() {\n                  return context.horizontal ? 'horizontal' : 'vertical';\n                },\n                get tabindex() {\n                  return selectState.disabled() ? -1 : 0;\n                },\n              },\n              createDisabledState(() => selectState.disabled()),\n              createARIADisabledState(() => selectState.disabled()),\n              createExpandedState(() => disclosureState.isOpen()),\n              createHasSelectedState(() => selectState.hasSelected()),\n              createHasActiveState(() => selectState.hasActive()),\n              omitProps(props, ['as', 'children', 'ref']),\n              {\n                get children() {\n                  return createComponent(SelectStateProvider, {\n                    state: selectState,\n                    get children() {\n                      return props.children;\n                    },\n                  });\n                },\n              },\n            ) as DynamicProps<T>,\n          );\n        },\n      }),\n  );\n}\n", "import { onCleanup } from 'solid-js';\n\nconst TYPE_AHEAD_DEBOUNCE_TIMEOUT = 250;\n\nexport default function createTypeAhead(\n  callback: (value: string) => void,\n  time = TYPE_AHEAD_DEBOUNCE_TIMEOUT,\n): (value: string) => void {\n  let characters = '';\n  let timeout: ReturnType<typeof setTimeout> | undefined;\n\n  onCleanup(() => {\n    if (timeout) {\n      clearTimeout(timeout);\n    }\n  });\n\n  return value => {\n    characters += value;\n    if (timeout) {\n      clearTimeout(timeout);\n    }\n    timeout = setTimeout(() => {\n      callback(characters);\n      characters = '';\n    }, time);\n  };\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps, onCleanup } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport createDynamic from '../../utils/create-dynamic';\nimport createTypeAhead from '../../utils/create-type-ahead';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport useEventListener from '../../utils/use-event-listener';\nimport { MenuContext, createMenuItemFocusNavigator } from './MenuContext';\nimport { MENU_TAG } from './tags';\n\nexport type MenuProps<T extends ValidConstructor = 'ul'> =\n  HeadlessPropsWithRef<T>;\n\nexport function Menu<T extends ValidConstructor = 'ul'>(\n  props: MenuProps<T>,\n): JSX.Element {\n  const controller = createMenuItemFocusNavigator();\n\n  const [ref, setRef] = createForwardRef(props);\n\n  const pushCharacter = createTypeAhead(value => {\n    controller.setFirstMatch(value);\n  });\n\n  createEffect(() => {\n    const current = ref();\n    if (current instanceof HTMLElement) {\n      controller.setRef(current);\n      onCleanup(() => {\n        controller.clearRef();\n      });\n\n      useEventListener(current, 'keydown', e => {\n        switch (e.key) {\n          case 'ArrowUp':\n          case 'ArrowLeft': {\n            e.preventDefault();\n            controller.setPrevChecked(true);\n            break;\n          }\n          case 'ArrowDown':\n          case 'ArrowRight': {\n            e.preventDefault();\n            controller.setNextChecked(true);\n            break;\n          }\n          case 'Home': {\n            e.preventDefault();\n            controller.setFirstChecked();\n            break;\n          }\n          case 'End': {\n            e.preventDefault();\n            controller.setLastChecked();\n            break;\n          }\n          case ' ':\n          case 'Enter': {\n            e.preventDefault();\n            break;\n          }\n          default: {\n            if (e.key.length === 1) {\n              pushCharacter(e.key);\n            }\n            break;\n          }\n        }\n      });\n      useEventListener(current, 'focusin', e => {\n        if (e.target && e.target !== current) {\n          controller.setCurrent(e.target as HTMLElement);\n        }\n      });\n    }\n  });\n\n  return createComponent(MenuContext.Provider, {\n    value: controller,\n    get children() {\n      return createDynamic(\n        () => props.as || ('div' as T),\n        mergeProps(\n          MENU_TAG,\n          {\n            id: controller.getId(),\n            role: 'menu',\n            ref: setRef,\n          },\n          omitProps(props, ['as', 'ref']),\n        ) as DynamicProps<T>,\n      );\n    },\n  });\n}\n", "import { createContext, createUniqueId, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\nimport FocusNavigator from '../../utils/focus-navigator';\n\nexport const MenuContext = createContext<FocusNavigator>();\n\nexport function useMenuContext(componentName: string): FocusNavigator {\n  const context = useContext(MenuContext);\n  assert(context, new Error(`<${componentName}> must be used inside a <Menu>`));\n  return context;\n}\n\nexport function createMenuItemFocusNavigator(): FocusNavigator {\n  return new FocusNavigator(createUniqueId());\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const MENU_TAG = createTag('menu');\nexport const MENU_ITEM_TAG = createTag('menu-item');\n", "import type { JSX } from 'solid-js';\nimport { createMemo } from 'solid-js';\n\nexport interface MenuProperties {\n  disabled: () => boolean;\n}\n\nexport type MenuChildRenderProp = (properties: MenuProperties) => JSX.Element;\n\nexport interface MenuChildProps {\n  disabled?: boolean;\n  children?: JSX.Element | MenuChildRenderProp;\n}\n\nexport function MenuChild(props: MenuChildProps): JSX.Element {\n  return createMemo(() => {\n    const body = props.children;\n    if (typeof body === 'function') {\n      return body({\n        disabled: () => !!props.disabled,\n      });\n    }\n    return body;\n  }) as unknown as JSX.Element;\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createOwnerAttribute } from '../../utils/focus-navigator';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n} from '../../utils/state-props';\nimport { Button } from '../button';\nimport type { MenuChildProps } from './MenuChild';\nimport { MenuChild } from './MenuChild';\nimport { useMenuContext } from './MenuContext';\nimport { MENU_ITEM_TAG } from './tags';\n\nexport type MenuItemProps<T extends ValidConstructor = 'li'> =\n  HeadlessPropsWithRef<T, MenuChildProps>;\n\nexport function MenuItem<T extends ValidConstructor = 'li'>(\n  props: MenuItemProps<T>,\n): JSX.Element {\n  const context = useMenuContext('MenuItem');\n\n  return createComponent(\n    Button,\n    mergeProps(\n      MENU_ITEM_TAG,\n      createOwnerAttribute(context.getId()),\n      {\n        get as() {\n          return props.as || ('li' as T);\n        },\n        role: 'menuitem',\n        tabindex: -1,\n      },\n      createDisabledState(() => props.disabled),\n      createARIADisabledState(() => props.disabled),\n      omitProps(props, ['as', 'disabled', 'ref', 'children']),\n      {\n        get children() {\n          return createComponent(MenuChild, {\n            get disabled() {\n              return props.disabled;\n            },\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createUniqueId,\n  mergeProps,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  DisclosureStateControlledOptions,\n  DisclosureStateRenderProps,\n  DisclosureStateUncontrolledOptions,\n} from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateProvider,\n  createDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useFocusStartPoint from '../../utils/use-focus-start-point';\nimport { PopoverContext } from './PopoverContext';\nimport { POPOVER_TAG } from './tags';\n\nexport type PopoverControlledBaseProps = Prettify<\n  DisclosureStateRenderProps & DisclosureStateControlledOptions\n>;\n\nexport type PopoverControlledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, PopoverControlledBaseProps>;\n\nexport type PopoverUncontrolledBaseProps = Prettify<\n  DisclosureStateRenderProps & DisclosureStateUncontrolledOptions\n>;\n\nexport type PopoverUncontrolledProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T, PopoverUncontrolledBaseProps>;\n\nexport type PopoverProps<T extends ValidConstructor = 'div'> =\n  | PopoverControlledProps<T>\n  | PopoverUncontrolledProps<T>;\n\nfunction isPopoverUncontrolled<T extends ValidConstructor = 'div'>(\n  props: PopoverProps<T>,\n): props is PopoverUncontrolledProps<T> {\n  return 'defaultOpen' in props;\n}\n\nexport function Popover<T extends ValidConstructor = 'div'>(\n  props: PopoverProps<T>,\n): JSX.Element {\n  const ownerID = createUniqueId();\n  const buttonID = createUniqueId();\n  const panelID = createUniqueId();\n\n  const fsp = useFocusStartPoint();\n\n  const state = createDisclosureState(props);\n\n  createEffect(() => {\n    if (state.isOpen()) {\n      fsp.save();\n    } else {\n      fsp.load();\n    }\n  });\n\n  return createComponent(PopoverContext.Provider, {\n    value: {\n      ownerID,\n      buttonID,\n      panelID,\n      hovering: false,\n    },\n    get children() {\n      return createDynamic(\n        () => props.as || ('div' as T),\n        mergeProps(\n          POPOVER_TAG,\n          createDisabledState(() => state.disabled()),\n          createARIADisabledState(() => state.disabled()),\n          createExpandedState(() => state.isOpen()),\n          isPopoverUncontrolled(props)\n            ? omitProps(props, [\n                'as',\n                'children',\n                'defaultOpen',\n                'disabled',\n                'onChange',\n                'onClose',\n                'onOpen',\n              ])\n            : omitProps(props, [\n                'as',\n                'children',\n                'isOpen',\n                'disabled',\n                'onChange',\n                'onClose',\n                'onOpen',\n              ]),\n          {\n            get children() {\n              return createComponent(DisclosureStateProvider, {\n                state,\n                get children() {\n                  return props.children;\n                },\n              });\n            },\n          },\n        ) as DynamicProps<T>,\n      );\n    },\n  });\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\n\ninterface PopoverContextData {\n  ownerID: string;\n  buttonID: string;\n  panelID: string;\n  hovering: boolean;\n  anchor?: HTMLElement | null;\n}\n\nexport const PopoverContext = createContext<PopoverContextData>();\n\nexport function usePopoverContext(componentName: string): PopoverContextData {\n  const context = useContext(PopoverContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <Popover>`),\n  );\n  return context;\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const POPOVER_TAG = createTag('popover');\nexport const POPOVER_BUTTON_TAG = createTag('popover-button');\nexport const POPOVER_OVERLAY_TAG = createTag('popover-overlay');\nexport const POPOVER_PANEL_TAG = createTag('popover-panel');\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport type {\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createARIAExpandedState,\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport type { OmitAndMerge } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport type { ButtonProps } from '../button';\nimport { Button } from '../button';\nimport { usePopoverContext } from './PopoverContext';\nimport { POPOVER_BUTTON_TAG } from './tags';\n\nexport type PopoverButtonProps<T extends ValidConstructor = 'button'> =\n  HeadlessPropsWithRef<\n    T,\n    OmitAndMerge<DisclosureStateRenderProps, ButtonProps<T>>\n  >;\n\nexport function PopoverButton<T extends ValidConstructor = 'button'>(\n  props: PopoverButtonProps<T>,\n): JSX.Element {\n  const context = usePopoverContext('PopoverButton');\n  const state = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  const isDisabled = (): boolean | undefined =>\n    state.disabled() || props.disabled;\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      context.anchor = current;\n      useEventListener(current, 'click', () => {\n        if (!isDisabled()) {\n          state.toggle();\n        }\n      });\n      useEventListener(current, 'mouseenter', () => {\n        context.hovering = true;\n      });\n      useEventListener(current, 'mouseleave', () => {\n        context.hovering = false;\n      });\n    }\n  });\n\n  return createComponent(\n    Button,\n    mergeProps(\n      POPOVER_BUTTON_TAG,\n      {\n        id: context.buttonID,\n        ref: setInternalRef,\n        get 'aria-controls'() {\n          return state.isOpen() && context.panelID;\n        },\n      },\n      createDisabledState(isDisabled),\n      createARIADisabledState(isDisabled),\n      createExpandedState(() => state.isOpen()),\n      createARIAExpandedState(() => state.isOpen()),\n      omitProps(props, ['children', 'ref']),\n      {\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n    ) as ButtonProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport { usePopoverContext } from './PopoverContext';\nimport { POPOVER_OVERLAY_TAG } from './tags';\n\nexport type PopoverOverlayProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, DisclosureStateRenderProps>;\n\nexport function PopoverOverlay<T extends ValidConstructor = 'div'>(\n  props: PopoverOverlayProps<T>,\n): JSX.Element {\n  usePopoverContext('PopoverOverlay');\n  const state = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        state.close();\n      });\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('div' as T),\n    mergeProps(\n      POPOVER_OVERLAY_TAG,\n      {\n        ref: setInternalRef,\n        get children() {\n          return createComponent(DisclosureStateChild, {\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createExpandedState(() => state.isOpen()),\n      omitProps(props, ['as', 'children', 'ref']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { DisclosureStateRenderProps } from '../../states/create-disclosure-state';\nimport {\n  DisclosureStateChild,\n  useDisclosureState,\n} from '../../states/create-disclosure-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type { UnmountableProps } from '../../utils/create-unmountable';\nimport { createUnmountable } from '../../utils/create-unmountable';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { focusFirst, lockFocus } from '../../utils/focus-navigation';\nimport getFocusableElements from '../../utils/focus-query';\nimport {\n  createDisabledState,\n  createExpandedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport { usePopoverContext } from './PopoverContext';\nimport { POPOVER_PANEL_TAG } from './tags';\n\nexport type PopoverPanelBaseProps = Prettify<\n  DisclosureStateRenderProps & UnmountableProps\n>;\n\nexport type PopoverPanelProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, PopoverPanelBaseProps>;\n\nexport function PopoverPanel<T extends ValidConstructor = 'div'>(\n  props: PopoverPanelProps<T>,\n): JSX.Element {\n  const context = usePopoverContext('PopoverPanel');\n  const state = useDisclosureState();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement && state.isOpen()) {\n      focusFirst(getFocusableElements(current), false);\n      useEventListener(current, 'keydown', e => {\n        if (!state.disabled()) {\n          switch (e.key) {\n            case 'Tab': {\n              e.preventDefault();\n              lockFocus(current, e.shiftKey, false);\n              break;\n            }\n            case 'Escape': {\n              state.close();\n              break;\n            }\n          }\n        }\n      });\n      useEventListener(current, 'focusout', e => {\n        if (context.hovering) {\n          return;\n        }\n        if (!(e.relatedTarget && current.contains(e.relatedTarget as Node))) {\n          state.close();\n        }\n      });\n    }\n  });\n\n  return createUnmountable(\n    props,\n    () => state.isOpen(),\n    () =>\n      createDynamic(\n        () => props.as || ('div' as T),\n        mergeProps(\n          POPOVER_PANEL_TAG,\n          {\n            id: context.panelID,\n            ref: setInternalRef,\n            get children() {\n              return createComponent(DisclosureStateChild, {\n                get children() {\n                  return props.children;\n                },\n              });\n            },\n          },\n          createDisabledState(() => state.disabled()),\n          createExpandedState(() => state.isOpen()),\n          omitProps(props, ['as', 'unmount', 'children', 'ref']),\n        ) as DynamicProps<T>,\n      ),\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createUniqueId,\n  mergeProps,\n  onCleanup,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  SelectStateRenderProps,\n  SingleSelectStateControlledOptions,\n  SingleSelectStateUncontrolledOptions,\n} from '../../states/create-select-state';\nimport {\n  SelectStateProvider,\n  createSingleSelectState,\n} from '../../states/create-select-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createHasActiveState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport { RadioGroupContext } from './RadioGroupContext';\nimport {\n  RadioGroupRootContext,\n  createRadioGroupOptionFocusNavigator,\n} from './RadioGroupRootContext';\nimport { RADIO_GROUP_TAG } from './tags';\n\nexport type RadioGroupControlledBaseProps<V> = Prettify<\n  SingleSelectStateControlledOptions<V> & SelectStateRenderProps<V>\n>;\n\nexport type RadioGroupControlledProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessPropsWithRef<T, RadioGroupControlledBaseProps<V>>;\n\nexport type RadioGroupUncontrolledBaseProps<V> = Prettify<\n  SingleSelectStateUncontrolledOptions<V> & SelectStateRenderProps<V>\n>;\n\nexport type RadioGroupUncontrolledProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessPropsWithRef<T, RadioGroupUncontrolledBaseProps<V>>;\n\nexport type RadioGroupProps<V, T extends ValidConstructor = 'div'> =\n  | RadioGroupControlledProps<V, T>\n  | RadioGroupUncontrolledProps<V, T>;\n\nfunction isRadioGroupUncontrolled<V, T extends ValidConstructor = 'div'>(\n  props: RadioGroupProps<V, T>,\n): props is RadioGroupUncontrolledProps<V, T> {\n  return 'defaultValue' in props;\n}\n\nexport function RadioGroup<V, T extends ValidConstructor = 'div'>(\n  props: RadioGroupProps<V, T>,\n): JSX.Element {\n  const controller = createRadioGroupOptionFocusNavigator();\n  const descriptionID = createUniqueId();\n  const labelID = createUniqueId();\n  const state = createSingleSelectState(props);\n\n  const [ref, setRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = ref();\n    if (current instanceof HTMLElement) {\n      controller.setRef(current);\n      onCleanup(() => {\n        controller.clearRef();\n      });\n      useEventListener(current, 'keydown', e => {\n        if (!state.disabled()) {\n          switch (e.key) {\n            case 'ArrowLeft':\n            case 'ArrowUp': {\n              e.preventDefault();\n              controller.setPrevChecked(true);\n              break;\n            }\n            case 'ArrowRight':\n            case 'ArrowDown': {\n              e.preventDefault();\n              controller.setNextChecked(true);\n              break;\n            }\n          }\n        }\n      });\n      useEventListener(current, 'focusin', e => {\n        if (e.target && e.target !== current) {\n          controller.setCurrent(e.target as HTMLElement);\n        }\n      });\n    }\n  });\n\n  return createComponent(RadioGroupRootContext.Provider, {\n    value: controller,\n    get children() {\n      return createComponent(RadioGroupContext.Provider, {\n        value: {\n          descriptionID,\n          labelID,\n        },\n        get children() {\n          return createDynamic(\n            () => props.as || ('div' as T),\n            mergeProps(\n              RADIO_GROUP_TAG,\n              {\n                role: 'radiogroup',\n                'aria-labelledby': labelID,\n                'aria-describedby': descriptionID,\n                ref: setRef,\n              },\n              createDisabledState(() => state.disabled()),\n              createARIADisabledState(() => state.disabled()),\n              createHasActiveState(() => state.hasActive()),\n              createHasSelectedState(() => state.hasSelected()),\n              isRadioGroupUncontrolled(props)\n                ? omitProps(props, [\n                    'as',\n                    'by',\n                    'children',\n                    'defaultValue',\n                    'disabled',\n                    'multiple',\n                    'onChange',\n                    'ref',\n                    'toggleable',\n                  ])\n                : omitProps(props, [\n                    'as',\n                    'by',\n                    'children',\n                    'value',\n                    'disabled',\n                    'multiple',\n                    'onChange',\n                    'ref',\n                    'toggleable',\n                  ]),\n              {\n                get children() {\n                  return createComponent(SelectStateProvider, {\n                    state,\n                    get children() {\n                      return props.children;\n                    },\n                  });\n                },\n              },\n            ) as DynamicProps<T>,\n          );\n        },\n      });\n    },\n  });\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\n\ninterface RadioGroupContextData {\n  labelID: string;\n  descriptionID: string;\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextData>();\n\nexport function useRadioGroupContext(\n  componentName: string,\n): RadioGroupContextData {\n  const context = useContext(RadioGroupContext);\n  assert(\n    context,\n    new Error(\n      `<${componentName}> must be used inside a <RadioGroup> or <RadioGroupOption>`,\n    ),\n  );\n  return context;\n}\n", "import { createContext, createUniqueId, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\nimport FocusNavigator from '../../utils/focus-navigator';\n\nexport const RadioGroupRootContext = createContext<FocusNavigator>();\n\nexport function useRadioGroupRootContext(\n  componentName: string,\n): FocusNavigator {\n  const context = useContext(RadioGroupRootContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <RadioGroup>`),\n  );\n  return context;\n}\n\nexport function createRadioGroupOptionFocusNavigator(): FocusNavigator {\n  return new FocusNavigator(createUniqueId());\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const RADIO_GROUP_TAG = createTag('radio-group');\nexport const RADIO_GROUP_DESCRIPTION_TAG = createTag('radio-group-description');\nexport const RADIO_GROUP_LABEL_TAG = createTag('radio-group-label');\nexport const RADIO_GROUP_OPTION_TAG = createTag('radio-group-option');\n", "import type { JSX } from 'solid-js';\nimport { mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport { RADIO_GROUP_DESCRIPTION_TAG } from './tags';\n\nexport type RadioGroupDescriptionProps<T extends ValidConstructor = 'div'> =\n  HeadlessProps<T>;\n\nexport function RadioGroupDescription<T extends ValidConstructor = 'div'>(\n  props: RadioGroupDescriptionProps<T>,\n): JSX.Element {\n  const context = useRadioGroupContext('RadioGroupDescription');\n\n  return createDynamic(\n    () => props.as || ('div' as T),\n    mergeProps(\n      RADIO_GROUP_DESCRIPTION_TAG,\n      {\n        id: context.descriptionID,\n      },\n      omitProps(props, ['as']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport { RADIO_GROUP_LABEL_TAG } from './tags';\n\nexport type RadioGroupLabelProps<T extends ValidConstructor = 'label'> =\n  HeadlessProps<T>;\n\nexport function RadioGroupLabel<T extends ValidConstructor = 'label'>(\n  props: RadioGroupLabelProps<T>,\n): JSX.Element {\n  const context = useRadioGroupContext('RadioGroupLabel');\n\n  return createDynamic(\n    () => props.as || ('label' as T),\n    mergeProps(\n      RADIO_GROUP_LABEL_TAG,\n      {\n        id: context.labelID,\n      },\n      omitProps(props, ['as']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createUniqueId,\n  mergeProps,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  SelectOptionStateOptions,\n  SelectOptionStateRenderProps,\n} from '../../states/create-select-option-state';\nimport {\n  SelectOptionStateProvider,\n  createSelectOptionState,\n} from '../../states/create-select-option-state';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { createOwnerAttribute } from '../../utils/focus-navigator';\nimport {\n  createARIACheckedState,\n  createARIADisabledState,\n  createActiveState,\n  createCheckedState,\n  createDisabledState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport { Button } from '../button';\nimport { RadioGroupContext } from './RadioGroupContext';\nimport { useRadioGroupRootContext } from './RadioGroupRootContext';\nimport { RADIO_GROUP_OPTION_TAG } from './tags';\n\nexport type RadioGroupOptionBaseProps<V> = Prettify<\n  SelectOptionStateOptions<V> & SelectOptionStateRenderProps\n>;\n\nexport type RadioGroupOptionProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessPropsWithRef<T, RadioGroupOptionBaseProps<V>>;\n\nexport function RadioGroupOption<V, T extends ValidConstructor = 'div'>(\n  props: RadioGroupOptionProps<V, T>,\n): JSX.Element {\n  const context = useRadioGroupRootContext('RadioGroupOption');\n\n  const descriptionID = createUniqueId();\n  const labelID = createUniqueId();\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n  const state = createSelectOptionState(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        state.select();\n      });\n      useEventListener(current, 'focus', () => {\n        state.focus();\n        state.select();\n      });\n      useEventListener(current, 'blur', () => {\n        state.blur();\n      });\n    }\n  });\n\n  return createComponent(RadioGroupContext.Provider, {\n    value: { descriptionID, labelID },\n    get children() {\n      return createComponent(\n        Button,\n        mergeProps(\n          RADIO_GROUP_OPTION_TAG,\n          createOwnerAttribute(context.getId()),\n          {\n            get as() {\n              return props.as || ('div' as T);\n            },\n            role: 'radio',\n            'aria-labelledby': labelID,\n            'aria-describedby': descriptionID,\n            ref: setInternalRef,\n            get tabindex() {\n              const selected = state.isSelected();\n              return state.disabled() || !selected ? -1 : 0;\n            },\n          },\n          createDisabledState(() => state.disabled()),\n          createARIADisabledState(() => state.disabled()),\n          createCheckedState(() => state.isSelected()),\n          createARIACheckedState(() => state.isSelected()),\n          createActiveState(() => state.isActive()),\n          omitProps(props, ['as', 'children', 'value', 'disabled', 'ref']),\n          {\n            get children() {\n              return createComponent(SelectOptionStateProvider, {\n                state,\n                get children() {\n                  return props.children;\n                },\n              });\n            },\n          },\n        ) as DynamicProps<T>,\n      );\n    },\n  });\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createEffect,\n  createMemo,\n  mergeProps,\n  onCleanup,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  MultipleSelectStateControlledOptions,\n  MultipleSelectStateUncontrolledOptions,\n  SelectStateRenderProps,\n  SingleSelectStateControlledOptions,\n  SingleSelectStateUncontrolledOptions,\n} from '../../states/create-select-state';\nimport {\n  SelectStateProvider,\n  createMultipleSelectState,\n  createSingleSelectState,\n} from '../../states/create-select-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport createTypeAhead from '../../utils/create-type-ahead';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { SELECTED_NODE } from '../../utils/namespace';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createHasActiveState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport {\n  SelectContext,\n  createSelectOptionFocusNavigator,\n} from './SelectContext';\nimport { SELECT_TAG } from './tags';\n\nexport interface SelectBaseProps {\n  horizontal?: boolean;\n}\n\nexport type SingleSelectControlledBaseProps<V> = Prettify<\n  SelectBaseProps &\n    SingleSelectStateControlledOptions<V> &\n    SelectStateRenderProps<V>\n>;\n\nexport type SingleSelectControlledProps<\n  V,\n  T extends ValidConstructor = 'ul',\n> = HeadlessPropsWithRef<T, SingleSelectControlledBaseProps<V>>;\n\nexport type SingleSelectUncontrolledBaseProps<V> = Prettify<\n  SelectBaseProps &\n    SingleSelectStateUncontrolledOptions<V> &\n    SelectStateRenderProps<V>\n>;\n\nexport type SingleSelectUncontrolledProps<\n  V,\n  T extends ValidConstructor = 'ul',\n> = HeadlessPropsWithRef<T, SingleSelectUncontrolledBaseProps<V>>;\n\nexport type SingleSelectProps<V, T extends ValidConstructor = 'ul'> =\n  | SingleSelectControlledProps<V, T>\n  | SingleSelectUncontrolledProps<V, T>;\n\nexport type MultipleSelectControlledBaseProps<V> = Prettify<\n  SelectBaseProps &\n    MultipleSelectStateControlledOptions<V> &\n    SelectStateRenderProps<V>\n>;\n\nexport type MultipleSelectControlledProps<\n  V,\n  T extends ValidConstructor = 'ul',\n> = HeadlessPropsWithRef<T, MultipleSelectControlledBaseProps<V>>;\n\nexport type MultipleSelectUncontrolledBaseProps<V> = Prettify<\n  SelectBaseProps &\n    MultipleSelectStateUncontrolledOptions<V> &\n    SelectStateRenderProps<V>\n>;\n\nexport type MultipleSelectUncontrolledProps<\n  V,\n  T extends ValidConstructor = 'ul',\n> = HeadlessPropsWithRef<T, MultipleSelectUncontrolledBaseProps<V>>;\n\nexport type MultipleSelectProps<V, T extends ValidConstructor = 'ul'> =\n  | MultipleSelectControlledProps<V, T>\n  | MultipleSelectUncontrolledProps<V, T>;\n\nexport type SelectProps<V, T extends ValidConstructor = 'ul'> =\n  | SingleSelectProps<V, T>\n  | MultipleSelectProps<V, T>;\n\nfunction isSelectMultiple<V, T extends ValidConstructor = 'ul'>(\n  props: SelectProps<V, T>,\n): props is MultipleSelectProps<V, T> {\n  return !!props.multiple;\n}\n\nfunction isSelectUncontrolled<V, T extends ValidConstructor = 'ul'>(\n  props: SelectProps<V, T>,\n): props is\n  | SingleSelectUncontrolledProps<V, T>\n  | MultipleSelectUncontrolledProps<V, T> {\n  return 'defaultValue' in props;\n}\n\nexport function Select<V, T extends ValidConstructor = 'ul'>(\n  props: SelectProps<V, T>,\n): JSX.Element {\n  return createMemo(() => {\n    const controller = createSelectOptionFocusNavigator();\n    const [ref, setRef] = createForwardRef(props);\n    const state = isSelectMultiple(props)\n      ? createMultipleSelectState(props)\n      : createSingleSelectState(props);\n\n    const pushCharacter = createTypeAhead(value => {\n      controller.setFirstMatch(value);\n    });\n\n    createEffect(() => {\n      const current = ref();\n      if (current instanceof HTMLElement) {\n        controller.setRef(current);\n        onCleanup(() => {\n          controller.clearRef();\n        });\n        useEventListener(current, 'keydown', e => {\n          if (!state.disabled()) {\n            switch (e.key) {\n              case 'ArrowUp': {\n                if (!props.horizontal) {\n                  e.preventDefault();\n                  controller.setPrevChecked(true);\n                }\n                break;\n              }\n              case 'ArrowLeft': {\n                if (props.horizontal) {\n                  e.preventDefault();\n                  controller.setPrevChecked(true);\n                }\n                break;\n              }\n              case 'ArrowDown': {\n                if (!props.horizontal) {\n                  e.preventDefault();\n                  controller.setNextChecked(true);\n                }\n                break;\n              }\n              case 'ArrowRight': {\n                if (props.horizontal) {\n                  e.preventDefault();\n                  controller.setNextChecked(true);\n                }\n                break;\n              }\n              case 'Home': {\n                e.preventDefault();\n                controller.setFirstChecked();\n                break;\n              }\n              case 'End': {\n                e.preventDefault();\n                controller.setLastChecked();\n                break;\n              }\n              case ' ':\n              case 'Enter': {\n                e.preventDefault();\n                break;\n              }\n              default: {\n                if (e.key.length === 1) {\n                  pushCharacter(e.key);\n                }\n                break;\n              }\n            }\n          }\n        });\n        useEventListener(current, 'focus', () => {\n          if (state.hasSelected()) {\n            controller.setFirstChecked(SELECTED_NODE);\n          } else {\n            controller.setFirstChecked();\n          }\n        });\n        useEventListener(current, 'focusin', e => {\n          if (e.target && e.target !== current) {\n            controller.setCurrent(e.target as HTMLElement);\n          }\n        });\n      }\n    });\n\n    return createComponent(SelectContext.Provider, {\n      value: {\n        controller,\n        get horizontal() {\n          return !!props.horizontal;\n        },\n      },\n      get children() {\n        return createDynamic(\n          () => props.as || ('ul' as T),\n          mergeProps(\n            SELECT_TAG,\n            {\n              id: controller.getId(),\n              role: 'listbox',\n              get 'aria-multiselectable'() {\n                return props.multiple;\n              },\n              ref: setRef,\n              get 'aria-orientation'() {\n                return props.horizontal ? 'horizontal' : 'vertical';\n              },\n              get tabindex() {\n                return state.hasActive() ? -1 : 0;\n              },\n            },\n            createDisabledState(() => state.disabled()),\n            createARIADisabledState(() => state.disabled()),\n            createHasSelectedState(() => state.hasSelected()),\n            createHasActiveState(() => state.hasActive()),\n            isSelectUncontrolled(props)\n              ? omitProps(props, [\n                  'as',\n                  'by',\n                  'children',\n                  'defaultValue',\n                  'disabled',\n                  'horizontal',\n                  'multiple',\n                  'onChange',\n                  'ref',\n                  'toggleable',\n                ])\n              : omitProps(props, [\n                  'as',\n                  'by',\n                  'children',\n                  'value',\n                  'disabled',\n                  'horizontal',\n                  'multiple',\n                  'onChange',\n                  'ref',\n                  'toggleable',\n                ]),\n            {\n              get children() {\n                return createComponent(SelectStateProvider, {\n                  state,\n                  get children() {\n                    return props.children;\n                  },\n                });\n              },\n            },\n          ) as DynamicProps<T>,\n        );\n      },\n    });\n  }) as unknown as JSX.Element;\n}\n", "import { createContext, createUniqueId, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\nimport FocusNavigator from '../../utils/focus-navigator';\n\ninterface SelectContextData {\n  horizontal: boolean;\n  controller: FocusNavigator;\n}\n\nexport const SelectContext = createContext<SelectContextData>();\n\nexport function useSelectContext(componentName: string): SelectContextData {\n  const context = useContext(SelectContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <Select>`),\n  );\n  return context;\n}\n\nexport function createSelectOptionFocusNavigator(): FocusNavigator {\n  return new FocusNavigator(createUniqueId());\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const SELECT_TAG = createTag('select');\nexport const SELECT_OPTION_TAG = createTag('select-option');\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  SelectOptionStateOptions,\n  SelectOptionStateRenderProps,\n} from '../../states/create-select-option-state';\nimport {\n  SelectOptionStateProvider,\n  createSelectOptionState,\n} from '../../states/create-select-option-state';\nimport type {\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { createOwnerAttribute } from '../../utils/focus-navigator';\nimport {\n  createARIADisabledState,\n  createARIASelectedState,\n  createActiveState,\n  createDisabledState,\n  createSelectedState,\n} from '../../utils/state-props';\nimport type { OmitAndMerge, Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport type { ButtonProps } from '../button';\nimport { Button } from '../button';\nimport { useSelectContext } from './SelectContext';\nimport { SELECT_OPTION_TAG } from './tags';\n\nexport type SelectOptionBaseProps<V> = Prettify<\n  SelectOptionStateOptions<V> & SelectOptionStateRenderProps\n>;\n\nexport type SelectOptionProps<\n  V,\n  T extends ValidConstructor = 'li',\n> = HeadlessPropsWithRef<\n  T,\n  OmitAndMerge<SelectOptionBaseProps<V>, ButtonProps<T>>\n>;\n\nexport function SelectOption<V, T extends ValidConstructor = 'li'>(\n  props: SelectOptionProps<V, T>,\n): JSX.Element {\n  const context = useSelectContext('SelectOption');\n  const [internalRef, setInternalRef] = createForwardRef(props);\n  const state = createSelectOptionState(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        state.select();\n      });\n      useEventListener(current, 'focus', () => {\n        state.focus();\n      });\n      useEventListener(current, 'blur', () => {\n        state.blur();\n      });\n      useEventListener(current, 'mouseenter', () => {\n        if (!state.disabled()) {\n          current.focus();\n        }\n      });\n      useEventListener(current, 'mouseleave', () => {\n        if (!state.disabled()) {\n          current.blur();\n        }\n      });\n    }\n  });\n\n  return createComponent(\n    Button,\n    mergeProps(\n      SELECT_OPTION_TAG,\n      createOwnerAttribute(context.controller.getId()),\n      {\n        get as() {\n          return props.as || ('li' as T);\n        },\n        role: 'option',\n        get tabindex() {\n          return state.isActive() ? 0 : -1;\n        },\n        ref: setInternalRef,\n      },\n      createDisabledState(() => state.disabled()),\n      createARIADisabledState(() => state.disabled()),\n      createSelectedState(() => state.isSelected()),\n      createARIASelectedState(() => state.isSelected()),\n      createActiveState(() => state.isActive()),\n      omitProps(props, ['as', 'children', 'value', 'ref']),\n      {\n        get children() {\n          return createComponent(SelectOptionStateProvider, {\n            state,\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n    ) as ButtonProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  SelectOptionStateOptions,\n  SelectOptionStateRenderProps,\n} from '../../states/create-select-option-state';\nimport {\n  SelectOptionStateProvider,\n  createSelectOptionState,\n} from '../../states/create-select-option-state';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { createOwnerAttribute } from '../../utils/focus-navigator';\nimport {\n  createARIADisabledState,\n  createARIASelectedState,\n  createActiveState,\n  createDisabledState,\n  createSelectedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport { Button } from '../button';\nimport { useTabGroupContext } from './TabGroupContext';\nimport { useTabListContext } from './TabListContext';\nimport { TAB_TAG } from './tags';\n\nexport type TabBaseProps<V> = Prettify<\n  SelectOptionStateOptions<V> & SelectOptionStateRenderProps\n>;\n\nexport type TabProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessPropsWithRef<T, TabBaseProps<V>>;\n\nexport function Tab<V, T extends ValidConstructor = 'div'>(\n  props: TabProps<V, T>,\n): JSX.Element {\n  const rootContext = useTabGroupContext('Tab');\n  const listContext = useTabListContext('Tab');\n\n  const [internalRef, setInternalRef] = createForwardRef(props);\n  const state = createSelectOptionState(props);\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        state.select();\n      });\n      useEventListener(current, 'focus', () => {\n        state.focus();\n        state.select();\n      });\n      useEventListener(current, 'blur', () => {\n        state.blur();\n        state.select();\n      });\n    }\n  });\n  return createComponent(\n    Button,\n    mergeProps(\n      TAB_TAG,\n      createOwnerAttribute(listContext.getId()),\n      {\n        get as() {\n          return props.as || ('div' as T);\n        },\n        role: 'tab',\n        ref: setInternalRef,\n        get id() {\n          return rootContext.getId('tab', props.value);\n        },\n        get 'aria-controls'() {\n          return rootContext.getId('tab-panel', props.value);\n        },\n        get tabindex() {\n          const selected = state.isSelected();\n          return state.disabled() || !selected ? -1 : 0;\n        },\n        get children() {\n          return createComponent(SelectOptionStateProvider, {\n            state,\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createDisabledState(() => state.disabled()),\n      createARIADisabledState(() => state.disabled()),\n      createSelectedState(() => state.isSelected()),\n      createARIASelectedState(() => state.isSelected()),\n      createActiveState(() => state.isActive()),\n      omitProps(props, ['as', 'children', 'value', 'disabled', 'ref']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import { createContext, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\n\ninterface TabGroupContextData<V> {\n  horizontal: boolean;\n  getId(kind: string, value: V): string;\n}\n\nexport const TabGroupContext = createContext<TabGroupContextData<unknown>>();\n\nexport function useTabGroupContext<V>(\n  componentName: string,\n): TabGroupContextData<V> {\n  const context = useContext(TabGroupContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <TabGroup>`),\n  );\n  return context;\n}\n", "import { createContext, createUniqueId, useContext } from 'solid-js';\nimport assert from '../../utils/assert';\nimport FocusNavigator from '../../utils/focus-navigator';\n\nexport const TabListContext = createContext<FocusNavigator>();\n\nexport function useTabListContext(componentName: string): FocusNavigator {\n  const context = useContext(TabListContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <TabList>`),\n  );\n  return context;\n}\n\nexport function createTabFocusNavigator(): FocusNavigator {\n  return new FocusNavigator(createUniqueId());\n}\n", "import { createTag } from '../../utils/namespace';\n\nexport const TAB_GROUP_TAG = createTag('tab-group');\nexport const TAB_LIST_TAG = createTag('tab-list');\nexport const TAB_TAG = createTag('tab');\nexport const TAB_PANEL_TAG = createTag('tab-panel');\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createMemo,\n  createUniqueId,\n  mergeProps,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  SelectStateRenderProps,\n  SingleSelectStateControlledOptions,\n  SingleSelectStateUncontrolledOptions,\n} from '../../states/create-select-state';\nimport {\n  SelectStateProvider,\n  createSingleSelectState,\n} from '../../states/create-select-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createARIADisabledState,\n  createDisabledState,\n  createHasActiveState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport type { Prettify } from '../../utils/types';\nimport { TabGroupContext } from './TabGroupContext';\nimport { TAB_GROUP_TAG } from './tags';\n\nexport interface TabGroupBaseProps {\n  horizontal: boolean;\n}\n\nexport type TabGroupControlledBaseProps<V> = Prettify<\n  TabGroupBaseProps &\n    SingleSelectStateControlledOptions<V> &\n    SelectStateRenderProps<V>\n>;\n\nexport type TabGroupControlledProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessPropsWithRef<T, TabGroupControlledBaseProps<V>>;\n\nexport type TabGroupUncontrolledBaseProps<V> = Prettify<\n  TabGroupBaseProps &\n    SingleSelectStateUncontrolledOptions<V> &\n    SelectStateRenderProps<V>\n>;\n\nexport type TabGroupUncontrolledProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessPropsWithRef<T, TabGroupUncontrolledBaseProps<V>>;\n\nexport type TabGroupProps<V, T extends ValidConstructor = 'div'> =\n  | TabGroupControlledProps<V, T>\n  | TabGroupUncontrolledProps<V, T>;\n\nfunction isTabGroupUncontrolled<V, T extends ValidConstructor = 'div'>(\n  props: TabGroupProps<V, T>,\n): props is TabGroupUncontrolledProps<V, T> {\n  return 'defaultValue' in props;\n}\n\nexport function TabGroup<V, T extends ValidConstructor = 'div'>(\n  props: TabGroupProps<V, T>,\n): JSX.Element {\n  return createMemo(() => {\n    const ownerID = createUniqueId();\n    const state = createSingleSelectState(props);\n\n    const ids = new Map<V, number>();\n\n    return createComponent(TabGroupContext.Provider, {\n      value: {\n        get horizontal() {\n          return props.horizontal;\n        },\n        getId(kind: string, value: V): string {\n          let currentID = ids.get(value);\n          if (!currentID) {\n            currentID = ids.size;\n            ids.set(value, currentID);\n          }\n          return `${ownerID}__${kind}-${currentID}`;\n        },\n      },\n      get children() {\n        return createDynamic(\n          () => props.as || ('div' as T),\n          mergeProps(\n            TAB_GROUP_TAG,\n            createDisabledState(() => state.disabled()),\n            createARIADisabledState(() => state.disabled()),\n            createHasSelectedState(() => state.hasSelected()),\n            createHasActiveState(() => state.hasActive()),\n            {\n              get children() {\n                return createComponent(SelectStateProvider, {\n                  state,\n                  get children() {\n                    return props.children;\n                  },\n                });\n              },\n            },\n            isTabGroupUncontrolled(props)\n              ? omitProps(props, [\n                  'as',\n                  'children',\n                  'defaultValue',\n                  'disabled',\n                  'onChange',\n                  'by',\n                  'ref',\n                  'toggleable',\n                  'horizontal',\n                ])\n              : omitProps(props, [\n                  'as',\n                  'children',\n                  'value',\n                  'disabled',\n                  'onChange',\n                  'by',\n                  'ref',\n                  'toggleable',\n                  'horizontal',\n                ]),\n          ) as DynamicProps<T>,\n        );\n      },\n    });\n  }) as unknown as JSX.Element;\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps, onCleanup } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { SelectStateRenderProps } from '../../states/create-select-state';\nimport {\n  SelectStateChild,\n  useSelectState,\n} from '../../states/create-select-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  createHasActiveState,\n  createHasSelectedState,\n} from '../../utils/state-props';\nimport useEventListener from '../../utils/use-event-listener';\nimport { useTabGroupContext } from './TabGroupContext';\nimport { TabListContext, createTabFocusNavigator } from './TabListContext';\nimport { TAB_LIST_TAG } from './tags';\n\nexport type TabListProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessPropsWithRef<T, SelectStateRenderProps<V>>;\n\nexport function TabList<V, T extends ValidConstructor = 'div'>(\n  props: TabListProps<V, T>,\n): JSX.Element {\n  const rootContext = useTabGroupContext('TabList');\n  const controller = createTabFocusNavigator();\n  const state = useSelectState();\n  const [ref, setRef] = createForwardRef(props);\n\n  createEffect(() => {\n    const current = ref();\n    if (current instanceof HTMLElement) {\n      controller.setRef(current);\n      onCleanup(() => {\n        controller.clearRef();\n      });\n      useEventListener(current, 'keydown', e => {\n        if (!state.disabled()) {\n          switch (e.key) {\n            case 'ArrowUp': {\n              if (!rootContext.horizontal) {\n                e.preventDefault();\n                controller.setPrevChecked(true);\n              }\n              break;\n            }\n            case 'ArrowLeft': {\n              if (rootContext.horizontal) {\n                e.preventDefault();\n                controller.setPrevChecked(true);\n              }\n              break;\n            }\n            case 'ArrowDown': {\n              if (!rootContext.horizontal) {\n                e.preventDefault();\n                controller.setNextChecked(true);\n              }\n              break;\n            }\n            case 'ArrowRight': {\n              if (rootContext.horizontal) {\n                e.preventDefault();\n                controller.setNextChecked(true);\n              }\n              break;\n            }\n            case 'Home': {\n              e.preventDefault();\n              controller.setFirstChecked();\n              break;\n            }\n            case 'End': {\n              e.preventDefault();\n              controller.setLastChecked();\n              break;\n            }\n          }\n        }\n      });\n      useEventListener(current, 'focusin', e => {\n        if (e.target && e.target !== current) {\n          controller.setCurrent(e.target as HTMLElement);\n        }\n      });\n    }\n  });\n\n  return createComponent(TabListContext.Provider, {\n    value: controller,\n    get children() {\n      return createDynamic(\n        () => props.as || ('div' as T),\n        mergeProps(\n          TAB_LIST_TAG,\n          {\n            role: 'tablist',\n            get 'aria-orientation'() {\n              return rootContext.horizontal ? 'horizontal' : 'vertical';\n            },\n            ref: setRef,\n            get children() {\n              return createComponent(SelectStateChild, {\n                get children() {\n                  return props.children;\n                },\n              });\n            },\n          },\n          createHasSelectedState(() => state.hasSelected()),\n          createHasActiveState(() => state.hasActive()),\n          omitProps(props, ['as', 'ref', 'children']),\n        ) as DynamicProps<T>,\n      );\n    },\n  });\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type { SelectOptionStateOptions } from '../../states/create-select-option-state';\nimport {\n  SelectOptionStateProvider,\n  createSelectOptionState,\n} from '../../states/create-select-option-state';\nimport createDynamic from '../../utils/create-dynamic';\nimport { createUnmountable } from '../../utils/create-unmountable';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport {\n  createActiveState,\n  createSelectedState,\n} from '../../utils/state-props';\nimport { useTabGroupContext } from './TabGroupContext';\nimport { TAB_PANEL_TAG } from './tags';\n\nexport interface TabPanelBaseProps<V>\n  extends Exclude<SelectOptionStateOptions<V>, 'disabled'> {\n  unmount?: boolean;\n}\n\nexport type TabPanelProps<\n  V,\n  T extends ValidConstructor = 'div',\n> = HeadlessProps<T, TabPanelBaseProps<V>>;\n\nexport function TabPanel<V, T extends ValidConstructor = 'div'>(\n  props: TabPanelProps<V, T>,\n): JSX.Element {\n  const rootContext = useTabGroupContext('TabPanel');\n  const state = createSelectOptionState(props);\n\n  return createUnmountable(\n    props,\n    () => state.isSelected(),\n    () =>\n      createDynamic(\n        () => props.as || ('div' as T),\n        mergeProps(\n          TAB_PANEL_TAG,\n          {\n            role: 'tabpanel',\n            get tabindex() {\n              return state.isSelected() ? 0 : -1;\n            },\n            get id() {\n              return rootContext.getId('tab-panel', props.value);\n            },\n            get 'aria-labelledby'() {\n              return rootContext.getId('tab', props.value);\n            },\n            get children() {\n              return createComponent(SelectOptionStateProvider, {\n                state,\n                get children() {\n                  return props.children;\n                },\n              });\n            },\n          },\n          createSelectedState(() => state.isSelected()),\n          createActiveState(() => state.isActive()),\n          omitProps(props, ['as', 'disabled', 'unmount', 'value']),\n        ) as DynamicProps<T>,\n      ),\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createContext,\n  createEffect,\n  createSignal,\n  createUniqueId,\n  mergeProps,\n  onCleanup,\n  useContext,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport assert from '../../utils/assert';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessProps,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createTag } from '../../utils/namespace';\n\nconst TOAST_TAG = createTag('toast');\nconst TOASTER_TAG = createTag('toaster');\n\ninterface ToastContextData {\n  ownerID: string;\n}\n\nconst ToastContext = createContext<ToastContextData>();\n\nfunction useToastContext(componentName: string): ToastContextData {\n  const context = useContext(ToastContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <Toaster>`),\n  );\n  return context;\n}\n\nexport type ToastProps<T extends ValidConstructor = 'div'> = HeadlessProps<T>;\n\nexport function Toast<T extends ValidConstructor = 'div'>(\n  props: ToastProps<T>,\n): JSX.Element {\n  useToastContext('Toast');\n\n  return createDynamic(\n    () => props.as || ('div' as T),\n    mergeProps(\n      TOAST_TAG,\n      {\n        role: 'status',\n        'aria-live': 'polite',\n      },\n      omitProps(props, ['as']),\n    ) as DynamicProps<T>,\n  );\n}\n\nexport type ToasterProps<T extends ValidConstructor = 'div'> = HeadlessProps<T>;\n\nexport function Toaster<T extends ValidConstructor = 'div'>(\n  props: ToasterProps<T>,\n): JSX.Element {\n  const ownerID = createUniqueId();\n\n  return createComponent(ToastContext.Provider, {\n    value: {\n      ownerID,\n    },\n    get children() {\n      return createDynamic(\n        () => props.as || ('div' as T),\n        mergeProps(TOASTER_TAG, omitProps(props, ['as'])) as DynamicProps<T>,\n      );\n    },\n  });\n}\nexport interface ToastData<T> {\n  id: string;\n  data: T;\n}\n\nexport type ToasterListener<T> = (queue: ToastData<T>[]) => void;\n\nexport class ToasterStore<T> {\n  private static toasterID = 0;\n\n  private id: number;\n\n  private queue: ToastData<T>[] = [];\n\n  private listeners = new Set<ToasterListener<T>>();\n\n  private toastID = 0;\n\n  constructor() {\n    this.id = ToasterStore.toasterID;\n    ToasterStore.toasterID += 1;\n  }\n\n  subscribe(callback: ToasterListener<T>): () => void {\n    this.listeners.add(callback);\n    return () => {\n      this.listeners.delete(callback);\n    };\n  }\n\n  private notify(): void {\n    const clone = [...this.queue];\n    for (const listener of this.listeners.keys()) {\n      listener(clone);\n    }\n  }\n\n  create(data: T): string {\n    const id = `toast-${this.id}-[${this.toastID}`;\n    this.toastID += 1;\n    this.queue.push({\n      id,\n      data,\n    });\n    this.notify();\n    return id;\n  }\n\n  remove(id: string): void {\n    this.queue = this.queue.filter(item => item.id !== id);\n    this.notify();\n  }\n\n  clear(): void {\n    this.queue = [];\n    this.notify();\n  }\n\n  getQueue(): ToastData<T>[] {\n    return this.queue;\n  }\n}\n\nexport function useToaster<T>(toaster: ToasterStore<T>): () => ToastData<T>[] {\n  const [signal, setSignal] = createSignal(toaster.getQueue());\n\n  createEffect(() => {\n    onCleanup(toaster.subscribe(setSignal));\n  });\n\n  return signal;\n}\n", "import type { JSX } from 'solid-js';\nimport { createComponent, createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport type {\n  ToggleStateControlledOptions,\n  ToggleStateRenderProps,\n  ToggleStateUncontrolledOptions,\n} from '../../states/create-toggle-state';\nimport {\n  ToggleStateProvider,\n  createToggleState,\n} from '../../states/create-toggle-state';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport { createTag } from '../../utils/namespace';\nimport {\n  createARIADisabledState,\n  createARIAPressedState,\n  createDisabledState,\n  createPressedState,\n} from '../../utils/state-props';\nimport type { OmitAndMerge, Prettify } from '../../utils/types';\nimport useEventListener from '../../utils/use-event-listener';\nimport type { ButtonProps } from '../button';\nimport { Button } from '../button';\n\nconst TOGGLE_TAG = createTag('toggle');\n\nexport type ToggleControlledBaseProps = Prettify<\n  ToggleStateControlledOptions & ToggleStateRenderProps\n>;\n\nexport type ToggleControlledProps<T extends ValidConstructor = 'button'> =\n  HeadlessPropsWithRef<\n    T,\n    OmitAndMerge<ToggleControlledBaseProps, ButtonProps<T>>\n  >;\n\nexport type ToggleUncontrolledBaseProps = Prettify<\n  ToggleStateUncontrolledOptions & ToggleStateRenderProps\n>;\n\nexport type ToggleUncontrolledProps<T extends ValidConstructor = 'button'> =\n  HeadlessPropsWithRef<\n    T,\n    OmitAndMerge<ToggleUncontrolledBaseProps, ButtonProps<T>>\n  >;\n\nexport type ToggleProps<T extends ValidConstructor = 'button'> =\n  | ToggleControlledProps<T>\n  | ToggleUncontrolledProps<T>;\n\nfunction isToggleUncontrolled<T extends ValidConstructor = 'button'>(\n  props: ToggleProps<T>,\n): props is ToggleUncontrolledProps<T> {\n  return 'defaultPressed' in props;\n}\n\nexport function Toggle<T extends ValidConstructor = 'button'>(\n  props: ToggleProps<T>,\n): JSX.Element {\n  const [ref, setRef] = createForwardRef(props);\n  const state = createToggleState(props);\n\n  createEffect(() => {\n    const current = ref();\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'click', () => {\n        state.toggle();\n      });\n    }\n  });\n\n  return createComponent(\n    Button,\n    mergeProps(\n      TOGGLE_TAG,\n      {\n        ref: setRef,\n        get children() {\n          return createComponent(ToggleStateProvider, {\n            state,\n            get children() {\n              return props.children;\n            },\n          });\n        },\n      },\n      createPressedState(() => state.pressed()),\n      createARIAPressedState(() => state.pressed()),\n      createDisabledState(() => state.disabled()),\n      createARIADisabledState(() => state.disabled()),\n      isToggleUncontrolled(props)\n        ? omitProps(props, [\n            'onChange',\n            'defaultPressed',\n            'ref',\n            'disabled',\n            'children',\n          ])\n        : omitProps(props, [\n            'onChange',\n            'pressed',\n            'ref',\n            'disabled',\n            'children',\n          ]),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { Accessor, JSX } from 'solid-js';\nimport {\n  createComponent,\n  createContext,\n  createMemo,\n  createSignal,\n  untrack,\n  useContext,\n} from 'solid-js';\nimport assert from '../utils/assert';\n\nexport interface ToggleStateControlledOptions {\n  pressed: boolean;\n  disabled?: boolean;\n  onChange?: (state: boolean) => void;\n}\n\nexport interface ToggleStateUncontrolledOptions {\n  defaultPressed: boolean;\n  disabled?: boolean;\n  onChange?: (state: boolean) => void;\n}\n\nexport type ToggleStateOptions =\n  | ToggleStateControlledOptions\n  | ToggleStateUncontrolledOptions;\n\nexport interface ToggleStateProperties {\n  pressed(): boolean;\n  setState(newState: boolean): void;\n  disabled(): boolean;\n  check(): void;\n  uncheck(): void;\n  toggle(): void;\n}\n\nexport function createToggleState(\n  options: ToggleStateOptions,\n): ToggleStateProperties {\n  // Reference to the signal read\n  let signal: Accessor<boolean>;\n  // Reference to the signal write\n  let setSignal: (value: boolean) => void;\n\n  // Type branding\n  // Toggle if state is uncontrolled\n  if ('defaultPressed' in options) {\n    // Uncontrolled toggle means the toggle\n    // manages its own state.\n    const [isOpen, setIsOpen] = createSignal<boolean>(options.defaultPressed);\n    signal = isOpen;\n    setSignal = (value): void => {\n      setIsOpen(value);\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  } else {\n    // Controlled means relying on 3P state\n    signal = createMemo(() => options.pressed);\n    setSignal = (value): void => {\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  }\n\n  const isDisabled = createMemo(() => !!options.disabled);\n\n  return {\n    pressed(): boolean {\n      return signal();\n    },\n    setState(value): void {\n      if (!untrack(isDisabled)) {\n        setSignal(value);\n      }\n    },\n    disabled: isDisabled,\n    check(): void {\n      if (!untrack(isDisabled)) {\n        setSignal(true);\n      }\n    },\n    uncheck(): void {\n      if (!untrack(isDisabled)) {\n        setSignal(false);\n      }\n    },\n    toggle(): void {\n      if (!untrack(isDisabled)) {\n        setSignal(!untrack(signal));\n      }\n    },\n  };\n}\n\nexport interface ToggleStateRenderProps {\n  children?: JSX.Element | ((state: ToggleStateProperties) => JSX.Element);\n}\n\nexport interface ToggleStateProviderProps extends ToggleStateRenderProps {\n  state: ToggleStateProperties;\n}\n\nconst ToggleStateContext = createContext<ToggleStateProperties>();\n\nexport function ToggleStateProvider(\n  props: ToggleStateProviderProps,\n): JSX.Element {\n  return createComponent(ToggleStateContext.Provider, {\n    value: props.state,\n    get children() {\n      const current = props.children;\n      if (typeof current === 'function') {\n        return current(props.state);\n      }\n      return current;\n    },\n  });\n}\n\nexport function useToggleState(): ToggleStateProperties {\n  const ctx = useContext(ToggleStateContext);\n  assert(ctx, new Error('Missing <ToggleStateProvider>'));\n  return ctx;\n}\n\nexport function ToggleStateChild(props: ToggleStateRenderProps): JSX.Element {\n  const state = useToggleState();\n  return createMemo(() => {\n    const current = props.children;\n    if (typeof current === 'function' && current.length === 1) {\n      return createMemo(() => current(state));\n    }\n    return current;\n  }) as unknown as JSX.Element;\n}\n", "import type { JSX } from 'solid-js';\nimport { createEffect, mergeProps } from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport createDynamic from '../../utils/create-dynamic';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport {\n  focusFirst,\n  focusLast,\n  focusNext,\n  focusPrev,\n} from '../../utils/focus-navigation';\nimport getFocusableElements from '../../utils/focus-query';\nimport { createTag } from '../../utils/namespace';\nimport useEventListener from '../../utils/use-event-listener';\n\nconst TOOLBAR_TAG = createTag('toolbar');\n\nexport type ToolbarProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, { horizontal?: boolean }>;\n\nexport function Toolbar<T extends ValidConstructor = 'div'>(\n  props: ToolbarProps<T>,\n): JSX.Element {\n  const [internalRef, setInternalRef] = createForwardRef(props);\n\n  const isHorizontal = (): boolean =>\n    props.horizontal == null ? true : props.horizontal;\n\n  let focusedElement: HTMLElement | undefined;\n\n  function getNextFocusable(): void {\n    const ref = internalRef();\n    if (\n      ref instanceof HTMLElement &&\n      document.activeElement &&\n      ref.contains(document.activeElement)\n    ) {\n      focusNext(\n        getFocusableElements(ref),\n        document.activeElement as HTMLElement,\n        false,\n        false,\n      );\n    }\n  }\n\n  function getPrevFocusable(): void {\n    const ref = internalRef();\n    if (\n      ref instanceof HTMLElement &&\n      document.activeElement &&\n      ref.contains(document.activeElement)\n    ) {\n      focusPrev(\n        getFocusableElements(ref),\n        document.activeElement as HTMLElement,\n        false,\n        false,\n      );\n    }\n  }\n\n  createEffect(() => {\n    const current = internalRef();\n    if (current instanceof HTMLElement) {\n      useEventListener(current, 'keydown', e => {\n        switch (e.key) {\n          case 'ArrowLeft': {\n            if (isHorizontal()) {\n              e.preventDefault();\n              getPrevFocusable();\n            }\n            break;\n          }\n          case 'ArrowUp': {\n            if (!isHorizontal()) {\n              e.preventDefault();\n              getPrevFocusable();\n            }\n            break;\n          }\n          case 'ArrowRight': {\n            if (isHorizontal()) {\n              e.preventDefault();\n              getNextFocusable();\n            }\n            break;\n          }\n          case 'ArrowDown': {\n            if (!isHorizontal()) {\n              e.preventDefault();\n              getNextFocusable();\n            }\n            break;\n          }\n          case 'Home': {\n            if (focusFirst(getFocusableElements(current), false)) {\n              e.preventDefault();\n            }\n            break;\n          }\n          case 'End': {\n            if (focusLast(getFocusableElements(current), false)) {\n              e.preventDefault();\n            }\n            break;\n          }\n        }\n      });\n      useEventListener(current, 'focus', () => {\n        if (focusedElement) {\n          focusedElement.focus();\n        } else {\n          focusFirst(getFocusableElements(current), false);\n        }\n      });\n      useEventListener(current, 'focusin', e => {\n        if (e.target && e.target !== current) {\n          focusedElement = e.target as HTMLElement;\n        }\n      });\n    }\n  });\n\n  return createDynamic(\n    () => props.as || ('div' as T),\n    mergeProps(\n      TOOLBAR_TAG,\n      {\n        role: 'toolbar',\n        tabindex: 0,\n        ref: setInternalRef,\n        get 'aria-orientation'() {\n          return isHorizontal() ? 'horizontal' : 'vertical';\n        },\n      },\n      omitProps(props, ['as', 'horizontal', 'ref']),\n    ) as DynamicProps<T>,\n  );\n}\n", "import type { JSX } from 'solid-js';\nimport {\n  createComponent,\n  createContext,\n  createEffect,\n  createSignal,\n  mergeProps,\n  useContext,\n} from 'solid-js';\nimport { omitProps } from 'solid-use/props';\nimport assert from '../../utils/assert';\nimport createDynamic from '../../utils/create-dynamic';\nimport type { UnmountableProps } from '../../utils/create-unmountable';\nimport { createUnmountable } from '../../utils/create-unmountable';\nimport type {\n  DynamicProps,\n  HeadlessPropsWithRef,\n  ValidConstructor,\n} from '../../utils/dynamic-prop';\nimport { createForwardRef } from '../../utils/dynamic-prop';\nimport type { Prettify } from '../../utils/types';\n\nexport interface TransitionRootBaseProps {\n  show: boolean;\n}\n\ninterface TransitionCounter {\n  register(): void;\n  unregister(): void;\n  done(): boolean;\n}\n\nconst TransitionRootContext = createContext<TransitionRootBaseProps>();\nconst TransitionCounterContext = createContext<TransitionCounter>();\n\nfunction useTransitionRootContext(\n  componentName: string,\n): TransitionRootBaseProps {\n  const context = useContext(TransitionRootContext);\n  assert(\n    context,\n    new Error(`<${componentName}> must be used inside a <Transition>`),\n  );\n  return context;\n}\n\nfunction createTransitionCounter(): TransitionCounter {\n  // Set of currently transitioning TransitionChilds nested within a TransitionChild\n  const [size, setSize] = createSignal(0);\n\n  return {\n    // Reactive set\n    register(): void {\n      setSize(c => c + 1);\n    },\n    unregister(): void {\n      setSize(c => c - 1);\n    },\n    done(): boolean {\n      return size() === 0;\n    },\n  };\n}\n\nexport interface TransitionBaseChildProps extends UnmountableProps {\n  appear?: boolean;\n  enter?: string;\n  enterFrom?: string;\n  enterTo?: string;\n  entered?: string;\n  leave?: string;\n  leaveFrom?: string;\n  leaveTo?: string;\n  beforeEnter?: () => void;\n  afterEnter?: () => void;\n  beforeLeave?: () => void;\n  afterLeave?: () => void;\n}\n\nfunction getClassList(classes?: string): string[] {\n  return classes ? classes.split(' ') : [];\n}\n\nfunction addClassList(ref: HTMLElement, classes: string[]): void {\n  const filtered = classes.filter(value => value);\n  if (filtered.length) {\n    ref.classList.add(...filtered);\n  }\n}\nfunction removeClassList(ref: HTMLElement, classes: string[]): void {\n  const filtered = classes.filter(value => value);\n  if (filtered.length) {\n    ref.classList.remove(...filtered);\n  }\n}\n\nexport type TransitionChildProps<T extends ValidConstructor = 'div'> =\n  HeadlessPropsWithRef<T, TransitionBaseChildProps>;\n\ntype TransitionStates =\n  | 'enter-from'\n  | 'enter-to'\n  | 'entered'\n  | 'leave-from'\n  | 'leave-to';\n\nexport function TransitionChild<T extends ValidConstructor = 'div'>(\n  props: TransitionChildProps<T>,\n): JSX.Element {\n  const values = useTransitionRootContext('TransitionChild');\n  // Transitions pending on parent\n  const transitionParent = useContext(TransitionCounterContext);\n  // Transitions pending underneath element\n  const transitionChildren = createTransitionCounter();\n\n  const [state, setState] = createSignal<TransitionStates>();\n  const [visible, setVisible] = createSignal(values.show);\n  const [ref, setRef] = createForwardRef(props);\n  let initial = true;\n\n  function transition(element: HTMLElement, shouldEnter: boolean): void {\n    if (shouldEnter) {\n      if (initial) {\n        const enter = getClassList(props.enter);\n        const enterFrom = getClassList(props.enterFrom);\n        const enterTo = getClassList(props.enterTo);\n        const entered = getClassList(props.entered);\n\n        const endTransition = (): void => {\n          removeClassList(element, enter);\n          removeClassList(element, enterTo);\n          setState('entered');\n          addClassList(element, entered);\n          if (props.afterEnter) {\n            props.afterEnter();\n          }\n        };\n\n        if (props.beforeEnter) {\n          props.beforeEnter();\n        }\n        setState('enter-from');\n        addClassList(element, enter);\n        addClassList(element, enterFrom);\n\n        requestAnimationFrame(() => {\n          removeClassList(element, enterFrom);\n          setState('enter-to');\n          addClassList(element, enterTo);\n          element.addEventListener('transitionend', endTransition, {\n            once: true,\n          });\n          element.addEventListener('animationend', endTransition, {\n            once: true,\n          });\n        });\n      }\n    } else {\n      const leave = getClassList(props.leave);\n      const leaveFrom = getClassList(props.leaveFrom);\n      const leaveTo = getClassList(props.leaveTo);\n      const entered = getClassList(props.entered);\n      if (props.beforeLeave) {\n        props.beforeLeave();\n      }\n      if (transitionParent) {\n        transitionParent.register();\n      }\n      removeClassList(element, entered);\n      setState('leave-from');\n      addClassList(element, leave);\n      addClassList(element, leaveFrom);\n      requestAnimationFrame(() => {\n        removeClassList(element, leaveFrom);\n        setState('leave-to');\n        addClassList(element, leaveTo);\n      });\n      const endTransition = (): void => {\n        removeClassList(element, leave);\n        removeClassList(element, leaveTo);\n        setVisible(false);\n        if (transitionParent) {\n          transitionParent.unregister();\n        }\n        if (props.afterLeave) {\n          props.afterLeave();\n        }\n      };\n      element.addEventListener('transitionend', endTransition, { once: true });\n      element.addEventListener('animationend', endTransition, { once: true });\n    }\n  }\n\n  createEffect(() => {\n    const shouldShow = values.show;\n    if (shouldShow) {\n      setVisible(true);\n    }\n    const internalRef = ref();\n    if (internalRef instanceof HTMLElement) {\n      if (shouldShow) {\n        transition(internalRef, true);\n      } else if (transitionChildren.done()) {\n        transition(internalRef, false);\n      }\n    } else {\n      // Ref is missing, reset initial\n      initial = true;\n    }\n  });\n\n  return createComponent(TransitionCounterContext.Provider, {\n    value: transitionChildren,\n    get children() {\n      return createUnmountable(props, visible, () =>\n        createDynamic(\n          () => props.as || ('div' as T),\n          mergeProps(\n            omitProps(props, [\n              'as',\n              'enter',\n              'enterFrom',\n              'enterTo',\n              'leave',\n              'leaveFrom',\n              'leaveTo',\n              'unmount',\n              'afterEnter',\n              'afterLeave',\n              'appear',\n              'beforeEnter',\n              'beforeLeave',\n              'entered',\n              'ref',\n            ]),\n            {\n              ref: setRef,\n              get 'tc-transition'() {\n                return state();\n              },\n            },\n          ) as DynamicProps<T>,\n        ),\n      );\n    },\n  });\n}\n\nexport type TransitionProps<T extends ValidConstructor = 'div'> = Prettify<\n  TransitionRootBaseProps & TransitionChildProps<T>\n>;\n\nexport function Transition<T extends ValidConstructor = 'div'>(\n  props: TransitionProps<T>,\n): JSX.Element {\n  return createComponent(TransitionRootContext.Provider, {\n    value: props,\n    get children() {\n      return createComponent(\n        TransitionChild,\n        omitProps(props, ['show']) as TransitionChildProps<T>,\n      );\n    },\n  });\n}\n", "import type { Accessor, JSX } from 'solid-js';\nimport {\n  createComponent,\n  createContext,\n  createMemo,\n  createSignal,\n  useContext,\n} from 'solid-js';\nimport assert from '../utils/assert';\n\nexport interface InputStateControlledOptions {\n  value: string | undefined;\n  disabled?: string;\n  onChange?: (state?: string) => void;\n}\n\nexport interface InputStateUncontrolledOptions {\n  defaultValue: string | undefined;\n  disabled?: boolean;\n  onChange?: (state?: string) => void;\n}\n\nexport type InputStateOptions =\n  | InputStateControlledOptions\n  | InputStateUncontrolledOptions;\n\nexport interface InputStateProperties {\n  value(): string | undefined;\n  setState(newState?: string): void;\n  disabled(): boolean;\n}\n\nexport function createInputState(\n  options: InputStateOptions,\n): InputStateProperties {\n  let signal: Accessor<string | undefined>;\n  let setSignal: (value: string | undefined) => void;\n\n  if ('defaultValue' in options) {\n    const [input, setInput] = createSignal<string | undefined>(\n      options.defaultValue,\n    );\n    signal = input;\n    setSignal = (value): void => {\n      setInput(value);\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  } else {\n    signal = (): string | undefined => options.value;\n    setSignal = (value): void => {\n      if (options.onChange) {\n        options.onChange(value);\n      }\n    };\n  }\n\n  return {\n    value(): string | undefined {\n      return signal();\n    },\n    setState(value): void {\n      if (!options.disabled) {\n        setSignal(value);\n      }\n    },\n    disabled(): boolean {\n      return !!options.disabled;\n    },\n  };\n}\n\nexport interface InputStateRenderProps {\n  children?: JSX.Element | ((state: InputStateProperties) => JSX.Element);\n}\n\nexport interface InputStateProviderProps extends InputStateRenderProps {\n  state: InputStateProperties;\n}\n\nconst InputStateContext = createContext<InputStateProperties>();\n\nexport function InputStateProvider(\n  props: InputStateProviderProps,\n): JSX.Element {\n  return createComponent(InputStateContext.Provider, {\n    value: props.state,\n    get children() {\n      const current = props.children;\n      if (typeof current === 'function') {\n        return current(props.state);\n      }\n      return current;\n    },\n  });\n}\n\nexport function useInputState(): InputStateProperties {\n  const ctx = useContext(InputStateContext);\n  assert(ctx, new Error('Missing <InputStateProvider>'));\n  return ctx;\n}\n\nexport function InputStateChild(props: InputStateRenderProps): JSX.Element {\n  const state = useInputState();\n  return createMemo(() => {\n    const current = props.children;\n    if (typeof current === 'function' && current.length === 1) {\n      return createMemo(() => current(state));\n    }\n    return current;\n  }) as unknown as JSX.Element;\n}\n", "import type { JSX } from 'solid-js';\nimport { createMemo } from 'solid-js';\n\nexport interface FragmentProps {\n  children?: JSX.Element;\n}\n\n// Solid doesn't have this\nexport default function Fragment(props: FragmentProps): JSX.Element {\n  return createMemo(() => props.children) as unknown as JSX.Element;\n}\n"],
  "mappings": "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",
  "names": ["import_solid_js", "import_solid_js", "import_solid_js", "import_solid_js", "import_solid_js", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_web", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "usePageVisibility", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_web", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "getProps", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_props", "import_solid_js", "import_solid_js", "import_props", "getNextFocusable", "import_solid_js", "import_props", "import_solid_js", "import_solid_js"]
}
