{"version":3,"sources":["../src/use-color-picker.ts"],"sourcesContent":["import type {\n  CSSUIObject,\n  HTMLUIProps,\n  PropGetter,\n  ThemeProps,\n} from \"@yamada-ui/core\"\nimport type { ComboBoxProps, PopoverProps } from \"@yamada-ui/popover\"\nimport type { ColorFormat } from \"@yamada-ui/utils\"\nimport type {\n  ChangeEvent,\n  CSSProperties,\n  FocusEvent,\n  KeyboardEvent,\n  MouseEvent,\n} from \"react\"\nimport type { ColorSelectorProps } from \"./color-selector\"\nimport type { UseColorSelectorBaseProps } from \"./use-color-selector\"\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 { useDisclosure } from \"@yamada-ui/use-disclosure\"\nimport { useEyeDropper } from \"@yamada-ui/use-eye-dropper\"\nimport { useOutsideClick } from \"@yamada-ui/use-outside-click\"\nimport {\n  calcFormat,\n  convertColor,\n  createContext,\n  dataAttr,\n  getEventRelatedTarget,\n  handlerAll,\n  isContains,\n  mergeRefs,\n  pickObject,\n  splitObject,\n  useUpdateEffect,\n} from \"@yamada-ui/utils\"\nimport { useCallback, useRef, useState } from \"react\"\n\nconst defaultFormatInput = (value: string) => value\n\ntype ColorSelectorThemeProps = ThemeProps<\"ColorSelector\">\n\ninterface ColorPickerContext {\n  styles: { [key: string]: CSSUIObject | undefined }\n  value: string\n}\n\nexport const [ColorPickerProvider, useColorPickerContext] =\n  createContext<ColorPickerContext>({\n    name: \"ColorPickerContext\",\n    errorMessage: `useColorPickerContext returned is 'undefined'. Seems you forgot to wrap the components in \"<ColorPicker />\"`,\n  })\n\ninterface UseColorPickerOptions {\n  /**\n   * If `true`, allows input.\n   *\n   * @default true\n   */\n  allowInput?: boolean\n  /**\n   * If `true`, the color swatch will be closed when value is selected.\n   */\n  closeOnSelectSwatch?: boolean\n  /**\n   * ColorScheme for the color selector component.\n   */\n  colorSelectorColorScheme?: ColorSelectorThemeProps[\"colorScheme\"]\n  /**\n   * Size for the color selector component.\n   */\n  colorSelectorSize?: ColorSelectorThemeProps[\"size\"]\n  /**\n   * Variant for the color selector component.\n   */\n  colorSelectorVariant?: ColorSelectorThemeProps[\"variant\"]\n  /**\n   * The initial value of the color selector.\n   */\n  defaultColor?: string\n  /**\n   * A callback function to format the input entered.\n   */\n  formatInput?: (value: string) => string\n  /**\n   * If `true` display the eye dropper component.\n   *\n   * @default false\n   */\n  withColorSelectorEyeDropper?: boolean\n  /**\n   * If `true`, display the result component.\n   *\n   * @default false\n   */\n  withResult?: boolean\n  /**\n   * Props for color selector component.\n   */\n  colorSelectorProps?: ColorSelectorProps\n}\n\nexport interface UseColorPickerProps\n  extends Omit<\n      HTMLUIProps<\"input\">,\n      | \"animation\"\n      | \"children\"\n      | \"defaultValue\"\n      | \"offset\"\n      | \"onChange\"\n      | \"size\"\n      | \"value\"\n    >,\n    Omit<UseColorSelectorBaseProps, \"id\" | \"name\">,\n    ComboBoxProps,\n    Pick<\n      ColorSelectorProps,\n      | \"swatches\"\n      | \"swatchesColumns\"\n      | \"swatchesLabel\"\n      | \"withChannel\"\n      | \"withPicker\"\n    >,\n    UseColorPickerOptions {}\n\nexport const useColorPicker = (props: UseColorPickerProps) => {\n  const {\n    allowInput = true,\n    animation,\n    boundary,\n    closeDelay,\n    closeOnBlur = true,\n    closeOnEsc = true,\n    closeOnSelectSwatch,\n    colorSelectorColorScheme,\n    colorSelectorSize,\n    colorSelectorVariant,\n    defaultColor,\n    defaultIsOpen,\n    defaultOpen,\n    defaultValue,\n    duration = 0.2,\n    eventListeners,\n    fallbackValue,\n    flip,\n    format,\n    formatInput = defaultFormatInput,\n    gutter,\n    isLazy,\n    isOpen: isOpen,\n    lazy = isLazy,\n    lazyBehavior,\n    matchWidth = colorSelectorSize === \"full\",\n    modifiers,\n    offset,\n    open: openProp,\n    openDelay,\n    placement = \"bottom-start\",\n    preventOverflow,\n    strategy,\n    swatches,\n    swatchesColumns,\n    swatchesLabel,\n    value: valueProp,\n    withChannel,\n    withColorSelectorEyeDropper = false,\n    withPicker,\n    withResult = false,\n    onChange: onChangeProp,\n    onChangeEnd,\n    onChangeStart,\n    onClick,\n    onClose: onCloseProp,\n    onKeyDown,\n    onOpen: onOpenProp,\n    onSwatchClick,\n    ...rest\n  } = useFormControlProps(props)\n  const {\n    \"aria-readonly\": _ariaReadonly,\n    onBlur,\n    onFocus,\n    ...formControlProps\n  } = pickObject(rest, formControlProperties)\n  const { disabled, readOnly } = formControlProps\n  const [containerProps, inputProps] = splitObject(rest, layoutStyleProperties)\n  const containerRef = useRef<HTMLDivElement>(null)\n  const fieldRef = useRef<HTMLInputElement>(null)\n  const { supported: eyeDropperSupported, onOpen: onEyeDropperOpen } =\n    useEyeDropper()\n  const [value, setValue] = useControllableState({\n    defaultValue,\n    value: valueProp,\n    onChange: onChangeProp,\n  })\n  const formatRef = useRef<ColorFormat>(\n    format ?? calcFormat(value || defaultColor || \"\"),\n  )\n  const inputFocused = useRef<boolean>(false)\n  const [inputValue, setInputValue] = useState<string>(value || \"\")\n  const {\n    open,\n    onClose: onInternalClose,\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 (disabled || readOnly) return\n\n    onInternalOpen()\n  }, [onInternalOpen, disabled, readOnly])\n\n  const onClose = useCallback(() => {\n    if (!open) return\n\n    const next = convertColor(value, fallbackValue)(formatRef.current)\n\n    setValue((prev) => (!next || prev === next ? prev : next))\n    setInputValue(formatInput(next ?? \"\"))\n\n    onInternalClose()\n  }, [\n    formatRef,\n    open,\n    setValue,\n    onInternalClose,\n    value,\n    formatInput,\n    setInputValue,\n    fallbackValue,\n  ])\n\n  const onContainerClick = useCallback(() => {\n    if (open) return\n\n    onOpen()\n  }, [open, onOpen])\n\n  const onInputFocus = useCallback(() => {\n    inputFocused.current = true\n\n    if (open) return\n\n    onOpen()\n  }, [open, onOpen])\n\n  const onInputBlur = useCallback(() => {\n    inputFocused.current = false\n  }, [])\n\n  const onContainerBlur = 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 onInputKeyDown = useCallback(\n    (ev: KeyboardEvent<HTMLInputElement>) => {\n      if (ev.key === \" \") ev.key = ev.code\n\n      if (disabled || readOnly) return\n\n      const actions: { [key: string]: Function | undefined } = {\n        Enter: !open ? onOpen : undefined,\n        Escape: closeOnEsc ? onClose : undefined,\n        Space: !open ? onOpen : 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    [disabled, readOnly, open, onOpen, closeOnEsc, onClose],\n  )\n\n  const onInputChange = useCallback(\n    (ev: ChangeEvent<HTMLInputElement>) => {\n      const value = ev.target.value\n\n      setInputValue(formatInput(value))\n      setValue(value)\n    },\n    [setInputValue, formatInput, setValue],\n  )\n\n  const onColorSelectorChange = useCallback(\n    (value: string) => {\n      setValue(value)\n\n      setTimeout(() => {\n        if (!inputFocused.current) setInputValue(formatInput(value))\n      })\n    },\n    [setValue, formatInput],\n  )\n\n  const onEyeDropperClick = useCallback(\n    async (ev: MouseEvent<HTMLButtonElement>) => {\n      ev.preventDefault()\n      ev.stopPropagation()\n\n      try {\n        const { sRGBHex } = (await onEyeDropperOpen()) ?? {}\n\n        if (!sRGBHex) return\n\n        onColorSelectorChange(sRGBHex)\n        onChangeEnd?.(sRGBHex)\n      } catch {}\n    },\n    [onEyeDropperOpen, onColorSelectorChange, onChangeEnd],\n  )\n\n  useOutsideClick({\n    ref: containerRef,\n    enabled: open && closeOnBlur,\n    handler: onClose,\n  })\n\n  useUpdateEffect(() => {\n    if (!format || !value) return\n\n    formatRef.current = format\n\n    const nextValue = convertColor(value, fallbackValue)(format)\n\n    if (!nextValue) return\n\n    setInputValue(formatInput(nextValue))\n    setValue(nextValue)\n  }, [format])\n\n  useUpdateEffect(() => {\n    if (inputFocused.current || !valueProp) return\n\n    setInputValue(formatInput(valueProp))\n  }, [valueProp])\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, onBlur, onContainerBlur),\n      onClick: handlerAll(props.onClick, onClick, onContainerClick),\n    }),\n    [\n      containerProps,\n      formControlProps,\n      onBlur,\n      onClick,\n      onContainerBlur,\n      onContainerClick,\n    ],\n  )\n\n  const getFieldProps: PropGetter = useCallback(\n    (props = {}, ref = null) => ({\n      \"aria-haspopup\": \"dialog\",\n      \"data-active\": dataAttr(open),\n      \"data-not-allowed\": dataAttr(!readOnly && !disabled && !allowInput),\n      role: \"combobox\",\n      tabIndex: -1,\n      ...formControlProps,\n      ...props,\n      ref: mergeRefs(fieldRef, ref),\n      onBlur: handlerAll(props.onFocus, onInputBlur),\n      onFocus: handlerAll(props.onFocus, onFocus, onInputFocus),\n      onKeyDown: handlerAll(props.onKeyDown, onKeyDown, onInputKeyDown),\n    }),\n    [\n      allowInput,\n      formControlProps,\n      open,\n      readOnly,\n      disabled,\n      onInputBlur,\n      onFocus,\n      onInputFocus,\n      onKeyDown,\n      onInputKeyDown,\n    ],\n  )\n\n  const getInputProps: PropGetter<\"input\"> = useCallback(\n    (props = {}, ref = null) => {\n      const style: CSSProperties = {\n        ...props.style,\n        ...inputProps.style,\n        ...(disabled || !allowInput ? { pointerEvents: \"none\" } : {}),\n      }\n\n      return {\n        autoComplete: \"off\",\n        tabIndex: !allowInput ? -1 : 0,\n        ...formControlProps,\n        ...inputProps,\n        ...props,\n        ref,\n        style,\n        value: inputValue,\n        onChange: handlerAll(props.onChange, onInputChange),\n      }\n    },\n    [\n      inputProps,\n      allowInput,\n      disabled,\n      formControlProps,\n      inputValue,\n      onInputChange,\n    ],\n  )\n\n  const getEyeDropperProps: PropGetter<\"button\"> = useCallback(\n    (props = {}, ref = null) => ({\n      \"aria-label\": \"Pick a color\",\n      disabled,\n      ...props,\n      ref,\n      style: { ...props.style, pointerEvents: readOnly ? \"none\" : undefined },\n      onClick: handlerAll(props.onClick, onEyeDropperClick),\n    }),\n    [disabled, onEyeDropperClick, readOnly],\n  )\n\n  const getSelectorProps: PropGetter<ColorSelectorProps> = useCallback(\n    (props) => ({\n      ...formControlProps,\n      ...props,\n      colorScheme: colorSelectorColorScheme,\n      size: colorSelectorSize,\n      variant: colorSelectorVariant,\n      defaultValue: defaultColor,\n      fallbackValue,\n      format: formatRef.current,\n      swatches,\n      swatchesColumns,\n      swatchesLabel,\n      value,\n      withChannel,\n      withEyeDropper: withColorSelectorEyeDropper,\n      withPicker,\n      withResult,\n      onChange: onColorSelectorChange,\n      onChangeEnd,\n      onChangeStart,\n      onSwatchClick: handlerAll(\n        onSwatchClick,\n        closeOnSelectSwatch ? onClose : undefined,\n      ),\n    }),\n    [\n      formControlProps,\n      value,\n      fallbackValue,\n      defaultColor,\n      onColorSelectorChange,\n      onChangeStart,\n      onChangeEnd,\n      onSwatchClick,\n      onClose,\n      closeOnSelectSwatch,\n      formatRef,\n      withPicker,\n      withChannel,\n      withResult,\n      withColorSelectorEyeDropper,\n      swatchesLabel,\n      swatches,\n      swatchesColumns,\n      colorSelectorColorScheme,\n      colorSelectorSize,\n      colorSelectorVariant,\n    ],\n  )\n\n  return {\n    allowInput,\n    eyeDropperSupported,\n    value,\n    getContainerProps,\n    getEyeDropperProps,\n    getFieldProps,\n    getInputProps,\n    getPopoverProps,\n    getSelectorProps,\n    onClose,\n  }\n}\n\nexport type UseColorPickerReturn = ReturnType<typeof useColorPicker>\n"],"mappings":"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","names":["value","props"]}