{"version":3,"sources":["../src/use-checkbox.ts","../../../utilities/object-utils/src/omit.ts"],"sourcesContent":["import { useFormControlProps } from \"@chakra-ui/form-control\"\nimport { useSafeLayoutEffect } from \"@chakra-ui/react-use-safe-layout-effect\"\nimport { useUpdateEffect } from \"@chakra-ui/react-use-update-effect\"\nimport { useCallbackRef } from \"@chakra-ui/react-use-callback-ref\"\nimport type { PropGetter } from \"@chakra-ui/react-types\"\nimport { mergeRefs } from \"@chakra-ui/react-use-merge-refs\"\nimport { callAllHandlers, dataAttr } from \"@chakra-ui/shared-utils\"\nimport { omit } from \"@chakra-ui/object-utils\"\nimport { visuallyHiddenStyle } from \"@chakra-ui/visually-hidden\"\nimport { trackFocusVisible } from \"@zag-js/focus-visible\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { CheckboxState, UseCheckboxProps } from \"./checkbox-types\"\n\n/**\n * useCheckbox that provides all the state and focus management logic\n * for a checkbox. It is consumed by the `Checkbox` component\n *\n * @see Docs https://chakra-ui.com/checkbox#hooks\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/\n */\nexport function useCheckbox(props: UseCheckboxProps = {}) {\n  const formControlProps = useFormControlProps(props)\n  const {\n    isDisabled,\n    isReadOnly,\n    isRequired,\n    isInvalid,\n    id,\n    onBlur,\n    onFocus,\n    \"aria-describedby\": ariaDescribedBy,\n  } = formControlProps\n\n  const {\n    defaultChecked,\n    isChecked: checkedProp,\n    isFocusable,\n    onChange,\n    isIndeterminate,\n    name,\n    value,\n    tabIndex = undefined,\n    \"aria-label\": ariaLabel,\n    \"aria-labelledby\": ariaLabelledBy,\n    \"aria-invalid\": ariaInvalid,\n    ...rest\n  } = props\n\n  const htmlProps = omit(rest, [\n    \"isDisabled\",\n    \"isReadOnly\",\n    \"isRequired\",\n    \"isInvalid\",\n    \"id\",\n    \"onBlur\",\n    \"onFocus\",\n    \"aria-describedby\",\n  ])\n\n  const onChangeProp = useCallbackRef(onChange)\n  const onBlurProp = useCallbackRef(onBlur)\n  const onFocusProp = useCallbackRef(onFocus)\n\n  const [isFocusVisible, setIsFocusVisible] = useState(false)\n  const [isFocused, setFocused] = useState(false)\n  const [isHovered, setHovered] = useState(false)\n  const [isActive, setActive] = useState(false)\n\n  useEffect(() => {\n    return trackFocusVisible(setIsFocusVisible)\n  }, [])\n\n  const inputRef = useRef<HTMLInputElement>(null)\n  const [rootIsLabelElement, setRootIsLabelElement] = useState(true)\n\n  const [checkedState, setCheckedState] = useState(!!defaultChecked)\n\n  const isControlled = checkedProp !== undefined\n  const isChecked = isControlled ? checkedProp : checkedState\n\n  const handleChange = useCallback(\n    (event: React.ChangeEvent<HTMLInputElement>) => {\n      if (isReadOnly || isDisabled) {\n        event.preventDefault()\n        return\n      }\n\n      if (!isControlled) {\n        if (isChecked) {\n          setCheckedState(event.target.checked)\n        } else {\n          setCheckedState(isIndeterminate ? true : event.target.checked)\n        }\n      }\n\n      onChangeProp?.(event)\n    },\n    [\n      isReadOnly,\n      isDisabled,\n      isChecked,\n      isControlled,\n      isIndeterminate,\n      onChangeProp,\n    ],\n  )\n\n  useSafeLayoutEffect(() => {\n    if (inputRef.current) {\n      inputRef.current.indeterminate = Boolean(isIndeterminate)\n    }\n  }, [isIndeterminate])\n\n  useUpdateEffect(() => {\n    if (isDisabled) {\n      setFocused(false)\n    }\n  }, [isDisabled, setFocused])\n\n  /**\n   * HTMLFormElement.reset() should reset the checkbox state\n   */\n  useSafeLayoutEffect(() => {\n    const el = inputRef.current\n    if (!el?.form) return\n    const formResetListener = () => {\n      setCheckedState(!!defaultChecked)\n    }\n    el.form.addEventListener(\"reset\", formResetListener)\n    return () => el.form?.removeEventListener(\"reset\", formResetListener)\n  }, [])\n\n  const trulyDisabled = isDisabled && !isFocusable\n\n  const onKeyDown = useCallback(\n    (event: React.KeyboardEvent) => {\n      if (event.key === \" \") {\n        setActive(true)\n      }\n    },\n    [setActive],\n  )\n\n  const onKeyUp = useCallback(\n    (event: React.KeyboardEvent) => {\n      if (event.key === \" \") {\n        setActive(false)\n      }\n    },\n    [setActive],\n  )\n\n  /**\n   * Sync state with uncontrolled form libraries like `react-hook-form`.\n   *\n   * These libraries set the checked value for input fields\n   * using their refs. For the checkbox, it sets `ref.current.checked = true | false` directly.\n   *\n   * This means the `isChecked` state will get out of sync with `ref.current.checked`,\n   * even though the input validation with work, the UI will not be up to date.\n   *\n   * Let's correct that by checking and syncing the state accordingly.\n   */\n  useSafeLayoutEffect(() => {\n    if (!inputRef.current) return\n    const notInSync = inputRef.current.checked !== isChecked\n    if (notInSync) {\n      setCheckedState(inputRef.current.checked)\n    }\n  }, [inputRef.current])\n\n  const getCheckboxProps: PropGetter = useCallback(\n    (props = {}, forwardedRef = null) => {\n      const onPressDown = (event: React.MouseEvent) => {\n        // On mousedown, the input blurs and returns focus to the `body`,\n        // we need to prevent this. Native checkboxes keeps focus on `input`\n        if (isFocused) {\n          event.preventDefault()\n        }\n        setActive(true)\n      }\n\n      return {\n        ...props,\n        ref: forwardedRef,\n        \"data-active\": dataAttr(isActive),\n        \"data-hover\": dataAttr(isHovered),\n        \"data-checked\": dataAttr(isChecked),\n        \"data-focus\": dataAttr(isFocused),\n        \"data-focus-visible\": dataAttr(isFocused && isFocusVisible),\n        \"data-indeterminate\": dataAttr(isIndeterminate),\n        \"data-disabled\": dataAttr(isDisabled),\n        \"data-invalid\": dataAttr(isInvalid),\n        \"data-readonly\": dataAttr(isReadOnly),\n        \"aria-hidden\": true,\n        onMouseDown: callAllHandlers(props.onMouseDown, onPressDown),\n        onMouseUp: callAllHandlers(props.onMouseUp, () => setActive(false)),\n        onMouseEnter: callAllHandlers(props.onMouseEnter, () =>\n          setHovered(true),\n        ),\n        onMouseLeave: callAllHandlers(props.onMouseLeave, () =>\n          setHovered(false),\n        ),\n      }\n    },\n    [\n      isActive,\n      isChecked,\n      isDisabled,\n      isFocused,\n      isFocusVisible,\n      isHovered,\n      isIndeterminate,\n      isInvalid,\n      isReadOnly,\n    ],\n  )\n\n  const getIndicatorProps: PropGetter = useCallback(\n    (props = {}, forwardedRef = null) => ({\n      ...props,\n      ref: forwardedRef,\n      \"data-active\": dataAttr(isActive),\n      \"data-hover\": dataAttr(isHovered),\n      \"data-checked\": dataAttr(isChecked),\n      \"data-focus\": dataAttr(isFocused),\n      \"data-focus-visible\": dataAttr(isFocused && isFocusVisible),\n      \"data-indeterminate\": dataAttr(isIndeterminate),\n      \"data-disabled\": dataAttr(isDisabled),\n      \"data-invalid\": dataAttr(isInvalid),\n      \"data-readonly\": dataAttr(isReadOnly),\n    }),\n    [\n      isActive,\n      isChecked,\n      isDisabled,\n      isFocused,\n      isFocusVisible,\n      isHovered,\n      isIndeterminate,\n      isInvalid,\n      isReadOnly,\n    ],\n  )\n\n  const getRootProps: PropGetter = useCallback(\n    (props = {}, forwardedRef = null) => ({\n      ...htmlProps,\n      ...props,\n      ref: mergeRefs(forwardedRef, (node: HTMLElement) => {\n        if (!node) return\n        setRootIsLabelElement(node.tagName === \"LABEL\")\n      }),\n      onClick: callAllHandlers(props.onClick, () => {\n        /**\n         * Accessibility:\n         *\n         * Ideally, `getRootProps` should be spread unto a `label` element.\n         *\n         * If the element was changed using the `as` prop or changing\n         * the dom node `getRootProps` is spread unto (to a `div` or `span`), we'll trigger\n         * click on the input when the element is clicked.\n         * @see Issue https://github.com/chakra-ui/chakra-ui/issues/3480\n         */\n        if (!rootIsLabelElement) {\n          inputRef.current?.click()\n          requestAnimationFrame(() => {\n            inputRef.current?.focus({ preventScroll: true })\n          })\n        }\n      }),\n      \"data-disabled\": dataAttr(isDisabled),\n      \"data-checked\": dataAttr(isChecked),\n      \"data-invalid\": dataAttr(isInvalid),\n    }),\n    [htmlProps, isDisabled, isChecked, isInvalid, rootIsLabelElement],\n  )\n\n  const getInputProps: PropGetter = useCallback(\n    (props = {}, forwardedRef = null) => {\n      return {\n        ...props,\n        ref: mergeRefs(inputRef, forwardedRef),\n        type: \"checkbox\",\n        name,\n        value,\n        id,\n        tabIndex,\n        onChange: callAllHandlers(props.onChange, handleChange),\n        onBlur: callAllHandlers(props.onBlur, onBlurProp, () =>\n          setFocused(false),\n        ),\n        onFocus: callAllHandlers(props.onFocus, onFocusProp, () =>\n          setFocused(true),\n        ),\n        onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n        onKeyUp: callAllHandlers(props.onKeyUp, onKeyUp),\n        required: isRequired,\n        checked: isChecked,\n        disabled: trulyDisabled,\n        readOnly: isReadOnly,\n        \"aria-label\": ariaLabel,\n        \"aria-labelledby\": ariaLabelledBy,\n        \"aria-invalid\": ariaInvalid ? Boolean(ariaInvalid) : isInvalid,\n        \"aria-describedby\": ariaDescribedBy,\n        \"aria-disabled\": isDisabled,\n        style: visuallyHiddenStyle,\n      }\n    },\n    [\n      name,\n      value,\n      id,\n      handleChange,\n      onBlurProp,\n      onFocusProp,\n      onKeyDown,\n      onKeyUp,\n      isRequired,\n      isChecked,\n      trulyDisabled,\n      isReadOnly,\n      ariaLabel,\n      ariaLabelledBy,\n      ariaInvalid,\n      isInvalid,\n      ariaDescribedBy,\n      isDisabled,\n      tabIndex,\n    ],\n  )\n\n  const getLabelProps: PropGetter = useCallback(\n    (props = {}, forwardedRef = null) => ({\n      ...props,\n      ref: forwardedRef,\n      onMouseDown: callAllHandlers(props.onMouseDown, stopEvent),\n      \"data-disabled\": dataAttr(isDisabled),\n      \"data-checked\": dataAttr(isChecked),\n      \"data-invalid\": dataAttr(isInvalid),\n    }),\n    [isChecked, isDisabled, isInvalid],\n  )\n\n  const state: CheckboxState = {\n    isInvalid,\n    isFocused,\n    isChecked,\n    isActive,\n    isHovered,\n    isIndeterminate,\n    isDisabled,\n    isReadOnly,\n    isRequired,\n  }\n\n  return {\n    state,\n    getRootProps,\n    getCheckboxProps,\n    getIndicatorProps,\n    getInputProps,\n    getLabelProps,\n    htmlProps,\n  }\n}\n\n/**\n * Prevent `onBlur` being fired when the checkbox label is touched\n */\nfunction stopEvent(event: React.SyntheticEvent) {\n  event.preventDefault()\n  event.stopPropagation()\n}\n\nexport type UseCheckboxReturn = ReturnType<typeof useCheckbox>\n","export function omit<T extends Record<string, any>, K extends keyof T>(\n  object: T,\n  keysToOmit: K[] = [],\n) {\n  const clone: Record<string, unknown> = Object.assign({}, object)\n  for (const key of keysToOmit) {\n    if (key in clone) {\n      delete clone[key as string]\n    }\n  }\n  return clone as Omit<T, K>\n}\n"],"mappings":"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","names":["props","_a"]}