view x/static/js/1110.702cba94.chunk.js.map @ 125:49f3d3878413 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 5ea1f9c1eef1de76232e69aa6d34cda77d90d566
author fubar
date Sat, 05 Oct 2024 23:58:05 +0000
parents
children
line wrap: on
line source

{"version":3,"file":"static/js/1110.702cba94.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/material/internal/animate.js","../../../node_modules/@mui/material/Tabs/ScrollbarSize.js","../../../node_modules/@mui/material/TabScrollButton/tabScrollButtonClasses.js","../../../node_modules/@mui/material/TabScrollButton/TabScrollButton.js","../../../node_modules/@mui/material/Tabs/tabsClasses.js","../../../node_modules/@mui/material/Tabs/Tabs.js","../../../node_modules/@mui/material/internal/svg-icons/KeyboardArrowLeft.js","../../../node_modules/@mui/material/internal/svg-icons/KeyboardArrowRight.js"],"sourcesContent":["function easeInOutSin(time) {\n  return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;\n}\nexport default function 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}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from \"../utils/debounce.js\";\nimport { ownerWindow, unstable_useEnhancedEffect as useEnhancedEffect } from \"../utils/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\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 */\nexport default function ScrollbarSize(props) {\n  const {\n    onChange,\n    ...other\n  } = props;\n  const scrollbarHeight = React.useRef();\n  const nodeRef = React.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.useEffect(() => {\n    setMeasurements();\n    onChange(scrollbarHeight.current);\n  }, [onChange]);\n  return /*#__PURE__*/_jsx(\"div\", {\n    style: styles,\n    ref: nodeRef,\n    ...other\n  });\n}\nprocess.env.NODE_ENV !== \"production\" ? ScrollbarSize.propTypes = {\n  onChange: PropTypes.func.isRequired\n} : void 0;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTabScrollButtonUtilityClass(slot) {\n  return generateUtilityClass('MuiTabScrollButton', slot);\n}\nconst tabScrollButtonClasses = generateUtilityClasses('MuiTabScrollButton', ['root', 'vertical', 'horizontal', 'disabled']);\nexport default tabScrollButtonClasses;","'use client';\n\n/* eslint-disable jsx-a11y/aria-role */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport KeyboardArrowLeft from \"../internal/svg-icons/KeyboardArrowLeft.js\";\nimport KeyboardArrowRight from \"../internal/svg-icons/KeyboardArrowRight.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport tabScrollButtonClasses, { getTabScrollButtonUtilityClass } from \"./tabScrollButtonClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = 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  width: 40,\n  flexShrink: 0,\n  opacity: 0.8,\n  [`&.${tabScrollButtonClasses.disabled}`]: {\n    opacity: 0\n  },\n  variants: [{\n    props: {\n      orientation: 'vertical'\n    },\n    style: {\n      width: '100%',\n      height: 40,\n      '& svg': {\n        transform: 'var(--TabScrollButton-svgRotate)'\n      }\n    }\n  }]\n});\nconst TabScrollButton = /*#__PURE__*/React.forwardRef(function TabScrollButton(inProps, ref) {\n  const props = useDefaultProps({\n    props: inProps,\n    name: 'MuiTabScrollButton'\n  });\n  const {\n    className,\n    slots = {},\n    slotProps = {},\n    direction,\n    orientation,\n    disabled,\n    ...other\n  } = props;\n  const isRtl = useRtl();\n  const ownerState = {\n    isRtl,\n    ...props\n  };\n  const classes = useUtilityClasses(ownerState);\n  const StartButtonIcon = slots.StartScrollButtonIcon ?? KeyboardArrowLeft;\n  const EndButtonIcon = slots.EndScrollButtonIcon ?? 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__*/_jsx(TabScrollButtonRoot, {\n    component: \"div\",\n    className: clsx(classes.root, className),\n    ref: ref,\n    role: null,\n    ownerState: ownerState,\n    tabIndex: null,\n    ...other,\n    style: {\n      ...other.style,\n      ...(orientation === 'vertical' && {\n        '--TabScrollButton-svgRotate': `rotate(${isRtl ? -90 : 90}deg)`\n      })\n    },\n    children: direction === 'left' ? /*#__PURE__*/_jsx(StartButtonIcon, {\n      ...startButtonIconProps\n    }) : /*#__PURE__*/_jsx(EndButtonIcon, {\n      ...endButtonIconProps\n    })\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? TabScrollButton.propTypes /* remove-proptypes */ = {\n  // ┌────────────────────────────── Warning ──────────────────────────────┐\n  // │ These PropTypes are generated from the TypeScript type definitions. │\n  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │\n  // └─────────────────────────────────────────────────────────────────────┘\n  /**\n   * The content of the component.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The direction the button should indicate.\n   */\n  direction: PropTypes.oneOf(['left', 'right']).isRequired,\n  /**\n   * If `true`, the component is disabled.\n   * @default false\n   */\n  disabled: PropTypes.bool,\n  /**\n   * The component orientation (layout flow direction).\n   */\n  orientation: PropTypes.oneOf(['horizontal', 'vertical']).isRequired,\n  /**\n   * The extra props for the slot components.\n   * You can override the existing props or add new ones.\n   * @default {}\n   */\n  slotProps: PropTypes.shape({\n    endScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n    startScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n  }),\n  /**\n   * The components used for each slot inside.\n   * @default {}\n   */\n  slots: PropTypes.shape({\n    EndScrollButtonIcon: PropTypes.elementType,\n    StartScrollButtonIcon: PropTypes.elementType\n  }),\n  /**\n   * @ignore\n   */\n  style: PropTypes.object,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TabScrollButton;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function 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']);\nexport default tabsClasses;","'use client';\n\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport debounce from \"../utils/debounce.js\";\nimport animate from \"../internal/animate.js\";\nimport ScrollbarSize from \"./ScrollbarSize.js\";\nimport TabScrollButton from \"../TabScrollButton/index.js\";\nimport useEventCallback from \"../utils/useEventCallback.js\";\nimport tabsClasses, { getTabsUtilityClass } from \"./tabsClasses.js\";\nimport ownerDocument from \"../utils/ownerDocument.js\";\nimport ownerWindow from \"../utils/ownerWindow.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\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.scrollButtons}`]: styles.scrollButtons\n    }, {\n      [`& .${tabsClasses.scrollButtons}`]: ownerState.scrollButtonsHideMobile && styles.scrollButtonsHideMobile\n    }, styles.root, ownerState.vertical && styles.vertical];\n  }\n})(memoTheme(({\n  theme\n}) => ({\n  overflow: 'hidden',\n  minHeight: 48,\n  // Add iOS momentum scrolling for iOS < 13.0\n  WebkitOverflowScrolling: 'touch',\n  display: 'flex',\n  variants: [{\n    props: ({\n      ownerState\n    }) => ownerState.vertical,\n    style: {\n      flexDirection: 'column'\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => ownerState.scrollButtonsHideMobile,\n    style: {\n      [`& .${tabsClasses.scrollButtons}`]: {\n        [theme.breakpoints.down('sm')]: {\n          display: 'none'\n        }\n      }\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  position: 'relative',\n  display: 'inline-block',\n  flex: '1 1 auto',\n  whiteSpace: 'nowrap',\n  variants: [{\n    props: ({\n      ownerState\n    }) => ownerState.fixed,\n    style: {\n      overflowX: 'hidden',\n      width: '100%'\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => ownerState.hideScrollbar,\n    style: {\n      // Hide dimensionless scrollbar on macOS\n      scrollbarWidth: 'none',\n      // Firefox\n      '&::-webkit-scrollbar': {\n        display: 'none' // Safari + Chrome\n      }\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => ownerState.scrollableX,\n    style: {\n      overflowX: 'auto',\n      overflowY: 'hidden'\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => ownerState.scrollableY,\n    style: {\n      overflowY: 'auto',\n      overflowX: 'hidden'\n    }\n  }]\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  display: 'flex',\n  variants: [{\n    props: ({\n      ownerState\n    }) => ownerState.vertical,\n    style: {\n      flexDirection: 'column'\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => ownerState.centered,\n    style: {\n      justifyContent: 'center'\n    }\n  }]\n});\nconst TabsIndicator = styled('span', {\n  name: 'MuiTabs',\n  slot: 'Indicator',\n  overridesResolver: (props, styles) => styles.indicator\n})(memoTheme(({\n  theme\n}) => ({\n  position: 'absolute',\n  height: 2,\n  bottom: 0,\n  width: '100%',\n  transition: theme.transitions.create(),\n  variants: [{\n    props: {\n      indicatorColor: 'primary'\n    },\n    style: {\n      backgroundColor: (theme.vars || theme).palette.primary.main\n    }\n  }, {\n    props: {\n      indicatorColor: 'secondary'\n    },\n    style: {\n      backgroundColor: (theme.vars || theme).palette.secondary.main\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => ownerState.vertical,\n    style: {\n      height: '100%',\n      width: 2,\n      right: 0\n    }\n  }]\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 = {};\nlet warnedOnceTabPresent = false;\nconst Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {\n  const props = useDefaultProps({\n    props: inProps,\n    name: 'MuiTabs'\n  });\n  const theme = useTheme();\n  const isRtl = useRtl();\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,\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    ...other\n  } = props;\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 = {\n    ...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  if (process.env.NODE_ENV !== 'production') {\n    if (centered && scrollable) {\n      console.error('MUI: You can not use the `centered={true}` and `variant=\"scrollable\"` properties ' + 'at the same time on a `Tabs` component.');\n    }\n  }\n  const [mounted, setMounted] = React.useState(false);\n  const [indicatorStyle, setIndicatorStyle] = React.useState(defaultIndicatorStyle);\n  const [displayStartScroll, setDisplayStartScroll] = React.useState(false);\n  const [displayEndScroll, setDisplayEndScroll] = React.useState(false);\n  const [updateScrollObserver, setUpdateScrollObserver] = React.useState(false);\n  const [scrollerStyle, setScrollerStyle] = React.useState({\n    overflow: 'hidden',\n    scrollbarWidth: 0\n  });\n  const valueToIndex = new Map();\n  const tabsRef = React.useRef(null);\n  const tabListRef = React.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        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        if (process.env.NODE_ENV !== 'production') {\n          if (!tab) {\n            console.error([`MUI: The \\`value\\` provided to the Tabs component is invalid.`, `None of the Tabs' children match with \"${value}\".`, valueToIndex.keys ? `You can provide one of the following values: ${Array.from(valueToIndex.keys()).join(', ')}.` : null].join('\\n'));\n          }\n        }\n        tabMeta = tab ? tab.getBoundingClientRect() : null;\n        if (process.env.NODE_ENV !== 'production') {\n          if (process.env.NODE_ENV !== 'test' && !warnedOnceTabPresent && tabMeta && tabMeta.width === 0 && tabMeta.height === 0 &&\n          // if the whole Tabs component is hidden, don't warn\n          tabsMeta.clientWidth !== 0) {\n            tabsMeta = null;\n            console.error(['MUI: The `value` provided to the Tabs component is invalid.', `The Tab with this \\`value\\` (\"${value}\") is not part of the document layout.`, \"Make sure the tab item is present in the document or that it's not `display: none`.\"].join('\\n'));\n            warnedOnceTabPresent = true;\n          }\n        }\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        startValue = (isRtl ? -1 : 1) * (tabMeta[startIndicator] - tabsMeta[startIndicator] + tabsMeta.scrollLeft);\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    if (typeof indicatorStyle[startIndicator] !== 'number' || typeof indicatorStyle[size] !== 'number') {\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    }\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 <ScrollbarSize /> as browser support for hiding the scrollbar\n  // with CSS improves.\n  const handleScrollbarSizeChange = React.useCallback(scrollbarWidth => {\n    setScrollerStyle({\n      overflow: null,\n      scrollbarWidth\n    });\n  }, []);\n  const getConditionalElements = () => {\n    const conditionalElements = {};\n    conditionalElements.scrollbarSizeListener = scrollable ? /*#__PURE__*/_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__*/_jsx(ScrollButtonComponent, {\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__*/_jsx(ScrollButtonComponent, {\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.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          resizeObserver?.unobserve(item);\n        });\n        record.addedNodes.forEach(item => {\n          resizeObserver?.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      handleResize.clear();\n      win.removeEventListener('resize', handleResize);\n      mutationObserver?.disconnect();\n      resizeObserver?.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.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?.length]);\n  React.useEffect(() => {\n    setMounted(true);\n  }, []);\n  React.useEffect(() => {\n    updateIndicatorState();\n  });\n  React.useEffect(() => {\n    // Don't animate on the first render.\n    scrollSelectedIntoView(defaultIndicatorStyle !== indicatorStyle);\n  }, [scrollSelectedIntoView, indicatorStyle]);\n  React.useImperativeHandle(action, () => ({\n    updateIndicator: updateIndicatorState,\n    updateScrollButtons: updateScrollButtonState\n  }), [updateIndicatorState, updateScrollButtonState]);\n  const indicator = /*#__PURE__*/_jsx(TabsIndicator, {\n    ...TabIndicatorProps,\n    className: clsx(classes.indicator, TabIndicatorProps.className),\n    ownerState: ownerState,\n    style: {\n      ...indicatorStyle,\n      ...TabIndicatorProps.style\n    }\n  });\n  let childIndex = 0;\n  const children = React.Children.map(childrenProp, child => {\n    if (! /*#__PURE__*/React.isValidElement(child)) {\n      return null;\n    }\n    if (process.env.NODE_ENV !== 'production') {\n      if (isFragment(child)) {\n        console.error([\"MUI: The Tabs component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\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.cloneElement(child, {\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  });\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      default:\n        break;\n    }\n  };\n  const conditionalElements = getConditionalElements();\n  return /*#__PURE__*/_jsxs(TabsRoot, {\n    className: clsx(classes.root, className),\n    ownerState: ownerState,\n    ref: ref,\n    as: component,\n    ...other,\n    children: [conditionalElements.scrollButtonStart, conditionalElements.scrollbarSizeListener, /*#__PURE__*/_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__*/_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});\nprocess.env.NODE_ENV !== \"production\" ? Tabs.propTypes /* remove-proptypes */ = {\n  // ┌────────────────────────────── Warning ──────────────────────────────┐\n  // │ These PropTypes are generated from the TypeScript type definitions. │\n  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │\n  // └─────────────────────────────────────────────────────────────────────┘\n  /**\n   * Callback fired when the component mounts.\n   * This is useful when you want to trigger an action programmatically.\n   * It supports two actions: `updateIndicator()` and `updateScrollButtons()`\n   *\n   * @param {object} actions This object contains all possible actions\n   * that can be triggered programmatically.\n   */\n  action: refType,\n  /**\n   * If `true`, the scroll buttons aren't forced hidden on mobile.\n   * By default the scroll buttons are hidden on mobile and takes precedence over `scrollButtons`.\n   * @default false\n   */\n  allowScrollButtonsMobile: PropTypes.bool,\n  /**\n   * The label for the Tabs as a string.\n   */\n  'aria-label': PropTypes.string,\n  /**\n   * An id or list of ids separated by a space that label the Tabs.\n   */\n  'aria-labelledby': PropTypes.string,\n  /**\n   * If `true`, the tabs are centered.\n   * This prop is intended for large views.\n   * @default false\n   */\n  centered: PropTypes.bool,\n  /**\n   * The content of the component.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: PropTypes.elementType,\n  /**\n   * Determines the color of the indicator.\n   * @default 'primary'\n   */\n  indicatorColor: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n  /**\n   * Callback fired when the value changes.\n   *\n   * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n   * @param {any} value We default to the index of the child (number)\n   */\n  onChange: PropTypes.func,\n  /**\n   * The component orientation (layout flow direction).\n   * @default 'horizontal'\n   */\n  orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n  /**\n   * The component used to render the scroll buttons.\n   * @default TabScrollButton\n   */\n  ScrollButtonComponent: PropTypes.elementType,\n  /**\n   * Determine behavior of scroll buttons when tabs are set to scroll:\n   *\n   * - `auto` will only present them when not all the items are visible.\n   * - `true` will always present them.\n   * - `false` will never present them.\n   *\n   * By default the scroll buttons are hidden on mobile.\n   * This behavior can be disabled with `allowScrollButtonsMobile`.\n   * @default 'auto'\n   */\n  scrollButtons: PropTypes /* @typescript-to-proptypes-ignore */.oneOf(['auto', false, true]),\n  /**\n   * If `true` the selected tab changes on focus. Otherwise it only\n   * changes on activation.\n   */\n  selectionFollowsFocus: PropTypes.bool,\n  /**\n   * The extra props for the slot components.\n   * You can override the existing props or add new ones.\n   * @default {}\n   */\n  slotProps: PropTypes.shape({\n    endScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n    startScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n  }),\n  /**\n   * The components used for each slot inside.\n   * @default {}\n   */\n  slots: PropTypes.shape({\n    EndScrollButtonIcon: PropTypes.elementType,\n    StartScrollButtonIcon: PropTypes.elementType\n  }),\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n  /**\n   * Props applied to the tab indicator element.\n   * @default  {}\n   */\n  TabIndicatorProps: PropTypes.object,\n  /**\n   * Props applied to the [`TabScrollButton`](https://mui.com/material-ui/api/tab-scroll-button/) element.\n   * @default {}\n   */\n  TabScrollButtonProps: PropTypes.object,\n  /**\n   * Determines the color of the `Tab`.\n   * @default 'primary'\n   */\n  textColor: PropTypes.oneOf(['inherit', 'primary', 'secondary']),\n  /**\n   * The value of the currently selected `Tab`.\n   * If you don't want any selected `Tab`, you can set this prop to `false`.\n   */\n  value: PropTypes.any,\n  /**\n   * Determines additional display behavior of the tabs:\n   *\n   *  - `scrollable` will invoke scrolling properties and allow for horizontally\n   *  scrolling (or swiping) of the tab bar.\n   *  - `fullWidth` will make the tabs grow to use all the available space,\n   *  which should be used for small views, like on mobile.\n   *  - `standard` will render the default state.\n   * @default 'standard'\n   */\n  variant: PropTypes.oneOf(['fullWidth', 'scrollable', 'standard']),\n  /**\n   * If `true`, the scrollbar is visible. It can be useful when displaying\n   * a long vertical list of tabs.\n   * @default false\n   */\n  visibleScrollbar: PropTypes.bool\n} : void 0;\nexport default Tabs;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n  d: \"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z\"\n}), 'KeyboardArrowLeft');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from \"../../utils/createSvgIcon.js\";\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n  d: \"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\"\n}), 'KeyboardArrowRight');"],"names":["easeInOutSin","time","Math","sin","PI","styles","width","height","position","top","overflow","getTabScrollButtonUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabScrollButtonRoot","styled","ButtonBase","name","overridesResolver","props","ownerState","root","orientation","flexShrink","opacity","disabled","variants","style","transform","inProps","ref","className","slots","slotProps","direction","other","isRtl","classes","composeClasses","useUtilityClasses","StartButtonIcon","StartScrollButtonIcon","KeyboardArrowLeft","EndButtonIcon","EndScrollButtonIcon","KeyboardArrowRight","startButtonIconProps","useSlotProps","elementType","externalSlotProps","startScrollButtonIcon","additionalProps","fontSize","endButtonIconProps","endScrollButtonIcon","component","clsx","role","tabIndex","children","getTabsUtilityClass","nextItem","list","item","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","wrappedOnce","nextFocus","nextFocusDisabled","getAttribute","hasAttribute","focus","TabsRoot","scrollButtons","scrollButtonsHideMobile","vertical","memoTheme","theme","minHeight","WebkitOverflowScrolling","display","flexDirection","breakpoints","down","TabsScroller","scroller","fixed","hideScrollbar","scrollableX","scrollableY","flex","whiteSpace","overflowX","scrollbarWidth","overflowY","FlexContainer","flexContainer","flexContainerVertical","centered","justifyContent","TabsIndicator","indicator","bottom","transition","transitions","create","indicatorColor","backgroundColor","vars","palette","primary","main","secondary","right","TabsScrollbarSize","onChange","scrollbarHeight","nodeRef","setMeasurements","current","offsetHeight","clientHeight","useEnhancedEffect","handleResize","debounce","prevHeight","containerWindow","ownerWindow","addEventListener","clear","removeEventListener","defaultIndicatorStyle","useTheme","ariaLabel","ariaLabelledBy","action","childrenProp","allowScrollButtonsMobile","ScrollButtonComponent","selectionFollowsFocus","TabIndicatorProps","TabScrollButtonProps","textColor","value","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","tabsNode","tabsMeta","tabMeta","rect","getBoundingClientRect","clientWidth","scrollLeft","scrollTop","scrollWidth","left","length","tab","get","updateIndicatorState","useEventCallback","startIndicator","startValue","newIndicatorStyle","dStart","abs","dSize","scroll","scrollValue","animation","property","element","to","options","cb","ease","duration","from","cancelled","step","timestamp","Error","min","requestAnimationFrame","animate","standard","moveTabsScroll","delta","getScrollSize","containerSize","totalSize","Array","i","handleStartScrollClick","handleEndScrollClick","handleScrollbarSizeChange","scrollSelectedIntoView","nextScrollStart","updateScrollButtonState","resizeObserver","win","mutationObserver","ResizeObserver","forEach","child","observe","MutationObserver","records","record","removedNodes","unobserve","addedNodes","childList","disconnect","tabListChildren","IntersectionObserver","firstTab","lastTab","observerOptions","threshold","firstObserver","entries","isIntersecting","lastObserver","updateIndicator","updateScrollButtons","childIndex","map","childValue","undefined","set","selected","fullWidth","conditionalElements","scrollbarSizeListener","showScrollButtons","scrollButtonStart","onClick","scrollButtonEnd","getConditionalElements","as","onKeyDown","event","ownerDocument","activeElement","previousItemKey","nextItemKey","key","preventDefault","d"],"sourceRoot":""}