{"ast":null,"code":"import { forwardRef, useMultiStyleConfig, omitThemingProps, StylesProvider, chakra, useStyles } from '@chakra-ui/system';\nimport { normalizeEventKey, callAllHandlers, determineLazyBehavior, isUndefined, focus, omit, cx, __DEV__ } from '@chakra-ui/utils';\nimport * as React from 'react';\nimport { useClickable } from '@chakra-ui/clickable';\nimport { createDescendantContext } from '@chakra-ui/descendant';\nimport { useControllableState, useId, useSafeLayoutEffect } from '@chakra-ui/hooks';\nimport { createContext, mergeRefs, getValidChildren } from '@chakra-ui/react-utils';\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}\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$1 = [\"defaultIndex\", \"onChange\", \"index\", \"isManual\", \"isLazy\", \"lazyBehavior\", \"orientation\", \"direction\"],\n  _excluded2$1 = [\"isDisabled\", \"isFocusable\"],\n  _excluded3 = [\"isSelected\", \"id\", \"children\"];\n/* -------------------------------------------------------------------------------------------------\n * Create context to track descendants and their indices\n * -----------------------------------------------------------------------------------------------*/\n\nvar _createDescendantCont = createDescendantContext(),\n  TabsDescendantsProvider = _createDescendantCont[0],\n  useTabsDescendantsContext = _createDescendantCont[1],\n  useTabsDescendants = _createDescendantCont[2],\n  useTabsDescendant = _createDescendantCont[3];\n\n/**\n * Tabs hook that provides all the states, and accessibility\n * helpers to keep all things working properly.\n *\n * Its returned object will be passed unto a Context Provider\n * so all child components can read from it.\n * There is no document link yet\n * @see Docs https://chakra-ui.com/docs/components/useTabs\n */\nfunction useTabs(props) {\n  var defaultIndex = props.defaultIndex,\n    onChange = props.onChange,\n    index = props.index,\n    isManual = props.isManual,\n    isLazy = props.isLazy,\n    _props$lazyBehavior = props.lazyBehavior,\n    lazyBehavior = _props$lazyBehavior === void 0 ? \"unmount\" : _props$lazyBehavior,\n    _props$orientation = props.orientation,\n    orientation = _props$orientation === void 0 ? \"horizontal\" : _props$orientation,\n    _props$direction = props.direction,\n    direction = _props$direction === void 0 ? \"ltr\" : _props$direction,\n    htmlProps = _objectWithoutPropertiesLoose(props, _excluded$1);\n  /**\n   * We use this to keep track of the index of the focused tab.\n   *\n   * Tabs can be automatically activated, this means selection follows focus.\n   * When we navigate with the arrow keys, we move focus and selection to next/prev tab\n   *\n   * Tabs can also be manually activated, this means selection does not follow focus.\n   * When we navigate with the arrow keys, we only move focus NOT selection. The user\n   * will need not manually activate the tab using `Enter` or `Space`.\n   *\n   * This is why we need to keep track of the `focusedIndex` and `selectedIndex`\n   */\n\n  var _React$useState = React.useState(defaultIndex != null ? defaultIndex : 0),\n    focusedIndex = _React$useState[0],\n    setFocusedIndex = _React$useState[1];\n  var _useControllableState = useControllableState({\n      defaultValue: defaultIndex != null ? defaultIndex : 0,\n      value: index,\n      onChange: onChange\n    }),\n    selectedIndex = _useControllableState[0],\n    setSelectedIndex = _useControllableState[1];\n  /**\n   * Sync focused `index` with controlled `selectedIndex` (which is the `props.index`)\n   */\n\n  React.useEffect(function () {\n    if (index != null) {\n      setFocusedIndex(index);\n    }\n  }, [index]);\n  /**\n   * Think of `useDescendants` as a register for the tab nodes.\n   */\n\n  var descendants = useTabsDescendants();\n  /**\n   * Generate a unique id or use user-provided id for the tabs widget\n   */\n\n  var id = useId(props.id, \"tabs\");\n  return {\n    id: id,\n    selectedIndex: selectedIndex,\n    focusedIndex: focusedIndex,\n    setSelectedIndex: setSelectedIndex,\n    setFocusedIndex: setFocusedIndex,\n    isManual: isManual,\n    isLazy: isLazy,\n    lazyBehavior: lazyBehavior,\n    orientation: orientation,\n    descendants: descendants,\n    direction: direction,\n    htmlProps: htmlProps\n  };\n}\nvar _createContext = createContext({\n    name: \"TabsContext\",\n    errorMessage: \"useTabsContext: `context` is undefined. Seems you forgot to wrap all tabs components within <Tabs />\"\n  }),\n  TabsProvider = _createContext[0],\n  useTabsContext = _createContext[1];\n\n/**\n * Tabs hook to manage multiple tab buttons,\n * and ensures only one tab is selected per time.\n *\n * @param props props object for the tablist\n */\nfunction useTabList(props) {\n  var _useTabsContext = useTabsContext(),\n    focusedIndex = _useTabsContext.focusedIndex,\n    orientation = _useTabsContext.orientation,\n    direction = _useTabsContext.direction;\n  var descendants = useTabsDescendantsContext();\n  var onKeyDown = React.useCallback(function (event) {\n    var _keyMap;\n    var nextTab = function nextTab() {\n      var next = descendants.nextEnabled(focusedIndex);\n      if (next) focus(next.node);\n    };\n    var prevTab = function prevTab() {\n      var prev = descendants.prevEnabled(focusedIndex);\n      if (prev) focus(prev.node);\n    };\n    var firstTab = function firstTab() {\n      var first = descendants.firstEnabled();\n      if (first) focus(first.node);\n    };\n    var lastTab = function lastTab() {\n      var last = descendants.lastEnabled();\n      if (last) focus(last.node);\n    };\n    var isHorizontal = orientation === \"horizontal\";\n    var isVertical = orientation === \"vertical\";\n    var eventKey = normalizeEventKey(event);\n    var ArrowStart = direction === \"ltr\" ? \"ArrowLeft\" : \"ArrowRight\";\n    var ArrowEnd = direction === \"ltr\" ? \"ArrowRight\" : \"ArrowLeft\";\n    var keyMap = (_keyMap = {}, _keyMap[ArrowStart] = function () {\n      return isHorizontal && prevTab();\n    }, _keyMap[ArrowEnd] = function () {\n      return isHorizontal && nextTab();\n    }, _keyMap.ArrowDown = function ArrowDown() {\n      return isVertical && nextTab();\n    }, _keyMap.ArrowUp = function ArrowUp() {\n      return isVertical && prevTab();\n    }, _keyMap.Home = firstTab, _keyMap.End = lastTab, _keyMap);\n    var action = keyMap[eventKey];\n    if (action) {\n      event.preventDefault();\n      action(event);\n    }\n  }, [descendants, focusedIndex, orientation, direction]);\n  return _extends({}, props, {\n    role: \"tablist\",\n    \"aria-orientation\": orientation,\n    onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown)\n  });\n}\n\n/**\n * Tabs hook to manage each tab button.\n *\n * A tab can be disabled and focusable, or both,\n * hence the use of `useClickable` to handle this scenario\n */\nfunction useTab(props) {\n  var isDisabled = props.isDisabled,\n    isFocusable = props.isFocusable,\n    htmlProps = _objectWithoutPropertiesLoose(props, _excluded2$1);\n  var _useTabsContext2 = useTabsContext(),\n    setSelectedIndex = _useTabsContext2.setSelectedIndex,\n    isManual = _useTabsContext2.isManual,\n    id = _useTabsContext2.id,\n    setFocusedIndex = _useTabsContext2.setFocusedIndex,\n    selectedIndex = _useTabsContext2.selectedIndex;\n  var _useTabsDescendant = useTabsDescendant({\n      disabled: isDisabled && !isFocusable\n    }),\n    index = _useTabsDescendant.index,\n    register = _useTabsDescendant.register;\n  var isSelected = index === selectedIndex;\n  var onClick = function onClick() {\n    setSelectedIndex(index);\n  };\n  var onFocus = function onFocus() {\n    setFocusedIndex(index);\n    var isDisabledButFocusable = isDisabled && isFocusable;\n    var shouldSelect = !isManual && !isDisabledButFocusable;\n    if (shouldSelect) {\n      setSelectedIndex(index);\n    }\n  };\n  var clickableProps = useClickable(_extends({}, htmlProps, {\n    ref: mergeRefs(register, props.ref),\n    isDisabled: isDisabled,\n    isFocusable: isFocusable,\n    onClick: callAllHandlers(props.onClick, onClick)\n  }));\n  var type = \"button\";\n  return _extends({}, clickableProps, {\n    id: makeTabId(id, index),\n    role: \"tab\",\n    tabIndex: isSelected ? 0 : -1,\n    type: type,\n    \"aria-selected\": isSelected,\n    \"aria-controls\": makeTabPanelId(id, index),\n    onFocus: isDisabled ? undefined : callAllHandlers(props.onFocus, onFocus)\n  });\n}\n\n/**\n * Tabs hook for managing the visibility of multiple tab panels.\n *\n * Since only one panel can be show at a time, we use `cloneElement`\n * to inject `selected` panel to each TabPanel.\n *\n * It returns a cloned version of its children with\n * all functionality included.\n */\nfunction useTabPanels(props) {\n  var context = useTabsContext();\n  var id = context.id,\n    selectedIndex = context.selectedIndex;\n  var validChildren = getValidChildren(props.children);\n  var children = validChildren.map(function (child, index) {\n    return /*#__PURE__*/React.cloneElement(child, {\n      isSelected: index === selectedIndex,\n      id: makeTabPanelId(id, index),\n      // Refers to the associated tab element, and also provides an accessible name to the tab panel.\n      \"aria-labelledby\": makeTabId(id, index)\n    });\n  });\n  return _extends({}, props, {\n    children: children\n  });\n}\n/**\n * Tabs hook for managing the visible/hidden states\n * of the tab panel.\n *\n * @param props props object for the tab panel\n */\n\nfunction useTabPanel(props) {\n  var isSelected = props.isSelected,\n    id = props.id,\n    children = props.children,\n    htmlProps = _objectWithoutPropertiesLoose(props, _excluded3);\n  var _useTabsContext3 = useTabsContext(),\n    isLazy = _useTabsContext3.isLazy,\n    lazyBehavior = _useTabsContext3.lazyBehavior;\n  var hasBeenSelected = React.useRef(false);\n  if (isSelected) {\n    hasBeenSelected.current = true;\n  }\n  var shouldRenderChildren = determineLazyBehavior({\n    hasBeenSelected: hasBeenSelected.current,\n    isSelected: isSelected,\n    isLazy: isLazy,\n    lazyBehavior: lazyBehavior\n  });\n  return _extends({\n    // Puts the tabpanel in the page `Tab` sequence.\n    tabIndex: 0\n  }, htmlProps, {\n    children: shouldRenderChildren ? children : null,\n    role: \"tabpanel\",\n    hidden: !isSelected,\n    id: id\n  });\n}\n/**\n * Tabs hook to show an animated indicators that\n * follows the active tab.\n *\n * The way we do it is by measuring the DOM Rect (or dimensions)\n * of the active tab, and return that as CSS style for\n * the indicator.\n */\n\nfunction useTabIndicator() {\n  var context = useTabsContext();\n  var descendants = useTabsDescendantsContext();\n  var selectedIndex = context.selectedIndex,\n    orientation = context.orientation;\n  var isHorizontal = orientation === \"horizontal\";\n  var isVertical = orientation === \"vertical\"; // Get the clientRect of the selected tab\n\n  var _React$useState2 = React.useState(function () {\n      if (isHorizontal) return {\n        left: 0,\n        width: 0\n      };\n      if (isVertical) return {\n        top: 0,\n        height: 0\n      };\n      return undefined;\n    }),\n    rect = _React$useState2[0],\n    setRect = _React$useState2[1];\n  var _React$useState3 = React.useState(false),\n    hasMeasured = _React$useState3[0],\n    setHasMeasured = _React$useState3[1]; // Update the selected tab rect when the selectedIndex changes\n\n  useSafeLayoutEffect(function () {\n    if (isUndefined(selectedIndex)) return undefined;\n    var tab = descendants.item(selectedIndex);\n    if (isUndefined(tab)) return undefined; // Horizontal Tab: Calculate width and left distance\n\n    if (isHorizontal) {\n      setRect({\n        left: tab.node.offsetLeft,\n        width: tab.node.offsetWidth\n      });\n    } // Vertical Tab: Calculate height and top distance\n\n    if (isVertical) {\n      setRect({\n        top: tab.node.offsetTop,\n        height: tab.node.offsetHeight\n      });\n    } // Prevent unwanted transition from 0 to measured rect\n    // by setting the measured state in the next tick\n\n    var id = requestAnimationFrame(function () {\n      setHasMeasured(true);\n    });\n    return function () {\n      if (id) {\n        cancelAnimationFrame(id);\n      }\n    };\n  }, [selectedIndex, isHorizontal, isVertical, descendants]);\n  return _extends({\n    position: \"absolute\",\n    transitionProperty: \"left, right, top, bottom, height, width\",\n    transitionDuration: hasMeasured ? \"200ms\" : \"0ms\",\n    transitionTimingFunction: \"cubic-bezier(0, 0, 0.2, 1)\"\n  }, rect);\n}\nfunction makeTabId(id, index) {\n  return id + \"--tab-\" + index;\n}\nfunction makeTabPanelId(id, index) {\n  return id + \"--tabpanel-\" + index;\n}\nvar _excluded = [\"children\", \"className\"],\n  _excluded2 = [\"htmlProps\", \"descendants\"];\n\n/**\n * Tabs\n *\n * Provides context and logic for all tabs components.\n */\nvar Tabs = /*#__PURE__*/forwardRef(function (props, ref) {\n  var styles = useMultiStyleConfig(\"Tabs\", props);\n  var _omitThemingProps = omitThemingProps(props),\n    children = _omitThemingProps.children,\n    className = _omitThemingProps.className,\n    rest = _objectWithoutPropertiesLoose(_omitThemingProps, _excluded);\n  var _useTabs = useTabs(rest),\n    htmlProps = _useTabs.htmlProps,\n    descendants = _useTabs.descendants,\n    ctx = _objectWithoutPropertiesLoose(_useTabs, _excluded2);\n  var context = React.useMemo(function () {\n    return ctx;\n  }, [ctx]);\n  var rootProps = omit(htmlProps, [\"isFitted\"]);\n  return /*#__PURE__*/React.createElement(TabsDescendantsProvider, {\n    value: descendants\n  }, /*#__PURE__*/React.createElement(TabsProvider, {\n    value: context\n  }, /*#__PURE__*/React.createElement(StylesProvider, {\n    value: styles\n  }, /*#__PURE__*/React.createElement(chakra.div, _extends({\n    className: cx(\"chakra-tabs\", className),\n    ref: ref\n  }, rootProps, {\n    __css: styles.root\n  }), children))));\n});\nif (__DEV__) {\n  Tabs.displayName = \"Tabs\";\n}\n\n/**\n * Tab button used to activate a specific tab panel. It renders a `button`,\n * and is responsible for automatic and manual selection modes.\n */\nvar Tab = /*#__PURE__*/forwardRef(function (props, ref) {\n  var styles = useStyles();\n  var tabProps = useTab(_extends({}, props, {\n    ref: ref\n  }));\n  var tabStyles = _extends({\n    outline: \"0\",\n    display: \"flex\",\n    alignItems: \"center\",\n    justifyContent: \"center\"\n  }, styles.tab);\n  return /*#__PURE__*/React.createElement(chakra.button, _extends({}, tabProps, {\n    className: cx(\"chakra-tabs__tab\", props.className),\n    __css: tabStyles\n  }));\n});\nif (__DEV__) {\n  Tab.displayName = \"Tab\";\n}\n\n/**\n * TabList is used to manage a list of tab buttons. It renders a `div` by default,\n * and is responsible the keyboard interaction between tabs.\n */\nvar TabList = /*#__PURE__*/forwardRef(function (props, ref) {\n  var tablistProps = useTabList(_extends({}, props, {\n    ref: ref\n  }));\n  var styles = useStyles();\n  var tablistStyles = _extends({\n    display: \"flex\"\n  }, styles.tablist);\n  return /*#__PURE__*/React.createElement(chakra.div, _extends({}, tablistProps, {\n    className: cx(\"chakra-tabs__tablist\", props.className),\n    __css: tablistStyles\n  }));\n});\nif (__DEV__) {\n  TabList.displayName = \"TabList\";\n}\n\n/**\n * TabPanel\n * Used to render the content for a specific tab.\n */\nvar TabPanel = /*#__PURE__*/forwardRef(function (props, ref) {\n  var panelProps = useTabPanel(_extends({}, props, {\n    ref: ref\n  }));\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(chakra.div, _extends({\n    outline: \"0\"\n  }, panelProps, {\n    className: cx(\"chakra-tabs__tab-panel\", props.className),\n    __css: styles.tabpanel\n  }));\n});\nif (__DEV__) {\n  TabPanel.displayName = \"TabPanel\";\n}\n\n/**\n * TabPanel\n *\n * Used to manage the rendering of multiple tab panels. It uses\n * `cloneElement` to hide/show tab panels.\n *\n * It renders a `div` by default.\n */\nvar TabPanels = /*#__PURE__*/forwardRef(function (props, ref) {\n  var panelsProps = useTabPanels(props);\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(chakra.div, _extends({}, panelsProps, {\n    width: \"100%\",\n    ref: ref,\n    className: cx(\"chakra-tabs__tab-panels\", props.className),\n    __css: styles.tabpanels\n  }));\n});\nif (__DEV__) {\n  TabPanels.displayName = \"TabPanels\";\n}\n\n/**\n * TabIndicator\n *\n * Used to render an active tab indicator that animates between\n * selected tabs.\n */\nvar TabIndicator = /*#__PURE__*/forwardRef(function (props, ref) {\n  var indicatorStyle = useTabIndicator();\n  var style = _extends({}, props.style, indicatorStyle);\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(chakra.div, _extends({\n    ref: ref\n  }, props, {\n    className: cx(\"chakra-tabs__tab-indicator\", props.className),\n    style: style,\n    __css: styles.indicator\n  }));\n});\nif (__DEV__) {\n  TabIndicator.displayName = \"TabIndicator\";\n}\nexport { Tab, TabIndicator, TabList, TabPanel, TabPanels, Tabs, TabsDescendantsProvider, TabsProvider, useTab, useTabIndicator, useTabList, useTabPanel, useTabPanels, useTabs, useTabsContext, useTabsDescendant, useTabsDescendants, useTabsDescendantsContext };","map":{"version":3,"names":["forwardRef","useMultiStyleConfig","omitThemingProps","StylesProvider","chakra","useStyles","normalizeEventKey","callAllHandlers","determineLazyBehavior","isUndefined","focus","omit","cx","__DEV__","React","useClickable","createDescendantContext","useControllableState","useId","useSafeLayoutEffect","createContext","mergeRefs","getValidChildren","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","indexOf","_excluded$1","_excluded2$1","_excluded3","_createDescendantCont","TabsDescendantsProvider","useTabsDescendantsContext","useTabsDescendants","useTabsDescendant","useTabs","props","defaultIndex","onChange","index","isManual","isLazy","_props$lazyBehavior","lazyBehavior","_props$orientation","orientation","_props$direction","direction","htmlProps","_React$useState","useState","focusedIndex","setFocusedIndex","_useControllableState","defaultValue","value","selectedIndex","setSelectedIndex","useEffect","descendants","id","_createContext","name","errorMessage","TabsProvider","useTabsContext","useTabList","_useTabsContext","onKeyDown","useCallback","event","_keyMap","nextTab","next","nextEnabled","node","prevTab","prev","prevEnabled","firstTab","first","firstEnabled","lastTab","last","lastEnabled","isHorizontal","isVertical","eventKey","ArrowStart","ArrowEnd","keyMap","ArrowDown","ArrowUp","Home","End","action","preventDefault","role","useTab","isDisabled","isFocusable","_useTabsContext2","_useTabsDescendant","disabled","register","isSelected","onClick","onFocus","isDisabledButFocusable","shouldSelect","clickableProps","ref","type","makeTabId","tabIndex","makeTabPanelId","undefined","useTabPanels","context","validChildren","children","map","child","cloneElement","useTabPanel","_useTabsContext3","hasBeenSelected","useRef","current","shouldRenderChildren","hidden","useTabIndicator","_React$useState2","left","width","top","height","rect","setRect","_React$useState3","hasMeasured","setHasMeasured","tab","item","offsetLeft","offsetWidth","offsetTop","offsetHeight","requestAnimationFrame","cancelAnimationFrame","position","transitionProperty","transitionDuration","transitionTimingFunction","_excluded","_excluded2","Tabs","styles","_omitThemingProps","className","rest","_useTabs","ctx","useMemo","rootProps","createElement","div","__css","root","displayName","Tab","tabProps","tabStyles","outline","display","alignItems","justifyContent","button","TabList","tablistProps","tablistStyles","tablist","TabPanel","panelProps","tabpanel","TabPanels","panelsProps","tabpanels","TabIndicator","indicatorStyle","style","indicator"],"sources":["D:/DSP_Management/node_modules/@chakra-ui/tabs/dist/chakra-ui-tabs.esm.js"],"sourcesContent":["import { forwardRef, useMultiStyleConfig, omitThemingProps, StylesProvider, chakra, useStyles } from '@chakra-ui/system';\nimport { normalizeEventKey, callAllHandlers, determineLazyBehavior, isUndefined, focus, omit, cx, __DEV__ } from '@chakra-ui/utils';\nimport * as React from 'react';\nimport { useClickable } from '@chakra-ui/clickable';\nimport { createDescendantContext } from '@chakra-ui/descendant';\nimport { useControllableState, useId, useSafeLayoutEffect } from '@chakra-ui/hooks';\nimport { createContext, mergeRefs, getValidChildren } from '@chakra-ui/react-utils';\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\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$1 = [\"defaultIndex\", \"onChange\", \"index\", \"isManual\", \"isLazy\", \"lazyBehavior\", \"orientation\", \"direction\"],\n    _excluded2$1 = [\"isDisabled\", \"isFocusable\"],\n    _excluded3 = [\"isSelected\", \"id\", \"children\"];\n/* -------------------------------------------------------------------------------------------------\n * Create context to track descendants and their indices\n * -----------------------------------------------------------------------------------------------*/\n\nvar _createDescendantCont = createDescendantContext(),\n    TabsDescendantsProvider = _createDescendantCont[0],\n    useTabsDescendantsContext = _createDescendantCont[1],\n    useTabsDescendants = _createDescendantCont[2],\n    useTabsDescendant = _createDescendantCont[3];\n\n/**\n * Tabs hook that provides all the states, and accessibility\n * helpers to keep all things working properly.\n *\n * Its returned object will be passed unto a Context Provider\n * so all child components can read from it.\n * There is no document link yet\n * @see Docs https://chakra-ui.com/docs/components/useTabs\n */\nfunction useTabs(props) {\n  var defaultIndex = props.defaultIndex,\n      onChange = props.onChange,\n      index = props.index,\n      isManual = props.isManual,\n      isLazy = props.isLazy,\n      _props$lazyBehavior = props.lazyBehavior,\n      lazyBehavior = _props$lazyBehavior === void 0 ? \"unmount\" : _props$lazyBehavior,\n      _props$orientation = props.orientation,\n      orientation = _props$orientation === void 0 ? \"horizontal\" : _props$orientation,\n      _props$direction = props.direction,\n      direction = _props$direction === void 0 ? \"ltr\" : _props$direction,\n      htmlProps = _objectWithoutPropertiesLoose(props, _excluded$1);\n  /**\n   * We use this to keep track of the index of the focused tab.\n   *\n   * Tabs can be automatically activated, this means selection follows focus.\n   * When we navigate with the arrow keys, we move focus and selection to next/prev tab\n   *\n   * Tabs can also be manually activated, this means selection does not follow focus.\n   * When we navigate with the arrow keys, we only move focus NOT selection. The user\n   * will need not manually activate the tab using `Enter` or `Space`.\n   *\n   * This is why we need to keep track of the `focusedIndex` and `selectedIndex`\n   */\n\n\n  var _React$useState = React.useState(defaultIndex != null ? defaultIndex : 0),\n      focusedIndex = _React$useState[0],\n      setFocusedIndex = _React$useState[1];\n\n  var _useControllableState = useControllableState({\n    defaultValue: defaultIndex != null ? defaultIndex : 0,\n    value: index,\n    onChange: onChange\n  }),\n      selectedIndex = _useControllableState[0],\n      setSelectedIndex = _useControllableState[1];\n  /**\n   * Sync focused `index` with controlled `selectedIndex` (which is the `props.index`)\n   */\n\n\n  React.useEffect(function () {\n    if (index != null) {\n      setFocusedIndex(index);\n    }\n  }, [index]);\n  /**\n   * Think of `useDescendants` as a register for the tab nodes.\n   */\n\n  var descendants = useTabsDescendants();\n  /**\n   * Generate a unique id or use user-provided id for the tabs widget\n   */\n\n  var id = useId(props.id, \"tabs\");\n  return {\n    id: id,\n    selectedIndex: selectedIndex,\n    focusedIndex: focusedIndex,\n    setSelectedIndex: setSelectedIndex,\n    setFocusedIndex: setFocusedIndex,\n    isManual: isManual,\n    isLazy: isLazy,\n    lazyBehavior: lazyBehavior,\n    orientation: orientation,\n    descendants: descendants,\n    direction: direction,\n    htmlProps: htmlProps\n  };\n}\n\nvar _createContext = createContext({\n  name: \"TabsContext\",\n  errorMessage: \"useTabsContext: `context` is undefined. Seems you forgot to wrap all tabs components within <Tabs />\"\n}),\n    TabsProvider = _createContext[0],\n    useTabsContext = _createContext[1];\n\n/**\n * Tabs hook to manage multiple tab buttons,\n * and ensures only one tab is selected per time.\n *\n * @param props props object for the tablist\n */\nfunction useTabList(props) {\n  var _useTabsContext = useTabsContext(),\n      focusedIndex = _useTabsContext.focusedIndex,\n      orientation = _useTabsContext.orientation,\n      direction = _useTabsContext.direction;\n\n  var descendants = useTabsDescendantsContext();\n  var onKeyDown = React.useCallback(function (event) {\n    var _keyMap;\n\n    var nextTab = function nextTab() {\n      var next = descendants.nextEnabled(focusedIndex);\n      if (next) focus(next.node);\n    };\n\n    var prevTab = function prevTab() {\n      var prev = descendants.prevEnabled(focusedIndex);\n      if (prev) focus(prev.node);\n    };\n\n    var firstTab = function firstTab() {\n      var first = descendants.firstEnabled();\n      if (first) focus(first.node);\n    };\n\n    var lastTab = function lastTab() {\n      var last = descendants.lastEnabled();\n      if (last) focus(last.node);\n    };\n\n    var isHorizontal = orientation === \"horizontal\";\n    var isVertical = orientation === \"vertical\";\n    var eventKey = normalizeEventKey(event);\n    var ArrowStart = direction === \"ltr\" ? \"ArrowLeft\" : \"ArrowRight\";\n    var ArrowEnd = direction === \"ltr\" ? \"ArrowRight\" : \"ArrowLeft\";\n    var keyMap = (_keyMap = {}, _keyMap[ArrowStart] = function () {\n      return isHorizontal && prevTab();\n    }, _keyMap[ArrowEnd] = function () {\n      return isHorizontal && nextTab();\n    }, _keyMap.ArrowDown = function ArrowDown() {\n      return isVertical && nextTab();\n    }, _keyMap.ArrowUp = function ArrowUp() {\n      return isVertical && prevTab();\n    }, _keyMap.Home = firstTab, _keyMap.End = lastTab, _keyMap);\n    var action = keyMap[eventKey];\n\n    if (action) {\n      event.preventDefault();\n      action(event);\n    }\n  }, [descendants, focusedIndex, orientation, direction]);\n  return _extends({}, props, {\n    role: \"tablist\",\n    \"aria-orientation\": orientation,\n    onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown)\n  });\n}\n\n/**\n * Tabs hook to manage each tab button.\n *\n * A tab can be disabled and focusable, or both,\n * hence the use of `useClickable` to handle this scenario\n */\nfunction useTab(props) {\n  var isDisabled = props.isDisabled,\n      isFocusable = props.isFocusable,\n      htmlProps = _objectWithoutPropertiesLoose(props, _excluded2$1);\n\n  var _useTabsContext2 = useTabsContext(),\n      setSelectedIndex = _useTabsContext2.setSelectedIndex,\n      isManual = _useTabsContext2.isManual,\n      id = _useTabsContext2.id,\n      setFocusedIndex = _useTabsContext2.setFocusedIndex,\n      selectedIndex = _useTabsContext2.selectedIndex;\n\n  var _useTabsDescendant = useTabsDescendant({\n    disabled: isDisabled && !isFocusable\n  }),\n      index = _useTabsDescendant.index,\n      register = _useTabsDescendant.register;\n\n  var isSelected = index === selectedIndex;\n\n  var onClick = function onClick() {\n    setSelectedIndex(index);\n  };\n\n  var onFocus = function onFocus() {\n    setFocusedIndex(index);\n    var isDisabledButFocusable = isDisabled && isFocusable;\n    var shouldSelect = !isManual && !isDisabledButFocusable;\n\n    if (shouldSelect) {\n      setSelectedIndex(index);\n    }\n  };\n\n  var clickableProps = useClickable(_extends({}, htmlProps, {\n    ref: mergeRefs(register, props.ref),\n    isDisabled: isDisabled,\n    isFocusable: isFocusable,\n    onClick: callAllHandlers(props.onClick, onClick)\n  }));\n  var type = \"button\";\n  return _extends({}, clickableProps, {\n    id: makeTabId(id, index),\n    role: \"tab\",\n    tabIndex: isSelected ? 0 : -1,\n    type: type,\n    \"aria-selected\": isSelected,\n    \"aria-controls\": makeTabPanelId(id, index),\n    onFocus: isDisabled ? undefined : callAllHandlers(props.onFocus, onFocus)\n  });\n}\n\n/**\n * Tabs hook for managing the visibility of multiple tab panels.\n *\n * Since only one panel can be show at a time, we use `cloneElement`\n * to inject `selected` panel to each TabPanel.\n *\n * It returns a cloned version of its children with\n * all functionality included.\n */\nfunction useTabPanels(props) {\n  var context = useTabsContext();\n  var id = context.id,\n      selectedIndex = context.selectedIndex;\n  var validChildren = getValidChildren(props.children);\n  var children = validChildren.map(function (child, index) {\n    return /*#__PURE__*/React.cloneElement(child, {\n      isSelected: index === selectedIndex,\n      id: makeTabPanelId(id, index),\n      // Refers to the associated tab element, and also provides an accessible name to the tab panel.\n      \"aria-labelledby\": makeTabId(id, index)\n    });\n  });\n  return _extends({}, props, {\n    children: children\n  });\n}\n/**\n * Tabs hook for managing the visible/hidden states\n * of the tab panel.\n *\n * @param props props object for the tab panel\n */\n\nfunction useTabPanel(props) {\n  var isSelected = props.isSelected,\n      id = props.id,\n      children = props.children,\n      htmlProps = _objectWithoutPropertiesLoose(props, _excluded3);\n\n  var _useTabsContext3 = useTabsContext(),\n      isLazy = _useTabsContext3.isLazy,\n      lazyBehavior = _useTabsContext3.lazyBehavior;\n\n  var hasBeenSelected = React.useRef(false);\n\n  if (isSelected) {\n    hasBeenSelected.current = true;\n  }\n\n  var shouldRenderChildren = determineLazyBehavior({\n    hasBeenSelected: hasBeenSelected.current,\n    isSelected: isSelected,\n    isLazy: isLazy,\n    lazyBehavior: lazyBehavior\n  });\n  return _extends({\n    // Puts the tabpanel in the page `Tab` sequence.\n    tabIndex: 0\n  }, htmlProps, {\n    children: shouldRenderChildren ? children : null,\n    role: \"tabpanel\",\n    hidden: !isSelected,\n    id: id\n  });\n}\n/**\n * Tabs hook to show an animated indicators that\n * follows the active tab.\n *\n * The way we do it is by measuring the DOM Rect (or dimensions)\n * of the active tab, and return that as CSS style for\n * the indicator.\n */\n\nfunction useTabIndicator() {\n  var context = useTabsContext();\n  var descendants = useTabsDescendantsContext();\n  var selectedIndex = context.selectedIndex,\n      orientation = context.orientation;\n  var isHorizontal = orientation === \"horizontal\";\n  var isVertical = orientation === \"vertical\"; // Get the clientRect of the selected tab\n\n  var _React$useState2 = React.useState(function () {\n    if (isHorizontal) return {\n      left: 0,\n      width: 0\n    };\n    if (isVertical) return {\n      top: 0,\n      height: 0\n    };\n    return undefined;\n  }),\n      rect = _React$useState2[0],\n      setRect = _React$useState2[1];\n\n  var _React$useState3 = React.useState(false),\n      hasMeasured = _React$useState3[0],\n      setHasMeasured = _React$useState3[1]; // Update the selected tab rect when the selectedIndex changes\n\n\n  useSafeLayoutEffect(function () {\n    if (isUndefined(selectedIndex)) return undefined;\n    var tab = descendants.item(selectedIndex);\n    if (isUndefined(tab)) return undefined; // Horizontal Tab: Calculate width and left distance\n\n    if (isHorizontal) {\n      setRect({\n        left: tab.node.offsetLeft,\n        width: tab.node.offsetWidth\n      });\n    } // Vertical Tab: Calculate height and top distance\n\n\n    if (isVertical) {\n      setRect({\n        top: tab.node.offsetTop,\n        height: tab.node.offsetHeight\n      });\n    } // Prevent unwanted transition from 0 to measured rect\n    // by setting the measured state in the next tick\n\n\n    var id = requestAnimationFrame(function () {\n      setHasMeasured(true);\n    });\n    return function () {\n      if (id) {\n        cancelAnimationFrame(id);\n      }\n    };\n  }, [selectedIndex, isHorizontal, isVertical, descendants]);\n  return _extends({\n    position: \"absolute\",\n    transitionProperty: \"left, right, top, bottom, height, width\",\n    transitionDuration: hasMeasured ? \"200ms\" : \"0ms\",\n    transitionTimingFunction: \"cubic-bezier(0, 0, 0.2, 1)\"\n  }, rect);\n}\n\nfunction makeTabId(id, index) {\n  return id + \"--tab-\" + index;\n}\n\nfunction makeTabPanelId(id, index) {\n  return id + \"--tabpanel-\" + index;\n}\n\nvar _excluded = [\"children\", \"className\"],\n    _excluded2 = [\"htmlProps\", \"descendants\"];\n\n/**\n * Tabs\n *\n * Provides context and logic for all tabs components.\n */\nvar Tabs = /*#__PURE__*/forwardRef(function (props, ref) {\n  var styles = useMultiStyleConfig(\"Tabs\", props);\n\n  var _omitThemingProps = omitThemingProps(props),\n      children = _omitThemingProps.children,\n      className = _omitThemingProps.className,\n      rest = _objectWithoutPropertiesLoose(_omitThemingProps, _excluded);\n\n  var _useTabs = useTabs(rest),\n      htmlProps = _useTabs.htmlProps,\n      descendants = _useTabs.descendants,\n      ctx = _objectWithoutPropertiesLoose(_useTabs, _excluded2);\n\n  var context = React.useMemo(function () {\n    return ctx;\n  }, [ctx]);\n  var rootProps = omit(htmlProps, [\"isFitted\"]);\n  return /*#__PURE__*/React.createElement(TabsDescendantsProvider, {\n    value: descendants\n  }, /*#__PURE__*/React.createElement(TabsProvider, {\n    value: context\n  }, /*#__PURE__*/React.createElement(StylesProvider, {\n    value: styles\n  }, /*#__PURE__*/React.createElement(chakra.div, _extends({\n    className: cx(\"chakra-tabs\", className),\n    ref: ref\n  }, rootProps, {\n    __css: styles.root\n  }), children))));\n});\n\nif (__DEV__) {\n  Tabs.displayName = \"Tabs\";\n}\n\n/**\n * Tab button used to activate a specific tab panel. It renders a `button`,\n * and is responsible for automatic and manual selection modes.\n */\nvar Tab = /*#__PURE__*/forwardRef(function (props, ref) {\n  var styles = useStyles();\n  var tabProps = useTab(_extends({}, props, {\n    ref: ref\n  }));\n\n  var tabStyles = _extends({\n    outline: \"0\",\n    display: \"flex\",\n    alignItems: \"center\",\n    justifyContent: \"center\"\n  }, styles.tab);\n\n  return /*#__PURE__*/React.createElement(chakra.button, _extends({}, tabProps, {\n    className: cx(\"chakra-tabs__tab\", props.className),\n    __css: tabStyles\n  }));\n});\n\nif (__DEV__) {\n  Tab.displayName = \"Tab\";\n}\n\n/**\n * TabList is used to manage a list of tab buttons. It renders a `div` by default,\n * and is responsible the keyboard interaction between tabs.\n */\nvar TabList = /*#__PURE__*/forwardRef(function (props, ref) {\n  var tablistProps = useTabList(_extends({}, props, {\n    ref: ref\n  }));\n  var styles = useStyles();\n\n  var tablistStyles = _extends({\n    display: \"flex\"\n  }, styles.tablist);\n\n  return /*#__PURE__*/React.createElement(chakra.div, _extends({}, tablistProps, {\n    className: cx(\"chakra-tabs__tablist\", props.className),\n    __css: tablistStyles\n  }));\n});\n\nif (__DEV__) {\n  TabList.displayName = \"TabList\";\n}\n\n/**\n * TabPanel\n * Used to render the content for a specific tab.\n */\nvar TabPanel = /*#__PURE__*/forwardRef(function (props, ref) {\n  var panelProps = useTabPanel(_extends({}, props, {\n    ref: ref\n  }));\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(chakra.div, _extends({\n    outline: \"0\"\n  }, panelProps, {\n    className: cx(\"chakra-tabs__tab-panel\", props.className),\n    __css: styles.tabpanel\n  }));\n});\n\nif (__DEV__) {\n  TabPanel.displayName = \"TabPanel\";\n}\n\n/**\n * TabPanel\n *\n * Used to manage the rendering of multiple tab panels. It uses\n * `cloneElement` to hide/show tab panels.\n *\n * It renders a `div` by default.\n */\nvar TabPanels = /*#__PURE__*/forwardRef(function (props, ref) {\n  var panelsProps = useTabPanels(props);\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(chakra.div, _extends({}, panelsProps, {\n    width: \"100%\",\n    ref: ref,\n    className: cx(\"chakra-tabs__tab-panels\", props.className),\n    __css: styles.tabpanels\n  }));\n});\n\nif (__DEV__) {\n  TabPanels.displayName = \"TabPanels\";\n}\n\n/**\n * TabIndicator\n *\n * Used to render an active tab indicator that animates between\n * selected tabs.\n */\nvar TabIndicator = /*#__PURE__*/forwardRef(function (props, ref) {\n  var indicatorStyle = useTabIndicator();\n\n  var style = _extends({}, props.style, indicatorStyle);\n\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(chakra.div, _extends({\n    ref: ref\n  }, props, {\n    className: cx(\"chakra-tabs__tab-indicator\", props.className),\n    style: style,\n    __css: styles.indicator\n  }));\n});\n\nif (__DEV__) {\n  TabIndicator.displayName = \"TabIndicator\";\n}\n\nexport { Tab, TabIndicator, TabList, TabPanel, TabPanels, Tabs, TabsDescendantsProvider, TabsProvider, useTab, useTabIndicator, useTabList, useTabPanel, useTabPanels, useTabs, useTabsContext, useTabsDescendant, useTabsDescendants, useTabsDescendantsContext };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}