{"version":3,"file":"HorizontalTabs.cjs","names":["React","_interopRequireWildcard","require","_types","_styles","_styledComponents","_interopRequireDefault","_common","_jsxRuntime","_excluded","_excluded2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","HorizontalTabContainer","styled","div","focusStyles","TabSideFill","props","COLORS","generateToken","componentType","defaultVariant","theme","TabButton","button","Z_INDEXES","active","state","Size","XSmall","ComponentXSStyling","ComponentTextStyle","Regular","Small","ComponentSStyling","Medium","ComponentMStyling","Large","ComponentLStyling","HorizontalTabs","_ref","size","tabs","sideFill","fullWidth","onTabChange","variant","rest","_objectWithoutProperties2","doTabChange","to","document","activeElement","HTMLElement","blur","focused","setFocused","useState","currentTab","setCurrentTab","useEffect","selectedTab","find","x","selected","disabled","tabListBlur","tabListFocus","changeTabInternal","tab","tabListKeyDown","key","preventDefault","j","nextIndex","jsxs","tabIndex","onBlur","onFocus","onKeyDown","role","children","jsx","className","map","index","value","onMouseDown","defaultOnMouseDownHandler","style","width","onClick","propTypes","_propTypes","arrayOf","shape","oneOfType","string","node","isRequired","bool","func","oneOf","_default","exports"],"sources":["../../src/Tabs/HorizontalTabs.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\nimport {Size} from '../types';\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {COLORS, ComponentTextStyle, focusStyles} from '../styles';\r\n\r\n/**\r\n * Import third-party libraries.\r\n */\r\nimport styled from 'styled-components';\r\nimport {ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentXSStyling} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport {defaultOnMouseDownHandler} from '../common';\r\nimport Colors from \"../styles/colors\";\r\n\r\n// Add custom styles\r\nconst HorizontalTabContainer = styled.div`\r\n  width: 100%;\r\n  display: flex;\r\n  position: relative;\r\n  flex-direction: row;\r\n\r\n  &:focus {\r\n    ${focusStyles};\r\n  }\r\n\r\n`;\r\n\r\nconst TabSideFill = styled.div`\r\n  position: absolute;\r\n  border-bottom: 1px solid ${props => COLORS.generateToken({ componentType:'border', defaultVariant:'subtle' }, props.theme)};\r\n  bottom: 0;\r\n  width: 100%;\r\n\r\n  &.fill {\r\n    background: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant:'default' }, props.theme)};\r\n  }\r\n`;\r\n\r\nconst TabButton = styled.button`\r\n  color: ${props => COLORS.generateToken({componentType: 'text', defaultVariant: 'subtle'}, props.theme)};\r\n  border: none;\r\n  background-color: transparent;\r\n  position: relative;\r\n  cursor: pointer;\r\n  display: flex;\r\n  box-sizing: border-box;\r\n  justify-content: center;\r\n  align-items: center;\r\n  padding: 0;\r\n\r\n  &[aria-selected=\"true\"] {\r\n    z-index: ${Z_INDEXES.active};\r\n  }\r\n\r\n  &.floating {\r\n    border-radius: 2px;\r\n  }\r\n  \r\n  &.selected {\r\n    background-color: ${props => COLORS.generateToken({componentType: 'bg-surface', defaultVariant: 'default'}, props.theme)};\r\n    color: ${props => COLORS.generateToken({componentType: 'text', defaultVariant: 'default'}, props.theme)};\r\n  }\r\n\r\n  &.selected.floating {\r\n    background-color: ${props => COLORS.generateToken({componentType:'bg-surface', defaultVariant: 'selected'}, props.theme)};\r\n  }\r\n\r\n  &.default {\r\n    border-left: 1px solid transparent;\r\n    border-right: 1px solid transparent;\r\n  }\r\n  \r\n  &.default.selected {\r\n    border-left: 1px solid ${props => COLORS.generateToken({ componentType: 'border', defaultVariant: 'subtle' }, props.theme)};\r\n    border-right: 1px solid ${props => COLORS.generateToken({ componentType: 'border', defaultVariant: 'subtle' }, props.theme)};\r\n  }\r\n\r\n  &.selected:after {\r\n    content: \"\";\r\n    position: absolute;\r\n    top: 0;\r\n    left: -1px;\r\n    right: -1px;\r\n    height: 2px;\r\n    background-color: ${props => COLORS.generateToken({ componentType: 'border', defaultVariant: 'selected' }, props.theme)};\r\n  }\r\n\r\n  &.selected.floating:after {\r\n    top: unset;\r\n    bottom: 1px;\r\n    left: 1px;\r\n    right: 1px;\r\n    height: 2px;\r\n    border-radius: 2px;\r\n    background-color: ${props => COLORS.generateToken({ componentType: 'border', defaultVariant: 'selected' }, props.theme)};\r\n  }\r\n\r\n  &:hover, &:hover.selected {\r\n    background: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'hover' }, props.theme)};\r\n    color: ${props => COLORS.generateToken({ componentType: 'text', state: 'hover' }, props.theme)};\r\n  }\r\n\r\n  &:hover:after {\r\n    background-color: ${props => COLORS.generateToken({ componentType:'border', state:'hover' }, props.theme)};\r\n  }\r\n\r\n  &:active, &:active.selected {\r\n    background: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'active' }, props.theme)};\r\n    color: ${props => COLORS.generateToken({ componentType: 'text', state: 'active' }, props.theme)};\r\n    outline: none;\r\n  }\r\n\r\n  &:active:after {\r\n    background-color: ${props => COLORS.generateToken({ componentType: 'border', state: 'active' }, props.theme)};\r\n  }\r\n\r\n  &:disabled {\r\n    color: ${props => COLORS.generateToken({ componentType: 'text', state: 'disabled' }, props.theme)};\r\n    background: transparent;\r\n    cursor: not-allowed;\r\n  }\r\n\r\n  // Sizes\r\n  &.${Size.XSmall} {\r\n    ${ComponentXSStyling(ComponentTextStyle.Regular, null)}\r\n    padding: 0px 16px;\r\n    height: 32px;\r\n    margin-top: 16px;\r\n  }\r\n\r\n  &.${Size.Small} {\r\n    ${ComponentSStyling(ComponentTextStyle.Regular, null)}\r\n    padding: 0px 16px;\r\n    height: 40px;\r\n    margin-top: 8px;\r\n  }\r\n\r\n  &.${Size.Medium} {\r\n    ${ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n    height: 48px;\r\n    min-width: 96px;\r\n    padding: 0 16px;\r\n  }\r\n\r\n  &.${Size.Large} {\r\n    ${ComponentLStyling(ComponentTextStyle.Regular, null)}\r\n    height: 56px;\r\n    min-width: 144px;\r\n    padding: 0 16px;\r\n  }\r\n`;\r\n\r\n// Add component-specific types\r\nexport interface HorizontalTabProps extends React.HTMLAttributes<HTMLDivElement> {\r\n  /** Required. Size of the Tabs */\r\n  size: Size.XSmall | Size.Small | Size.Medium | Size.Large;\r\n  /** Required: Array of Tabs to show */\r\n  tabs: HorizontalTab[];\r\n  /** Optional. For 'default' variant of tabs if this flag is set, then white background will be added to the tabs  */\r\n  sideFill?: boolean;\r\n  /** Optional. If set, then whole width of the parent container will be equally split between Tabs, otherwise each tab will take width \r\n   * required for its content.\r\n   */\r\n  fullWidth?: boolean;\r\n  /** Required. Handler to be called when user tries to change the tab */\r\n  onTabChange: (to: string) => void;\r\n  /** Optional. Display variant of the tabs. If not set, then 'default' is used */\r\n  variant?: 'default' | 'floating';\r\n}\r\n\r\nexport interface HorizontalTab extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'value' | 'tabIndex' | 'onMouseDown' | 'onClick' | 'style'> {\r\n  /** Required. Value of the tab */\r\n  value: string | React.ReactNode;\r\n  /** Required. State of the tab, selected or not. Use it to set initial state of the tabs. */\r\n  selected: boolean;\r\n  /** Required. URL related with the Tab */\r\n  to: string;\r\n}\r\n\r\nconst HorizontalTabs = ({size, tabs, sideFill, fullWidth, onTabChange, variant, ...rest}: HorizontalTabProps) => {\r\n  /**\r\n   * Informs parent component of tab change and clears focus.\r\n   * @param to - A link to which user should be navigated.\r\n   */\r\n  const doTabChange = (to: string): void => {\r\n    // Let's inform parent component\r\n    onTabChange(to);\r\n\r\n    // Let's clear focus\r\n    if (document.activeElement instanceof HTMLElement) {\r\n      document.activeElement!.blur();\r\n    }\r\n  };\r\n\r\n  const [focused, setFocused] = React.useState<boolean>(false);\r\n  const [currentTab, setCurrentTab] = React.useState<string>();\r\n\r\n  React.useEffect(() => {\r\n    const selectedTab = tabs.find(x => x.selected && !x.disabled);\r\n    if (selectedTab)\r\n      setCurrentTab(selectedTab.to);\r\n  }, [tabs]);\r\n\r\n  const tabListBlur = () => setFocused(false);\r\n\r\n  const tabListFocus = (e: React.FocusEvent<HTMLDivElement, Element>) => setFocused(true);\r\n\r\n  const changeTabInternal = (tab: HorizontalTab) => {\r\n    tab.selected = true;\r\n    tabs.forEach(x => {\r\n      if (x.to != tab.to)\r\n        x.selected = false;\r\n    });\r\n    setCurrentTab(tab.to);\r\n    onTabChange(tab.to);\r\n  }\r\n\r\n  const tabListKeyDown = (e: React.KeyboardEvent) => {\r\n    if (focused && (e.key === 'ArrowLeft' || e.key === 'ArrowRight')) {\r\n      e.preventDefault();\r\n      if (e.key === 'ArrowRight') {\r\n        tabs.forEach((x, i) => {\r\n          if (x.to != currentTab)\r\n            return;\r\n\r\n          for (let j = 1; j < tabs.length - 1; j++) {\r\n            let nextIndex = j + i;\r\n            if (nextIndex > tabs.length - 1)\r\n              nextIndex = nextIndex - tabs.length;\r\n            if (tabs[nextIndex].disabled)\r\n              continue;\r\n            changeTabInternal(tabs[nextIndex]);\r\n            break;\r\n          }\r\n        });\r\n      }\r\n\r\n      if (e.key === 'ArrowLeft') {\r\n        tabs.forEach((x, i) => {\r\n          if (x.to != currentTab)\r\n            return;\r\n\r\n          for (let j = 1; j < tabs.length - 1; j++) {\r\n            let nextIndex = i - j;\r\n            if (nextIndex < 0)\r\n              nextIndex = nextIndex + tabs.length;\r\n            if (tabs[nextIndex].disabled)\r\n              continue;\r\n            changeTabInternal(tabs[nextIndex]);\r\n            break;\r\n          }\r\n        });\r\n      }\r\n    }\r\n  };\r\n\r\n  return (\r\n    <HorizontalTabContainer tabIndex={0} onBlur={tabListBlur} onFocus={tabListFocus} onKeyDown={tabListKeyDown}\r\n                            role=\"tablist\" data-testid={'horizontal-tabs-container'} {...rest}>\r\n      {\r\n        variant !== 'floating' && <TabSideFill tabIndex={-1} className={`${sideFill ? 'fill' : ''}`}/>\r\n      }\r\n      {tabs.map((tab: HorizontalTab, index: number) => {\r\n        const {value, selected, to, disabled, className, ...rest} = tab;\r\n        return (\r\n          <TabButton\r\n            role=\"tab\"\r\n            data-testid={`tab_${value}`}\r\n            key={`${tab}_${index}`}\r\n            aria-selected={selected}\r\n            aria-expanded={selected}\r\n            tabIndex={-1}\r\n            onMouseDown={defaultOnMouseDownHandler}\r\n            style={fullWidth ? {width: `${100 / tabs.length}%`} : {}}\r\n            disabled={disabled}\r\n            className={`${className || ''} ${size} ${variant || 'default'} ${tab.selected ? 'selected' : ''}`}\r\n            onClick={() => !disabled && changeTabInternal(tab)}\r\n            {...rest}>\r\n            {tab.value}\r\n          </TabButton>\r\n        );\r\n      })}\r\n    </HorizontalTabContainer>\r\n  );\r\n};\r\n\r\nexport default HorizontalTabs;\r\n"],"mappings":"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","ignoreList":[]}