{"version":3,"file":"static/js/async/5293.1144c544.js","sources":["webpack://auth0/../../node_modules/@uipath/portal-shell/dist/esm/Tabs-8fbeafba.js"],"sourcesContent":["import { c as capitalize, _ as _extends, r as react, u as useThemeProps, a as _objectWithoutPropertiesLoose, j as jsxRuntime } from './injectIntl-69ea3288.js';\nimport { g as generateUtilityClass, a as generateUtilityClasses, s as styled, c as composeClasses, b as clsx } from './styled-e3a297da.js';\nimport { B as ButtonBase } from './ButtonBase-55a105eb.js';\nimport './react-is.production.min-c93c6707.js';\nimport { u as useTheme } from './useTheme-a202c679.js';\nimport { a as useEnhancedEffect, u as useEventCallback } from './useEventCallback-c62468b6.js';\nimport { d as debounce, o as ownerWindow } from './ownerWindow-6d98bb3b.js';\nimport { c as createSvgIcon } from './createSvgIcon-4bd82d31.js';\nimport { u as useSlotProps } from './useSlotProps-56cde7cd.js';\nimport { o as ownerDocument } from './ownerDocument-d760c4d1.js';\n\n// Source from https://github.com/alitaheri/normalize-scroll-left\nlet cachedType;\n\n/**\n * Based on the jquery plugin https://github.com/othree/jquery.rtl-scroll-type\n *\n * Types of scrollLeft, assuming scrollWidth=100 and direction is rtl.\n *\n * Type | <- Most Left | Most Right -> | Initial\n * ---------------- | ------------ | ------------- | -------\n * default | 0 | 100 | 100\n * negative (spec*) | -100 | 0 | 0\n * reverse | 100 | 0 | 0\n *\n * Edge 85: default\n * Safari 14: negative\n * Chrome 85: negative\n * Firefox 81: negative\n * IE11: reverse\n *\n * spec* https://drafts.csswg.org/cssom-view/#dom-window-scroll\n */\nfunction detectScrollType() {\n if (cachedType) {\n return cachedType;\n }\n const dummy = document.createElement('div');\n const container = document.createElement('div');\n container.style.width = '10px';\n container.style.height = '1px';\n dummy.appendChild(container);\n dummy.dir = 'rtl';\n dummy.style.fontSize = '14px';\n dummy.style.width = '4px';\n dummy.style.height = '1px';\n dummy.style.position = 'absolute';\n dummy.style.top = '-1000px';\n dummy.style.overflow = 'scroll';\n document.body.appendChild(dummy);\n cachedType = 'reverse';\n if (dummy.scrollLeft > 0) {\n cachedType = 'default';\n } else {\n dummy.scrollLeft = 1;\n if (dummy.scrollLeft === 0) {\n cachedType = 'negative';\n }\n }\n document.body.removeChild(dummy);\n return cachedType;\n}\n\n// Based on https://stackoverflow.com/a/24394376\nfunction getNormalizedScrollLeft(element, direction) {\n const scrollLeft = element.scrollLeft;\n\n // Perform the calculations only when direction is rtl to avoid messing up the ltr behavior\n if (direction !== 'rtl') {\n return scrollLeft;\n }\n const type = detectScrollType();\n switch (type) {\n case 'negative':\n return element.scrollWidth - element.clientWidth + scrollLeft;\n case 'reverse':\n return element.scrollWidth - element.clientWidth - scrollLeft;\n default:\n return scrollLeft;\n }\n}\n\nfunction getTabUtilityClass(slot) {\n return generateUtilityClass('MuiTab', slot);\n}\nconst tabClasses = generateUtilityClasses('MuiTab', ['root', 'labelIcon', 'textColorInherit', 'textColorPrimary', 'textColorSecondary', 'selected', 'disabled', 'fullWidth', 'wrapped', 'iconWrapper']);\nconst tabClasses$1 = tabClasses;\n\nconst _excluded$3 = [\"className\", \"disabled\", \"disableFocusRipple\", \"fullWidth\", \"icon\", \"iconPosition\", \"indicator\", \"label\", \"onChange\", \"onClick\", \"onFocus\", \"selected\", \"selectionFollowsFocus\", \"textColor\", \"value\", \"wrapped\"];\nconst useUtilityClasses$2 = ownerState => {\n const {\n classes,\n textColor,\n fullWidth,\n wrapped,\n icon,\n label,\n selected,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', icon && label && 'labelIcon', `textColor${capitalize(textColor)}`, fullWidth && 'fullWidth', wrapped && 'wrapped', selected && 'selected', disabled && 'disabled'],\n iconWrapper: ['iconWrapper']\n };\n return composeClasses(slots, getTabUtilityClass, classes);\n};\nconst TabRoot = styled(ButtonBase, {\n name: 'MuiTab',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.label && ownerState.icon && styles.labelIcon, styles[`textColor${capitalize(ownerState.textColor)}`], ownerState.fullWidth && styles.fullWidth, ownerState.wrapped && styles.wrapped];\n }\n})(({\n theme,\n ownerState\n}) => _extends({}, theme.typography.button, {\n maxWidth: 360,\n minWidth: 90,\n position: 'relative',\n minHeight: 48,\n flexShrink: 0,\n padding: '12px 16px',\n overflow: 'hidden',\n whiteSpace: 'normal',\n textAlign: 'center'\n}, ownerState.label && {\n flexDirection: ownerState.iconPosition === 'top' || ownerState.iconPosition === 'bottom' ? 'column' : 'row'\n}, {\n lineHeight: 1.25\n}, ownerState.icon && ownerState.label && {\n minHeight: 72,\n paddingTop: 9,\n paddingBottom: 9,\n [`& > .${tabClasses$1.iconWrapper}`]: _extends({}, ownerState.iconPosition === 'top' && {\n marginBottom: 6\n }, ownerState.iconPosition === 'bottom' && {\n marginTop: 6\n }, ownerState.iconPosition === 'start' && {\n marginRight: theme.spacing(1)\n }, ownerState.iconPosition === 'end' && {\n marginLeft: theme.spacing(1)\n })\n}, ownerState.textColor === 'inherit' && {\n color: 'inherit',\n opacity: 0.6,\n // same opacity as theme.palette.text.secondary\n [`&.${tabClasses$1.selected}`]: {\n opacity: 1\n },\n [`&.${tabClasses$1.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n }\n}, ownerState.textColor === 'primary' && {\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${tabClasses$1.selected}`]: {\n color: (theme.vars || theme).palette.primary.main\n },\n [`&.${tabClasses$1.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n}, ownerState.textColor === 'secondary' && {\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${tabClasses$1.selected}`]: {\n color: (theme.vars || theme).palette.secondary.main\n },\n [`&.${tabClasses$1.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n}, ownerState.fullWidth && {\n flexShrink: 1,\n flexGrow: 1,\n flexBasis: 0,\n maxWidth: 'none'\n}, ownerState.wrapped && {\n fontSize: theme.typography.pxToRem(12)\n}));\nconst Tab = /*#__PURE__*/react.exports.forwardRef(function Tab(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTab'\n });\n const {\n className,\n disabled = false,\n disableFocusRipple = false,\n // eslint-disable-next-line react/prop-types\n fullWidth,\n icon: iconProp,\n iconPosition = 'top',\n // eslint-disable-next-line react/prop-types\n indicator,\n label,\n onChange,\n onClick,\n onFocus,\n // eslint-disable-next-line react/prop-types\n selected,\n // eslint-disable-next-line react/prop-types\n selectionFollowsFocus,\n // eslint-disable-next-line react/prop-types\n textColor = 'inherit',\n value,\n wrapped = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded$3);\n const ownerState = _extends({}, props, {\n disabled,\n disableFocusRipple,\n selected,\n icon: !!iconProp,\n iconPosition,\n label: !!label,\n fullWidth,\n textColor,\n wrapped\n });\n const classes = useUtilityClasses$2(ownerState);\n const icon = iconProp && label && /*#__PURE__*/react.exports.isValidElement(iconProp) ? /*#__PURE__*/react.exports.cloneElement(iconProp, {\n className: clsx(classes.iconWrapper, iconProp.props.className)\n }) : iconProp;\n const handleClick = event => {\n if (!selected && onChange) {\n onChange(event, value);\n }\n if (onClick) {\n onClick(event);\n }\n };\n const handleFocus = event => {\n if (selectionFollowsFocus && !selected && onChange) {\n onChange(event, value);\n }\n if (onFocus) {\n onFocus(event);\n }\n };\n return /*#__PURE__*/jsxRuntime.exports.jsxs(TabRoot, _extends({\n focusRipple: !disableFocusRipple,\n className: clsx(classes.root, className),\n ref: ref,\n role: \"tab\",\n \"aria-selected\": selected,\n disabled: disabled,\n onClick: handleClick,\n onFocus: handleFocus,\n ownerState: ownerState,\n tabIndex: selected ? 0 : -1\n }, other, {\n children: [iconPosition === 'top' || iconPosition === 'start' ? /*#__PURE__*/jsxRuntime.exports.jsxs(react.exports.Fragment, {\n children: [icon, label]\n }) : /*#__PURE__*/jsxRuntime.exports.jsxs(react.exports.Fragment, {\n children: [label, icon]\n }), indicator]\n }));\n});\nconst Tab$1 = Tab;\n\nconst KeyboardArrowLeft = createSvgIcon( /*#__PURE__*/jsxRuntime.exports.jsx(\"path\", {\n d: \"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z\"\n}), 'KeyboardArrowLeft');\n\nconst KeyboardArrowRight = createSvgIcon( /*#__PURE__*/jsxRuntime.exports.jsx(\"path\", {\n d: \"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\"\n}), 'KeyboardArrowRight');\n\nfunction easeInOutSin(time) {\n return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;\n}\nfunction animate(property, element, to, options = {}, cb = () => {}) {\n const {\n ease = easeInOutSin,\n duration = 300 // standard\n } = options;\n let start = null;\n const from = element[property];\n let cancelled = false;\n const cancel = () => {\n cancelled = true;\n };\n const step = timestamp => {\n if (cancelled) {\n cb(new Error('Animation cancelled'));\n return;\n }\n if (start === null) {\n start = timestamp;\n }\n const time = Math.min(1, (timestamp - start) / duration);\n element[property] = ease(time) * (to - from) + from;\n if (time >= 1) {\n requestAnimationFrame(() => {\n cb(null);\n });\n return;\n }\n requestAnimationFrame(step);\n };\n if (from === to) {\n cb(new Error('Element already at target position'));\n return cancel;\n }\n requestAnimationFrame(step);\n return cancel;\n}\n\nconst _excluded$2 = [\"onChange\"];\nconst styles = {\n width: 99,\n height: 99,\n position: 'absolute',\n top: -9999,\n overflow: 'scroll'\n};\n\n/**\n * @ignore - internal component.\n * The component originates from https://github.com/STORIS/react-scrollbar-size.\n * It has been moved into the core in order to minimize the bundle size.\n */\nfunction ScrollbarSize(props) {\n const {\n onChange\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded$2);\n const scrollbarHeight = react.exports.useRef();\n const nodeRef = react.exports.useRef(null);\n const setMeasurements = () => {\n scrollbarHeight.current = nodeRef.current.offsetHeight - nodeRef.current.clientHeight;\n };\n useEnhancedEffect(() => {\n const handleResize = debounce(() => {\n const prevHeight = scrollbarHeight.current;\n setMeasurements();\n if (prevHeight !== scrollbarHeight.current) {\n onChange(scrollbarHeight.current);\n }\n });\n const containerWindow = ownerWindow(nodeRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [onChange]);\n react.exports.useEffect(() => {\n setMeasurements();\n onChange(scrollbarHeight.current);\n }, [onChange]);\n return /*#__PURE__*/jsxRuntime.exports.jsx(\"div\", _extends({\n style: styles,\n ref: nodeRef\n }, other));\n}\n\nfunction getTabScrollButtonUtilityClass(slot) {\n return generateUtilityClass('MuiTabScrollButton', slot);\n}\nconst tabScrollButtonClasses = generateUtilityClasses('MuiTabScrollButton', ['root', 'vertical', 'horizontal', 'disabled']);\nconst tabScrollButtonClasses$1 = tabScrollButtonClasses;\n\nconst _excluded$1 = [\"className\", \"slots\", \"slotProps\", \"direction\", \"orientation\", \"disabled\"];\nconst useUtilityClasses$1 = ownerState => {\n const {\n classes,\n orientation,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', orientation, disabled && 'disabled']\n };\n return composeClasses(slots, getTabScrollButtonUtilityClass, classes);\n};\nconst TabScrollButtonRoot = styled(ButtonBase, {\n name: 'MuiTabScrollButton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.orientation && styles[ownerState.orientation]];\n }\n})(({\n ownerState\n}) => _extends({\n width: 40,\n flexShrink: 0,\n opacity: 0.8,\n [`&.${tabScrollButtonClasses$1.disabled}`]: {\n opacity: 0\n }\n}, ownerState.orientation === 'vertical' && {\n width: '100%',\n height: 40,\n '& svg': {\n transform: `rotate(${ownerState.isRtl ? -90 : 90}deg)`\n }\n}));\nconst TabScrollButton = /*#__PURE__*/react.exports.forwardRef(function TabScrollButton(inProps, ref) {\n var _slots$StartScrollBut, _slots$EndScrollButto;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabScrollButton'\n });\n const {\n className,\n slots = {},\n slotProps = {},\n direction\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded$1);\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n const ownerState = _extends({\n isRtl\n }, props);\n const classes = useUtilityClasses$1(ownerState);\n const StartButtonIcon = (_slots$StartScrollBut = slots.StartScrollButtonIcon) != null ? _slots$StartScrollBut : KeyboardArrowLeft;\n const EndButtonIcon = (_slots$EndScrollButto = slots.EndScrollButtonIcon) != null ? _slots$EndScrollButto : KeyboardArrowRight;\n const startButtonIconProps = useSlotProps({\n elementType: StartButtonIcon,\n externalSlotProps: slotProps.startScrollButtonIcon,\n additionalProps: {\n fontSize: 'small'\n },\n ownerState\n });\n const endButtonIconProps = useSlotProps({\n elementType: EndButtonIcon,\n externalSlotProps: slotProps.endScrollButtonIcon,\n additionalProps: {\n fontSize: 'small'\n },\n ownerState\n });\n return /*#__PURE__*/jsxRuntime.exports.jsx(TabScrollButtonRoot, _extends({\n component: \"div\",\n className: clsx(classes.root, className),\n ref: ref,\n role: null,\n ownerState: ownerState,\n tabIndex: null\n }, other, {\n children: direction === 'left' ? /*#__PURE__*/jsxRuntime.exports.jsx(StartButtonIcon, _extends({}, startButtonIconProps)) : /*#__PURE__*/jsxRuntime.exports.jsx(EndButtonIcon, _extends({}, endButtonIconProps))\n }));\n});\nconst TabScrollButton$1 = TabScrollButton;\n\nfunction getTabsUtilityClass(slot) {\n return generateUtilityClass('MuiTabs', slot);\n}\nconst tabsClasses = generateUtilityClasses('MuiTabs', ['root', 'vertical', 'flexContainer', 'flexContainerVertical', 'centered', 'scroller', 'fixed', 'scrollableX', 'scrollableY', 'hideScrollbar', 'scrollButtons', 'scrollButtonsHideMobile', 'indicator']);\nconst tabsClasses$1 = tabsClasses;\n\nconst _excluded = [\"aria-label\", \"aria-labelledby\", \"action\", \"centered\", \"children\", \"className\", \"component\", \"allowScrollButtonsMobile\", \"indicatorColor\", \"onChange\", \"orientation\", \"ScrollButtonComponent\", \"scrollButtons\", \"selectionFollowsFocus\", \"slots\", \"slotProps\", \"TabIndicatorProps\", \"TabScrollButtonProps\", \"textColor\", \"value\", \"variant\", \"visibleScrollbar\"];\nconst nextItem = (list, item) => {\n if (list === item) {\n return list.firstChild;\n }\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n return list.firstChild;\n};\nconst previousItem = (list, item) => {\n if (list === item) {\n return list.lastChild;\n }\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n return list.lastChild;\n};\nconst moveFocus = (list, currentFocus, traversalFunction) => {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus);\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return;\n }\n wrappedOnce = true;\n }\n\n // Same logic as useAutocomplete.js\n const nextFocusDisabled = nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n if (!nextFocus.hasAttribute('tabindex') || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus);\n } else {\n nextFocus.focus();\n return;\n }\n }\n};\nconst useUtilityClasses = ownerState => {\n const {\n vertical,\n fixed,\n hideScrollbar,\n scrollableX,\n scrollableY,\n centered,\n scrollButtonsHideMobile,\n classes\n } = ownerState;\n const slots = {\n root: ['root', vertical && 'vertical'],\n scroller: ['scroller', fixed && 'fixed', hideScrollbar && 'hideScrollbar', scrollableX && 'scrollableX', scrollableY && 'scrollableY'],\n flexContainer: ['flexContainer', vertical && 'flexContainerVertical', centered && 'centered'],\n indicator: ['indicator'],\n scrollButtons: ['scrollButtons', scrollButtonsHideMobile && 'scrollButtonsHideMobile'],\n scrollableX: [scrollableX && 'scrollableX'],\n hideScrollbar: [hideScrollbar && 'hideScrollbar']\n };\n return composeClasses(slots, getTabsUtilityClass, classes);\n};\nconst TabsRoot = styled('div', {\n name: 'MuiTabs',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${tabsClasses$1.scrollButtons}`]: styles.scrollButtons\n }, {\n [`& .${tabsClasses$1.scrollButtons}`]: ownerState.scrollButtonsHideMobile && styles.scrollButtonsHideMobile\n }, styles.root, ownerState.vertical && styles.vertical];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n overflow: 'hidden',\n minHeight: 48,\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n display: 'flex'\n}, ownerState.vertical && {\n flexDirection: 'column'\n}, ownerState.scrollButtonsHideMobile && {\n [`& .${tabsClasses$1.scrollButtons}`]: {\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n }\n}));\nconst TabsScroller = styled('div', {\n name: 'MuiTabs',\n slot: 'Scroller',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.scroller, ownerState.fixed && styles.fixed, ownerState.hideScrollbar && styles.hideScrollbar, ownerState.scrollableX && styles.scrollableX, ownerState.scrollableY && styles.scrollableY];\n }\n})(({\n ownerState\n}) => _extends({\n position: 'relative',\n display: 'inline-block',\n flex: '1 1 auto',\n whiteSpace: 'nowrap'\n}, ownerState.fixed && {\n overflowX: 'hidden',\n width: '100%'\n}, ownerState.hideScrollbar && {\n // Hide dimensionless scrollbar on macOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n }\n}, ownerState.scrollableX && {\n overflowX: 'auto',\n overflowY: 'hidden'\n}, ownerState.scrollableY && {\n overflowY: 'auto',\n overflowX: 'hidden'\n}));\nconst FlexContainer = styled('div', {\n name: 'MuiTabs',\n slot: 'FlexContainer',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.flexContainer, ownerState.vertical && styles.flexContainerVertical, ownerState.centered && styles.centered];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex'\n}, ownerState.vertical && {\n flexDirection: 'column'\n}, ownerState.centered && {\n justifyContent: 'center'\n}));\nconst TabsIndicator = styled('span', {\n name: 'MuiTabs',\n slot: 'Indicator',\n overridesResolver: (props, styles) => styles.indicator\n})(({\n ownerState,\n theme\n}) => _extends({\n position: 'absolute',\n height: 2,\n bottom: 0,\n width: '100%',\n transition: theme.transitions.create()\n}, ownerState.indicatorColor === 'primary' && {\n backgroundColor: (theme.vars || theme).palette.primary.main\n}, ownerState.indicatorColor === 'secondary' && {\n backgroundColor: (theme.vars || theme).palette.secondary.main\n}, ownerState.vertical && {\n height: '100%',\n width: 2,\n right: 0\n}));\nconst TabsScrollbarSize = styled(ScrollbarSize)({\n overflowX: 'auto',\n overflowY: 'hidden',\n // Hide dimensionless scrollbar on macOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n }\n});\nconst defaultIndicatorStyle = {};\nconst Tabs = /*#__PURE__*/react.exports.forwardRef(function Tabs(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabs'\n });\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n action,\n centered = false,\n children: childrenProp,\n className,\n component = 'div',\n allowScrollButtonsMobile = false,\n indicatorColor = 'primary',\n onChange,\n orientation = 'horizontal',\n ScrollButtonComponent = TabScrollButton$1,\n scrollButtons = 'auto',\n selectionFollowsFocus,\n slots = {},\n slotProps = {},\n TabIndicatorProps = {},\n TabScrollButtonProps = {},\n textColor = 'primary',\n value,\n variant = 'standard',\n visibleScrollbar = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const scrollable = variant === 'scrollable';\n const vertical = orientation === 'vertical';\n const scrollStart = vertical ? 'scrollTop' : 'scrollLeft';\n const start = vertical ? 'top' : 'left';\n const end = vertical ? 'bottom' : 'right';\n const clientSize = vertical ? 'clientHeight' : 'clientWidth';\n const size = vertical ? 'height' : 'width';\n const ownerState = _extends({}, props, {\n component,\n allowScrollButtonsMobile,\n indicatorColor,\n orientation,\n vertical,\n scrollButtons,\n textColor,\n variant,\n visibleScrollbar,\n fixed: !scrollable,\n hideScrollbar: scrollable && !visibleScrollbar,\n scrollableX: scrollable && !vertical,\n scrollableY: scrollable && vertical,\n centered: centered && !scrollable,\n scrollButtonsHideMobile: !allowScrollButtonsMobile\n });\n const classes = useUtilityClasses(ownerState);\n const startScrollButtonIconProps = useSlotProps({\n elementType: slots.StartScrollButtonIcon,\n externalSlotProps: slotProps.startScrollButtonIcon,\n ownerState\n });\n const endScrollButtonIconProps = useSlotProps({\n elementType: slots.EndScrollButtonIcon,\n externalSlotProps: slotProps.endScrollButtonIcon,\n ownerState\n });\n const [mounted, setMounted] = react.exports.useState(false);\n const [indicatorStyle, setIndicatorStyle] = react.exports.useState(defaultIndicatorStyle);\n const [displayStartScroll, setDisplayStartScroll] = react.exports.useState(false);\n const [displayEndScroll, setDisplayEndScroll] = react.exports.useState(false);\n const [updateScrollObserver, setUpdateScrollObserver] = react.exports.useState(false);\n const [scrollerStyle, setScrollerStyle] = react.exports.useState({\n overflow: 'hidden',\n scrollbarWidth: 0\n });\n const valueToIndex = new Map();\n const tabsRef = react.exports.useRef(null);\n const tabListRef = react.exports.useRef(null);\n const getTabsMeta = () => {\n const tabsNode = tabsRef.current;\n let tabsMeta;\n if (tabsNode) {\n const rect = tabsNode.getBoundingClientRect();\n // create a new object with ClientRect class props + scrollLeft\n tabsMeta = {\n clientWidth: tabsNode.clientWidth,\n scrollLeft: tabsNode.scrollLeft,\n scrollTop: tabsNode.scrollTop,\n scrollLeftNormalized: getNormalizedScrollLeft(tabsNode, theme.direction),\n scrollWidth: tabsNode.scrollWidth,\n top: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n right: rect.right\n };\n }\n let tabMeta;\n if (tabsNode && value !== false) {\n const children = tabListRef.current.children;\n if (children.length > 0) {\n const tab = children[valueToIndex.get(value)];\n tabMeta = tab ? tab.getBoundingClientRect() : null;\n }\n }\n return {\n tabsMeta,\n tabMeta\n };\n };\n const updateIndicatorState = useEventCallback(() => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n let startValue = 0;\n let startIndicator;\n if (vertical) {\n startIndicator = 'top';\n if (tabMeta && tabsMeta) {\n startValue = tabMeta.top - tabsMeta.top + tabsMeta.scrollTop;\n }\n } else {\n startIndicator = isRtl ? 'right' : 'left';\n if (tabMeta && tabsMeta) {\n const correction = isRtl ? tabsMeta.scrollLeftNormalized + tabsMeta.clientWidth - tabsMeta.scrollWidth : tabsMeta.scrollLeft;\n startValue = (isRtl ? -1 : 1) * (tabMeta[startIndicator] - tabsMeta[startIndicator] + correction);\n }\n }\n const newIndicatorStyle = {\n [startIndicator]: startValue,\n // May be wrong until the font is loaded.\n [size]: tabMeta ? tabMeta[size] : 0\n };\n\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(indicatorStyle[startIndicator]) || isNaN(indicatorStyle[size])) {\n setIndicatorStyle(newIndicatorStyle);\n } else {\n const dStart = Math.abs(indicatorStyle[startIndicator] - newIndicatorStyle[startIndicator]);\n const dSize = Math.abs(indicatorStyle[size] - newIndicatorStyle[size]);\n if (dStart >= 1 || dSize >= 1) {\n setIndicatorStyle(newIndicatorStyle);\n }\n }\n });\n const scroll = (scrollValue, {\n animation = true\n } = {}) => {\n if (animation) {\n animate(scrollStart, tabsRef.current, scrollValue, {\n duration: theme.transitions.duration.standard\n });\n } else {\n tabsRef.current[scrollStart] = scrollValue;\n }\n };\n const moveTabsScroll = delta => {\n let scrollValue = tabsRef.current[scrollStart];\n if (vertical) {\n scrollValue += delta;\n } else {\n scrollValue += delta * (isRtl ? -1 : 1);\n // Fix for Edge\n scrollValue *= isRtl && detectScrollType() === 'reverse' ? -1 : 1;\n }\n scroll(scrollValue);\n };\n const getScrollSize = () => {\n const containerSize = tabsRef.current[clientSize];\n let totalSize = 0;\n const children = Array.from(tabListRef.current.children);\n for (let i = 0; i < children.length; i += 1) {\n const tab = children[i];\n if (totalSize + tab[clientSize] > containerSize) {\n // If the first item is longer than the container size, then only scroll\n // by the container size.\n if (i === 0) {\n totalSize = containerSize;\n }\n break;\n }\n totalSize += tab[clientSize];\n }\n return totalSize;\n };\n const handleStartScrollClick = () => {\n moveTabsScroll(-1 * getScrollSize());\n };\n const handleEndScrollClick = () => {\n moveTabsScroll(getScrollSize());\n };\n\n // TODO Remove as browser support for hiding the scrollbar\n // with CSS improves.\n const handleScrollbarSizeChange = react.exports.useCallback(scrollbarWidth => {\n setScrollerStyle({\n overflow: null,\n scrollbarWidth\n });\n }, []);\n const getConditionalElements = () => {\n const conditionalElements = {};\n conditionalElements.scrollbarSizeListener = scrollable ? /*#__PURE__*/jsxRuntime.exports.jsx(TabsScrollbarSize, {\n onChange: handleScrollbarSizeChange,\n className: clsx(classes.scrollableX, classes.hideScrollbar)\n }) : null;\n const scrollButtonsActive = displayStartScroll || displayEndScroll;\n const showScrollButtons = scrollable && (scrollButtons === 'auto' && scrollButtonsActive || scrollButtons === true);\n conditionalElements.scrollButtonStart = showScrollButtons ? /*#__PURE__*/jsxRuntime.exports.jsx(ScrollButtonComponent, _extends({\n slots: {\n StartScrollButtonIcon: slots.StartScrollButtonIcon\n },\n slotProps: {\n startScrollButtonIcon: startScrollButtonIconProps\n },\n orientation: orientation,\n direction: isRtl ? 'right' : 'left',\n onClick: handleStartScrollClick,\n disabled: !displayStartScroll\n }, TabScrollButtonProps, {\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n })) : null;\n conditionalElements.scrollButtonEnd = showScrollButtons ? /*#__PURE__*/jsxRuntime.exports.jsx(ScrollButtonComponent, _extends({\n slots: {\n EndScrollButtonIcon: slots.EndScrollButtonIcon\n },\n slotProps: {\n endScrollButtonIcon: endScrollButtonIconProps\n },\n orientation: orientation,\n direction: isRtl ? 'left' : 'right',\n onClick: handleEndScrollClick,\n disabled: !displayEndScroll\n }, TabScrollButtonProps, {\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n })) : null;\n return conditionalElements;\n };\n const scrollSelectedIntoView = useEventCallback(animation => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n if (!tabMeta || !tabsMeta) {\n return;\n }\n if (tabMeta[start] < tabsMeta[start]) {\n // left side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[start] - tabsMeta[start]);\n scroll(nextScrollStart, {\n animation\n });\n } else if (tabMeta[end] > tabsMeta[end]) {\n // right side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[end] - tabsMeta[end]);\n scroll(nextScrollStart, {\n animation\n });\n }\n });\n const updateScrollButtonState = useEventCallback(() => {\n if (scrollable && scrollButtons !== false) {\n setUpdateScrollObserver(!updateScrollObserver);\n }\n });\n react.exports.useEffect(() => {\n const handleResize = debounce(() => {\n // If the Tabs component is replaced by Suspense with a fallback, the last\n // ResizeObserver's handler that runs because of the change in the layout is trying to\n // access a dom node that is no longer there (as the fallback component is being shown instead).\n // See https://github.com/mui/material-ui/issues/33276\n // TODO: Add tests that will ensure the component is not failing when\n // replaced by Suspense with a fallback, once React is updated to version 18\n if (tabsRef.current) {\n updateIndicatorState();\n }\n });\n let resizeObserver;\n\n /**\n * @type {MutationCallback}\n */\n const handleMutation = records => {\n records.forEach(record => {\n record.removedNodes.forEach(item => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.unobserve(item);\n });\n record.addedNodes.forEach(item => {\n var _resizeObserver2;\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.observe(item);\n });\n });\n handleResize();\n updateScrollButtonState();\n };\n const win = ownerWindow(tabsRef.current);\n win.addEventListener('resize', handleResize);\n let mutationObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(handleResize);\n Array.from(tabListRef.current.children).forEach(child => {\n resizeObserver.observe(child);\n });\n }\n if (typeof MutationObserver !== 'undefined') {\n mutationObserver = new MutationObserver(handleMutation);\n mutationObserver.observe(tabListRef.current, {\n childList: true\n });\n }\n return () => {\n var _mutationObserver, _resizeObserver3;\n handleResize.clear();\n win.removeEventListener('resize', handleResize);\n (_mutationObserver = mutationObserver) == null || _mutationObserver.disconnect();\n (_resizeObserver3 = resizeObserver) == null || _resizeObserver3.disconnect();\n };\n }, [updateIndicatorState, updateScrollButtonState]);\n\n /**\n * Toggle visibility of start and end scroll buttons\n * Using IntersectionObserver on first and last Tabs.\n */\n react.exports.useEffect(() => {\n const tabListChildren = Array.from(tabListRef.current.children);\n const length = tabListChildren.length;\n if (typeof IntersectionObserver !== 'undefined' && length > 0 && scrollable && scrollButtons !== false) {\n const firstTab = tabListChildren[0];\n const lastTab = tabListChildren[length - 1];\n const observerOptions = {\n root: tabsRef.current,\n threshold: 0.99\n };\n const handleScrollButtonStart = entries => {\n setDisplayStartScroll(!entries[0].isIntersecting);\n };\n const firstObserver = new IntersectionObserver(handleScrollButtonStart, observerOptions);\n firstObserver.observe(firstTab);\n const handleScrollButtonEnd = entries => {\n setDisplayEndScroll(!entries[0].isIntersecting);\n };\n const lastObserver = new IntersectionObserver(handleScrollButtonEnd, observerOptions);\n lastObserver.observe(lastTab);\n return () => {\n firstObserver.disconnect();\n lastObserver.disconnect();\n };\n }\n return undefined;\n }, [scrollable, scrollButtons, updateScrollObserver, childrenProp == null ? void 0 : childrenProp.length]);\n react.exports.useEffect(() => {\n setMounted(true);\n }, []);\n react.exports.useEffect(() => {\n updateIndicatorState();\n });\n react.exports.useEffect(() => {\n // Don't animate on the first render.\n scrollSelectedIntoView(defaultIndicatorStyle !== indicatorStyle);\n }, [scrollSelectedIntoView, indicatorStyle]);\n react.exports.useImperativeHandle(action, () => ({\n updateIndicator: updateIndicatorState,\n updateScrollButtons: updateScrollButtonState\n }), [updateIndicatorState, updateScrollButtonState]);\n const indicator = /*#__PURE__*/jsxRuntime.exports.jsx(TabsIndicator, _extends({}, TabIndicatorProps, {\n className: clsx(classes.indicator, TabIndicatorProps.className),\n ownerState: ownerState,\n style: _extends({}, indicatorStyle, TabIndicatorProps.style)\n }));\n let childIndex = 0;\n const children = react.exports.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/react.exports.isValidElement(child)) {\n return null;\n }\n const childValue = child.props.value === undefined ? childIndex : child.props.value;\n valueToIndex.set(childValue, childIndex);\n const selected = childValue === value;\n childIndex += 1;\n return /*#__PURE__*/react.exports.cloneElement(child, _extends({\n fullWidth: variant === 'fullWidth',\n indicator: selected && !mounted && indicator,\n selected,\n selectionFollowsFocus,\n onChange,\n textColor,\n value: childValue\n }, childIndex === 1 && value === false && !child.props.tabIndex ? {\n tabIndex: 0\n } : {}));\n });\n const handleKeyDown = event => {\n const list = tabListRef.current;\n const currentFocus = ownerDocument(list).activeElement;\n // Keyboard navigation assumes that [role=\"tab\"] are siblings\n // though we might warn in the future about nested, interactive elements\n // as a a11y violation\n const role = currentFocus.getAttribute('role');\n if (role !== 'tab') {\n return;\n }\n let previousItemKey = orientation === 'horizontal' ? 'ArrowLeft' : 'ArrowUp';\n let nextItemKey = orientation === 'horizontal' ? 'ArrowRight' : 'ArrowDown';\n if (orientation === 'horizontal' && isRtl) {\n // swap previousItemKey with nextItemKey\n previousItemKey = 'ArrowRight';\n nextItemKey = 'ArrowLeft';\n }\n switch (event.key) {\n case previousItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n break;\n case nextItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n break;\n case 'Home':\n event.preventDefault();\n moveFocus(list, null, nextItem);\n break;\n case 'End':\n event.preventDefault();\n moveFocus(list, null, previousItem);\n break;\n }\n };\n const conditionalElements = getConditionalElements();\n return /*#__PURE__*/jsxRuntime.exports.jsxs(TabsRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n as: component\n }, other, {\n children: [conditionalElements.scrollButtonStart, conditionalElements.scrollbarSizeListener, /*#__PURE__*/jsxRuntime.exports.jsxs(TabsScroller, {\n className: classes.scroller,\n ownerState: ownerState,\n style: {\n overflow: scrollerStyle.overflow,\n [vertical ? `margin${isRtl ? 'Left' : 'Right'}` : 'marginBottom']: visibleScrollbar ? undefined : -scrollerStyle.scrollbarWidth\n },\n ref: tabsRef,\n children: [/*#__PURE__*/jsxRuntime.exports.jsx(FlexContainer, {\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-orientation\": orientation === 'vertical' ? 'vertical' : null,\n className: classes.flexContainer,\n ownerState: ownerState,\n onKeyDown: handleKeyDown,\n ref: tabListRef,\n role: \"tablist\",\n children: children\n }), mounted && indicator]\n }), conditionalElements.scrollButtonEnd]\n }));\n});\nconst Tabs$1 = Tabs;\n\nexport { Tab$1 as T, Tabs$1 as a };\n\n//# sourceMappingURL=Tabs-8fbeafba.js.map"],"names":["cachedType","detectScrollType","dummy","document","container","getTabUtilityClass","slot","tabClasses","_excluded$3","useUtilityClasses$2","ownerState","classes","textColor","fullWidth","wrapped","icon","label","selected","disabled","slots","TabRoot","props","styles","theme","tabClasses$1","Tab$1","inProps","ref","className","disableFocusRipple","iconProp","iconPosition","indicator","onChange","onClick","onFocus","selectionFollowsFocus","value","other","event","KeyboardArrowLeft","KeyboardArrowRight","easeInOutSin","time","Math","_excluded$2","getTabScrollButtonUtilityClass","tabScrollButtonClasses","_excluded$1","useUtilityClasses$1","orientation","TabScrollButtonRoot","tabScrollButtonClasses$1","TabScrollButton","_slots$StartScrollBut","_slots$EndScrollButto","slotProps","direction","isRtl","StartButtonIcon","EndButtonIcon","startButtonIconProps","endButtonIconProps","getTabsUtilityClass","tabsClasses","_excluded","nextItem","list","item","previousItem","moveFocus","currentFocus","traversalFunction","wrappedOnce","nextFocus","nextFocusDisabled","useUtilityClasses","vertical","fixed","hideScrollbar","scrollableX","scrollableY","centered","scrollButtonsHideMobile","TabsRoot","tabsClasses$1","TabsScroller","FlexContainer","TabsIndicator","TabsScrollbarSize","scrollbarHeight","nodeRef","setMeasurements","handleResize","prevHeight","containerWindow","defaultIndicatorStyle","Tabs$1","ariaLabel","ariaLabelledBy","action","childrenProp","component","allowScrollButtonsMobile","indicatorColor","ScrollButtonComponent","scrollButtons","TabIndicatorProps","TabScrollButtonProps","variant","visibleScrollbar","scrollable","scrollStart","start","end","clientSize","size","startScrollButtonIconProps","endScrollButtonIconProps","mounted","setMounted","indicatorStyle","setIndicatorStyle","displayStartScroll","setDisplayStartScroll","displayEndScroll","setDisplayEndScroll","updateScrollObserver","setUpdateScrollObserver","scrollerStyle","setScrollerStyle","valueToIndex","Map","tabsRef","tabListRef","getTabsMeta","tabsMeta","tabMeta","tabsNode","rect","getNormalizedScrollLeft","element","scrollLeft","children","tab","updateIndicatorState","startIndicator","startValue","correction","newIndicatorStyle","isNaN","dStart","dSize","scroll","scrollValue","animation","animate","property","to","options","cb","ease","duration","from","cancelled","cancel","step","timestamp","Error","requestAnimationFrame","moveTabsScroll","delta","getScrollSize","containerSize","totalSize","Array","i","handleStartScrollClick","handleEndScrollClick","handleScrollbarSizeChange","scrollbarWidth","scrollSelectedIntoView","updateScrollButtonState","resizeObserver","mutationObserver","win","ResizeObserver","child","MutationObserver","records","record","_resizeObserver","_resizeObserver2","_mutationObserver","_resizeObserver3","tabListChildren","length","IntersectionObserver","firstTab","lastTab","observerOptions","firstObserver","entries","lastObserver","childIndex","childValue","undefined","conditionalElements","getConditionalElements","showScrollButtons","role","previousItemKey","nextItemKey"],"mappings":"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"}