{"version":3,"sources":["../src/use-select-option.ts","../src/use-select.tsx","../src/option.tsx","../src/option-group.tsx","../src/use-select-option-group.ts"],"sourcesContent":["import type { HTMLUIProps, PropGetter } from \"@yamada-ui/core\"\nimport type { CSSProperties, MouseEvent } from \"react\"\nimport {\n  ariaAttr,\n  dataAttr,\n  handlerAll,\n  isArray,\n  isHTMLElement,\n  isNumber,\n  isString,\n  isUndefined,\n  mergeRefs,\n} from \"@yamada-ui/utils\"\nimport { useCallback, useId, useMemo, useRef } from \"react\"\nimport { useSelectContext, useSelectDescendant } from \"./use-select\"\n\nconst isTargetOption = (target: EventTarget | null): boolean =>\n  isHTMLElement(target) && !!target.getAttribute(\"role\")?.startsWith(\"option\")\n\nexport interface UseSelectOptionProps extends Omit<HTMLUIProps, \"value\"> {\n  /**\n   * If `true`, the list element will be closed when selected.\n   *\n   * @default false\n   */\n  closeOnSelect?: boolean\n  /**\n   * If `true`, the select option will be disabled.\n   *\n   * @default false\n   */\n  disabled?: boolean\n  /**\n   * If `true`, the select option will be focusable.\n   *\n   * @default false\n   */\n  focusable?: boolean\n  /**\n   * If `true`, the select option will be disabled.\n   *\n   * @default false\n   *\n   * @deprecated Use `disabled` instead.\n   */\n  isDisabled?: boolean\n  /**\n   * If `true`, the select option will be focusable.\n   *\n   * @default false\n   *\n   * @deprecated Use `focusable` instead.\n   */\n  isFocusable?: boolean\n  /**\n   * The value of the select option.\n   */\n  value?: string\n}\n\nexport const useSelectOption = (props: UseSelectOptionProps) => {\n  const {\n    closeOnSelect,\n    fieldRef,\n    focusedIndex,\n    omitSelectedValues,\n    placeholder,\n    placeholderInOptions,\n    setFocusedIndex,\n    value: selectedValue,\n    optionProps,\n    onChange,\n    onClose,\n    onFocusNext,\n  } = useSelectContext()\n  const uuid = useId()\n  const itemRef = useRef<HTMLLIElement>(null)\n  const {\n    id = uuid,\n    children,\n    closeOnSelect: customCloseOnSelect,\n    isDisabled,\n    disabled = isDisabled,\n    isFocusable,\n    focusable = isFocusable,\n    icon: customIcon,\n    value: optionValue,\n    ...computedProps\n  } = { ...optionProps, ...props }\n  const trulyDisabled = !!disabled && !focusable\n  const { descendants, index, register } = useSelectDescendant({\n    disabled: trulyDisabled,\n  })\n  const values = descendants.values()\n  const frontValues = values.slice(0, index)\n  const hasPlaceholder = !!placeholder && placeholderInOptions\n  const optionPlaceholder = hasPlaceholder && index === 0\n  const multi = isArray(selectedValue)\n  const focused = index === focusedIndex\n\n  const value = useMemo(() => {\n    let value = optionValue\n\n    if (!optionPlaceholder && isUndefined(optionValue)) {\n      if (isString(children) || isNumber(children)) {\n        value = children.toString()\n      } else {\n        console.warn(\n          `${\n            !multi ? \"Select\" : \"MultiSelect\"\n          }: Cannot infer the option value of complex children. Pass a \\`value\\` prop or use a plain string as children to <Option>.`,\n        )\n      }\n    }\n\n    if (hasPlaceholder && index > 0 && !optionValue) {\n      console.warn(\n        `${\n          !multi ? \"Select\" : \"MultiSelect\"\n        }: If placeholders are present, All options must be set value. If want to set an empty value, either don't set the placeholder or set \\`placeholderInOptions\\` to false.`,\n      )\n    }\n\n    return value ?? \"\"\n  }, [children, hasPlaceholder, index, multi, optionPlaceholder, optionValue])\n\n  const duplicated = !multi\n    ? frontValues.some(({ node }) => node.dataset.selectedValue === value)\n    : false\n  const selected =\n    !duplicated &&\n    (!multi ? value === selectedValue : selectedValue.includes(value))\n\n  const onClick = useCallback(\n    (ev: MouseEvent<HTMLDivElement>) => {\n      ev.preventDefault()\n      ev.stopPropagation()\n\n      if (disabled || !isTargetOption(ev.currentTarget)) {\n        if (fieldRef.current) fieldRef.current.focus()\n\n        return\n      }\n\n      if (!duplicated) setFocusedIndex(index)\n\n      onChange(value)\n\n      if (fieldRef.current) fieldRef.current.focus()\n\n      if (customCloseOnSelect ?? closeOnSelect) onClose()\n\n      if (omitSelectedValues) onFocusNext()\n    },\n    [\n      disabled,\n      duplicated,\n      setFocusedIndex,\n      index,\n      onChange,\n      value,\n      fieldRef,\n      customCloseOnSelect,\n      closeOnSelect,\n      onClose,\n      omitSelectedValues,\n      onFocusNext,\n    ],\n  )\n\n  const getOptionProps: PropGetter = useCallback(\n    (props = {}, ref = null) => {\n      const style: CSSProperties = {\n        border: \"0px\",\n        clip: \"rect(0px, 0px, 0px, 0px)\",\n        height: \"1px\",\n        margin: \"-1px\",\n        overflow: \"hidden\",\n        padding: \"0px\",\n        position: \"absolute\",\n        whiteSpace: \"nowrap\",\n        width: \"1px\",\n      }\n\n      return {\n        ref: mergeRefs(itemRef, ref, register),\n        role: \"option\",\n        ...computedProps,\n        ...props,\n        id,\n        style: omitSelectedValues && selected ? style : undefined,\n        \"aria-disabled\": ariaAttr(disabled),\n        \"aria-selected\": selected,\n        \"data-disabled\": dataAttr(disabled),\n        \"data-duplicated\": dataAttr(duplicated),\n        \"data-focus\": dataAttr(focused),\n        \"data-value\": value,\n        tabIndex: -1,\n        onClick: handlerAll(computedProps.onClick, props.onClick, onClick),\n      }\n    },\n    [\n      id,\n      value,\n      computedProps,\n      disabled,\n      focused,\n      duplicated,\n      selected,\n      omitSelectedValues,\n      onClick,\n      register,\n    ],\n  )\n\n  return {\n    children,\n    customIcon,\n    focused,\n    selected,\n    getOptionProps,\n  }\n}\n\nexport type UseSelectOptionReturn = ReturnType<typeof useSelectOption>\n","import type { CSSUIObject, HTMLUIProps, PropGetter } from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport type { ComboBoxProps, PopoverProps } from \"@yamada-ui/popover\"\nimport type { Merge } from \"@yamada-ui/utils\"\nimport type {\n  Dispatch,\n  FocusEvent,\n  KeyboardEvent,\n  MouseEvent,\n  ReactElement,\n  ReactNode,\n  RefObject,\n  SetStateAction,\n} from \"react\"\nimport type { OptionProps } from \"./option\"\nimport type { OptionGroupProps } from \"./option-group\"\nimport { layoutStyleProperties } from \"@yamada-ui/core\"\nimport {\n  formControlProperties,\n  useFormControlProps,\n} from \"@yamada-ui/form-control\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { createDescendant } from \"@yamada-ui/use-descendant\"\nimport { useDisclosure } from \"@yamada-ui/use-disclosure\"\nimport { useOutsideClick } from \"@yamada-ui/use-outside-click\"\nimport {\n  createContext,\n  dataAttr,\n  funcAll,\n  getEventRelatedTarget,\n  getValidChildren,\n  handlerAll,\n  isArray,\n  isContains,\n  isUndefined,\n  mergeRefs,\n  omitObject,\n  pickObject,\n  splitObject,\n  useSafeLayoutEffect,\n  useUnmountEffect,\n  useUpdateEffect,\n} from \"@yamada-ui/utils\"\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport { Option } from \"./option\"\nimport { OptionGroup } from \"./option-group\"\n\nexport const {\n  DescendantsContextProvider: SelectDescendantsContextProvider,\n  useDescendant: useSelectDescendant,\n  useDescendants: useSelectDescendants,\n  useDescendantsContext: useSelectDescendantsContext,\n} = createDescendant()\n\ninterface SelectItemWithValue extends OptionProps {\n  label?: ReactNode\n  value?: string\n}\n\ninterface SelectItemWithItems extends OptionGroupProps {\n  items?: SelectItemWithValue[]\n}\n\nexport type SelectItem = SelectItemWithItems | SelectItemWithValue\n\nexport type MaybeValue = string | string[]\n\ninterface SelectContext\n  extends Omit<UseSelectProps, \"defaultValue\" | \"onChange\" | \"value\"> {\n  containerRef: RefObject<HTMLDivElement>\n  fieldRef: RefObject<HTMLDivElement>\n  focusedIndex: number\n  label: MaybeValue | undefined\n  open: boolean\n  setFocusedIndex: Dispatch<SetStateAction<number>>\n  styles: { [key: string]: CSSUIObject | undefined }\n  value: MaybeValue\n  onChange: (newValue: string) => void\n  onClose: () => void\n  onFocusFirst: () => void\n  onFocusLast: () => void\n  onFocusNext: () => void\n  onFocusPrev: () => void\n  onOpen: () => void\n}\n\nexport const [SelectProvider, useSelectContext] = createContext<SelectContext>({\n  name: \"SelectContext\",\n  errorMessage: `useSelectContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Select />\"`,\n})\n\nexport interface UseSelectProps<T extends MaybeValue = string>\n  extends Merge<Omit<HTMLUIProps, \"defaultValue\" | \"onChange\">, ComboBoxProps>,\n    FormControlOptions {\n  /**\n   * The HTML `name` attribute used for forms.\n   */\n  name?: string\n  /**\n   * If `true`, the list element will be closed when value is selected.\n   *\n   * @default true\n   */\n  closeOnSelect?: boolean\n  /**\n   * The initial value of the select.\n   */\n  defaultValue?: T\n  /**\n   * If provided, generate options based on items.\n   */\n  items?: SelectItem[]\n  /**\n   * The maximum selectable value.\n   */\n  maxSelectValues?: number\n  /**\n   * If `true`, the selected item(s) will be excluded from the list.\n   *\n   * @default false\n   */\n  omitSelectedValues?: boolean\n  /**\n   * The placeholder of the select.\n   */\n  placeholder?: string\n  /**\n   * If `true`, include placeholders in options.\n   *\n   * @default true\n   */\n  placeholderInOptions?: boolean\n  /**\n   * The value of the select.\n   */\n  value?: T\n  /**\n   * Props for select option element.\n   */\n  optionProps?: Omit<OptionProps, \"children\" | \"value\">\n  /**\n   * The callback invoked when value state changes.\n   */\n  onChange?: (value: T) => void\n}\n\nexport const useSelect = <T extends MaybeValue = string>(\n  props: UseSelectProps<T>,\n) => {\n  const {\n    animation,\n    boundary,\n    children,\n    closeDelay,\n    closeOnBlur = true,\n    closeOnEsc = true,\n    closeOnSelect = true,\n    defaultIsOpen,\n    defaultOpen,\n    defaultValue,\n    duration = 0.2,\n    eventListeners,\n    flip,\n    gutter,\n    isLazy,\n    isOpen,\n    items = [],\n    lazy = isLazy,\n    lazyBehavior,\n    matchWidth = true,\n    maxSelectValues,\n    modifiers,\n    offset,\n    omitSelectedValues = false,\n    open: openProp,\n    openDelay,\n    placeholder,\n    placeholderInOptions = true,\n    placement = \"bottom-start\",\n    preventOverflow,\n    strategy,\n    value: valueProp,\n    optionProps,\n    onChange: onChangeProp,\n    onClose: onCloseProp,\n    onOpen: onOpenProp,\n    ...rest\n  } = useFormControlProps(props)\n  const { \"aria-readonly\": _ariaReadonly, ...formControlProps } = pickObject(\n    rest,\n    formControlProperties,\n  )\n  const [containerProps, fieldProps] = splitObject(\n    omitObject(rest, [\"aria-readonly\"]),\n    layoutStyleProperties,\n  )\n\n  const descendants = useSelectDescendants()\n\n  const [focusedIndex, setFocusedIndex] = useState<number>(-1)\n  const [allSelected, setAllSelected] = useState<boolean>(false)\n\n  const containerRef = useRef<HTMLDivElement>(null)\n  const fieldRef = useRef<HTMLDivElement>(null)\n  const timeoutIds = useRef<Set<any>>(new Set([]))\n\n  const [value, setValue] = useControllableState({\n    defaultValue,\n    value: valueProp,\n    onChange: onChangeProp,\n  })\n  const [label, setLabel] = useState<T | undefined>(undefined)\n\n  const hasPlaceholder = !!placeholder && placeholderInOptions\n  const focused = focusedIndex > -1\n  const multi = isArray(value)\n  const emptyValue = (!multi ? !value : !value.length) && !hasPlaceholder\n  const selectedValues = descendants.values(\n    ({ node }) => multi && value.includes(node.dataset.value ?? \"\"),\n  )\n  const selectedIndexes = selectedValues.map(({ index }) => index)\n  const enabledValues = descendants.enabledValues(\n    ({ index }) => !selectedIndexes.includes(index),\n  )\n  const activedescendantId = descendants.value(focusedIndex)?.node.id\n\n  const validChildren = getValidChildren(children)\n\n  const computedChildren = useMemo(() => {\n    if (!validChildren.length && items.length) {\n      return items\n        .map((item, index) => {\n          if (\"value\" in item) {\n            const { label, value, ...props } = item\n\n            return (\n              <Option key={index} value={value} {...props}>\n                {label}\n              </Option>\n            )\n          } else if (\"items\" in item) {\n            const { items = [], label, ...props } = item\n\n            return (\n              <OptionGroup key={index} label={label} {...props}>\n                {items.map(({ label, value, ...props }, index) => (\n                  <Option key={index} value={value} {...props}>\n                    {label}\n                  </Option>\n                ))}\n              </OptionGroup>\n            )\n          }\n        })\n        .filter(Boolean) as ReactElement[]\n    } else {\n      return validChildren\n    }\n  }, [validChildren, items])\n\n  const empty =\n    !validChildren.length &&\n    !computedChildren.length &&\n    (!multi ? !hasPlaceholder : true)\n\n  const onFocusFirst = useCallback(() => {\n    const id = setTimeout(() => {\n      const first = descendants.enabledFirstValue()\n\n      if (!first) return\n\n      if (!multi || !omitSelectedValues) {\n        setFocusedIndex(first.index)\n      } else {\n        if (selectedIndexes.includes(first.index)) {\n          const enabledFirst = enabledValues[0]\n\n          setFocusedIndex(enabledFirst?.index ?? -1)\n        } else {\n          setFocusedIndex(first.index)\n        }\n      }\n    })\n\n    timeoutIds.current.add(id)\n  }, [descendants, enabledValues, multi, omitSelectedValues, selectedIndexes])\n\n  const onFocusLast = useCallback(() => {\n    const id = setTimeout(() => {\n      const last = descendants.enabledLastValue()\n\n      if (!last) return\n\n      if (!multi || !omitSelectedValues) {\n        setFocusedIndex(last.index)\n      } else {\n        if (selectedIndexes.includes(last.index)) {\n          const enabledLast = enabledValues.reverse()[0]\n\n          setFocusedIndex(enabledLast?.index ?? -1)\n        } else {\n          setFocusedIndex(last.index)\n        }\n      }\n    })\n\n    timeoutIds.current.add(id)\n  }, [descendants, enabledValues, multi, omitSelectedValues, selectedIndexes])\n\n  const onFocusSelected = useCallback(() => {\n    const id = setTimeout(() => {\n      const values = descendants.enabledValues()\n\n      const selected = values.find(({ node }) =>\n        !multi\n          ? node.dataset.value === value\n          : value.includes(node.dataset.value ?? \"\"),\n      )\n\n      if (selected) setFocusedIndex(selected.index)\n    })\n\n    timeoutIds.current.add(id)\n  }, [descendants, multi, value])\n\n  const onFocusNext = useCallback(() => {\n    const id = setTimeout(() => {\n      const next = descendants.enabledNextValue(focusedIndex)\n\n      if (!next) return\n\n      if (!multi || !omitSelectedValues) {\n        setFocusedIndex(next.index)\n      } else {\n        if (selectedIndexes.includes(next.index)) {\n          const enabledNext =\n            enabledValues.find(({ index }) => next.index < index) ??\n            enabledValues[0]\n\n          setFocusedIndex(enabledNext?.index ?? -1)\n        } else {\n          setFocusedIndex(next.index)\n        }\n      }\n    })\n\n    timeoutIds.current.add(id)\n  }, [\n    descendants,\n    enabledValues,\n    focusedIndex,\n    multi,\n    omitSelectedValues,\n    selectedIndexes,\n    setFocusedIndex,\n  ])\n\n  const onFocusPrev = useCallback(() => {\n    const id = setTimeout(() => {\n      const prev = descendants.enabledPrevValue(focusedIndex)\n\n      if (!prev) return\n\n      if (!multi || !omitSelectedValues) {\n        setFocusedIndex(prev.index)\n      } else {\n        if (selectedIndexes.includes(prev.index)) {\n          const enabledPrev =\n            enabledValues.reverse().find(({ index }) => index < prev.index) ??\n            enabledValues[0]\n\n          setFocusedIndex(enabledPrev?.index ?? -1)\n        } else {\n          setFocusedIndex(prev.index)\n        }\n      }\n    })\n\n    timeoutIds.current.add(id)\n  }, [\n    descendants,\n    enabledValues,\n    focusedIndex,\n    multi,\n    omitSelectedValues,\n    selectedIndexes,\n    setFocusedIndex,\n  ])\n\n  const onFocusFirstOrSelected =\n    emptyValue || omitSelectedValues ? onFocusFirst : onFocusSelected\n  const onFocusLastOrSelected =\n    emptyValue || omitSelectedValues ? onFocusLast : onFocusSelected\n\n  const onChangeLabel = useCallback(\n    (newValue: MaybeValue) => {\n      const values = descendants.values()\n\n      if (!values.length) return\n\n      const resolvedValues = isArray(newValue) ? newValue : [newValue]\n\n      const selectedLabel = resolvedValues\n        .map((value) => {\n          const { index, node } =\n            values.find(({ node }) => node.dataset.value === value) ?? {}\n\n          if (!node || (hasPlaceholder && index === 0)) return\n\n          const { innerHTML } =\n            Array.from(node.children).find(\n              (child) => child.getAttribute(\"data-label\") !== null,\n            ) ?? {}\n\n          return innerHTML\n        })\n        .filter((label) => !isUndefined(label))\n\n      setLabel((!multi ? selectedLabel[0] : selectedLabel) as T)\n    },\n    [descendants, multi, hasPlaceholder],\n  )\n\n  const onChange = useCallback(\n    (newValue: string) => {\n      setValue((prev) => {\n        if (!isArray(prev)) {\n          return newValue as T\n        } else {\n          const selected = prev.includes(newValue)\n\n          if (!selected) {\n            return [...prev, newValue] as T\n          } else {\n            return prev.filter((value) => value !== newValue) as T\n          }\n        }\n      })\n    },\n    [setValue],\n  )\n\n  const onClear = useCallback(\n    (ev: MouseEvent<HTMLDivElement>) => {\n      ev.stopPropagation()\n\n      setValue([] as unknown as T)\n      setLabel(undefined)\n    },\n    [setLabel, setValue],\n  )\n\n  const {\n    open,\n    onClose,\n    onOpen: onInternalOpen,\n  } = useDisclosure({\n    defaultIsOpen,\n    defaultOpen,\n    isOpen,\n    open: openProp,\n    onClose: onCloseProp,\n    onOpen: onOpenProp,\n  })\n\n  const onOpen = useCallback(() => {\n    if (formControlProps.disabled || formControlProps.readOnly) return\n\n    if (empty || allSelected) return\n\n    onInternalOpen()\n  }, [formControlProps, empty, allSelected, onInternalOpen])\n\n  const onSelect = useCallback(() => {\n    let enabledValue = descendants.value(focusedIndex)\n\n    if (\"disabled\" in (enabledValue?.node.dataset ?? {}))\n      enabledValue = undefined\n\n    if (!enabledValue) return\n\n    const value = enabledValue.node.dataset.value ?? \"\"\n\n    onChange(value)\n\n    if (closeOnSelect) onClose()\n\n    if (omitSelectedValues) onFocusNext()\n  }, [\n    closeOnSelect,\n    descendants,\n    focusedIndex,\n    omitSelectedValues,\n    onChange,\n    onClose,\n    onFocusNext,\n  ])\n\n  const onClick = useCallback(() => {\n    if (open) return\n\n    onOpen()\n\n    onFocusFirstOrSelected()\n  }, [open, onFocusFirstOrSelected, onOpen])\n\n  const onFocus = useCallback(() => {\n    if (open) return\n\n    onOpen()\n\n    onFocusFirstOrSelected()\n  }, [open, onFocusFirstOrSelected, onOpen])\n\n  const onBlur = useCallback(\n    (ev: FocusEvent<HTMLDivElement>) => {\n      const relatedTarget = getEventRelatedTarget(ev)\n\n      if (isContains(containerRef.current, relatedTarget)) return\n\n      if (!closeOnBlur) return\n\n      if (open) onClose()\n    },\n    [closeOnBlur, open, onClose],\n  )\n\n  const onKeyDown = useCallback(\n    (ev: KeyboardEvent<HTMLDivElement>) => {\n      if (ev.key === \" \") ev.key = ev.code\n\n      if (formControlProps.disabled || formControlProps.readOnly) return\n\n      const actions: { [key: string]: Function | undefined } = {\n        ArrowDown: focused\n          ? () => onFocusNext()\n          : !open\n            ? funcAll(onOpen, onFocusFirstOrSelected)\n            : undefined,\n        ArrowUp:\n          ev.altKey && open\n            ? onClose\n            : focused\n              ? () => onFocusPrev()\n              : !open\n                ? funcAll(onOpen, onFocusLastOrSelected)\n                : undefined,\n        End: open ? onFocusLast : undefined,\n        Enter: focused\n          ? onSelect\n          : !open\n            ? funcAll(onOpen, onFocusFirstOrSelected)\n            : undefined,\n        Escape: closeOnEsc ? onClose : undefined,\n        Home: open ? onFocusFirst : undefined,\n        Space: focused\n          ? onSelect\n          : !open\n            ? funcAll(onOpen, onFocusFirstOrSelected)\n            : undefined,\n      }\n\n      const action = actions[ev.key]\n\n      if (!action) return\n\n      ev.preventDefault()\n      ev.stopPropagation()\n      action()\n    },\n    [\n      formControlProps.disabled,\n      formControlProps.readOnly,\n      focused,\n      open,\n      onOpen,\n      onFocusFirstOrSelected,\n      onFocusLastOrSelected,\n      onSelect,\n      onFocusFirst,\n      onFocusLast,\n      closeOnEsc,\n      onClose,\n      onFocusNext,\n      onFocusPrev,\n    ],\n  )\n\n  useOutsideClick({\n    ref: containerRef,\n    enabled: open && closeOnBlur,\n    handler: onClose,\n  })\n\n  useEffect(() => {\n    if (!multi) return\n\n    if (!omitSelectedValues && isUndefined(maxSelectValues)) return\n\n    const all = value.length > 0 && value.length === descendants.count()\n    const max = value.length === maxSelectValues\n\n    if (all || max) {\n      onClose()\n      setAllSelected(true)\n    } else {\n      setAllSelected(false)\n    }\n  }, [omitSelectedValues, value, descendants, multi, onClose, maxSelectValues])\n\n  useSafeLayoutEffect(() => {\n    onChangeLabel(value)\n  }, [value])\n\n  useUpdateEffect(() => {\n    if (!open) setFocusedIndex(-1)\n  }, [open])\n\n  useUnmountEffect(() => {\n    timeoutIds.current.forEach((id) => clearTimeout(id))\n    timeoutIds.current.clear()\n  })\n\n  const getPopoverProps = useCallback(\n    (props?: PopoverProps): PopoverProps => ({\n      animation,\n      boundary,\n      closeDelay,\n      closeOnBlur,\n      duration,\n      eventListeners,\n      flip,\n      gutter,\n      lazy,\n      lazyBehavior,\n      matchWidth,\n      modifiers,\n      offset,\n      openDelay,\n      placement,\n      preventOverflow,\n      strategy,\n      ...props,\n      closeOnButton: false,\n      open,\n      trigger: \"never\",\n      onClose,\n      onOpen,\n    }),\n    [\n      closeOnBlur,\n      openDelay,\n      closeDelay,\n      lazy,\n      lazyBehavior,\n      animation,\n      duration,\n      offset,\n      gutter,\n      preventOverflow,\n      flip,\n      matchWidth,\n      boundary,\n      eventListeners,\n      strategy,\n      placement,\n      modifiers,\n      open,\n      onOpen,\n      onClose,\n    ],\n  )\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      ref: mergeRefs(containerRef, ref),\n      ...containerProps,\n      ...props,\n      ...formControlProps,\n      onBlur: handlerAll(props.onBlur, rest.onBlur, onBlur),\n      onClick: handlerAll(props.onClick, rest.onClick, onClick),\n    }),\n    [containerProps, formControlProps, onBlur, onClick, rest],\n  )\n\n  const getFieldProps: PropGetter = useCallback(\n    (\n      {\n        \"aria-label\": ariaLabel = placeholder ??\n          `Select ${multi ? \"one or more options.\" : \"an option.\"}`,\n        ...props\n      } = {},\n      ref = null,\n    ) => {\n      return {\n        ref: mergeRefs(fieldRef, ref),\n        \"aria-activedescendant\": activedescendantId,\n        \"aria-haspopup\": \"listbox\",\n        \"aria-label\": ariaLabel,\n        role: \"combobox\",\n        tabIndex: 0,\n        ...fieldProps,\n        ...props,\n        \"data-active\": dataAttr(open),\n        \"data-placeholder\": dataAttr(\n          !multi ? label === undefined : !label?.length,\n        ),\n        onFocus: handlerAll(props.onFocus, rest.onFocus, onFocus),\n        onKeyDown: handlerAll(props.onKeyDown, rest.onKeyDown, onKeyDown),\n      }\n    },\n    [\n      activedescendantId,\n      fieldProps,\n      open,\n      multi,\n      label,\n      placeholder,\n      rest,\n      onFocus,\n      onKeyDown,\n    ],\n  )\n\n  return {\n    children: computedChildren,\n    closeOnSelect,\n    containerRef,\n    descendants,\n    empty,\n    fieldRef,\n    focusedIndex,\n    label,\n    omitSelectedValues,\n    open,\n    placeholder,\n    placeholderInOptions,\n    setFocusedIndex,\n    value,\n    formControlProps,\n    getContainerProps,\n    getFieldProps,\n    getPopoverProps,\n    optionProps,\n    onChange,\n    onClear,\n    onClose,\n    onFocusFirst,\n    onFocusLast,\n    onFocusNext,\n    onFocusPrev,\n    onFocusSelected,\n    onOpen,\n  }\n}\n\nexport type UseSelectReturn = ReturnType<typeof useSelect>\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport type { FC, ReactElement } from \"react\"\nimport type { UseSelectOptionProps } from \"./use-select-option\"\nimport { forwardRef, ui } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useSelectContext } from \"./use-select\"\nimport { useSelectOption } from \"./use-select-option\"\n\ninterface OptionOptions {\n  /**\n   * The select option icon to use.\n   */\n  icon?: null | ReactElement\n}\n\nexport interface OptionProps extends UseSelectOptionProps, OptionOptions {}\n\nexport const Option = forwardRef<OptionProps, \"div\">(\n  ({ className, icon, ...rest }, ref) => {\n    const { styles } = useSelectContext()\n    const { children, customIcon, selected, getOptionProps } =\n      useSelectOption(rest)\n\n    icon ??= customIcon\n\n    const css: CSSUIObject = {\n      alignItems: \"center\",\n      color: \"inherit\",\n      display: \"flex\",\n      flex: \"0 0 auto\",\n      gap: \"0.75rem\",\n      outline: 0,\n      textAlign: \"start\",\n      textDecoration: \"none\",\n      userSelect: \"none\",\n      width: \"100%\",\n      ...styles.item,\n    }\n\n    return (\n      <ui.div\n        className={cx(\"ui-select__item\", className)}\n        __css={css}\n        {...getOptionProps({}, ref)}\n      >\n        {icon !== null ? (\n          <OptionIcon opacity={selected ? 1 : 0}>\n            {icon || <CheckIcon />}\n          </OptionIcon>\n        ) : null}\n\n        <ui.span style={{ flex: 1 }} data-label>\n          {children}\n        </ui.span>\n      </ui.div>\n    )\n  },\n)\n\nOption.displayName = \"Option\"\nOption.__ui__ = \"Option\"\n\ninterface OptionIconProps extends HTMLUIProps<\"span\"> {}\n\nconst OptionIcon = forwardRef<OptionIconProps, \"span\">(\n  ({ className, ...rest }, ref) => {\n    const { styles } = useSelectContext()\n\n    const css: CSSUIObject = {\n      alignItems: \"center\",\n      display: \"inline-flex\",\n      flexShrink: 0,\n      fontSize: \"0.85em\",\n      justifyContent: \"center\",\n      ...styles.itemIcon,\n    }\n\n    return (\n      <ui.span\n        ref={ref}\n        className={cx(\"ui-select__item__icon\", className)}\n        __css={css}\n        {...rest}\n      />\n    )\n  },\n)\n\nOptionIcon.displayName = \"OptionIcon\"\nOptionIcon.__ui__ = \"OptionIcon\"\n\nconst CheckIcon: FC = () => (\n  <svg height=\"1em\" viewBox=\"0 0 14 14\" width=\"1em\">\n    <polygon\n      fill=\"currentColor\"\n      points=\"5.5 11.9993304 14 3.49933039 12.5 2 5.5 8.99933039 1.5 4.9968652 0 6.49933039\"\n    />\n  </svg>\n)\n","import type { HTMLUIProps } from \"@yamada-ui/core\"\nimport type { UseSelectOptionGroupProps } from \"./use-select-option-group\"\nimport { forwardRef, ui } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useSelectContext } from \"./use-select\"\nimport { useSelectOptionGroup } from \"./use-select-option-group\"\n\ninterface OptionGroupOptions extends UseSelectOptionGroupProps {}\n\nexport interface OptionGroupProps extends HTMLUIProps, OptionGroupOptions {\n  /**\n   * Props for option group element.\n   */\n  labelProps?: HTMLUIProps<\"header\">\n}\n\nexport const OptionGroup = forwardRef<OptionGroupProps, \"div\">(\n  (\n    {\n      className,\n      children,\n      color,\n      h,\n      height = h,\n      minH,\n      minHeight = minH,\n      labelProps,\n      ...rest\n    },\n    ref,\n  ) => {\n    const { styles } = useSelectContext()\n    const { label, getContainerProps, getGroupProps, getLabelProps } =\n      useSelectOptionGroup(rest)\n\n    return (\n      <ui.section\n        className={cx(\"ui-select__item\", \"ui-select__item--group\", className)}\n        __css={{ color, h: \"fit-content\", w: \"100%\" }}\n        {...getContainerProps()}\n      >\n        <ui.header\n          className=\"ui-select__item__group-label\"\n          lineClamp={1}\n          __css={styles.groupLabel}\n          {...getLabelProps(labelProps)}\n        >\n          {label}\n        </ui.header>\n\n        <ui.div\n          {...getGroupProps({}, ref)}\n          className=\"ui-select__item__group\"\n          height={height}\n          minHeight={minHeight}\n          __css={styles.group}\n        >\n          {children}\n        </ui.div>\n      </ui.section>\n    )\n  },\n)\n\nOptionGroup.displayName = \"OptionGroup\"\nOptionGroup.__ui__ = \"OptionGroup\"\n","import type { HTMLUIProps, PropGetter } from \"@yamada-ui/core\"\nimport type { CSSProperties } from \"react\"\nimport { layoutStyleProperties } from \"@yamada-ui/core\"\nimport { isArray, mergeRefs, splitObject } from \"@yamada-ui/utils\"\nimport { useCallback, useId, useRef } from \"react\"\nimport { useSelectContext, useSelectDescendantsContext } from \"./use-select\"\n\nexport interface UseSelectOptionGroupProps extends HTMLUIProps {\n  /**\n   * The label of the option group.\n   */\n  label: string\n}\n\nexport const useSelectOptionGroup = ({\n  label,\n  ...rest\n}: UseSelectOptionGroupProps) => {\n  const { omitSelectedValues, value } = useSelectContext()\n  const descendants = useSelectDescendantsContext()\n  const labelRef = useRef<HTMLDivElement>(null)\n  const labelId = useId()\n  const values = descendants.values()\n  const multi = isArray(value)\n  const selectedValues =\n    multi && omitSelectedValues\n      ? descendants.values(({ node }) =>\n          value.includes(node.dataset.value ?? \"\"),\n        )\n      : []\n  const selectedIndexes = selectedValues.map(({ index }) => index)\n  const childValues = values.filter(\n    ({ index, node }) =>\n      node.parentElement?.dataset.label === label &&\n      !selectedIndexes.includes(index),\n  )\n  const empty = !childValues.length\n\n  const [containerProps, groupProps] = splitObject(rest, layoutStyleProperties)\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => {\n      const style: CSSProperties = {\n        border: \"0px\",\n        clip: \"rect(0px, 0px, 0px, 0px)\",\n        height: \"1px\",\n        margin: \"-1px\",\n        overflow: \"hidden\",\n        padding: \"0px\",\n        position: \"absolute\",\n        whiteSpace: \"nowrap\",\n        width: \"1px\",\n      }\n\n      return {\n        ref,\n        \"aria-labelledby\": labelRef.current?.id,\n        role: \"group\",\n        ...props,\n        ...containerProps,\n        style: empty ? style : undefined,\n      }\n    },\n    [containerProps, empty],\n  )\n\n  const getLabelProps: PropGetter = useCallback(\n    ({ id, ...props } = {}, ref = null) => {\n      return {\n        id: id ?? labelId,\n        ref: mergeRefs(ref, labelRef),\n        role: \"presentation\",\n        ...props,\n      }\n    },\n    [labelId],\n  )\n\n  const getGroupProps: PropGetter = useCallback(\n    (props = {}, ref = null) => {\n      return {\n        ref,\n        ...props,\n        ...groupProps,\n        \"data-label\": label,\n      }\n    },\n    [groupProps, label],\n  )\n\n  return {\n    label,\n    getContainerProps,\n    getGroupProps,\n    getLabelProps,\n  }\n}\n\nexport type UseSelectOptionGroupReturn = ReturnType<typeof useSelectOptionGroup>\n"],"mappings":"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","names":["dataAttr","handlerAll","isArray","isUndefined","mergeRefs","useCallback","useId","useMemo","useRef","layoutStyleProperties","isArray","mergeRefs","splitObject","useCallback","useRef","forwardRef","ui","cx","jsx","jsxs","forwardRef","ui","cx","jsx","splitObject","layoutStyleProperties","useRef","isArray","_a","label","value","props","items","index","useCallback","node","mergeRefs","useId","useRef","isArray","useMemo","value","isUndefined","useCallback","props","mergeRefs","dataAttr","handlerAll"]}