{"ast":null,"code":"import * as React from 'react';\nimport React__default, { useState, useMemo, useCallback, useEffect, useRef } from 'react';\nimport { u as useCallbackRef, a as useSafeLayoutEffect, b as useEventListener } from './use-animation-state-5054a9f7.esm.js';\nexport { c as useAnimationState, u as useCallbackRef, b as useEventListener, a as useSafeLayoutEffect } from './use-animation-state-5054a9f7.esm.js';\nimport copy from 'copy-to-clipboard';\nimport { runIfFn, getBox, callAllHandlers, wrapPointerEventHandler, getPointerEventName, hasFocusWithin, focus, getActiveElement, contains, isTabbable, detectBrowser, isRefObject, isActiveElement, getOwnerDocument, getAllFocusable, noop, PanSession } from '@chakra-ui/utils';\n\n/**\n * React hook to manage boolean (on - off) states\n *\n * @param initialState the initial boolean state value\n */\nfunction useBoolean(initialState) {\n  if (initialState === void 0) {\n    initialState = false;\n  }\n  var _useState = useState(initialState),\n    value = _useState[0],\n    setValue = _useState[1];\n  var callbacks = useMemo(function () {\n    return {\n      on: function on() {\n        return setValue(true);\n      },\n      off: function off() {\n        return setValue(false);\n      },\n      toggle: function toggle() {\n        return setValue(function (prev) {\n          return !prev;\n        });\n      }\n    };\n  }, []);\n  return [value, callbacks];\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n  return target;\n}\nvar _excluded = [\"timeout\"];\n\n/**\n * React hook to copy content to clipboard\n *\n * @param text the text or value to copy\n * @param {Number} [optionsOrTimeout=1500] optionsOrTimeout - delay (in ms) to switch back to initial state once copied.\n * @param {Object} optionsOrTimeout\n * @param {string} optionsOrTimeout.format - set the desired MIME type\n * @param {number} optionsOrTimeout.timeout - delay (in ms) to switch back to initial state once copied.\n */\nfunction useClipboard(text, optionsOrTimeout) {\n  if (optionsOrTimeout === void 0) {\n    optionsOrTimeout = {};\n  }\n  var _useState = useState(false),\n    hasCopied = _useState[0],\n    setHasCopied = _useState[1];\n  var _ref = typeof optionsOrTimeout === \"number\" ? {\n      timeout: optionsOrTimeout\n    } : optionsOrTimeout,\n    _ref$timeout = _ref.timeout,\n    timeout = _ref$timeout === void 0 ? 1500 : _ref$timeout,\n    copyOptions = _objectWithoutPropertiesLoose(_ref, _excluded);\n  var onCopy = useCallback(function () {\n    var didCopy = copy(text, copyOptions);\n    setHasCopied(didCopy);\n  }, [text, copyOptions]);\n  useEffect(function () {\n    var timeoutId = null;\n    if (hasCopied) {\n      timeoutId = window.setTimeout(function () {\n        setHasCopied(false);\n      }, timeout);\n    }\n    return function () {\n      if (timeoutId) {\n        window.clearTimeout(timeoutId);\n      }\n    };\n  }, [timeout, hasCopied]);\n  return {\n    value: text,\n    onCopy: onCopy,\n    hasCopied: hasCopied\n  };\n}\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConst`\n * you can ensure that initializers don't execute twice or more.\n */\nfunction useConst(init) {\n  // Use useRef to store the value because it's the least expensive built-in\n  // hook that works here. We could also use `useState` but that's more\n  // expensive internally due to reducer handling which we don't need.\n  var ref = useRef(null);\n  if (ref.current === null) {\n    ref.current = typeof init === \"function\" ? init() : init;\n  }\n  return ref.current;\n}\nfunction useControllableProp(prop, state) {\n  var isControlled = prop !== undefined;\n  var value = isControlled && typeof prop !== \"undefined\" ? prop : state;\n  return [isControlled, value];\n}\n\n/**\n * React hook for using controlling component state.\n * @param props\n */\nfunction useControllableState(props) {\n  var valueProp = props.value,\n    defaultValue = props.defaultValue,\n    onChange = props.onChange,\n    _props$shouldUpdate = props.shouldUpdate,\n    shouldUpdate = _props$shouldUpdate === void 0 ? function (prev, next) {\n      return prev !== next;\n    } : _props$shouldUpdate;\n  var onChangeProp = useCallbackRef(onChange);\n  var shouldUpdateProp = useCallbackRef(shouldUpdate);\n  var _React$useState = React.useState(defaultValue),\n    valueState = _React$useState[0],\n    setValue = _React$useState[1];\n  var isControlled = valueProp !== undefined;\n  var value = isControlled ? valueProp : valueState;\n  var updateValue = React.useCallback(function (next) {\n    var nextValue = runIfFn(next, value);\n    if (!shouldUpdateProp(value, nextValue)) {\n      return;\n    }\n    if (!isControlled) {\n      setValue(nextValue);\n    }\n    onChangeProp(nextValue);\n  }, [isControlled, onChangeProp, value, shouldUpdateProp]);\n  return [value, updateValue];\n}\n\n/**\n * React hook to measure a component's dimensions\n *\n * @param ref ref of the component to measure\n * @param observe if `true`, resize and scroll observers will be turned on\n */\n\nfunction useDimensions(ref, observe) {\n  var _React$useState = React.useState(null),\n    dimensions = _React$useState[0],\n    setDimensions = _React$useState[1];\n  var rafId = React.useRef();\n  useSafeLayoutEffect(function () {\n    if (!ref.current) return undefined;\n    var node = ref.current;\n    function measure() {\n      rafId.current = requestAnimationFrame(function () {\n        var boxModel = getBox(node);\n        setDimensions(boxModel);\n      });\n    }\n    measure();\n    if (observe) {\n      window.addEventListener(\"resize\", measure);\n      window.addEventListener(\"scroll\", measure);\n    }\n    return function () {\n      if (observe) {\n        window.removeEventListener(\"resize\", measure);\n        window.removeEventListener(\"scroll\", measure);\n      }\n      if (rafId.current) {\n        cancelAnimationFrame(rafId.current);\n      }\n    };\n  }, [observe]);\n  return dimensions;\n}\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\n\n// This implementation is heavily inspired by react-aria's implementation\nvar defaultIdContext = {\n  current: 1\n};\nvar IdContext = /*#__PURE__*/React.createContext(defaultIdContext);\nvar IdProvider = /*#__PURE__*/React.memo(function (_ref) {\n  var children = _ref.children;\n  return /*#__PURE__*/React.createElement(IdContext.Provider, {\n    value: {\n      current: 1\n    }\n  }, children);\n});\nvar genId = function genId(context) {\n  return context.current++;\n};\nfunction useId(idProp, prefix) {\n  var context = React.useContext(IdContext);\n  /*\n      We get the current id by context and generate a new id inside useEffect so that the side effects occur during the commit phase,\n      Doing this prevents the side effects from being called twice when used with strict mode (render() in function component is the function body), which ends up making the server with the client not synchronized\n  */\n\n  var _React$useState = React.useState(context.current),\n    id = _React$useState[0],\n    setId = _React$useState[1];\n  React.useEffect(function () {\n    setId(genId(context));\n  }, [context]);\n  return React.useMemo(function () {\n    return idProp || [prefix, id].filter(Boolean).join(\"-\");\n  }, [idProp, prefix, id]);\n}\n/**\n * React hook to generate ids for use in compound components\n *\n * @param idProp the external id passed from the user\n * @param prefixes array of prefixes to use\n *\n * @example\n *\n * ```js\n * const [buttonId, menuId] = useIds(\"52\", \"button\", \"menu\")\n *\n * // buttonId will be `button-52`\n * // menuId will be `menu-52`\n * ```\n */\n\nfunction useIds(idProp) {\n  for (var _len = arguments.length, prefixes = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    prefixes[_key - 1] = arguments[_key];\n  }\n  var id = useId(idProp);\n  return React.useMemo(function () {\n    return prefixes.map(function (prefix) {\n      return prefix + \"-\" + id;\n    });\n  }, [id, prefixes]);\n}\n/**\n * Used to generate an id, and after render, check if that id is rendered, so we know\n * if we can use it in places such as `aria-labelledby`.\n *\n * @param partId - The unique id for the component part\n *\n * @example\n * const { ref, id } = useOptionalPart<HTMLInputElement>(`${id}-label`)\n */\n\nfunction useOptionalPart(partId) {\n  var _React$useState2 = React.useState(null),\n    id = _React$useState2[0],\n    setId = _React$useState2[1];\n  var ref = React.useCallback(function (node) {\n    setId(node ? partId : null);\n  }, [partId]);\n  return {\n    ref: ref,\n    id: id,\n    isRendered: Boolean(id)\n  };\n}\nfunction useDisclosure(props) {\n  if (props === void 0) {\n    props = {};\n  }\n  var _props = props,\n    onCloseProp = _props.onClose,\n    onOpenProp = _props.onOpen,\n    isOpenProp = _props.isOpen,\n    idProp = _props.id;\n  var onOpenPropCallbackRef = useCallbackRef(onOpenProp);\n  var onClosePropCallbackRef = useCallbackRef(onCloseProp);\n  var _React$useState = React.useState(props.defaultIsOpen || false),\n    isOpenState = _React$useState[0],\n    setIsOpen = _React$useState[1];\n  var _useControllableProp = useControllableProp(isOpenProp, isOpenState),\n    isControlled = _useControllableProp[0],\n    isOpen = _useControllableProp[1];\n  var id = useId(idProp, \"disclosure\");\n  var onClose = React.useCallback(function () {\n    if (!isControlled) {\n      setIsOpen(false);\n    }\n    onClosePropCallbackRef == null ? void 0 : onClosePropCallbackRef();\n  }, [isControlled, onClosePropCallbackRef]);\n  var onOpen = React.useCallback(function () {\n    if (!isControlled) {\n      setIsOpen(true);\n    }\n    onOpenPropCallbackRef == null ? void 0 : onOpenPropCallbackRef();\n  }, [isControlled, onOpenPropCallbackRef]);\n  var onToggle = React.useCallback(function () {\n    var action = isOpen ? onClose : onOpen;\n    action();\n  }, [isOpen, onOpen, onClose]);\n  return {\n    isOpen: !!isOpen,\n    onOpen: onOpen,\n    onClose: onClose,\n    onToggle: onToggle,\n    isControlled: isControlled,\n    getButtonProps: function getButtonProps(props) {\n      if (props === void 0) {\n        props = {};\n      }\n      return _extends({}, props, {\n        \"aria-expanded\": \"true\",\n        \"aria-controls\": id,\n        onClick: callAllHandlers(props.onClick, onToggle)\n      });\n    },\n    getDisclosureProps: function getDisclosureProps(props) {\n      if (props === void 0) {\n        props = {};\n      }\n      return _extends({}, props, {\n        hidden: !isOpen,\n        id: id\n      });\n    }\n  };\n}\n\n/**\n * React hook for performant `useCallbacks`\n *\n * @see https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @deprecated Use `useCallbackRef` instead. `useEventCallback` will be removed\n * in a future version.\n */\n\nfunction useEventCallback(callback) {\n  var ref = React.useRef(callback);\n  useSafeLayoutEffect(function () {\n    ref.current = callback;\n  });\n  return React.useCallback(function (event) {\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n    return ref.current.apply(ref, [event].concat(args));\n  }, []);\n}\nfunction useEventListenerMap() {\n  var listeners = React.useRef(new Map());\n  var currentListeners = listeners.current;\n  var add = React.useCallback(function (el, type, listener, options) {\n    var pointerEventListener = wrapPointerEventHandler(listener, type === \"pointerdown\");\n    listeners.current.set(listener, {\n      __listener: pointerEventListener,\n      type: getPointerEventName(type),\n      el: el,\n      options: options\n    });\n    el.addEventListener(type, pointerEventListener, options);\n  }, []);\n  var remove = React.useCallback(function (el, type, listener, options) {\n    var _listeners$current$ge = listeners.current.get(listener),\n      pointerEventListener = _listeners$current$ge.__listener;\n    el.removeEventListener(type, pointerEventListener, options);\n    listeners.current[\"delete\"](pointerEventListener);\n  }, []);\n  React.useEffect(function () {\n    return function () {\n      currentListeners.forEach(function (value, key) {\n        remove(value.el, value.type, key, value.options);\n      });\n    };\n  }, [remove, currentListeners]);\n  return {\n    add: add,\n    remove: remove\n  };\n}\n\n/**\n * React effect hook that invokes only on update.\n * It doesn't invoke on mount\n */\n\nvar useUpdateEffect = function useUpdateEffect(effect, deps) {\n  var mounted = React.useRef(false);\n  React.useEffect(function () {\n    if (mounted.current) {\n      return effect();\n    }\n    mounted.current = true;\n    return undefined; // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, deps);\n  return mounted.current;\n};\n\n/**\n * React hook to focus an element conditionally\n *\n * @param ref the ref of the element to focus\n * @param options focus management options\n */\nfunction useFocusEffect(ref, options) {\n  var shouldFocus = options.shouldFocus,\n    preventScroll = options.preventScroll;\n  useUpdateEffect(function () {\n    var node = ref.current;\n    if (!node || !shouldFocus) return;\n    if (!hasFocusWithin(node)) {\n      focus(node, {\n        preventScroll: preventScroll,\n        nextTick: true\n      });\n    }\n  }, [shouldFocus, ref, preventScroll]);\n}\nfunction preventReturnFocus(containerRef) {\n  var el = containerRef.current;\n  if (!el) return false;\n  var activeElement = getActiveElement(el);\n  if (!activeElement) return false;\n  if (contains(el, activeElement)) return false;\n  if (isTabbable(activeElement)) return true;\n  return false;\n}\n/**\n * Popover hook to manage the focus when the popover closes or hides.\n *\n * We either want to return focus back to the popover trigger or\n * let focus proceed normally if user moved to another interactive\n * element in the viewport.\n */\n\nfunction useFocusOnHide(containerRef, options) {\n  var shouldFocusProp = options.shouldFocus,\n    visible = options.visible,\n    focusRef = options.focusRef;\n  var shouldFocus = shouldFocusProp && !visible;\n  useUpdateEffect(function () {\n    if (!shouldFocus) return;\n    if (preventReturnFocus(containerRef)) {\n      return;\n    }\n    var el = (focusRef == null ? void 0 : focusRef.current) || containerRef.current;\n    if (el) {\n      focus(el, {\n        nextTick: true\n      });\n    }\n  }, [shouldFocus, containerRef, focusRef]);\n}\n\n/**\n * Credit goes to `framer-motion` of this useful utilities.\n * License can be found here: https://github.com/framer/motion\n */\n/**\n * @internal\n */\n\nfunction usePointerEvent(env, eventName, handler, options) {\n  return useEventListener(getPointerEventName(eventName), wrapPointerEventHandler(handler, eventName === \"pointerdown\"), env, options);\n}\n\n/**\n * Polyfill to get `relatedTarget` working correctly consistently\n * across all browsers.\n *\n * It ensures that elements receives focus on pointer down if\n * it's not the active element.\n *\n * @internal\n */\nfunction useFocusOnPointerDown(props) {\n  var ref = props.ref,\n    elements = props.elements,\n    enabled = props.enabled;\n  var isSafari = detectBrowser(\"Safari\");\n  var doc = function doc() {\n    return getOwnerDocument(ref.current);\n  };\n  usePointerEvent(doc, \"pointerdown\", function (event) {\n    if (!isSafari || !enabled) return;\n    var target = event.target;\n    var els = elements != null ? elements : [ref];\n    var isValidTarget = els.some(function (elementOrRef) {\n      var el = isRefObject(elementOrRef) ? elementOrRef.current : elementOrRef;\n      return contains(el, target);\n    });\n    if (!isActiveElement(target) && isValidTarget) {\n      event.preventDefault();\n      focus(target);\n    }\n  });\n}\nvar defaultOptions = {\n  preventScroll: true,\n  shouldFocus: false\n};\nfunction useFocusOnShow(target, options) {\n  if (options === void 0) {\n    options = defaultOptions;\n  }\n  var _options = options,\n    focusRef = _options.focusRef,\n    preventScroll = _options.preventScroll,\n    shouldFocus = _options.shouldFocus,\n    visible = _options.visible;\n  var element = isRefObject(target) ? target.current : target;\n  var autoFocus = shouldFocus && visible;\n  var onFocus = useCallback(function () {\n    if (!element || !autoFocus) return;\n    if (contains(element, document.activeElement)) return;\n    if (focusRef != null && focusRef.current) {\n      focus(focusRef.current, {\n        preventScroll: preventScroll,\n        nextTick: true\n      });\n    } else {\n      var tabbableEls = getAllFocusable(element);\n      if (tabbableEls.length > 0) {\n        focus(tabbableEls[0], {\n          preventScroll: preventScroll,\n          nextTick: true\n        });\n      }\n    }\n  }, [autoFocus, preventScroll, element, focusRef]);\n  useUpdateEffect(function () {\n    onFocus();\n  }, [onFocus]);\n  useEventListener(\"transitionend\", onFocus, element);\n}\nfunction useUnmountEffect(fn, deps) {\n  if (deps === void 0) {\n    deps = [];\n  }\n  return React.useEffect(function () {\n    return function () {\n      return fn();\n    };\n  },\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  deps);\n}\nfunction useForceUpdate() {\n  var unloadingRef = React.useRef(false);\n  var _React$useState = React.useState(0),\n    count = _React$useState[0],\n    setCount = _React$useState[1];\n  useUnmountEffect(function () {\n    unloadingRef.current = true;\n  });\n  return React.useCallback(function () {\n    if (!unloadingRef.current) {\n      setCount(count + 1);\n    }\n  }, [count]);\n}\n\n/**\n * React Hook that provides a declarative `setInterval`\n *\n * @param callback the callback to execute at interval\n * @param delay the `setInterval` delay (in ms)\n */\n\nfunction useInterval(callback, delay) {\n  var fn = useCallbackRef(callback);\n  React.useEffect(function () {\n    var intervalId = null;\n    var tick = function tick() {\n      return fn();\n    };\n    if (delay !== null) {\n      intervalId = window.setInterval(tick, delay);\n    }\n    return function () {\n      if (intervalId) {\n        window.clearInterval(intervalId);\n      }\n    };\n  }, [delay, fn]);\n}\n\n/**\n * React hook to persist any value between renders,\n * but keeps it up-to-date if it changes.\n *\n * @param value the value or function to persist\n */\n\nfunction useLatestRef(value) {\n  var ref = React.useRef(null);\n  ref.current = value;\n  return ref;\n}\n\n/* eslint-disable react-hooks/exhaustive-deps */\nfunction assignRef(ref, value) {\n  if (ref == null) return;\n  if (typeof ref === \"function\") {\n    ref(value);\n    return;\n  }\n  try {\n    // @ts-ignore\n    ref.current = value;\n  } catch (error) {\n    throw new Error(\"Cannot assign value '\" + value + \"' to ref '\" + ref + \"'\");\n  }\n}\n/**\n * React hook that merges react refs into a single memoized function\n *\n * @example\n * import React from \"react\";\n * import { useMergeRefs } from `@chakra-ui/hooks`;\n *\n * const Component = React.forwardRef((props, ref) => {\n *   const internalRef = React.useRef();\n *   return <div {...props} ref={useMergeRefs(internalRef, ref)} />;\n * });\n */\n\nfunction useMergeRefs() {\n  for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n    refs[_key] = arguments[_key];\n  }\n  return React.useMemo(function () {\n    if (refs.every(function (ref) {\n      return ref == null;\n    })) {\n      return null;\n    }\n    return function (node) {\n      refs.forEach(function (ref) {\n        if (ref) assignRef(ref, node);\n      });\n    };\n  }, refs);\n}\n\n/**\n * @deprecated `useMouseDownRef` will be removed in a future version.\n */\n\nfunction useMouseDownRef(shouldListen) {\n  if (shouldListen === void 0) {\n    shouldListen = true;\n  }\n  var mouseDownRef = React__default.useRef();\n  useEventListener(\"mousedown\", function (event) {\n    if (shouldListen) {\n      mouseDownRef.current = event.target;\n    }\n  });\n  return mouseDownRef;\n}\n\n/**\n * Example, used in components like Dialogs and Popovers, so they can close\n * when a user clicks outside them.\n */\nfunction useOutsideClick(props) {\n  var ref = props.ref,\n    handler = props.handler,\n    _props$enabled = props.enabled,\n    enabled = _props$enabled === void 0 ? true : _props$enabled;\n  var savedHandler = useCallbackRef(handler);\n  var stateRef = useRef({\n    isPointerDown: false,\n    ignoreEmulatedMouseEvents: false\n  });\n  var state = stateRef.current;\n  useEffect(function () {\n    if (!enabled) return;\n    var onPointerDown = function onPointerDown(e) {\n      if (isValidEvent(e, ref)) {\n        state.isPointerDown = true;\n      }\n    };\n    var onMouseUp = function onMouseUp(event) {\n      if (state.ignoreEmulatedMouseEvents) {\n        state.ignoreEmulatedMouseEvents = false;\n        return;\n      }\n      if (state.isPointerDown && handler && isValidEvent(event, ref)) {\n        state.isPointerDown = false;\n        savedHandler(event);\n      }\n    };\n    var onTouchEnd = function onTouchEnd(event) {\n      state.ignoreEmulatedMouseEvents = true;\n      if (handler && state.isPointerDown && isValidEvent(event, ref)) {\n        state.isPointerDown = false;\n        savedHandler(event);\n      }\n    };\n    var doc = getOwnerDocument(ref.current);\n    doc.addEventListener(\"mousedown\", onPointerDown, true);\n    doc.addEventListener(\"mouseup\", onMouseUp, true);\n    doc.addEventListener(\"touchstart\", onPointerDown, true);\n    doc.addEventListener(\"touchend\", onTouchEnd, true);\n    return function () {\n      doc.removeEventListener(\"mousedown\", onPointerDown, true);\n      doc.removeEventListener(\"mouseup\", onMouseUp, true);\n      doc.removeEventListener(\"touchstart\", onPointerDown, true);\n      doc.removeEventListener(\"touchend\", onTouchEnd, true);\n    };\n  }, [handler, ref, savedHandler, state, enabled]);\n}\nfunction isValidEvent(event, ref) {\n  var _ref$current;\n  var target = event.target;\n  if (event.button > 0) return false; // if the event target is no longer in the document\n\n  if (target) {\n    var doc = getOwnerDocument(target);\n    if (!doc.body.contains(target)) return false;\n  }\n  return !((_ref$current = ref.current) != null && _ref$current.contains(target));\n}\nfunction usePanGesture(ref, props) {\n  var onPan = props.onPan,\n    onPanStart = props.onPanStart,\n    onPanEnd = props.onPanEnd,\n    onPanSessionStart = props.onPanSessionStart,\n    onPanSessionEnd = props.onPanSessionEnd,\n    threshold = props.threshold;\n  var hasPanEvents = Boolean(onPan || onPanStart || onPanEnd || onPanSessionStart || onPanSessionEnd);\n  var panSession = useRef(null);\n  var handlers = {\n    onSessionStart: onPanSessionStart,\n    onSessionEnd: onPanSessionEnd,\n    onStart: onPanStart,\n    onMove: onPan,\n    onEnd: function onEnd(event, info) {\n      panSession.current = null;\n      onPanEnd == null ? void 0 : onPanEnd(event, info);\n    }\n  };\n  useEffect(function () {\n    var _panSession$current;\n    (_panSession$current = panSession.current) == null ? void 0 : _panSession$current.updateHandlers(handlers);\n  });\n  function onPointerDown(event) {\n    panSession.current = new PanSession(event, handlers, threshold);\n  }\n  usePointerEvent(function () {\n    return ref.current;\n  }, \"pointerdown\", hasPanEvents ? onPointerDown : noop);\n  useUnmountEffect(function () {\n    var _panSession$current2;\n    (_panSession$current2 = panSession.current) == null ? void 0 : _panSession$current2.end();\n    panSession.current = null;\n  });\n}\nfunction usePrevious(value) {\n  var ref = useRef();\n  useEffect(function () {\n    ref.current = value;\n  }, [value]);\n  return ref.current;\n}\n\n/**\n * Checks if the key pressed is a printable character\n * and can be used for shortcut navigation\n */\n\nfunction isPrintableCharacter(event) {\n  var key = event.key;\n  return key.length === 1 || key.length > 1 && /[^a-zA-Z0-9]/.test(key);\n}\n\n/**\n * React hook that provides an enhanced keydown handler,\n * that's used for key navigation within menus, select dropdowns.\n */\nfunction useShortcut(props) {\n  if (props === void 0) {\n    props = {};\n  }\n  var _props = props,\n    _props$timeout = _props.timeout,\n    timeout = _props$timeout === void 0 ? 300 : _props$timeout,\n    _props$preventDefault = _props.preventDefault,\n    preventDefault = _props$preventDefault === void 0 ? function () {\n      return true;\n    } : _props$preventDefault;\n  var _React$useState = React.useState([]),\n    keys = _React$useState[0],\n    setKeys = _React$useState[1];\n  var timeoutRef = React.useRef();\n  var flush = function flush() {\n    if (timeoutRef.current) {\n      clearTimeout(timeoutRef.current);\n      timeoutRef.current = null;\n    }\n  };\n  var clearKeysAfterDelay = function clearKeysAfterDelay() {\n    flush();\n    timeoutRef.current = setTimeout(function () {\n      setKeys([]);\n      timeoutRef.current = null;\n    }, timeout);\n  };\n  React.useEffect(function () {\n    return flush;\n  }, []);\n  function onKeyDown(fn) {\n    return function (event) {\n      if (event.key === \"Backspace\") {\n        var keysCopy = [].concat(keys);\n        keysCopy.pop();\n        setKeys(keysCopy);\n        return;\n      }\n      if (isPrintableCharacter(event)) {\n        var _keysCopy = keys.concat(event.key);\n        if (preventDefault(event)) {\n          event.preventDefault();\n          event.stopPropagation();\n        }\n        setKeys(_keysCopy);\n        fn(_keysCopy.join(\"\"));\n        clearKeysAfterDelay();\n      }\n    };\n  }\n  return onKeyDown;\n}\n\n/**\n * React hook that provides a declarative `setTimeout`\n *\n * @param callback the callback to run after specified delay\n * @param delay the delay (in ms)\n */\n\nfunction useTimeout(callback, delay) {\n  var fn = useCallbackRef(callback);\n  React.useEffect(function () {\n    if (delay == null) return undefined;\n    var timeoutId = null;\n    timeoutId = window.setTimeout(function () {\n      fn();\n    }, delay);\n    return function () {\n      if (timeoutId) {\n        window.clearTimeout(timeoutId);\n      }\n    };\n  }, [delay, fn]);\n}\nfunction useWhyDidYouUpdate(name, props) {\n  var previousProps = React.useRef();\n  React.useEffect(function () {\n    if (previousProps.current) {\n      var allKeys = Object.keys(_extends({}, previousProps.current, props));\n      var changesObj = {};\n      allKeys.forEach(function (key) {\n        if (previousProps.current[key] !== props[key]) {\n          changesObj[key] = {\n            from: previousProps.current[key],\n            to: props[key]\n          };\n        }\n      });\n      if (Object.keys(changesObj).length) {\n        console.log(\"[why-did-you-update]\", name, changesObj);\n      }\n    }\n    previousProps.current = props;\n  });\n}\nexport { IdProvider, assignRef, useBoolean, useClipboard, useConst, useControllableProp, useControllableState, useDimensions, useDisclosure, useEventCallback, useEventListenerMap, useFocusEffect, useFocusOnHide, useFocusOnPointerDown, useFocusOnShow, useForceUpdate, useId, useIds, useInterval, useLatestRef, useMergeRefs, useMouseDownRef, useOptionalPart, useOutsideClick, usePanGesture, usePointerEvent, usePrevious, useShortcut, useTimeout, useUnmountEffect, useUpdateEffect, useWhyDidYouUpdate };","map":{"version":3,"names":["React","React__default","useState","useMemo","useCallback","useEffect","useRef","u","useCallbackRef","a","useSafeLayoutEffect","b","useEventListener","c","useAnimationState","copy","runIfFn","getBox","callAllHandlers","wrapPointerEventHandler","getPointerEventName","hasFocusWithin","focus","getActiveElement","contains","isTabbable","detectBrowser","isRefObject","isActiveElement","getOwnerDocument","getAllFocusable","noop","PanSession","useBoolean","initialState","_useState","value","setValue","callbacks","on","off","toggle","prev","_objectWithoutPropertiesLoose","source","excluded","target","sourceKeys","Object","keys","key","i","length","indexOf","_excluded","useClipboard","text","optionsOrTimeout","hasCopied","setHasCopied","_ref","timeout","_ref$timeout","copyOptions","onCopy","didCopy","timeoutId","window","setTimeout","clearTimeout","useConst","init","ref","current","useControllableProp","prop","state","isControlled","undefined","useControllableState","props","valueProp","defaultValue","onChange","_props$shouldUpdate","shouldUpdate","next","onChangeProp","shouldUpdateProp","_React$useState","valueState","updateValue","nextValue","useDimensions","observe","dimensions","setDimensions","rafId","node","measure","requestAnimationFrame","boxModel","addEventListener","removeEventListener","cancelAnimationFrame","_extends","assign","arguments","prototype","hasOwnProperty","call","apply","defaultIdContext","IdContext","createContext","IdProvider","memo","children","createElement","Provider","genId","context","useId","idProp","prefix","useContext","id","setId","filter","Boolean","join","useIds","_len","prefixes","Array","_key","map","useOptionalPart","partId","_React$useState2","isRendered","useDisclosure","_props","onCloseProp","onClose","onOpenProp","onOpen","isOpenProp","isOpen","onOpenPropCallbackRef","onClosePropCallbackRef","defaultIsOpen","isOpenState","setIsOpen","_useControllableProp","onToggle","action","getButtonProps","onClick","getDisclosureProps","hidden","useEventCallback","callback","event","args","concat","useEventListenerMap","listeners","Map","currentListeners","add","el","type","listener","options","pointerEventListener","set","__listener","remove","_listeners$current$ge","get","forEach","useUpdateEffect","effect","deps","mounted","useFocusEffect","shouldFocus","preventScroll","nextTick","preventReturnFocus","containerRef","activeElement","useFocusOnHide","shouldFocusProp","visible","focusRef","usePointerEvent","env","eventName","handler","useFocusOnPointerDown","elements","enabled","isSafari","doc","els","isValidTarget","some","elementOrRef","preventDefault","defaultOptions","useFocusOnShow","_options","element","autoFocus","onFocus","document","tabbableEls","useUnmountEffect","fn","useForceUpdate","unloadingRef","count","setCount","useInterval","delay","intervalId","tick","setInterval","clearInterval","useLatestRef","assignRef","error","Error","useMergeRefs","refs","every","useMouseDownRef","shouldListen","mouseDownRef","useOutsideClick","_props$enabled","savedHandler","stateRef","isPointerDown","ignoreEmulatedMouseEvents","onPointerDown","e","isValidEvent","onMouseUp","onTouchEnd","_ref$current","button","body","usePanGesture","onPan","onPanStart","onPanEnd","onPanSessionStart","onPanSessionEnd","threshold","hasPanEvents","panSession","handlers","onSessionStart","onSessionEnd","onStart","onMove","onEnd","info","_panSession$current","updateHandlers","_panSession$current2","end","usePrevious","isPrintableCharacter","test","useShortcut","_props$timeout","_props$preventDefault","setKeys","timeoutRef","flush","clearKeysAfterDelay","onKeyDown","keysCopy","pop","_keysCopy","stopPropagation","useTimeout","useWhyDidYouUpdate","name","previousProps","allKeys","changesObj","from","to","console","log"],"sources":["C:/ldt/LDT/Safemate_Management/node_modules/@chakra-ui/hooks/dist/chakra-ui-hooks.esm.js"],"sourcesContent":["import * as React from 'react';\nimport React__default, { useState, useMemo, useCallback, useEffect, useRef } from 'react';\nimport { u as useCallbackRef, a as useSafeLayoutEffect, b as useEventListener } from './use-animation-state-5054a9f7.esm.js';\nexport { c as useAnimationState, u as useCallbackRef, b as useEventListener, a as useSafeLayoutEffect } from './use-animation-state-5054a9f7.esm.js';\nimport copy from 'copy-to-clipboard';\nimport { runIfFn, getBox, callAllHandlers, wrapPointerEventHandler, getPointerEventName, hasFocusWithin, focus, getActiveElement, contains, isTabbable, detectBrowser, isRefObject, isActiveElement, getOwnerDocument, getAllFocusable, noop, PanSession } from '@chakra-ui/utils';\n\n/**\n * React hook to manage boolean (on - off) states\n *\n * @param initialState the initial boolean state value\n */\nfunction useBoolean(initialState) {\n  if (initialState === void 0) {\n    initialState = false;\n  }\n\n  var _useState = useState(initialState),\n      value = _useState[0],\n      setValue = _useState[1];\n\n  var callbacks = useMemo(function () {\n    return {\n      on: function on() {\n        return setValue(true);\n      },\n      off: function off() {\n        return setValue(false);\n      },\n      toggle: function toggle() {\n        return setValue(function (prev) {\n          return !prev;\n        });\n      }\n    };\n  }, []);\n  return [value, callbacks];\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nvar _excluded = [\"timeout\"];\n\n/**\n * React hook to copy content to clipboard\n *\n * @param text the text or value to copy\n * @param {Number} [optionsOrTimeout=1500] optionsOrTimeout - delay (in ms) to switch back to initial state once copied.\n * @param {Object} optionsOrTimeout\n * @param {string} optionsOrTimeout.format - set the desired MIME type\n * @param {number} optionsOrTimeout.timeout - delay (in ms) to switch back to initial state once copied.\n */\nfunction useClipboard(text, optionsOrTimeout) {\n  if (optionsOrTimeout === void 0) {\n    optionsOrTimeout = {};\n  }\n\n  var _useState = useState(false),\n      hasCopied = _useState[0],\n      setHasCopied = _useState[1];\n\n  var _ref = typeof optionsOrTimeout === \"number\" ? {\n    timeout: optionsOrTimeout\n  } : optionsOrTimeout,\n      _ref$timeout = _ref.timeout,\n      timeout = _ref$timeout === void 0 ? 1500 : _ref$timeout,\n      copyOptions = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  var onCopy = useCallback(function () {\n    var didCopy = copy(text, copyOptions);\n    setHasCopied(didCopy);\n  }, [text, copyOptions]);\n  useEffect(function () {\n    var timeoutId = null;\n\n    if (hasCopied) {\n      timeoutId = window.setTimeout(function () {\n        setHasCopied(false);\n      }, timeout);\n    }\n\n    return function () {\n      if (timeoutId) {\n        window.clearTimeout(timeoutId);\n      }\n    };\n  }, [timeout, hasCopied]);\n  return {\n    value: text,\n    onCopy: onCopy,\n    hasCopied: hasCopied\n  };\n}\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConst`\n * you can ensure that initializers don't execute twice or more.\n */\nfunction useConst(init) {\n  // Use useRef to store the value because it's the least expensive built-in\n  // hook that works here. We could also use `useState` but that's more\n  // expensive internally due to reducer handling which we don't need.\n  var ref = useRef(null);\n\n  if (ref.current === null) {\n    ref.current = typeof init === \"function\" ? init() : init;\n  }\n\n  return ref.current;\n}\n\nfunction useControllableProp(prop, state) {\n  var isControlled = prop !== undefined;\n  var value = isControlled && typeof prop !== \"undefined\" ? prop : state;\n  return [isControlled, value];\n}\n\n/**\n * React hook for using controlling component state.\n * @param props\n */\nfunction useControllableState(props) {\n  var valueProp = props.value,\n      defaultValue = props.defaultValue,\n      onChange = props.onChange,\n      _props$shouldUpdate = props.shouldUpdate,\n      shouldUpdate = _props$shouldUpdate === void 0 ? function (prev, next) {\n    return prev !== next;\n  } : _props$shouldUpdate;\n  var onChangeProp = useCallbackRef(onChange);\n  var shouldUpdateProp = useCallbackRef(shouldUpdate);\n\n  var _React$useState = React.useState(defaultValue),\n      valueState = _React$useState[0],\n      setValue = _React$useState[1];\n\n  var isControlled = valueProp !== undefined;\n  var value = isControlled ? valueProp : valueState;\n  var updateValue = React.useCallback(function (next) {\n    var nextValue = runIfFn(next, value);\n\n    if (!shouldUpdateProp(value, nextValue)) {\n      return;\n    }\n\n    if (!isControlled) {\n      setValue(nextValue);\n    }\n\n    onChangeProp(nextValue);\n  }, [isControlled, onChangeProp, value, shouldUpdateProp]);\n  return [value, updateValue];\n}\n\n/**\n * React hook to measure a component's dimensions\n *\n * @param ref ref of the component to measure\n * @param observe if `true`, resize and scroll observers will be turned on\n */\n\nfunction useDimensions(ref, observe) {\n  var _React$useState = React.useState(null),\n      dimensions = _React$useState[0],\n      setDimensions = _React$useState[1];\n\n  var rafId = React.useRef();\n  useSafeLayoutEffect(function () {\n    if (!ref.current) return undefined;\n    var node = ref.current;\n\n    function measure() {\n      rafId.current = requestAnimationFrame(function () {\n        var boxModel = getBox(node);\n        setDimensions(boxModel);\n      });\n    }\n\n    measure();\n\n    if (observe) {\n      window.addEventListener(\"resize\", measure);\n      window.addEventListener(\"scroll\", measure);\n    }\n\n    return function () {\n      if (observe) {\n        window.removeEventListener(\"resize\", measure);\n        window.removeEventListener(\"scroll\", measure);\n      }\n\n      if (rafId.current) {\n        cancelAnimationFrame(rafId.current);\n      }\n    };\n  }, [observe]);\n  return dimensions;\n}\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n// This implementation is heavily inspired by react-aria's implementation\nvar defaultIdContext = {\n  current: 1\n};\nvar IdContext = /*#__PURE__*/React.createContext(defaultIdContext);\nvar IdProvider = /*#__PURE__*/React.memo(function (_ref) {\n  var children = _ref.children;\n  return /*#__PURE__*/React.createElement(IdContext.Provider, {\n    value: {\n      current: 1\n    }\n  }, children);\n});\n\nvar genId = function genId(context) {\n  return context.current++;\n};\n\nfunction useId(idProp, prefix) {\n  var context = React.useContext(IdContext);\n  /*\n      We get the current id by context and generate a new id inside useEffect so that the side effects occur during the commit phase,\n      Doing this prevents the side effects from being called twice when used with strict mode (render() in function component is the function body), which ends up making the server with the client not synchronized\n  */\n\n  var _React$useState = React.useState(context.current),\n      id = _React$useState[0],\n      setId = _React$useState[1];\n\n  React.useEffect(function () {\n    setId(genId(context));\n  }, [context]);\n  return React.useMemo(function () {\n    return idProp || [prefix, id].filter(Boolean).join(\"-\");\n  }, [idProp, prefix, id]);\n}\n/**\n * React hook to generate ids for use in compound components\n *\n * @param idProp the external id passed from the user\n * @param prefixes array of prefixes to use\n *\n * @example\n *\n * ```js\n * const [buttonId, menuId] = useIds(\"52\", \"button\", \"menu\")\n *\n * // buttonId will be `button-52`\n * // menuId will be `menu-52`\n * ```\n */\n\nfunction useIds(idProp) {\n  for (var _len = arguments.length, prefixes = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    prefixes[_key - 1] = arguments[_key];\n  }\n\n  var id = useId(idProp);\n  return React.useMemo(function () {\n    return prefixes.map(function (prefix) {\n      return prefix + \"-\" + id;\n    });\n  }, [id, prefixes]);\n}\n/**\n * Used to generate an id, and after render, check if that id is rendered, so we know\n * if we can use it in places such as `aria-labelledby`.\n *\n * @param partId - The unique id for the component part\n *\n * @example\n * const { ref, id } = useOptionalPart<HTMLInputElement>(`${id}-label`)\n */\n\nfunction useOptionalPart(partId) {\n  var _React$useState2 = React.useState(null),\n      id = _React$useState2[0],\n      setId = _React$useState2[1];\n\n  var ref = React.useCallback(function (node) {\n    setId(node ? partId : null);\n  }, [partId]);\n  return {\n    ref: ref,\n    id: id,\n    isRendered: Boolean(id)\n  };\n}\n\nfunction useDisclosure(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  var _props = props,\n      onCloseProp = _props.onClose,\n      onOpenProp = _props.onOpen,\n      isOpenProp = _props.isOpen,\n      idProp = _props.id;\n  var onOpenPropCallbackRef = useCallbackRef(onOpenProp);\n  var onClosePropCallbackRef = useCallbackRef(onCloseProp);\n\n  var _React$useState = React.useState(props.defaultIsOpen || false),\n      isOpenState = _React$useState[0],\n      setIsOpen = _React$useState[1];\n\n  var _useControllableProp = useControllableProp(isOpenProp, isOpenState),\n      isControlled = _useControllableProp[0],\n      isOpen = _useControllableProp[1];\n\n  var id = useId(idProp, \"disclosure\");\n  var onClose = React.useCallback(function () {\n    if (!isControlled) {\n      setIsOpen(false);\n    }\n\n    onClosePropCallbackRef == null ? void 0 : onClosePropCallbackRef();\n  }, [isControlled, onClosePropCallbackRef]);\n  var onOpen = React.useCallback(function () {\n    if (!isControlled) {\n      setIsOpen(true);\n    }\n\n    onOpenPropCallbackRef == null ? void 0 : onOpenPropCallbackRef();\n  }, [isControlled, onOpenPropCallbackRef]);\n  var onToggle = React.useCallback(function () {\n    var action = isOpen ? onClose : onOpen;\n    action();\n  }, [isOpen, onOpen, onClose]);\n  return {\n    isOpen: !!isOpen,\n    onOpen: onOpen,\n    onClose: onClose,\n    onToggle: onToggle,\n    isControlled: isControlled,\n    getButtonProps: function getButtonProps(props) {\n      if (props === void 0) {\n        props = {};\n      }\n\n      return _extends({}, props, {\n        \"aria-expanded\": \"true\",\n        \"aria-controls\": id,\n        onClick: callAllHandlers(props.onClick, onToggle)\n      });\n    },\n    getDisclosureProps: function getDisclosureProps(props) {\n      if (props === void 0) {\n        props = {};\n      }\n\n      return _extends({}, props, {\n        hidden: !isOpen,\n        id: id\n      });\n    }\n  };\n}\n\n/**\n * React hook for performant `useCallbacks`\n *\n * @see https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @deprecated Use `useCallbackRef` instead. `useEventCallback` will be removed\n * in a future version.\n */\n\nfunction useEventCallback(callback) {\n  var ref = React.useRef(callback);\n  useSafeLayoutEffect(function () {\n    ref.current = callback;\n  });\n  return React.useCallback(function (event) {\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    return ref.current.apply(ref, [event].concat(args));\n  }, []);\n}\n\nfunction useEventListenerMap() {\n  var listeners = React.useRef(new Map());\n  var currentListeners = listeners.current;\n  var add = React.useCallback(function (el, type, listener, options) {\n    var pointerEventListener = wrapPointerEventHandler(listener, type === \"pointerdown\");\n    listeners.current.set(listener, {\n      __listener: pointerEventListener,\n      type: getPointerEventName(type),\n      el: el,\n      options: options\n    });\n    el.addEventListener(type, pointerEventListener, options);\n  }, []);\n  var remove = React.useCallback(function (el, type, listener, options) {\n    var _listeners$current$ge = listeners.current.get(listener),\n        pointerEventListener = _listeners$current$ge.__listener;\n\n    el.removeEventListener(type, pointerEventListener, options);\n    listeners.current[\"delete\"](pointerEventListener);\n  }, []);\n  React.useEffect(function () {\n    return function () {\n      currentListeners.forEach(function (value, key) {\n        remove(value.el, value.type, key, value.options);\n      });\n    };\n  }, [remove, currentListeners]);\n  return {\n    add: add,\n    remove: remove\n  };\n}\n\n/**\n * React effect hook that invokes only on update.\n * It doesn't invoke on mount\n */\n\nvar useUpdateEffect = function useUpdateEffect(effect, deps) {\n  var mounted = React.useRef(false);\n  React.useEffect(function () {\n    if (mounted.current) {\n      return effect();\n    }\n\n    mounted.current = true;\n    return undefined; // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, deps);\n  return mounted.current;\n};\n\n/**\n * React hook to focus an element conditionally\n *\n * @param ref the ref of the element to focus\n * @param options focus management options\n */\nfunction useFocusEffect(ref, options) {\n  var shouldFocus = options.shouldFocus,\n      preventScroll = options.preventScroll;\n  useUpdateEffect(function () {\n    var node = ref.current;\n    if (!node || !shouldFocus) return;\n\n    if (!hasFocusWithin(node)) {\n      focus(node, {\n        preventScroll: preventScroll,\n        nextTick: true\n      });\n    }\n  }, [shouldFocus, ref, preventScroll]);\n}\n\nfunction preventReturnFocus(containerRef) {\n  var el = containerRef.current;\n  if (!el) return false;\n  var activeElement = getActiveElement(el);\n  if (!activeElement) return false;\n  if (contains(el, activeElement)) return false;\n  if (isTabbable(activeElement)) return true;\n  return false;\n}\n/**\n * Popover hook to manage the focus when the popover closes or hides.\n *\n * We either want to return focus back to the popover trigger or\n * let focus proceed normally if user moved to another interactive\n * element in the viewport.\n */\n\n\nfunction useFocusOnHide(containerRef, options) {\n  var shouldFocusProp = options.shouldFocus,\n      visible = options.visible,\n      focusRef = options.focusRef;\n  var shouldFocus = shouldFocusProp && !visible;\n  useUpdateEffect(function () {\n    if (!shouldFocus) return;\n\n    if (preventReturnFocus(containerRef)) {\n      return;\n    }\n\n    var el = (focusRef == null ? void 0 : focusRef.current) || containerRef.current;\n\n    if (el) {\n      focus(el, {\n        nextTick: true\n      });\n    }\n  }, [shouldFocus, containerRef, focusRef]);\n}\n\n/**\n * Credit goes to `framer-motion` of this useful utilities.\n * License can be found here: https://github.com/framer/motion\n */\n/**\n * @internal\n */\n\nfunction usePointerEvent(env, eventName, handler, options) {\n  return useEventListener(getPointerEventName(eventName), wrapPointerEventHandler(handler, eventName === \"pointerdown\"), env, options);\n}\n\n/**\n * Polyfill to get `relatedTarget` working correctly consistently\n * across all browsers.\n *\n * It ensures that elements receives focus on pointer down if\n * it's not the active element.\n *\n * @internal\n */\nfunction useFocusOnPointerDown(props) {\n  var ref = props.ref,\n      elements = props.elements,\n      enabled = props.enabled;\n  var isSafari = detectBrowser(\"Safari\");\n\n  var doc = function doc() {\n    return getOwnerDocument(ref.current);\n  };\n\n  usePointerEvent(doc, \"pointerdown\", function (event) {\n    if (!isSafari || !enabled) return;\n    var target = event.target;\n    var els = elements != null ? elements : [ref];\n    var isValidTarget = els.some(function (elementOrRef) {\n      var el = isRefObject(elementOrRef) ? elementOrRef.current : elementOrRef;\n      return contains(el, target);\n    });\n\n    if (!isActiveElement(target) && isValidTarget) {\n      event.preventDefault();\n      focus(target);\n    }\n  });\n}\n\nvar defaultOptions = {\n  preventScroll: true,\n  shouldFocus: false\n};\nfunction useFocusOnShow(target, options) {\n  if (options === void 0) {\n    options = defaultOptions;\n  }\n\n  var _options = options,\n      focusRef = _options.focusRef,\n      preventScroll = _options.preventScroll,\n      shouldFocus = _options.shouldFocus,\n      visible = _options.visible;\n  var element = isRefObject(target) ? target.current : target;\n  var autoFocus = shouldFocus && visible;\n  var onFocus = useCallback(function () {\n    if (!element || !autoFocus) return;\n    if (contains(element, document.activeElement)) return;\n\n    if (focusRef != null && focusRef.current) {\n      focus(focusRef.current, {\n        preventScroll: preventScroll,\n        nextTick: true\n      });\n    } else {\n      var tabbableEls = getAllFocusable(element);\n\n      if (tabbableEls.length > 0) {\n        focus(tabbableEls[0], {\n          preventScroll: preventScroll,\n          nextTick: true\n        });\n      }\n    }\n  }, [autoFocus, preventScroll, element, focusRef]);\n  useUpdateEffect(function () {\n    onFocus();\n  }, [onFocus]);\n  useEventListener(\"transitionend\", onFocus, element);\n}\n\nfunction useUnmountEffect(fn, deps) {\n  if (deps === void 0) {\n    deps = [];\n  }\n\n  return React.useEffect(function () {\n    return function () {\n      return fn();\n    };\n  }, // eslint-disable-next-line react-hooks/exhaustive-deps\n  deps);\n}\n\nfunction useForceUpdate() {\n  var unloadingRef = React.useRef(false);\n\n  var _React$useState = React.useState(0),\n      count = _React$useState[0],\n      setCount = _React$useState[1];\n\n  useUnmountEffect(function () {\n    unloadingRef.current = true;\n  });\n  return React.useCallback(function () {\n    if (!unloadingRef.current) {\n      setCount(count + 1);\n    }\n  }, [count]);\n}\n\n/**\n * React Hook that provides a declarative `setInterval`\n *\n * @param callback the callback to execute at interval\n * @param delay the `setInterval` delay (in ms)\n */\n\nfunction useInterval(callback, delay) {\n  var fn = useCallbackRef(callback);\n  React.useEffect(function () {\n    var intervalId = null;\n\n    var tick = function tick() {\n      return fn();\n    };\n\n    if (delay !== null) {\n      intervalId = window.setInterval(tick, delay);\n    }\n\n    return function () {\n      if (intervalId) {\n        window.clearInterval(intervalId);\n      }\n    };\n  }, [delay, fn]);\n}\n\n/**\n * React hook to persist any value between renders,\n * but keeps it up-to-date if it changes.\n *\n * @param value the value or function to persist\n */\n\nfunction useLatestRef(value) {\n  var ref = React.useRef(null);\n  ref.current = value;\n  return ref;\n}\n\n/* eslint-disable react-hooks/exhaustive-deps */\nfunction assignRef(ref, value) {\n  if (ref == null) return;\n\n  if (typeof ref === \"function\") {\n    ref(value);\n    return;\n  }\n\n  try {\n    // @ts-ignore\n    ref.current = value;\n  } catch (error) {\n    throw new Error(\"Cannot assign value '\" + value + \"' to ref '\" + ref + \"'\");\n  }\n}\n/**\n * React hook that merges react refs into a single memoized function\n *\n * @example\n * import React from \"react\";\n * import { useMergeRefs } from `@chakra-ui/hooks`;\n *\n * const Component = React.forwardRef((props, ref) => {\n *   const internalRef = React.useRef();\n *   return <div {...props} ref={useMergeRefs(internalRef, ref)} />;\n * });\n */\n\nfunction useMergeRefs() {\n  for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n    refs[_key] = arguments[_key];\n  }\n\n  return React.useMemo(function () {\n    if (refs.every(function (ref) {\n      return ref == null;\n    })) {\n      return null;\n    }\n\n    return function (node) {\n      refs.forEach(function (ref) {\n        if (ref) assignRef(ref, node);\n      });\n    };\n  }, refs);\n}\n\n/**\n * @deprecated `useMouseDownRef` will be removed in a future version.\n */\n\nfunction useMouseDownRef(shouldListen) {\n  if (shouldListen === void 0) {\n    shouldListen = true;\n  }\n\n  var mouseDownRef = React__default.useRef();\n  useEventListener(\"mousedown\", function (event) {\n    if (shouldListen) {\n      mouseDownRef.current = event.target;\n    }\n  });\n  return mouseDownRef;\n}\n\n/**\n * Example, used in components like Dialogs and Popovers, so they can close\n * when a user clicks outside them.\n */\nfunction useOutsideClick(props) {\n  var ref = props.ref,\n      handler = props.handler,\n      _props$enabled = props.enabled,\n      enabled = _props$enabled === void 0 ? true : _props$enabled;\n  var savedHandler = useCallbackRef(handler);\n  var stateRef = useRef({\n    isPointerDown: false,\n    ignoreEmulatedMouseEvents: false\n  });\n  var state = stateRef.current;\n  useEffect(function () {\n    if (!enabled) return;\n\n    var onPointerDown = function onPointerDown(e) {\n      if (isValidEvent(e, ref)) {\n        state.isPointerDown = true;\n      }\n    };\n\n    var onMouseUp = function onMouseUp(event) {\n      if (state.ignoreEmulatedMouseEvents) {\n        state.ignoreEmulatedMouseEvents = false;\n        return;\n      }\n\n      if (state.isPointerDown && handler && isValidEvent(event, ref)) {\n        state.isPointerDown = false;\n        savedHandler(event);\n      }\n    };\n\n    var onTouchEnd = function onTouchEnd(event) {\n      state.ignoreEmulatedMouseEvents = true;\n\n      if (handler && state.isPointerDown && isValidEvent(event, ref)) {\n        state.isPointerDown = false;\n        savedHandler(event);\n      }\n    };\n\n    var doc = getOwnerDocument(ref.current);\n    doc.addEventListener(\"mousedown\", onPointerDown, true);\n    doc.addEventListener(\"mouseup\", onMouseUp, true);\n    doc.addEventListener(\"touchstart\", onPointerDown, true);\n    doc.addEventListener(\"touchend\", onTouchEnd, true);\n    return function () {\n      doc.removeEventListener(\"mousedown\", onPointerDown, true);\n      doc.removeEventListener(\"mouseup\", onMouseUp, true);\n      doc.removeEventListener(\"touchstart\", onPointerDown, true);\n      doc.removeEventListener(\"touchend\", onTouchEnd, true);\n    };\n  }, [handler, ref, savedHandler, state, enabled]);\n}\n\nfunction isValidEvent(event, ref) {\n  var _ref$current;\n\n  var target = event.target;\n  if (event.button > 0) return false; // if the event target is no longer in the document\n\n  if (target) {\n    var doc = getOwnerDocument(target);\n    if (!doc.body.contains(target)) return false;\n  }\n\n  return !((_ref$current = ref.current) != null && _ref$current.contains(target));\n}\n\nfunction usePanGesture(ref, props) {\n  var onPan = props.onPan,\n      onPanStart = props.onPanStart,\n      onPanEnd = props.onPanEnd,\n      onPanSessionStart = props.onPanSessionStart,\n      onPanSessionEnd = props.onPanSessionEnd,\n      threshold = props.threshold;\n  var hasPanEvents = Boolean(onPan || onPanStart || onPanEnd || onPanSessionStart || onPanSessionEnd);\n  var panSession = useRef(null);\n  var handlers = {\n    onSessionStart: onPanSessionStart,\n    onSessionEnd: onPanSessionEnd,\n    onStart: onPanStart,\n    onMove: onPan,\n    onEnd: function onEnd(event, info) {\n      panSession.current = null;\n      onPanEnd == null ? void 0 : onPanEnd(event, info);\n    }\n  };\n  useEffect(function () {\n    var _panSession$current;\n\n    (_panSession$current = panSession.current) == null ? void 0 : _panSession$current.updateHandlers(handlers);\n  });\n\n  function onPointerDown(event) {\n    panSession.current = new PanSession(event, handlers, threshold);\n  }\n\n  usePointerEvent(function () {\n    return ref.current;\n  }, \"pointerdown\", hasPanEvents ? onPointerDown : noop);\n  useUnmountEffect(function () {\n    var _panSession$current2;\n\n    (_panSession$current2 = panSession.current) == null ? void 0 : _panSession$current2.end();\n    panSession.current = null;\n  });\n}\n\nfunction usePrevious(value) {\n  var ref = useRef();\n  useEffect(function () {\n    ref.current = value;\n  }, [value]);\n  return ref.current;\n}\n\n/**\n * Checks if the key pressed is a printable character\n * and can be used for shortcut navigation\n */\n\nfunction isPrintableCharacter(event) {\n  var key = event.key;\n  return key.length === 1 || key.length > 1 && /[^a-zA-Z0-9]/.test(key);\n}\n\n/**\n * React hook that provides an enhanced keydown handler,\n * that's used for key navigation within menus, select dropdowns.\n */\nfunction useShortcut(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  var _props = props,\n      _props$timeout = _props.timeout,\n      timeout = _props$timeout === void 0 ? 300 : _props$timeout,\n      _props$preventDefault = _props.preventDefault,\n      preventDefault = _props$preventDefault === void 0 ? function () {\n    return true;\n  } : _props$preventDefault;\n\n  var _React$useState = React.useState([]),\n      keys = _React$useState[0],\n      setKeys = _React$useState[1];\n\n  var timeoutRef = React.useRef();\n\n  var flush = function flush() {\n    if (timeoutRef.current) {\n      clearTimeout(timeoutRef.current);\n      timeoutRef.current = null;\n    }\n  };\n\n  var clearKeysAfterDelay = function clearKeysAfterDelay() {\n    flush();\n    timeoutRef.current = setTimeout(function () {\n      setKeys([]);\n      timeoutRef.current = null;\n    }, timeout);\n  };\n\n  React.useEffect(function () {\n    return flush;\n  }, []);\n\n  function onKeyDown(fn) {\n    return function (event) {\n      if (event.key === \"Backspace\") {\n        var keysCopy = [].concat(keys);\n        keysCopy.pop();\n        setKeys(keysCopy);\n        return;\n      }\n\n      if (isPrintableCharacter(event)) {\n        var _keysCopy = keys.concat(event.key);\n\n        if (preventDefault(event)) {\n          event.preventDefault();\n          event.stopPropagation();\n        }\n\n        setKeys(_keysCopy);\n        fn(_keysCopy.join(\"\"));\n        clearKeysAfterDelay();\n      }\n    };\n  }\n\n  return onKeyDown;\n}\n\n/**\n * React hook that provides a declarative `setTimeout`\n *\n * @param callback the callback to run after specified delay\n * @param delay the delay (in ms)\n */\n\nfunction useTimeout(callback, delay) {\n  var fn = useCallbackRef(callback);\n  React.useEffect(function () {\n    if (delay == null) return undefined;\n    var timeoutId = null;\n    timeoutId = window.setTimeout(function () {\n      fn();\n    }, delay);\n    return function () {\n      if (timeoutId) {\n        window.clearTimeout(timeoutId);\n      }\n    };\n  }, [delay, fn]);\n}\n\nfunction useWhyDidYouUpdate(name, props) {\n  var previousProps = React.useRef();\n  React.useEffect(function () {\n    if (previousProps.current) {\n      var allKeys = Object.keys(_extends({}, previousProps.current, props));\n      var changesObj = {};\n      allKeys.forEach(function (key) {\n        if (previousProps.current[key] !== props[key]) {\n          changesObj[key] = {\n            from: previousProps.current[key],\n            to: props[key]\n          };\n        }\n      });\n\n      if (Object.keys(changesObj).length) {\n        console.log(\"[why-did-you-update]\", name, changesObj);\n      }\n    }\n\n    previousProps.current = props;\n  });\n}\n\nexport { IdProvider, assignRef, useBoolean, useClipboard, useConst, useControllableProp, useControllableState, useDimensions, useDisclosure, useEventCallback, useEventListenerMap, useFocusEffect, useFocusOnHide, useFocusOnPointerDown, useFocusOnShow, useForceUpdate, useId, useIds, useInterval, useLatestRef, useMergeRefs, useMouseDownRef, useOptionalPart, useOutsideClick, usePanGesture, usePointerEvent, usePrevious, useShortcut, useTimeout, useUnmountEffect, useUpdateEffect, useWhyDidYouUpdate };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}