@laerdal/life-react-components 1.11.0-dev.9 → 2.0.0-dev.1.full

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/dist/Accordion/AccordionItem.cjs +12 -7
  2. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  3. package/dist/Accordion/AccordionItem.js +12 -7
  4. package/dist/Accordion/AccordionItem.js.map +1 -1
  5. package/dist/Accordion/ContentAccordion.cjs +3 -1
  6. package/dist/Accordion/ContentAccordion.cjs.map +1 -1
  7. package/dist/Accordion/ContentAccordion.js +3 -1
  8. package/dist/Accordion/ContentAccordion.js.map +1 -1
  9. package/dist/Accordion/styles.cjs +1 -1
  10. package/dist/Accordion/styles.cjs.map +1 -1
  11. package/dist/Accordion/styles.js +1 -1
  12. package/dist/Accordion/styles.js.map +1 -1
  13. package/dist/AuthPage/AuthPage.d.ts +0 -1
  14. package/dist/Banners/Banner.cjs +9 -4
  15. package/dist/Banners/Banner.cjs.map +1 -1
  16. package/dist/Banners/Banner.js +8 -4
  17. package/dist/Banners/Banner.js.map +1 -1
  18. package/dist/Breadcrumb/Breadcrumb.cjs +12 -0
  19. package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
  20. package/dist/Breadcrumb/Breadcrumb.js +12 -0
  21. package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
  22. package/dist/Button/DualFunctionButton.cjs +27 -12
  23. package/dist/Button/DualFunctionButton.cjs.map +1 -1
  24. package/dist/Button/DualFunctionButton.js +26 -12
  25. package/dist/Button/DualFunctionButton.js.map +1 -1
  26. package/dist/Button/Iconbutton.cjs +2 -2
  27. package/dist/Button/Iconbutton.cjs.map +1 -1
  28. package/dist/Button/Iconbutton.js +2 -2
  29. package/dist/Button/Iconbutton.js.map +1 -1
  30. package/dist/Card/VerticalCard/Card.cjs +2 -2
  31. package/dist/Card/VerticalCard/Card.cjs.map +1 -1
  32. package/dist/Card/VerticalCard/Card.js +2 -2
  33. package/dist/Card/VerticalCard/Card.js.map +1 -1
  34. package/dist/ChipsInput/ChipDropdownInput.cjs +33 -22
  35. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
  36. package/dist/ChipsInput/ChipDropdownInput.js +33 -22
  37. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
  38. package/dist/Dropdown/BasicDropdown.cjs +26 -12
  39. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  40. package/dist/Dropdown/BasicDropdown.js +26 -12
  41. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  42. package/dist/Dropdown/DropdownButton.cjs +27 -11
  43. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  44. package/dist/Dropdown/DropdownButton.js +27 -11
  45. package/dist/Dropdown/DropdownButton.js.map +1 -1
  46. package/dist/Dropdown/DropdownButtonTypes.cjs.map +1 -1
  47. package/dist/Dropdown/DropdownButtonTypes.d.ts +1 -1
  48. package/dist/Dropdown/DropdownButtonTypes.js.map +1 -1
  49. package/dist/Dropdown/DropdownContent.cjs +44 -6
  50. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  51. package/dist/Dropdown/DropdownContent.d.ts +2 -0
  52. package/dist/Dropdown/DropdownContent.js +44 -6
  53. package/dist/Dropdown/DropdownContent.js.map +1 -1
  54. package/dist/Dropdown/DropdownFilter.cjs +23 -9
  55. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  56. package/dist/Dropdown/DropdownFilter.js +23 -9
  57. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  58. package/dist/Footer/Components/FooterBottomLinks.d.ts +0 -1
  59. package/dist/Footer/Components/FooterDropdownLinks.d.ts +0 -1
  60. package/dist/Footer/Components/FooterNavSection.cjs +7 -2
  61. package/dist/Footer/Components/FooterNavSection.cjs.map +1 -1
  62. package/dist/Footer/Components/FooterNavSection.d.ts +0 -1
  63. package/dist/Footer/Components/FooterNavSection.js +6 -2
  64. package/dist/Footer/Components/FooterNavSection.js.map +1 -1
  65. package/dist/Footer/Components/FooterNewsletterAndSocialSection.d.ts +0 -1
  66. package/dist/Footer/Components/FooterTop.d.ts +0 -1
  67. package/dist/Footer/Footer.d.ts +0 -1
  68. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs +3 -1
  69. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs.map +1 -1
  70. package/dist/GlobalNavigationBar/GlobalNavigationBar.js +2 -1
  71. package/dist/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
  72. package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.d.ts +0 -1
  73. package/dist/GlobalNavigationBar/desktop/UserMenu.d.ts +0 -1
  74. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs +24 -2
  75. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs.map +1 -1
  76. package/dist/GlobalNavigationBar/mobile/CommonStyles.d.ts +5 -0
  77. package/dist/GlobalNavigationBar/mobile/CommonStyles.js +8 -2
  78. package/dist/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
  79. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs +53 -0
  80. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs.map +1 -0
  81. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.d.ts +6 -0
  82. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js +34 -0
  83. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js.map +1 -0
  84. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs +3 -5
  85. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs.map +1 -1
  86. package/dist/GlobalNavigationBar/mobile/MobileMenu.d.ts +0 -1
  87. package/dist/GlobalNavigationBar/mobile/MobileMenu.js +2 -4
  88. package/dist/GlobalNavigationBar/mobile/MobileMenu.js.map +1 -1
  89. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs +30 -61
  90. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs.map +1 -1
  91. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js +30 -57
  92. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js.map +1 -1
  93. package/dist/GlobalNavigationBar/types.cjs.map +1 -1
  94. package/dist/GlobalNavigationBar/types.d.ts +3 -1
  95. package/dist/GlobalNavigationBar/types.js.map +1 -1
  96. package/dist/InputFields/Checkbox.cjs +1 -0
  97. package/dist/InputFields/Checkbox.cjs.map +1 -1
  98. package/dist/InputFields/Checkbox.js +1 -0
  99. package/dist/InputFields/Checkbox.js.map +1 -1
  100. package/dist/InputFields/DatepickerField.cjs +12 -4
  101. package/dist/InputFields/DatepickerField.cjs.map +1 -1
  102. package/dist/InputFields/DatepickerField.js +6 -4
  103. package/dist/InputFields/DatepickerField.js.map +1 -1
  104. package/dist/InputFields/DatepickerFieldHeader.d.ts +0 -1
  105. package/dist/InputFields/Label.cjs +16 -14
  106. package/dist/InputFields/Label.cjs.map +1 -1
  107. package/dist/InputFields/Label.d.ts +1 -0
  108. package/dist/InputFields/Label.js +15 -13
  109. package/dist/InputFields/Label.js.map +1 -1
  110. package/dist/InputFields/NumberField.cjs +1 -1
  111. package/dist/InputFields/NumberField.cjs.map +1 -1
  112. package/dist/InputFields/NumberField.js +1 -1
  113. package/dist/InputFields/NumberField.js.map +1 -1
  114. package/dist/InputFields/QuickSearch.cjs +1 -1
  115. package/dist/InputFields/QuickSearch.cjs.map +1 -1
  116. package/dist/InputFields/QuickSearch.js +1 -1
  117. package/dist/InputFields/QuickSearch.js.map +1 -1
  118. package/dist/InputFields/ResponsiveComponentWrapper.cjs +3 -3
  119. package/dist/InputFields/ResponsiveComponentWrapper.cjs.map +1 -1
  120. package/dist/InputFields/ResponsiveComponentWrapper.js +3 -3
  121. package/dist/InputFields/ResponsiveComponentWrapper.js.map +1 -1
  122. package/dist/InputFields/SearchBar.cjs +1 -0
  123. package/dist/InputFields/SearchBar.cjs.map +1 -1
  124. package/dist/InputFields/SearchBar.js +1 -0
  125. package/dist/InputFields/SearchBar.js.map +1 -1
  126. package/dist/InputFields/Textarea.cjs.map +1 -1
  127. package/dist/InputFields/Textarea.d.ts +1 -1
  128. package/dist/InputFields/Textarea.js.map +1 -1
  129. package/dist/InputFields/types.cjs.map +1 -1
  130. package/dist/InputFields/types.d.ts +1 -1
  131. package/dist/InputFields/types.js.map +1 -1
  132. package/dist/LoadingIndicator/LoadingIndicator.d.ts +0 -1
  133. package/dist/MiniProductCard/MiniProductCard.d.ts +0 -1
  134. package/dist/Modals/ModalContent.cjs +2 -1
  135. package/dist/Modals/ModalContent.cjs.map +1 -1
  136. package/dist/Modals/ModalContent.d.ts +1 -0
  137. package/dist/Modals/ModalContent.js +2 -1
  138. package/dist/Modals/ModalContent.js.map +1 -1
  139. package/dist/Modals/ModalDialog.cjs +1 -0
  140. package/dist/Modals/ModalDialog.cjs.map +1 -1
  141. package/dist/Modals/ModalDialog.d.ts +1 -0
  142. package/dist/Modals/ModalDialog.js +1 -0
  143. package/dist/Modals/ModalDialog.js.map +1 -1
  144. package/dist/NavItem/NavItem.cjs +22 -1
  145. package/dist/NavItem/NavItem.cjs.map +1 -1
  146. package/dist/NavItem/NavItem.d.ts +7 -1
  147. package/dist/NavItem/NavItem.js +18 -1
  148. package/dist/NavItem/NavItem.js.map +1 -1
  149. package/dist/NavItem/index.cjs.map +1 -1
  150. package/dist/NavItem/index.d.ts +1 -0
  151. package/dist/NavItem/index.js.map +1 -1
  152. package/dist/Paginator/Paginator.d.ts +0 -1
  153. package/dist/QuizButton/QuizButton.cjs +3 -1
  154. package/dist/QuizButton/QuizButton.cjs.map +1 -1
  155. package/dist/QuizButton/QuizButton.js +3 -1
  156. package/dist/QuizButton/QuizButton.js.map +1 -1
  157. package/dist/SideMenu/SideMenuBody.d.ts +0 -1
  158. package/dist/SideMenu/SideMenuFooter.d.ts +0 -1
  159. package/dist/SideMenu/SideMenuHeader.d.ts +0 -1
  160. package/dist/SideMenu/types.d.ts +0 -1
  161. package/dist/SkipToContent/SkipToContent.cjs +5 -0
  162. package/dist/SkipToContent/SkipToContent.cjs.map +1 -1
  163. package/dist/SkipToContent/SkipToContent.d.ts +3 -1
  164. package/dist/SkipToContent/SkipToContent.js +4 -0
  165. package/dist/SkipToContent/SkipToContent.js.map +1 -1
  166. package/dist/Switcher/MobileCustomMenuContent.cjs +56 -0
  167. package/dist/Switcher/MobileCustomMenuContent.cjs.map +1 -0
  168. package/dist/Switcher/MobileCustomMenuContent.d.ts +8 -0
  169. package/dist/Switcher/MobileCustomMenuContent.js +39 -0
  170. package/dist/Switcher/MobileCustomMenuContent.js.map +1 -0
  171. package/dist/Switcher/MobileSwitcherMenu.cjs +17 -4
  172. package/dist/Switcher/MobileSwitcherMenu.cjs.map +1 -1
  173. package/dist/Switcher/MobileSwitcherMenu.d.ts +5 -3
  174. package/dist/Switcher/MobileSwitcherMenu.js +16 -4
  175. package/dist/Switcher/MobileSwitcherMenu.js.map +1 -1
  176. package/dist/Switcher/SwitcherMenuItem.d.ts +0 -1
  177. package/dist/Table/Table.cjs +9 -6
  178. package/dist/Table/Table.cjs.map +1 -1
  179. package/dist/Table/Table.js +9 -6
  180. package/dist/Table/Table.js.map +1 -1
  181. package/dist/Table/TableBody.cjs +6 -5
  182. package/dist/Table/TableBody.cjs.map +1 -1
  183. package/dist/Table/TableBody.d.ts +1 -3
  184. package/dist/Table/TableBody.js +6 -5
  185. package/dist/Table/TableBody.js.map +1 -1
  186. package/dist/Table/TableStyles.cjs +1 -1
  187. package/dist/Table/TableStyles.cjs.map +1 -1
  188. package/dist/Table/TableStyles.js +1 -1
  189. package/dist/Table/TableStyles.js.map +1 -1
  190. package/dist/Table/TableTypes.cjs.map +1 -1
  191. package/dist/Table/TableTypes.d.ts +5 -1
  192. package/dist/Table/TableTypes.js.map +1 -1
  193. package/dist/Table/index.cjs.map +1 -1
  194. package/dist/Table/index.d.ts +1 -1
  195. package/dist/Table/index.js.map +1 -1
  196. package/dist/Tabs/TabLink.cjs +13 -16
  197. package/dist/Tabs/TabLink.cjs.map +1 -1
  198. package/dist/Tabs/TabLink.d.ts +1 -1
  199. package/dist/Tabs/TabLink.js +14 -16
  200. package/dist/Tabs/TabLink.js.map +1 -1
  201. package/dist/Tabs/VerticalTabs.cjs +1 -0
  202. package/dist/Tabs/VerticalTabs.cjs.map +1 -1
  203. package/dist/Tabs/VerticalTabs.d.ts +1 -2
  204. package/dist/Tabs/VerticalTabs.js +1 -0
  205. package/dist/Tabs/VerticalTabs.js.map +1 -1
  206. package/dist/Tile/TileBody.cjs.map +1 -1
  207. package/dist/Tile/TileBody.d.ts +1 -0
  208. package/dist/Tile/TileBody.js.map +1 -1
  209. package/dist/Tile/TileCommonItems.d.ts +0 -1
  210. package/dist/Toasters/ToastContext.cjs +5 -0
  211. package/dist/Toasters/ToastContext.cjs.map +1 -1
  212. package/dist/Toasters/ToastContext.d.ts +6 -4
  213. package/dist/Toasters/ToastContext.js +4 -0
  214. package/dist/Toasters/ToastContext.js.map +1 -1
  215. package/dist/Toggles/TogglerTypes.d.ts +0 -1
  216. package/dist/Tooltips/TooltipTypes.d.ts +0 -1
  217. package/dist/Tooltips/TooltipWrapper.d.ts +0 -1
  218. package/dist/common/ScrollableContainer.cjs +44 -0
  219. package/dist/common/ScrollableContainer.cjs.map +1 -0
  220. package/dist/common/ScrollableContainer.d.ts +2 -0
  221. package/dist/common/ScrollableContainer.js +28 -0
  222. package/dist/common/ScrollableContainer.js.map +1 -0
  223. package/dist/icons/contenticons/ContentIcons.cjs +83 -2
  224. package/dist/icons/contenticons/ContentIcons.cjs.map +1 -1
  225. package/dist/icons/contenticons/ContentIcons.d.ts +3 -0
  226. package/dist/icons/contenticons/ContentIcons.js +72 -0
  227. package/dist/icons/contenticons/ContentIcons.js.map +1 -1
  228. package/dist/icons/index.cjs +14 -7
  229. package/dist/icons/index.cjs.map +1 -1
  230. package/dist/icons/index.d.ts +1 -0
  231. package/dist/icons/index.js +14 -7
  232. package/dist/icons/index.js.map +1 -1
  233. package/dist/icons/systemicons/SystemIcons.cjs +30 -1
  234. package/dist/icons/systemicons/SystemIcons.cjs.map +1 -1
  235. package/dist/icons/systemicons/SystemIcons.d.ts +1 -0
  236. package/dist/icons/systemicons/SystemIcons.js +26 -0
  237. package/dist/icons/systemicons/SystemIcons.js.map +1 -1
  238. package/dist/styles/typography.cjs +27 -13
  239. package/dist/styles/typography.cjs.map +1 -1
  240. package/dist/styles/typography.d.ts +2 -0
  241. package/dist/styles/typography.js +27 -13
  242. package/dist/styles/typography.js.map +1 -1
  243. package/dist/utils/utils.cjs +13 -0
  244. package/dist/utils/utils.cjs.map +1 -0
  245. package/dist/utils/utils.d.ts +1 -0
  246. package/dist/utils/utils.js +4 -0
  247. package/dist/utils/utils.js.map +1 -0
  248. package/package.json +22 -17
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.js","names":["React","styled","BREAKPOINTS","COLORS","ComponentTextStyle","Close","Help","TechnicalWarning","ThumbsUp","Tip","IconButton","getButtonStyle","ComponentMStyling","ComponentResponsive","HyperLink","StyledLink","BannerContainer","div","props","$type","correct_100","black","bottom","MEDIUM","LARGE","link","linkVisited","linkFocused","white","BannerCenter","Regular","ButtonWrapper","ButtonContainer","BannerContentWrapper","Banner","size","type","children","testId","linkText","onClose","icon","noIcon","linkAction","fullWidth","className","rest","useState","window","innerWidth","width","setWidth","useEffect","handleResize","addEventListener","bannerParams","typeColor","primary_100","accentColor","primary_700","hoverColor","primary_20","closeIconColor","primary_500","containerType","focusBgColor","primary_200","primary_600","primary_800","warning_100","warning_700","warning_200","warning_20","warning_500","warning_800","critical_100","critical_700","critical_200","critical_20","critical_500","critical_800","correct_700","correct_200","correct_20","correct_500","correct_800","cls","color","Math","floor","random","e","preventDefault","hover"],"sources":["../../src/Banners/Banner.tsx"],"sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\n\nimport { BREAKPOINTS, COLORS, ComponentTextStyle } from '../styles';\nimport { Close, Help, TechnicalWarning, ThumbsUp, Tip } from '../icons/systemicons/SystemIcons';\nimport { IconButton } from '../Button';\nimport { getButtonStyle } from './styles';\nimport { Size } from '../types';\nimport { ComponentMStyling, ComponentResponsive } from '../styles';\nimport { HyperLink } from '../HyperLink';\nimport {StyledLink} from '../HyperLink/HyperLink';\n\n/**\n * Styles for <Banner />\n */\ntype StyleBannerProps = BannerProps & { $type: string, linkVisited: string, linkFocused: string };\n\nconst BannerContainer = styled.div<StyleBannerProps>`\n background: ${(props: StyleBannerProps) => (props.$type ? props.$type : COLORS.correct_100)};\n min-height: 48px;\n display: flex;\n color: ${COLORS.black};\n margin-top: ${(props: StyleBannerProps) => (props.bottom ? 'auto' : '0')};\n border-radius: 4px;\n\n button:last-child {\n line-height: 0;\n margin: 0 0 0 8px;\n ${BREAKPOINTS.MEDIUM} {\n margin: 0 0 0 16px;\n }\n ${BREAKPOINTS.LARGE} {\n margin: 0 0 0 32px;\n }\n &.small {\n margin: 0 0 0 8px;\n }\n &.medium {\n margin: 0 0 0 16px;\n }\n &.large {\n margin: 0 0 0 32px;\n }\n }\n\n ${StyledLink} {\n &:link{\n color: ${(props) => props.link};\n }\n &:visited{\n color: ${(props) => props.linkVisited};\n }\n &:focus,\n &:active{\n background-color: ${(props) => props.linkFocused};\n color: ${COLORS.white};\n }\n }\n \n &.full-width-banner{\n margin: 8px;\n }\n`;\n\nconst BannerCenter = styled.div`\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\n\n display: flex;\n width: 100%;\n margin: 0 16px;\n ${BREAKPOINTS.MEDIUM} {\n margin: 0 32px;\n }\n ${BREAKPOINTS.LARGE} {\n margin: 0 56px;\n }\n &.small {\n margin: 0 16px;\n }\n &.medium {\n margin: 0 32px;\n }\n &.large {\n margin: 0 56px;\n }\n\n > svg {\n flex-shrink: 0;\n margin: 12px 0;\n }\n \n .full-width-banner & {\n margin: 0 16px;\n\n ${BREAKPOINTS.MEDIUM} {\n margin: 0 24px;\n }\n ${BREAKPOINTS.LARGE} {\n margin: 0 48px;\n }\n\n &.small {\n margin: 0 16px;\n }\n\n &.medium{\n margin: 0 24px;\n }\n\n &.large{\n margin: 0 48px;\n }\n }\n`;\n\n\nconst ButtonWrapper = styled.div`\n margin: 0 0 0 auto;\n`;\n\nconst ButtonContainer = styled.div<{ $type?: string }>`\n display: contents;\n ${(props) => (props.$type ? getButtonStyle(props.$type) : null)};\n`;\n\nconst BannerContentWrapper = styled.div`\n display: flex;\n align-items: center;\n margin: 12px 0;\n &:not(:first-child) {\n margin-left: 8px;\n }\n`;\n\ntype BannerProps = React.HTMLAttributes<HTMLDivElement> & {\n size?: Size.Small | Size.Medium | Size.Large;\n type?: 'warning' | 'critical' | 'positive' | 'neutral';\n link?: string;\n linkText?: string;\n linkAction?: (ev: React.MouseEvent) => void;\n hover?: string;\n bottom?: boolean;\n testId?: string;\n icon?: React.ReactNode;\n onClose?: () => void;\n noIcon?: boolean;\n fullWidth?: boolean;\n};\n\nconst Banner: React.FunctionComponent<BannerProps> = ({\n size,\n type = 'neutral',\n children,\n bottom,\n testId,\n linkText,\n link,\n onClose,\n icon,\n noIcon,\n linkAction,\n fullWidth,\n className,\n ...rest\n }) => {\n const [width, setWidth] = React.useState<number>(window.innerWidth);\n React.useEffect(() => {\n function handleResize() {\n setWidth(window.innerWidth);\n }\n window.addEventListener('resize', handleResize);\n });\n\n let bannerParams = {\n typeColor: COLORS.primary_100,\n accentColor: COLORS.primary_700,\n hoverColor: COLORS.primary_20,\n closeIconColor: COLORS.primary_500,\n icon: Tip,\n containerType: type,\n focusBgColor: COLORS.primary_200,\n linkVisited: COLORS.primary_600,\n linkFocused: COLORS.primary_800\n };\n switch (type) {\n case 'warning':\n bannerParams.typeColor = COLORS.warning_100;\n bannerParams.accentColor = COLORS.warning_700;\n bannerParams.focusBgColor = COLORS.warning_200;\n bannerParams.hoverColor = COLORS.warning_20;\n bannerParams.icon = Help;\n bannerParams.closeIconColor = COLORS.warning_500;\n bannerParams.linkVisited = COLORS.warning_800;\n bannerParams.linkFocused = COLORS.warning_800;\n break;\n case 'critical':\n bannerParams.typeColor = COLORS.critical_100;\n bannerParams.accentColor = COLORS.critical_700;\n bannerParams.focusBgColor = COLORS.critical_200;\n bannerParams.hoverColor = COLORS.critical_20;\n bannerParams.icon = TechnicalWarning;\n bannerParams.closeIconColor = COLORS.critical_500;\n bannerParams.linkVisited = COLORS.critical_800;\n bannerParams.linkFocused = COLORS.critical_800;\n break;\n case 'positive':\n bannerParams.typeColor = COLORS.correct_100;\n bannerParams.accentColor = COLORS.correct_700;\n bannerParams.focusBgColor = COLORS.correct_200;\n bannerParams.hoverColor = COLORS.correct_20;\n bannerParams.icon = ThumbsUp;\n bannerParams.closeIconColor = COLORS.correct_500;\n bannerParams.linkVisited = COLORS.correct_800;\n bannerParams.linkFocused = COLORS.correct_800;\n break;\n }\n \n const cls = `${className ?? ''} ${fullWidth ? 'full-width-banner' : ''}`;\n\n return (\n <BannerContainer data-testid={testId}\n $type={bannerParams.typeColor}\n linkFocused={bannerParams.linkFocused}\n linkVisited={bannerParams.linkVisited}\n link={bannerParams.accentColor}\n hover={bannerParams.hoverColor}\n bottom={bottom}\n className={cls}\n {...rest}>\n <BannerCenter style={{color: bannerParams.accentColor}} className={size}>\n {icon ? icon : noIcon ? null : <bannerParams.icon color={bannerParams.accentColor} size=\"24px\" />}\n <BannerContentWrapper>\n <ComponentResponsive size={size} width={width} color={bannerParams.accentColor}>\n {children}&nbsp;\n {link && linkText && (\n <HyperLink\n id={`${Math.floor(Math.random() * 999999999999)}_BannerLink`}\n onClick={(e) => {\n if (linkAction) {\n e.preventDefault();\n linkAction(e);\n }\n }}\n href={link}\n variant=\"default\">\n {linkText}\n </HyperLink>\n )}\n </ComponentResponsive>\n </BannerContentWrapper>\n {onClose && (\n <ButtonWrapper>\n <ButtonContainer $type={bannerParams.containerType}>\n <IconButton variant=\"secondary\" shape=\"circular\" useTransparentBackground focusBackgroundColor={bannerParams.focusBgColor} action={() => onClose()}>\n <Close color={bannerParams.closeIconColor} size=\"24px\" />\n </IconButton>\n </ButtonContainer>\n </ButtonWrapper>\n )}\n </BannerCenter>\n </BannerContainer>\n );\n};\n\nexport default Banner;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Banner.js","names":["React","styled","BREAKPOINTS","COLORS","ComponentTextStyle","Close","Help","TechnicalWarning","ThumbsUp","Tip","IconButton","getButtonStyle","ComponentMStyling","ComponentResponsive","HyperLink","StyledLink","hasWindow","BannerContainer","div","props","$type","correct_100","black","bottom","MEDIUM","LARGE","link","linkVisited","linkFocused","white","BannerCenter","Regular","ButtonWrapper","ButtonContainer","BannerContentWrapper","Banner","size","type","children","testId","linkText","onClose","icon","noIcon","linkAction","fullWidth","className","rest","useState","window","innerWidth","width","setWidth","useEffect","handleResize","addEventListener","removeEventListener","bannerParams","typeColor","primary_100","accentColor","primary_700","hoverColor","primary_20","closeIconColor","primary_500","containerType","focusBgColor","primary_200","primary_600","primary_800","warning_100","warning_700","warning_200","warning_20","warning_500","warning_800","critical_100","critical_700","critical_200","critical_20","critical_500","critical_800","correct_700","correct_200","correct_20","correct_500","correct_800","cls","color","Math","floor","random","e","preventDefault","hover"],"sources":["../../src/Banners/Banner.tsx"],"sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\n\nimport { BREAKPOINTS, COLORS, ComponentTextStyle } from '../styles';\nimport { Close, Help, TechnicalWarning, ThumbsUp, Tip } from '../icons/systemicons/SystemIcons';\nimport { IconButton } from '../Button';\nimport { getButtonStyle } from './styles';\nimport { Size } from '../types';\nimport { ComponentMStyling, ComponentResponsive } from '../styles';\nimport { HyperLink } from '../HyperLink';\nimport { StyledLink } from '../HyperLink/HyperLink';\nimport { hasWindow } from '../utils/utils';\n\n/**\n * Styles for <Banner />\n */\ntype StyleBannerProps = BannerProps & { $type: string; linkVisited: string; linkFocused: string };\n\nconst BannerContainer = styled.div<StyleBannerProps>`\n background: ${(props: StyleBannerProps) => (props.$type ? props.$type : COLORS.correct_100)};\n min-height: 48px;\n display: flex;\n color: ${COLORS.black};\n margin-top: ${(props: StyleBannerProps) => (props.bottom ? 'auto' : '0')};\n border-radius: 4px;\n\n button:last-child {\n line-height: 0;\n margin: 0 0 0 8px;\n ${BREAKPOINTS.MEDIUM} {\n margin: 0 0 0 16px;\n }\n ${BREAKPOINTS.LARGE} {\n margin: 0 0 0 32px;\n }\n &.small {\n margin: 0 0 0 8px;\n }\n &.medium {\n margin: 0 0 0 16px;\n }\n &.large {\n margin: 0 0 0 32px;\n }\n }\n\n ${StyledLink} {\n &:link {\n color: ${(props) => props.link};\n }\n &:visited {\n color: ${(props) => props.linkVisited};\n }\n &:focus,\n &:active {\n background-color: ${(props) => props.linkFocused};\n color: ${COLORS.white};\n }\n }\n\n &.full-width-banner {\n margin: 8px;\n }\n`;\n\nconst BannerCenter = styled.div`\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\n\n display: flex;\n width: 100%;\n margin: 0 16px;\n ${BREAKPOINTS.MEDIUM} {\n margin: 0 32px;\n }\n ${BREAKPOINTS.LARGE} {\n margin: 0 56px;\n }\n &.small {\n margin: 0 16px;\n }\n &.medium {\n margin: 0 32px;\n }\n &.large {\n margin: 0 56px;\n }\n\n > svg {\n flex-shrink: 0;\n margin: 12px 0;\n }\n\n .full-width-banner & {\n margin: 0 16px;\n\n ${BREAKPOINTS.MEDIUM} {\n margin: 0 24px;\n }\n ${BREAKPOINTS.LARGE} {\n margin: 0 48px;\n }\n\n &.small {\n margin: 0 16px;\n }\n\n &.medium {\n margin: 0 24px;\n }\n\n &.large {\n margin: 0 48px;\n }\n }\n`;\n\nconst ButtonWrapper = styled.div`\n margin: 0 0 0 auto;\n`;\n\nconst ButtonContainer = styled.div<{ $type?: string }>`\n display: contents;\n ${(props) => (props.$type ? getButtonStyle(props.$type) : null)};\n`;\n\nconst BannerContentWrapper = styled.div`\n display: flex;\n align-items: center;\n margin: 12px 0;\n &:not(:first-child) {\n margin-left: 8px;\n }\n`;\n\ntype BannerProps = React.HTMLAttributes<HTMLDivElement> & {\n size?: Size.Small | Size.Medium | Size.Large;\n type?: 'warning' | 'critical' | 'positive' | 'neutral';\n link?: string;\n linkText?: string;\n linkAction?: (ev: React.MouseEvent) => void;\n hover?: string;\n bottom?: boolean;\n testId?: string;\n icon?: React.ReactNode;\n onClose?: () => void;\n noIcon?: boolean;\n fullWidth?: boolean;\n};\n\nconst Banner: React.FunctionComponent<BannerProps> = ({\n size,\n type = 'neutral',\n children,\n bottom,\n testId,\n linkText,\n link,\n onClose,\n icon,\n noIcon,\n linkAction,\n fullWidth,\n className,\n ...rest\n}) => {\n const [width, setWidth] = React.useState<number>(hasWindow() ? window.innerWidth : -1);\n React.useEffect(() => {\n function handleResize() {\n setWidth(window.innerWidth);\n }\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n let bannerParams = {\n typeColor: COLORS.primary_100,\n accentColor: COLORS.primary_700,\n hoverColor: COLORS.primary_20,\n closeIconColor: COLORS.primary_500,\n icon: Tip,\n containerType: type,\n focusBgColor: COLORS.primary_200,\n linkVisited: COLORS.primary_600,\n linkFocused: COLORS.primary_800,\n };\n switch (type) {\n case 'warning':\n bannerParams.typeColor = COLORS.warning_100;\n bannerParams.accentColor = COLORS.warning_700;\n bannerParams.focusBgColor = COLORS.warning_200;\n bannerParams.hoverColor = COLORS.warning_20;\n bannerParams.icon = Help;\n bannerParams.closeIconColor = COLORS.warning_500;\n bannerParams.linkVisited = COLORS.warning_800;\n bannerParams.linkFocused = COLORS.warning_800;\n break;\n case 'critical':\n bannerParams.typeColor = COLORS.critical_100;\n bannerParams.accentColor = COLORS.critical_700;\n bannerParams.focusBgColor = COLORS.critical_200;\n bannerParams.hoverColor = COLORS.critical_20;\n bannerParams.icon = TechnicalWarning;\n bannerParams.closeIconColor = COLORS.critical_500;\n bannerParams.linkVisited = COLORS.critical_800;\n bannerParams.linkFocused = COLORS.critical_800;\n break;\n case 'positive':\n bannerParams.typeColor = COLORS.correct_100;\n bannerParams.accentColor = COLORS.correct_700;\n bannerParams.focusBgColor = COLORS.correct_200;\n bannerParams.hoverColor = COLORS.correct_20;\n bannerParams.icon = ThumbsUp;\n bannerParams.closeIconColor = COLORS.correct_500;\n bannerParams.linkVisited = COLORS.correct_800;\n bannerParams.linkFocused = COLORS.correct_800;\n break;\n }\n\n const cls = `${className ?? ''} ${fullWidth ? 'full-width-banner' : ''}`;\n\n return (\n <BannerContainer\n data-testid={testId}\n $type={bannerParams.typeColor}\n linkFocused={bannerParams.linkFocused}\n linkVisited={bannerParams.linkVisited}\n link={bannerParams.accentColor}\n hover={bannerParams.hoverColor}\n bottom={bottom}\n className={cls}\n {...rest}>\n <BannerCenter style={{ color: bannerParams.accentColor }} className={size}>\n {icon ? icon : noIcon ? null : <bannerParams.icon color={bannerParams.accentColor} size=\"24px\" />}\n <BannerContentWrapper>\n <ComponentResponsive size={size} width={width} color={bannerParams.accentColor}>\n {children}&nbsp;\n {link && linkText && (\n <HyperLink\n id={`${Math.floor(Math.random() * 999999999999)}_BannerLink`}\n onClick={(e) => {\n if (linkAction) {\n e.preventDefault();\n linkAction(e);\n }\n }}\n href={link}\n variant=\"default\">\n {linkText}\n </HyperLink>\n )}\n </ComponentResponsive>\n </BannerContentWrapper>\n {onClose && (\n <ButtonWrapper>\n <ButtonContainer $type={bannerParams.containerType}>\n <IconButton variant=\"secondary\" shape=\"circular\" useTransparentBackground focusBackgroundColor={bannerParams.focusBgColor} action={() => onClose()}>\n <Close color={bannerParams.closeIconColor} size=\"24px\" />\n </IconButton>\n </ButtonContainer>\n </ButtonWrapper>\n )}\n </BannerCenter>\n </BannerContainer>\n );\n};\n\nexport default Banner;\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AAEA,SAASC,WAAT,EAAsBC,MAAtB,EAA8BC,kBAA9B,QAAwD,WAAxD;AACA,SAASC,KAAT,EAAgBC,IAAhB,EAAsBC,gBAAtB,EAAwCC,QAAxC,EAAkDC,GAAlD,QAA6D,kCAA7D;AACA,SAASC,UAAT,QAA2B,WAA3B;AACA,SAASC,cAAT,QAA+B,UAA/B;AAEA,SAASC,iBAAT,EAA4BC,mBAA5B,QAAuD,WAAvD;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,UAAT,QAA2B,wBAA3B;AACA,SAASC,SAAT,QAA0B,gBAA1B;AAEA;AACA;AACA;;;;AAGA,IAAMC,eAAe,GAAGhB,MAAM,CAACiB,GAAV,0uBACL,UAACC,KAAD;EAAA,OAA8BA,KAAK,CAACC,KAAN,GAAcD,KAAK,CAACC,KAApB,GAA4BjB,MAAM,CAACkB,WAAjE;AAAA,CADK,EAIVlB,MAAM,CAACmB,KAJG,EAKL,UAACH,KAAD;EAAA,OAA8BA,KAAK,CAACI,MAAN,GAAe,MAAf,GAAwB,GAAtD;AAAA,CALK,EAWfrB,WAAW,CAACsB,MAXG,EAcftB,WAAW,CAACuB,KAdG,EA4BjBV,UA5BiB,EA8BN,UAACI,KAAD;EAAA,OAAWA,KAAK,CAACO,IAAjB;AAAA,CA9BM,EAiCN,UAACP,KAAD;EAAA,OAAWA,KAAK,CAACQ,WAAjB;AAAA,CAjCM,EAqCK,UAACR,KAAD;EAAA,OAAWA,KAAK,CAACS,WAAjB;AAAA,CArCL,EAsCNzB,MAAM,CAAC0B,KAtCD,CAArB;AA+CA,IAAMC,YAAY,GAAG7B,MAAM,CAACiB,GAAV,6pBACdN,iBAAiB,CAACR,kBAAkB,CAAC2B,OAApB,EAA6B,IAA7B,CADH,EAMd7B,WAAW,CAACsB,MANE,EASdtB,WAAW,CAACuB,KATE,EA8BZvB,WAAW,CAACsB,MA9BA,EAiCZtB,WAAW,CAACuB,KAjCA,CAAlB;AAmDA,IAAMO,aAAa,GAAG/B,MAAM,CAACiB,GAAV,gGAAnB;AAIA,IAAMe,eAAe,GAAGhC,MAAM,CAACiB,GAAV,yGAEjB,UAACC,KAAD;EAAA,OAAYA,KAAK,CAACC,KAAN,GAAcT,cAAc,CAACQ,KAAK,CAACC,KAAP,CAA5B,GAA4C,IAAxD;AAAA,CAFiB,CAArB;AAKA,IAAMc,oBAAoB,GAAGjC,MAAM,CAACiB,GAAV,2LAA1B;;AAwBA,IAAMiB,MAA4C,GAAG,SAA/CA,MAA+C,OAe/C;EAAA,IAdJC,IAcI,QAdJA,IAcI;EAAA,qBAbJC,IAaI;EAAA,IAbJA,IAaI,0BAbG,SAaH;EAAA,IAZJC,QAYI,QAZJA,QAYI;EAAA,IAXJf,MAWI,QAXJA,MAWI;EAAA,IAVJgB,MAUI,QAVJA,MAUI;EAAA,IATJC,QASI,QATJA,QASI;EAAA,IARJd,IAQI,QARJA,IAQI;EAAA,IAPJe,OAOI,QAPJA,OAOI;EAAA,IANJC,IAMI,QANJA,IAMI;EAAA,IALJC,MAKI,QALJA,MAKI;EAAA,IAJJC,UAII,QAJJA,UAII;EAAA,IAHJC,SAGI,QAHJA,SAGI;EAAA,IAFJC,SAEI,QAFJA,SAEI;EAAA,IADDC,IACC;;EACJ,sBAA0B/C,KAAK,CAACgD,QAAN,CAAuBhC,SAAS,KAAKiC,MAAM,CAACC,UAAZ,GAAyB,CAAC,CAA1D,CAA1B;EAAA;EAAA,IAAOC,KAAP;EAAA,IAAcC,QAAd;;EACApD,KAAK,CAACqD,SAAN,CAAgB,YAAM;IACpB,SAASC,YAAT,GAAwB;MACtBF,QAAQ,CAACH,MAAM,CAACC,UAAR,CAAR;IACD;;IACDD,MAAM,CAACM,gBAAP,CAAwB,QAAxB,EAAkCD,YAAlC;IACA,OAAO;MAAA,OAAML,MAAM,CAACO,mBAAP,CAA2B,QAA3B,EAAqCF,YAArC,CAAN;IAAA,CAAP;EACD,CAND,EAMG,EANH;EAQA,IAAIG,YAAY,GAAG;IACjBC,SAAS,EAAEvD,MAAM,CAACwD,WADD;IAEjBC,WAAW,EAAEzD,MAAM,CAAC0D,WAFH;IAGjBC,UAAU,EAAE3D,MAAM,CAAC4D,UAHF;IAIjBC,cAAc,EAAE7D,MAAM,CAAC8D,WAJN;IAKjBvB,IAAI,EAAEjC,GALW;IAMjByD,aAAa,EAAE7B,IANE;IAOjB8B,YAAY,EAAEhE,MAAM,CAACiE,WAPJ;IAQjBzC,WAAW,EAAExB,MAAM,CAACkE,WARH;IASjBzC,WAAW,EAAEzB,MAAM,CAACmE;EATH,CAAnB;;EAWA,QAAQjC,IAAR;IACE,KAAK,SAAL;MACEoB,YAAY,CAACC,SAAb,GAAyBvD,MAAM,CAACoE,WAAhC;MACAd,YAAY,CAACG,WAAb,GAA2BzD,MAAM,CAACqE,WAAlC;MACAf,YAAY,CAACU,YAAb,GAA4BhE,MAAM,CAACsE,WAAnC;MACAhB,YAAY,CAACK,UAAb,GAA0B3D,MAAM,CAACuE,UAAjC;MACAjB,YAAY,CAACf,IAAb,GAAoBpC,IAApB;MACAmD,YAAY,CAACO,cAAb,GAA8B7D,MAAM,CAACwE,WAArC;MACAlB,YAAY,CAAC9B,WAAb,GAA2BxB,MAAM,CAACyE,WAAlC;MACAnB,YAAY,CAAC7B,WAAb,GAA2BzB,MAAM,CAACyE,WAAlC;MACA;;IACF,KAAK,UAAL;MACEnB,YAAY,CAACC,SAAb,GAAyBvD,MAAM,CAAC0E,YAAhC;MACApB,YAAY,CAACG,WAAb,GAA2BzD,MAAM,CAAC2E,YAAlC;MACArB,YAAY,CAACU,YAAb,GAA4BhE,MAAM,CAAC4E,YAAnC;MACAtB,YAAY,CAACK,UAAb,GAA0B3D,MAAM,CAAC6E,WAAjC;MACAvB,YAAY,CAACf,IAAb,GAAoBnC,gBAApB;MACAkD,YAAY,CAACO,cAAb,GAA8B7D,MAAM,CAAC8E,YAArC;MACAxB,YAAY,CAAC9B,WAAb,GAA2BxB,MAAM,CAAC+E,YAAlC;MACAzB,YAAY,CAAC7B,WAAb,GAA2BzB,MAAM,CAAC+E,YAAlC;MACA;;IACF,KAAK,UAAL;MACEzB,YAAY,CAACC,SAAb,GAAyBvD,MAAM,CAACkB,WAAhC;MACAoC,YAAY,CAACG,WAAb,GAA2BzD,MAAM,CAACgF,WAAlC;MACA1B,YAAY,CAACU,YAAb,GAA4BhE,MAAM,CAACiF,WAAnC;MACA3B,YAAY,CAACK,UAAb,GAA0B3D,MAAM,CAACkF,UAAjC;MACA5B,YAAY,CAACf,IAAb,GAAoBlC,QAApB;MACAiD,YAAY,CAACO,cAAb,GAA8B7D,MAAM,CAACmF,WAArC;MACA7B,YAAY,CAAC9B,WAAb,GAA2BxB,MAAM,CAACoF,WAAlC;MACA9B,YAAY,CAAC7B,WAAb,GAA2BzB,MAAM,CAACoF,WAAlC;MACA;EA9BJ;;EAiCA,IAAMC,GAAG,aAAM1C,SAAN,aAAMA,SAAN,cAAMA,SAAN,GAAmB,EAAnB,cAAyBD,SAAS,GAAG,mBAAH,GAAyB,EAA3D,CAAT;EAEA,oBACE,KAAC,eAAD;IACE,eAAaN,MADf;IAEE,KAAK,EAAEkB,YAAY,CAACC,SAFtB;IAGE,WAAW,EAAED,YAAY,CAAC7B,WAH5B;IAIE,WAAW,EAAE6B,YAAY,CAAC9B,WAJ5B;IAKE,IAAI,EAAE8B,YAAY,CAACG,WALrB;IAME,KAAK,EAAEH,YAAY,CAACK,UANtB;IAOE,MAAM,EAAEvC,MAPV;IAQE,SAAS,EAAEiE;EARb,GASMzC,IATN;IAAA,uBAUE,MAAC,YAAD;MAAc,KAAK,EAAE;QAAE0C,KAAK,EAAEhC,YAAY,CAACG;MAAtB,CAArB;MAA0D,SAAS,EAAExB,IAArE;MAAA,WACGM,IAAI,GAAGA,IAAH,GAAUC,MAAM,GAAG,IAAH,gBAAU,KAAC,YAAD,CAAc,IAAd;QAAmB,KAAK,EAAEc,YAAY,CAACG,WAAvC;QAAoD,IAAI,EAAC;MAAzD,EADjC,eAEE,KAAC,oBAAD;QAAA,uBACE,MAAC,mBAAD;UAAqB,IAAI,EAAExB,IAA3B;UAAiC,KAAK,EAAEe,KAAxC;UAA+C,KAAK,EAAEM,YAAY,CAACG,WAAnE;UAAA,WACGtB,QADH,UAEGZ,IAAI,IAAIc,QAAR,iBACC,KAAC,SAAD;YACE,EAAE,YAAKkD,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,MAAL,KAAgB,YAA3B,CAAL,gBADJ;YAEE,OAAO,EAAE,iBAACC,CAAD,EAAO;cACd,IAAIjD,UAAJ,EAAgB;gBACdiD,CAAC,CAACC,cAAF;gBACAlD,UAAU,CAACiD,CAAD,CAAV;cACD;YACF,CAPH;YAQE,IAAI,EAAEnE,IARR;YASE,OAAO,EAAC,SATV;YAAA,UAUGc;UAVH,EAHJ;QAAA;MADF,EAFF,EAqBGC,OAAO,iBACN,KAAC,aAAD;QAAA,uBACE,KAAC,eAAD;UAAiB,KAAK,EAAEgB,YAAY,CAACS,aAArC;UAAA,uBACE,KAAC,UAAD;YAAY,OAAO,EAAC,WAApB;YAAgC,KAAK,EAAC,UAAtC;YAAiD,wBAAwB,MAAzE;YAA0E,oBAAoB,EAAET,YAAY,CAACU,YAA7G;YAA2H,MAAM,EAAE;cAAA,OAAM1B,OAAO,EAAb;YAAA,CAAnI;YAAA,uBACE,KAAC,KAAD;cAAO,KAAK,EAAEgB,YAAY,CAACO,cAA3B;cAA2C,IAAI,EAAC;YAAhD;UADF;QADF;MADF,EAtBJ;IAAA;EAVF,GADF;AA4CD,CAnHD;;;EAbE3B,I,aAAO,S,EAAY,U,EAAa,U,EAAa,S;EAC7CX,I;EACAc,Q;EACAI,U;EACAmD,K;EACAxE,M;EACAgB,M;EACAG,I;EACAD,O;EACAE,M;EACAE,S;;AAwHF,eAAeV,MAAf"}
@@ -81,6 +81,10 @@ var Breadcrumb = function Breadcrumb(_ref) {
81
81
  id: 'homelink',
82
82
  variant: "default",
83
83
  href: homeUrl,
84
+ onClick: function onClick(e) {
85
+ e.preventDefault();
86
+ navigateHook(homeUrl);
87
+ },
84
88
  children: homeLabel
85
89
  }), !!items && items.length > 2 && (items.length > 3 ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
86
90
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.SystemIcons.ChevronRight, {
@@ -105,6 +109,10 @@ var Breadcrumb = function Breadcrumb(_ref) {
105
109
  size: chevronSize
106
110
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.HyperLink, {
107
111
  id: 'link-item-' + (items.length - 3),
112
+ onClick: function onClick(e) {
113
+ e.preventDefault();
114
+ navigateHook(items[items.length - 3].url);
115
+ },
108
116
  target: "_self",
109
117
  variant: "default",
110
118
  href: items[items.length - 3].url,
@@ -117,6 +125,10 @@ var Breadcrumb = function Breadcrumb(_ref) {
117
125
  size: chevronSize
118
126
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.HyperLink, {
119
127
  id: 'link-item-' + (items.length - 2),
128
+ onClick: function onClick(e) {
129
+ e.preventDefault();
130
+ navigateHook(items[items.length - 2].url);
131
+ },
120
132
  target: "_self",
121
133
  variant: "default",
122
134
  href: items[items.length - 2].url,
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumb.cjs","names":["Breadcrumb","items","size","Size","Small","homeIcon","homeLabel","homeUrl","rest","navigateHook","useNavigate","dropdownItems","slice","length","map","x","value","url","displayLabel","label","navigate","links","chevronSize","Medium","COLORS","neutral_500","neutral_600"],"sources":["../../src/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { COLORS } from '../styles';\nimport { Size, SystemIcons } from '..';\nimport { useNavigate } from 'react-router';\nimport { HyperLink, IconButton } from '..';\nimport { BreadcrumbItem } from './BreadcrumbItem';\nimport DropdownButton from '../Dropdown/DropdownButton';\nimport { DropdownItem } from '../Dropdown/DropdownContent';\nimport { BreadcrumbContainer, LastBreadcrumbItem } from './styles';\n\ntype BreadcrumbProps = React.HTMLAttributes<HTMLDivElement> & {\n homeIcon?: boolean;\n homeLabel?: string;\n homeUrl?: string;\n items?: BreadcrumbItem[];\n size?: Size;\n};\n\nconst Breadcrumb: React.FunctionComponent<BreadcrumbProps> = ({ items, size = Size.Small, homeIcon = true, homeLabel = 'Home', homeUrl = '/', ...rest }) => {\n const navigateHook = useNavigate();\n const dropdownItems: DropdownItem[] = items ? items.slice(0, items.length - 2).map((x) => ({ value: x.url, displayLabel: x.label })) : [];\n const navigate = (links: string[]) => {\n navigateHook(links[0]);\n };\n\n const chevronSize = size == Size.Medium ? '24px' : size == Size.Small ? '20px' : '16px';\n\n return (\n <BreadcrumbContainer size={size} data-testid={'breacrumbContainer'} {...rest}>\n {homeIcon ? (\n <IconButton id=\"homeIcon\" variant=\"secondary\" shape=\"circular\" action={() => navigateHook(homeUrl)}>\n <SystemIcons.Home size={chevronSize} />\n </IconButton>\n ) : (\n <HyperLink id={'homelink'} variant=\"default\" href={homeUrl}>\n {homeLabel}\n </HyperLink>\n )}\n\n {!!items &&\n items.length > 2 &&\n (items.length > 3 ? (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <DropdownButton\n type={'icon'}\n alignLeft={true}\n items={dropdownItems}\n size={size}\n icon={<SystemIcons.MoreHorizontal color={COLORS.neutral_600} size=\"20px\" />}\n onClick={navigate}\n />\n </>\n ) : (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <HyperLink id={'link-item-' + (items.length - 3)} target=\"_self\" variant=\"default\" href={items[items.length - 3].url}>\n {items[items.length - 3].label}\n </HyperLink>\n </>\n ))}\n\n {!!items && items.length > 1 && (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <HyperLink id={'link-item-' + (items.length - 2)} target=\"_self\" variant=\"default\" href={items[items.length - 2].url}>\n {items[items.length - 2].label}\n </HyperLink>\n </>\n )}\n\n {!!items && items.length > 0 && (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <LastBreadcrumbItem size={size}>{items[items.length - 1].label}</LastBreadcrumbItem>\n </>\n )}\n </BreadcrumbContainer>\n );\n};\n\nexport default Breadcrumb;\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AAGA;;AAEA;;;;;;;;;;;;;;AAUA,IAAMA,UAAoD,GAAG,SAAvDA,UAAuD,OAA+F;EAAA,IAA5FC,KAA4F,QAA5FA,KAA4F;EAAA,qBAArFC,IAAqF;EAAA,IAArFA,IAAqF,0BAA9EC,MAAA,CAAKC,KAAyE;EAAA,yBAAlEC,QAAkE;EAAA,IAAlEA,QAAkE,8BAAvD,IAAuD;EAAA,0BAAjDC,SAAiD;EAAA,IAAjDA,SAAiD,+BAArC,MAAqC;EAAA,wBAA7BC,OAA6B;EAAA,IAA7BA,OAA6B,6BAAnB,GAAmB;EAAA,IAAXC,IAAW;EAC1J,IAAMC,YAAY,GAAG,IAAAC,wBAAA,GAArB;EACA,IAAMC,aAA6B,GAAGV,KAAK,GAAGA,KAAK,CAACW,KAAN,CAAY,CAAZ,EAAeX,KAAK,CAACY,MAAN,GAAe,CAA9B,EAAiCC,GAAjC,CAAqC,UAACC,CAAD;IAAA,OAAQ;MAAEC,KAAK,EAAED,CAAC,CAACE,GAAX;MAAgBC,YAAY,EAAEH,CAAC,CAACI;IAAhC,CAAR;EAAA,CAArC,CAAH,GAA4F,EAAvI;;EACA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAqB;IACpCZ,YAAY,CAACY,KAAK,CAAC,CAAD,CAAN,CAAZ;EACD,CAFD;;EAIA,IAAMC,WAAW,GAAGpB,IAAI,IAAIC,MAAA,CAAKoB,MAAb,GAAsB,MAAtB,GAA+BrB,IAAI,IAAIC,MAAA,CAAKC,KAAb,GAAqB,MAArB,GAA8B,MAAjF;EAEA,oBACE,sBAAC,4BAAD;IAAqB,IAAI,EAAEF,IAA3B;IAAiC,eAAa;EAA9C,GAAwEM,IAAxE;IAAA,WACGH,QAAQ,gBACP,qBAAC,YAAD;MAAY,EAAE,EAAC,UAAf;MAA0B,OAAO,EAAC,WAAlC;MAA8C,KAAK,EAAC,UAApD;MAA+D,MAAM,EAAE;QAAA,OAAMI,YAAY,CAACF,OAAD,CAAlB;MAAA,CAAvE;MAAA,uBACE,qBAAC,aAAD,CAAa,IAAb;QAAkB,IAAI,EAAEe;MAAxB;IADF,EADO,gBAKP,qBAAC,WAAD;MAAW,EAAE,EAAE,UAAf;MAA2B,OAAO,EAAC,SAAnC;MAA6C,IAAI,EAAEf,OAAnD;MAAA,UACGD;IADH,EANJ,EAWG,CAAC,CAACL,KAAF,IACCA,KAAK,CAACY,MAAN,GAAe,CADhB,KAEEZ,KAAK,CAACY,MAAN,GAAe,CAAf,gBACC;MAAA,wBACE,qBAAC,aAAD,CAAa,YAAb;QAA0B,SAAS,EAAC,aAApC;QAAkD,KAAK,EAAEW,cAAA,CAAOC,WAAhE;QAA6E,IAAI,EAAEH;MAAnF,EADF,eAEE,qBAAC,uBAAD;QACE,IAAI,EAAE,MADR;QAEE,SAAS,EAAE,IAFb;QAGE,KAAK,EAAEX,aAHT;QAIE,IAAI,EAAET,IAJR;QAKE,IAAI,eAAE,qBAAC,aAAD,CAAa,cAAb;UAA4B,KAAK,EAAEsB,cAAA,CAAOE,WAA1C;UAAuD,IAAI,EAAC;QAA5D,EALR;QAME,OAAO,EAAEN;MANX,EAFF;IAAA,EADD,gBAaC;MAAA,wBACE,qBAAC,aAAD,CAAa,YAAb;QAA0B,SAAS,EAAC,aAApC;QAAkD,KAAK,EAAEI,cAAA,CAAOC,WAAhE;QAA6E,IAAI,EAAEH;MAAnF,EADF,eAEE,qBAAC,WAAD;QAAW,EAAE,EAAE,gBAAgBrB,KAAK,CAACY,MAAN,GAAe,CAA/B,CAAf;QAAkD,MAAM,EAAC,OAAzD;QAAiE,OAAO,EAAC,SAAzE;QAAmF,IAAI,EAAEZ,KAAK,CAACA,KAAK,CAACY,MAAN,GAAe,CAAhB,CAAL,CAAwBI,GAAjH;QAAA,UACGhB,KAAK,CAACA,KAAK,CAACY,MAAN,GAAe,CAAhB,CAAL,CAAwBM;MAD3B,EAFF;IAAA,EAfH,CAXH,EAkCG,CAAC,CAAClB,KAAF,IAAWA,KAAK,CAACY,MAAN,GAAe,CAA1B,iBACC;MAAA,wBACE,qBAAC,aAAD,CAAa,YAAb;QAA0B,SAAS,EAAC,aAApC;QAAkD,KAAK,EAAEW,cAAA,CAAOC,WAAhE;QAA6E,IAAI,EAAEH;MAAnF,EADF,eAEE,qBAAC,WAAD;QAAW,EAAE,EAAE,gBAAgBrB,KAAK,CAACY,MAAN,GAAe,CAA/B,CAAf;QAAkD,MAAM,EAAC,OAAzD;QAAiE,OAAO,EAAC,SAAzE;QAAmF,IAAI,EAAEZ,KAAK,CAACA,KAAK,CAACY,MAAN,GAAe,CAAhB,CAAL,CAAwBI,GAAjH;QAAA,UACGhB,KAAK,CAACA,KAAK,CAACY,MAAN,GAAe,CAAhB,CAAL,CAAwBM;MAD3B,EAFF;IAAA,EAnCJ,EA2CG,CAAC,CAAClB,KAAF,IAAWA,KAAK,CAACY,MAAN,GAAe,CAA1B,iBACC;MAAA,wBACE,qBAAC,aAAD,CAAa,YAAb;QAA0B,SAAS,EAAC,aAApC;QAAkD,KAAK,EAAEW,cAAA,CAAOC,WAAhE;QAA6E,IAAI,EAAEH;MAAnF,EADF,eAEE,qBAAC,2BAAD;QAAoB,IAAI,EAAEpB,IAA1B;QAAA,UAAiCD,KAAK,CAACA,KAAK,CAACY,MAAN,GAAe,CAAhB,CAAL,CAAwBM;MAAzD,EAFF;IAAA,EA5CJ;EAAA,GADF;AAoDD,CA7DD;;;EAPEd,Q;EACAC,S;EACAC,O;EACAN,K;;eAmEaD,U"}
1
+ {"version":3,"file":"Breadcrumb.cjs","names":["Breadcrumb","items","size","Size","Small","homeIcon","homeLabel","homeUrl","rest","navigateHook","useNavigate","dropdownItems","slice","length","map","x","value","url","displayLabel","label","navigate","links","chevronSize","Medium","e","preventDefault","COLORS","neutral_500","neutral_600"],"sources":["../../src/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { COLORS } from '../styles';\nimport { Size, SystemIcons } from '..';\nimport { useNavigate } from 'react-router';\nimport { HyperLink, IconButton } from '..';\nimport { BreadcrumbItem } from './BreadcrumbItem';\nimport DropdownButton from '../Dropdown/DropdownButton';\nimport { DropdownItem } from '../Dropdown/DropdownContent';\nimport { BreadcrumbContainer, LastBreadcrumbItem } from './styles';\n\ntype BreadcrumbProps = React.HTMLAttributes<HTMLDivElement> & {\n homeIcon?: boolean;\n homeLabel?: string;\n homeUrl?: string;\n items?: BreadcrumbItem[];\n size?: Size;\n};\n\nconst Breadcrumb: React.FunctionComponent<BreadcrumbProps> = ({ items, size = Size.Small, homeIcon = true, homeLabel = 'Home', homeUrl = '/', ...rest }) => {\n const navigateHook = useNavigate();\n const dropdownItems: DropdownItem[] = items ? items.slice(0, items.length - 2).map((x) => ({ value: x.url, displayLabel: x.label })) : [];\n const navigate = (links: string[]) => {\n navigateHook(links[0]);\n };\n\n const chevronSize = size == Size.Medium ? '24px' : size == Size.Small ? '20px' : '16px';\n\n return (\n <BreadcrumbContainer size={size} data-testid={'breacrumbContainer'} {...rest}>\n {homeIcon ? (\n <IconButton id=\"homeIcon\" variant=\"secondary\" shape=\"circular\" action={() => navigateHook(homeUrl)}>\n <SystemIcons.Home size={chevronSize} />\n </IconButton>\n ) : (\n <HyperLink id={'homelink'} variant=\"default\" href={homeUrl} onClick={(e) => { e.preventDefault(); navigateHook(homeUrl);}} >\n {homeLabel}\n </HyperLink>\n )}\n\n {!!items &&\n items.length > 2 &&\n (items.length > 3 ? (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <DropdownButton\n type={'icon'}\n alignLeft={true}\n items={dropdownItems}\n size={size}\n icon={<SystemIcons.MoreHorizontal color={COLORS.neutral_600} size=\"20px\" />}\n onClick={navigate}\n />\n </>\n ) : (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <HyperLink id={'link-item-' + (items.length - 3)} onClick={(e) => { e.preventDefault(); navigateHook(items[items.length - 3].url);}} target=\"_self\" variant=\"default\" href={items[items.length - 3].url}>\n {items[items.length - 3].label}\n </HyperLink>\n </>\n ))}\n\n {!!items && items.length > 1 && (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <HyperLink id={'link-item-' + (items.length - 2)} onClick={(e) => { e.preventDefault(); navigateHook(items[items.length - 2].url);}} target=\"_self\" variant=\"default\" href={items[items.length - 2].url}>\n {items[items.length - 2].label}\n </HyperLink>\n </>\n )}\n\n {!!items && items.length > 0 && (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <LastBreadcrumbItem size={size}>{items[items.length - 1].label}</LastBreadcrumbItem>\n </>\n )}\n </BreadcrumbContainer>\n );\n};\n\nexport default Breadcrumb;\n"],"mappings":"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"}
@@ -61,6 +61,10 @@ var Breadcrumb = function Breadcrumb(_ref) {
61
61
  id: 'homelink',
62
62
  variant: "default",
63
63
  href: homeUrl,
64
+ onClick: function onClick(e) {
65
+ e.preventDefault();
66
+ navigateHook(homeUrl);
67
+ },
64
68
  children: homeLabel
65
69
  }), !!items && items.length > 2 && (items.length > 3 ? /*#__PURE__*/_jsxs(_Fragment, {
66
70
  children: [/*#__PURE__*/_jsx(SystemIcons.ChevronRight, {
@@ -85,6 +89,10 @@ var Breadcrumb = function Breadcrumb(_ref) {
85
89
  size: chevronSize
86
90
  }), /*#__PURE__*/_jsx(HyperLink, {
87
91
  id: 'link-item-' + (items.length - 3),
92
+ onClick: function onClick(e) {
93
+ e.preventDefault();
94
+ navigateHook(items[items.length - 3].url);
95
+ },
88
96
  target: "_self",
89
97
  variant: "default",
90
98
  href: items[items.length - 3].url,
@@ -97,6 +105,10 @@ var Breadcrumb = function Breadcrumb(_ref) {
97
105
  size: chevronSize
98
106
  }), /*#__PURE__*/_jsx(HyperLink, {
99
107
  id: 'link-item-' + (items.length - 2),
108
+ onClick: function onClick(e) {
109
+ e.preventDefault();
110
+ navigateHook(items[items.length - 2].url);
111
+ },
100
112
  target: "_self",
101
113
  variant: "default",
102
114
  href: items[items.length - 2].url,
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumb.js","names":["React","COLORS","Size","SystemIcons","useNavigate","HyperLink","IconButton","DropdownButton","BreadcrumbContainer","LastBreadcrumbItem","Breadcrumb","items","size","Small","homeIcon","homeLabel","homeUrl","rest","navigateHook","dropdownItems","slice","length","map","x","value","url","displayLabel","label","navigate","links","chevronSize","Medium","neutral_500","neutral_600"],"sources":["../../src/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { COLORS } from '../styles';\nimport { Size, SystemIcons } from '..';\nimport { useNavigate } from 'react-router';\nimport { HyperLink, IconButton } from '..';\nimport { BreadcrumbItem } from './BreadcrumbItem';\nimport DropdownButton from '../Dropdown/DropdownButton';\nimport { DropdownItem } from '../Dropdown/DropdownContent';\nimport { BreadcrumbContainer, LastBreadcrumbItem } from './styles';\n\ntype BreadcrumbProps = React.HTMLAttributes<HTMLDivElement> & {\n homeIcon?: boolean;\n homeLabel?: string;\n homeUrl?: string;\n items?: BreadcrumbItem[];\n size?: Size;\n};\n\nconst Breadcrumb: React.FunctionComponent<BreadcrumbProps> = ({ items, size = Size.Small, homeIcon = true, homeLabel = 'Home', homeUrl = '/', ...rest }) => {\n const navigateHook = useNavigate();\n const dropdownItems: DropdownItem[] = items ? items.slice(0, items.length - 2).map((x) => ({ value: x.url, displayLabel: x.label })) : [];\n const navigate = (links: string[]) => {\n navigateHook(links[0]);\n };\n\n const chevronSize = size == Size.Medium ? '24px' : size == Size.Small ? '20px' : '16px';\n\n return (\n <BreadcrumbContainer size={size} data-testid={'breacrumbContainer'} {...rest}>\n {homeIcon ? (\n <IconButton id=\"homeIcon\" variant=\"secondary\" shape=\"circular\" action={() => navigateHook(homeUrl)}>\n <SystemIcons.Home size={chevronSize} />\n </IconButton>\n ) : (\n <HyperLink id={'homelink'} variant=\"default\" href={homeUrl}>\n {homeLabel}\n </HyperLink>\n )}\n\n {!!items &&\n items.length > 2 &&\n (items.length > 3 ? (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <DropdownButton\n type={'icon'}\n alignLeft={true}\n items={dropdownItems}\n size={size}\n icon={<SystemIcons.MoreHorizontal color={COLORS.neutral_600} size=\"20px\" />}\n onClick={navigate}\n />\n </>\n ) : (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <HyperLink id={'link-item-' + (items.length - 3)} target=\"_self\" variant=\"default\" href={items[items.length - 3].url}>\n {items[items.length - 3].label}\n </HyperLink>\n </>\n ))}\n\n {!!items && items.length > 1 && (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <HyperLink id={'link-item-' + (items.length - 2)} target=\"_self\" variant=\"default\" href={items[items.length - 2].url}>\n {items[items.length - 2].label}\n </HyperLink>\n </>\n )}\n\n {!!items && items.length > 0 && (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <LastBreadcrumbItem size={size}>{items[items.length - 1].label}</LastBreadcrumbItem>\n </>\n )}\n </BreadcrumbContainer>\n );\n};\n\nexport default Breadcrumb;\n"],"mappings":";;;;;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,IAAT,EAAeC,WAAf,QAAkC,IAAlC;AACA,SAASC,WAAT,QAA4B,cAA5B;AACA,SAASC,SAAT,EAAoBC,UAApB,QAAsC,IAAtC;AAEA,OAAOC,cAAP,MAA2B,4BAA3B;AAEA,SAASC,mBAAT,EAA8BC,kBAA9B,QAAwD,UAAxD;;;;;AAUA,IAAMC,UAAoD,GAAG,SAAvDA,UAAuD,OAA+F;EAAA,IAA5FC,KAA4F,QAA5FA,KAA4F;EAAA,qBAArFC,IAAqF;EAAA,IAArFA,IAAqF,0BAA9EV,IAAI,CAACW,KAAyE;EAAA,yBAAlEC,QAAkE;EAAA,IAAlEA,QAAkE,8BAAvD,IAAuD;EAAA,0BAAjDC,SAAiD;EAAA,IAAjDA,SAAiD,+BAArC,MAAqC;EAAA,wBAA7BC,OAA6B;EAAA,IAA7BA,OAA6B,6BAAnB,GAAmB;EAAA,IAAXC,IAAW;;EAC1J,IAAMC,YAAY,GAAGd,WAAW,EAAhC;EACA,IAAMe,aAA6B,GAAGR,KAAK,GAAGA,KAAK,CAACS,KAAN,CAAY,CAAZ,EAAeT,KAAK,CAACU,MAAN,GAAe,CAA9B,EAAiCC,GAAjC,CAAqC,UAACC,CAAD;IAAA,OAAQ;MAAEC,KAAK,EAAED,CAAC,CAACE,GAAX;MAAgBC,YAAY,EAAEH,CAAC,CAACI;IAAhC,CAAR;EAAA,CAArC,CAAH,GAA4F,EAAvI;;EACA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAqB;IACpCX,YAAY,CAACW,KAAK,CAAC,CAAD,CAAN,CAAZ;EACD,CAFD;;EAIA,IAAMC,WAAW,GAAGlB,IAAI,IAAIV,IAAI,CAAC6B,MAAb,GAAsB,MAAtB,GAA+BnB,IAAI,IAAIV,IAAI,CAACW,KAAb,GAAqB,MAArB,GAA8B,MAAjF;EAEA,oBACE,MAAC,mBAAD;IAAqB,IAAI,EAAED,IAA3B;IAAiC,eAAa;EAA9C,GAAwEK,IAAxE;IAAA,WACGH,QAAQ,gBACP,KAAC,UAAD;MAAY,EAAE,EAAC,UAAf;MAA0B,OAAO,EAAC,WAAlC;MAA8C,KAAK,EAAC,UAApD;MAA+D,MAAM,EAAE;QAAA,OAAMI,YAAY,CAACF,OAAD,CAAlB;MAAA,CAAvE;MAAA,uBACE,KAAC,WAAD,CAAa,IAAb;QAAkB,IAAI,EAAEc;MAAxB;IADF,EADO,gBAKP,KAAC,SAAD;MAAW,EAAE,EAAE,UAAf;MAA2B,OAAO,EAAC,SAAnC;MAA6C,IAAI,EAAEd,OAAnD;MAAA,UACGD;IADH,EANJ,EAWG,CAAC,CAACJ,KAAF,IACCA,KAAK,CAACU,MAAN,GAAe,CADhB,KAEEV,KAAK,CAACU,MAAN,GAAe,CAAf,gBACC;MAAA,wBACE,KAAC,WAAD,CAAa,YAAb;QAA0B,SAAS,EAAC,aAApC;QAAkD,KAAK,EAAEpB,MAAM,CAAC+B,WAAhE;QAA6E,IAAI,EAAEF;MAAnF,EADF,eAEE,KAAC,cAAD;QACE,IAAI,EAAE,MADR;QAEE,SAAS,EAAE,IAFb;QAGE,KAAK,EAAEX,aAHT;QAIE,IAAI,EAAEP,IAJR;QAKE,IAAI,eAAE,KAAC,WAAD,CAAa,cAAb;UAA4B,KAAK,EAAEX,MAAM,CAACgC,WAA1C;UAAuD,IAAI,EAAC;QAA5D,EALR;QAME,OAAO,EAAEL;MANX,EAFF;IAAA,EADD,gBAaC;MAAA,wBACE,KAAC,WAAD,CAAa,YAAb;QAA0B,SAAS,EAAC,aAApC;QAAkD,KAAK,EAAE3B,MAAM,CAAC+B,WAAhE;QAA6E,IAAI,EAAEF;MAAnF,EADF,eAEE,KAAC,SAAD;QAAW,EAAE,EAAE,gBAAgBnB,KAAK,CAACU,MAAN,GAAe,CAA/B,CAAf;QAAkD,MAAM,EAAC,OAAzD;QAAiE,OAAO,EAAC,SAAzE;QAAmF,IAAI,EAAEV,KAAK,CAACA,KAAK,CAACU,MAAN,GAAe,CAAhB,CAAL,CAAwBI,GAAjH;QAAA,UACGd,KAAK,CAACA,KAAK,CAACU,MAAN,GAAe,CAAhB,CAAL,CAAwBM;MAD3B,EAFF;IAAA,EAfH,CAXH,EAkCG,CAAC,CAAChB,KAAF,IAAWA,KAAK,CAACU,MAAN,GAAe,CAA1B,iBACC;MAAA,wBACE,KAAC,WAAD,CAAa,YAAb;QAA0B,SAAS,EAAC,aAApC;QAAkD,KAAK,EAAEpB,MAAM,CAAC+B,WAAhE;QAA6E,IAAI,EAAEF;MAAnF,EADF,eAEE,KAAC,SAAD;QAAW,EAAE,EAAE,gBAAgBnB,KAAK,CAACU,MAAN,GAAe,CAA/B,CAAf;QAAkD,MAAM,EAAC,OAAzD;QAAiE,OAAO,EAAC,SAAzE;QAAmF,IAAI,EAAEV,KAAK,CAACA,KAAK,CAACU,MAAN,GAAe,CAAhB,CAAL,CAAwBI,GAAjH;QAAA,UACGd,KAAK,CAACA,KAAK,CAACU,MAAN,GAAe,CAAhB,CAAL,CAAwBM;MAD3B,EAFF;IAAA,EAnCJ,EA2CG,CAAC,CAAChB,KAAF,IAAWA,KAAK,CAACU,MAAN,GAAe,CAA1B,iBACC;MAAA,wBACE,KAAC,WAAD,CAAa,YAAb;QAA0B,SAAS,EAAC,aAApC;QAAkD,KAAK,EAAEpB,MAAM,CAAC+B,WAAhE;QAA6E,IAAI,EAAEF;MAAnF,EADF,eAEE,KAAC,kBAAD;QAAoB,IAAI,EAAElB,IAA1B;QAAA,UAAiCD,KAAK,CAACA,KAAK,CAACU,MAAN,GAAe,CAAhB,CAAL,CAAwBM;MAAzD,EAFF;IAAA,EA5CJ;EAAA,GADF;AAoDD,CA7DD;;;EAPEb,Q;EACAC,S;EACAC,O;EACAL,K;;AAmEF,eAAeD,UAAf"}
1
+ {"version":3,"file":"Breadcrumb.js","names":["React","COLORS","Size","SystemIcons","useNavigate","HyperLink","IconButton","DropdownButton","BreadcrumbContainer","LastBreadcrumbItem","Breadcrumb","items","size","Small","homeIcon","homeLabel","homeUrl","rest","navigateHook","dropdownItems","slice","length","map","x","value","url","displayLabel","label","navigate","links","chevronSize","Medium","e","preventDefault","neutral_500","neutral_600"],"sources":["../../src/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { COLORS } from '../styles';\nimport { Size, SystemIcons } from '..';\nimport { useNavigate } from 'react-router';\nimport { HyperLink, IconButton } from '..';\nimport { BreadcrumbItem } from './BreadcrumbItem';\nimport DropdownButton from '../Dropdown/DropdownButton';\nimport { DropdownItem } from '../Dropdown/DropdownContent';\nimport { BreadcrumbContainer, LastBreadcrumbItem } from './styles';\n\ntype BreadcrumbProps = React.HTMLAttributes<HTMLDivElement> & {\n homeIcon?: boolean;\n homeLabel?: string;\n homeUrl?: string;\n items?: BreadcrumbItem[];\n size?: Size;\n};\n\nconst Breadcrumb: React.FunctionComponent<BreadcrumbProps> = ({ items, size = Size.Small, homeIcon = true, homeLabel = 'Home', homeUrl = '/', ...rest }) => {\n const navigateHook = useNavigate();\n const dropdownItems: DropdownItem[] = items ? items.slice(0, items.length - 2).map((x) => ({ value: x.url, displayLabel: x.label })) : [];\n const navigate = (links: string[]) => {\n navigateHook(links[0]);\n };\n\n const chevronSize = size == Size.Medium ? '24px' : size == Size.Small ? '20px' : '16px';\n\n return (\n <BreadcrumbContainer size={size} data-testid={'breacrumbContainer'} {...rest}>\n {homeIcon ? (\n <IconButton id=\"homeIcon\" variant=\"secondary\" shape=\"circular\" action={() => navigateHook(homeUrl)}>\n <SystemIcons.Home size={chevronSize} />\n </IconButton>\n ) : (\n <HyperLink id={'homelink'} variant=\"default\" href={homeUrl} onClick={(e) => { e.preventDefault(); navigateHook(homeUrl);}} >\n {homeLabel}\n </HyperLink>\n )}\n\n {!!items &&\n items.length > 2 &&\n (items.length > 3 ? (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <DropdownButton\n type={'icon'}\n alignLeft={true}\n items={dropdownItems}\n size={size}\n icon={<SystemIcons.MoreHorizontal color={COLORS.neutral_600} size=\"20px\" />}\n onClick={navigate}\n />\n </>\n ) : (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <HyperLink id={'link-item-' + (items.length - 3)} onClick={(e) => { e.preventDefault(); navigateHook(items[items.length - 3].url);}} target=\"_self\" variant=\"default\" href={items[items.length - 3].url}>\n {items[items.length - 3].label}\n </HyperLink>\n </>\n ))}\n\n {!!items && items.length > 1 && (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <HyperLink id={'link-item-' + (items.length - 2)} onClick={(e) => { e.preventDefault(); navigateHook(items[items.length - 2].url);}} target=\"_self\" variant=\"default\" href={items[items.length - 2].url}>\n {items[items.length - 2].label}\n </HyperLink>\n </>\n )}\n\n {!!items && items.length > 0 && (\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <LastBreadcrumbItem size={size}>{items[items.length - 1].label}</LastBreadcrumbItem>\n </>\n )}\n </BreadcrumbContainer>\n );\n};\n\nexport default Breadcrumb;\n"],"mappings":"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"}
@@ -27,6 +27,8 @@ var _SystemIcons = require("../icons/systemicons/SystemIcons");
27
27
 
28
28
  var _CommonStyling = require("../Dropdown/CommonStyling");
29
29
 
30
+ var _nanoid = require("nanoid");
31
+
30
32
  var _types = require("../types");
31
33
 
32
34
  var _DropdownContent = _interopRequireDefault(require("../Dropdown/DropdownContent"));
@@ -83,22 +85,27 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
83
85
  isOpen = _React$useState2[0],
84
86
  setIsOpen = _React$useState2[1];
85
87
 
86
- var _React$useState3 = React.useState(null),
88
+ var _React$useState3 = React.useState(),
87
89
  _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
88
- focused = _React$useState4[0],
89
- setFocused = _React$useState4[1];
90
+ activeDescendant = _React$useState4[0],
91
+ setActiveDescendant = _React$useState4[1];
90
92
 
91
- var _React$useState5 = React.useState(false),
93
+ var _React$useState5 = React.useState(null),
92
94
  _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
93
- keyboardNavigated = _React$useState6[0],
94
- setKeyboardNavigated = _React$useState6[1];
95
+ focused = _React$useState6[0],
96
+ setFocused = _React$useState6[1];
97
+
98
+ var _React$useState7 = React.useState(false),
99
+ _React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
100
+ keyboardNavigated = _React$useState8[0],
101
+ setKeyboardNavigated = _React$useState8[1];
95
102
 
96
103
  var dropdownContainerRef = React.useRef(null);
97
104
 
98
- var _React$useState7 = React.useState([]),
99
- _React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
100
- selectedValues = _React$useState8[0],
101
- setSelectedValues = _React$useState8[1];
105
+ var _React$useState9 = React.useState([]),
106
+ _React$useState10 = (0, _slicedToArray2.default)(_React$useState9, 2),
107
+ selectedValues = _React$useState10[0],
108
+ setSelectedValues = _React$useState10[1];
102
109
 
103
110
  var dropdownContentRef = React.useRef(null);
104
111
  var dropdownButtonRef = (0, _common.useClickOutsideRef)(function () {
@@ -106,6 +113,7 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
106
113
  }, [dropdownContainerRef], (0, _common.useFocusOutsideRef)(function () {
107
114
  return setIsOpen(false);
108
115
  }, [dropdownContentRef]));
116
+ var dropdownContentId = id ? id + '_dropdownContent' : (0, _nanoid.nanoid)();
109
117
  React.useEffect(function () {
110
118
  !isOpen && setKeyboardNavigated(false);
111
119
  }, [isOpen]);
@@ -138,13 +146,17 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
138
146
  isButton: true,
139
147
  setIsOpen: setIsOpen,
140
148
  focused: focused,
149
+ onActiveDescendantChanged: function onActiveDescendantChanged(e) {
150
+ return setActiveDescendant(e);
151
+ },
141
152
  setFocused: setFocused,
142
153
  size: size,
143
154
  outline: keyboardNavigated,
144
155
  isOpen: isOpen,
145
- id: id !== null && id !== void 0 ? id : 'dropdownId',
156
+ id: dropdownContentId,
146
157
  messageOnNoResults: "",
147
- alignLeft: true
158
+ alignLeft: true,
159
+ ariaRolesType: "menu"
148
160
  })]
149
161
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, _objectSpread(_objectSpread({
150
162
  variant: variant
@@ -159,6 +171,9 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
159
171
  },
160
172
  testId: 'options_toggleBtn',
161
173
  ref: dropdownButtonRef,
174
+ "aria-activedescendant": activeDescendant,
175
+ role: "button",
176
+ "aria-controls": dropdownContentId,
162
177
  disabled: disabled,
163
178
  type: type,
164
179
  size: size,
@@ -1 +1 @@
1
- {"version":3,"file":"DualFunctionButton.cjs","names":["ButtonsContainer","styled","div","props","size","Size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","React","useState","isOpen","setIsOpen","focused","setFocused","keyboardNavigated","setKeyboardNavigated","dropdownContainerRef","useRef","selectedValues","setSelectedValues","dropdownContentRef","dropdownButtonRef","useClickOutsideRef","useFocusOutsideRef","useEffect","itemsType","e","key","stopPropagation"],"sources":["../../src/Button/DualFunctionButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport Button, { ButtonProps } from './Button';\nimport { ArrowDropDown, ArrowDropUp } from '../icons/systemicons/SystemIcons';\nimport { Dropdown } from '../Dropdown/CommonStyling';\nimport { Size } from '../types';\nimport DropdownContent, { DropdownCustomizationProps } from '../Dropdown/DropdownContent';\nimport styled from 'styled-components';\nimport { useClickOutsideRef, useFocusOutsideRef } from '../common';\n\nconst ButtonsContainer = styled.div<{ size?: Size }>`\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ${(props) => (props.size == Size.Large ? '4px 18px' : props.size == Size.Medium ? '4px 14px' : '4px 10px')};\n }\n`;\n\nexport interface ButtonOption {\n label: string;\n}\n\nexport interface DualButtonProps extends ButtonProps {\n dropdownCustomizationProps: DropdownCustomizationProps;\n dropdownMenuValues?: string[];\n setDropdownMenuValues?: (values: string[]) => void | boolean | undefined;\n}\n\nconst DualFunctionButton: React.FunctionComponent<DualButtonProps> = ({\n children = 'Primary Button',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n testId,\n disabled,\n id,\n dropdownMenuValues,\n setDropdownMenuValues,\n dropdownCustomizationProps,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, icon, onClick, ...renderProps } = props;\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n const dropdownButtonRef = useClickOutsideRef(\n () => setIsOpen(false),\n [dropdownContainerRef],\n useFocusOutsideRef(() => setIsOpen(false), [dropdownContentRef]),\n );\n\n React.useEffect(() => {\n !isOpen && setKeyboardNavigated(false);\n }, [isOpen]);\n\n return (\n <ButtonsContainer ref={dropdownContainerRef} size={size}>\n <Dropdown isButton={true} readOnly={false} disabled={false} margin=\"\">\n <Button {...renderProps} onClick={onClick} disabled={disabled} type={type} loading={loading} icon={icon} size={size} width={width} variant={variant} flatEdge=\"right\">\n {children}\n </Button>\n <DropdownContent\n containerRef={dropdownContainerRef}\n customizationProps={dropdownCustomizationProps}\n filter=\"\"\n ref={dropdownContentRef}\n selectedValues={dropdownCustomizationProps.itemsType == 'normal' ? [] : dropdownMenuValues ?? selectedValues}\n setSelectedValues={setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues}\n isButton={true}\n setIsOpen={setIsOpen}\n focused={focused}\n setFocused={setFocused}\n size={size}\n outline={keyboardNavigated}\n isOpen={isOpen}\n id={id ?? 'dropdownId'}\n messageOnNoResults=\"\"\n alignLeft={true}\n />\n </Dropdown>\n <Button\n variant={variant}\n {...renderProps}\n onKeyPress={(e: any) => {\n if (isOpen) return;\n\n if (e.key === 'Enter' || e.key === ' ') {\n setFocused(0);\n setKeyboardNavigated(true);\n }\n }}\n testId={'options_toggleBtn'}\n ref={dropdownButtonRef}\n disabled={disabled}\n type={type}\n size={size}\n minWidth={'unset'}\n onClick={(e) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }}\n icon={isOpen ? <ArrowDropUp size=\"16px\" /> : <ArrowDropDown size=\"16px\" />}\n flatEdge=\"left\"\n />\n </ButtonsContainer>\n );\n};\n\nexport default DualFunctionButton;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DualFunctionButton.cjs","names":["ButtonsContainer","styled","div","props","size","Size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","React","useState","isOpen","setIsOpen","activeDescendant","setActiveDescendant","focused","setFocused","keyboardNavigated","setKeyboardNavigated","dropdownContainerRef","useRef","selectedValues","setSelectedValues","dropdownContentRef","dropdownButtonRef","useClickOutsideRef","useFocusOutsideRef","dropdownContentId","nanoid","useEffect","itemsType","e","key","stopPropagation"],"sources":["../../src/Button/DualFunctionButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport Button, { ButtonProps } from './Button';\nimport { ArrowDropDown, ArrowDropUp } from '../icons/systemicons/SystemIcons';\nimport { Dropdown } from '../Dropdown/CommonStyling';\nimport { nanoid } from 'nanoid';\nimport { Size } from '../types';\nimport DropdownContent, { DropdownCustomizationProps } from '../Dropdown/DropdownContent';\nimport styled from 'styled-components';\nimport { useClickOutsideRef, useFocusOutsideRef } from '../common';\n\nconst ButtonsContainer = styled.div<{ size?: Size }>`\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ${(props) => (props.size == Size.Large ? '4px 18px' : props.size == Size.Medium ? '4px 14px' : '4px 10px')};\n }\n`;\n\nexport interface ButtonOption {\n label: string;\n}\n\nexport interface DualButtonProps extends ButtonProps {\n dropdownCustomizationProps: DropdownCustomizationProps;\n dropdownMenuValues?: string[];\n setDropdownMenuValues?: (values: string[]) => void | boolean | undefined;\n}\n\nconst DualFunctionButton: React.FunctionComponent<DualButtonProps> = ({\n children = 'Primary Button',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n testId,\n disabled,\n id,\n dropdownMenuValues,\n setDropdownMenuValues,\n dropdownCustomizationProps,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, icon, onClick, ...renderProps } = props;\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n const dropdownButtonRef = useClickOutsideRef(\n () => setIsOpen(false),\n [dropdownContainerRef],\n useFocusOutsideRef(() => setIsOpen(false), [dropdownContentRef]),\n );\n \n const dropdownContentId = id ? id + '_dropdownContent' : nanoid();\n\n React.useEffect(() => {\n !isOpen && setKeyboardNavigated(false);\n }, [isOpen]);\n\n return (\n <ButtonsContainer ref={dropdownContainerRef} size={size}>\n <Dropdown isButton={true} readOnly={false} disabled={false} margin=\"\">\n <Button {...renderProps} onClick={onClick} disabled={disabled} type={type} loading={loading} icon={icon} size={size} width={width} variant={variant} flatEdge=\"right\">\n {children}\n </Button>\n <DropdownContent\n containerRef={dropdownContainerRef}\n customizationProps={dropdownCustomizationProps}\n filter=\"\"\n ref={dropdownContentRef}\n selectedValues={dropdownCustomizationProps.itemsType == 'normal' ? [] : dropdownMenuValues ?? selectedValues}\n setSelectedValues={setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues}\n isButton={true}\n setIsOpen={setIsOpen}\n focused={focused}\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\n setFocused={setFocused}\n size={size}\n outline={keyboardNavigated}\n isOpen={isOpen}\n id={dropdownContentId}\n messageOnNoResults=\"\"\n alignLeft={true}\n ariaRolesType=\"menu\"\n />\n </Dropdown>\n <Button\n variant={variant}\n {...renderProps}\n onKeyPress={(e: any) => {\n if (isOpen) return;\n\n if (e.key === 'Enter' || e.key === ' ') {\n setFocused(0);\n setKeyboardNavigated(true);\n }\n }}\n testId={'options_toggleBtn'}\n ref={dropdownButtonRef}\n aria-activedescendant={activeDescendant}\n role=\"button\"\n aria-controls={dropdownContentId}\n disabled={disabled}\n type={type}\n size={size}\n minWidth={'unset'}\n onClick={(e) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }}\n icon={isOpen ? <ArrowDropUp size=\"16px\" /> : <ArrowDropDown size=\"16px\" />}\n flatEdge=\"left\"\n />\n </ButtonsContainer>\n );\n};\n\nexport default DualFunctionButton;\n"],"mappings":"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"}
@@ -16,6 +16,7 @@ import * as React from 'react';
16
16
  import Button from './Button';
17
17
  import { ArrowDropDown, ArrowDropUp } from '../icons/systemicons/SystemIcons';
18
18
  import { Dropdown } from '../Dropdown/CommonStyling';
19
+ import { nanoid } from 'nanoid';
19
20
  import { Size } from '../types';
20
21
  import DropdownContent from '../Dropdown/DropdownContent';
21
22
  import styled from 'styled-components';
@@ -56,22 +57,27 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
56
57
  isOpen = _React$useState2[0],
57
58
  setIsOpen = _React$useState2[1];
58
59
 
59
- var _React$useState3 = React.useState(null),
60
+ var _React$useState3 = React.useState(),
60
61
  _React$useState4 = _slicedToArray(_React$useState3, 2),
61
- focused = _React$useState4[0],
62
- setFocused = _React$useState4[1];
62
+ activeDescendant = _React$useState4[0],
63
+ setActiveDescendant = _React$useState4[1];
63
64
 
64
- var _React$useState5 = React.useState(false),
65
+ var _React$useState5 = React.useState(null),
65
66
  _React$useState6 = _slicedToArray(_React$useState5, 2),
66
- keyboardNavigated = _React$useState6[0],
67
- setKeyboardNavigated = _React$useState6[1];
67
+ focused = _React$useState6[0],
68
+ setFocused = _React$useState6[1];
69
+
70
+ var _React$useState7 = React.useState(false),
71
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
72
+ keyboardNavigated = _React$useState8[0],
73
+ setKeyboardNavigated = _React$useState8[1];
68
74
 
69
75
  var dropdownContainerRef = React.useRef(null);
70
76
 
71
- var _React$useState7 = React.useState([]),
72
- _React$useState8 = _slicedToArray(_React$useState7, 2),
73
- selectedValues = _React$useState8[0],
74
- setSelectedValues = _React$useState8[1];
77
+ var _React$useState9 = React.useState([]),
78
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
79
+ selectedValues = _React$useState10[0],
80
+ setSelectedValues = _React$useState10[1];
75
81
 
76
82
  var dropdownContentRef = React.useRef(null);
77
83
  var dropdownButtonRef = useClickOutsideRef(function () {
@@ -79,6 +85,7 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
79
85
  }, [dropdownContainerRef], useFocusOutsideRef(function () {
80
86
  return setIsOpen(false);
81
87
  }, [dropdownContentRef]));
88
+ var dropdownContentId = id ? id + '_dropdownContent' : nanoid();
82
89
  React.useEffect(function () {
83
90
  !isOpen && setKeyboardNavigated(false);
84
91
  }, [isOpen]);
@@ -111,13 +118,17 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
111
118
  isButton: true,
112
119
  setIsOpen: setIsOpen,
113
120
  focused: focused,
121
+ onActiveDescendantChanged: function onActiveDescendantChanged(e) {
122
+ return setActiveDescendant(e);
123
+ },
114
124
  setFocused: setFocused,
115
125
  size: size,
116
126
  outline: keyboardNavigated,
117
127
  isOpen: isOpen,
118
- id: id !== null && id !== void 0 ? id : 'dropdownId',
128
+ id: dropdownContentId,
119
129
  messageOnNoResults: "",
120
- alignLeft: true
130
+ alignLeft: true,
131
+ ariaRolesType: "menu"
121
132
  })]
122
133
  }), /*#__PURE__*/_jsx(Button, _objectSpread(_objectSpread({
123
134
  variant: variant
@@ -132,6 +143,9 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
132
143
  },
133
144
  testId: 'options_toggleBtn',
134
145
  ref: dropdownButtonRef,
146
+ "aria-activedescendant": activeDescendant,
147
+ role: "button",
148
+ "aria-controls": dropdownContentId,
135
149
  disabled: disabled,
136
150
  type: type,
137
151
  size: size,
@@ -1 +1 @@
1
- {"version":3,"file":"DualFunctionButton.js","names":["React","Button","ArrowDropDown","ArrowDropUp","Dropdown","Size","DropdownContent","styled","useClickOutsideRef","useFocusOutsideRef","ButtonsContainer","div","props","size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","useState","isOpen","setIsOpen","focused","setFocused","keyboardNavigated","setKeyboardNavigated","dropdownContainerRef","useRef","selectedValues","setSelectedValues","dropdownContentRef","dropdownButtonRef","useEffect","itemsType","e","key","stopPropagation"],"sources":["../../src/Button/DualFunctionButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport Button, { ButtonProps } from './Button';\nimport { ArrowDropDown, ArrowDropUp } from '../icons/systemicons/SystemIcons';\nimport { Dropdown } from '../Dropdown/CommonStyling';\nimport { Size } from '../types';\nimport DropdownContent, { DropdownCustomizationProps } from '../Dropdown/DropdownContent';\nimport styled from 'styled-components';\nimport { useClickOutsideRef, useFocusOutsideRef } from '../common';\n\nconst ButtonsContainer = styled.div<{ size?: Size }>`\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ${(props) => (props.size == Size.Large ? '4px 18px' : props.size == Size.Medium ? '4px 14px' : '4px 10px')};\n }\n`;\n\nexport interface ButtonOption {\n label: string;\n}\n\nexport interface DualButtonProps extends ButtonProps {\n dropdownCustomizationProps: DropdownCustomizationProps;\n dropdownMenuValues?: string[];\n setDropdownMenuValues?: (values: string[]) => void | boolean | undefined;\n}\n\nconst DualFunctionButton: React.FunctionComponent<DualButtonProps> = ({\n children = 'Primary Button',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n testId,\n disabled,\n id,\n dropdownMenuValues,\n setDropdownMenuValues,\n dropdownCustomizationProps,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, icon, onClick, ...renderProps } = props;\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n const dropdownButtonRef = useClickOutsideRef(\n () => setIsOpen(false),\n [dropdownContainerRef],\n useFocusOutsideRef(() => setIsOpen(false), [dropdownContentRef]),\n );\n\n React.useEffect(() => {\n !isOpen && setKeyboardNavigated(false);\n }, [isOpen]);\n\n return (\n <ButtonsContainer ref={dropdownContainerRef} size={size}>\n <Dropdown isButton={true} readOnly={false} disabled={false} margin=\"\">\n <Button {...renderProps} onClick={onClick} disabled={disabled} type={type} loading={loading} icon={icon} size={size} width={width} variant={variant} flatEdge=\"right\">\n {children}\n </Button>\n <DropdownContent\n containerRef={dropdownContainerRef}\n customizationProps={dropdownCustomizationProps}\n filter=\"\"\n ref={dropdownContentRef}\n selectedValues={dropdownCustomizationProps.itemsType == 'normal' ? [] : dropdownMenuValues ?? selectedValues}\n setSelectedValues={setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues}\n isButton={true}\n setIsOpen={setIsOpen}\n focused={focused}\n setFocused={setFocused}\n size={size}\n outline={keyboardNavigated}\n isOpen={isOpen}\n id={id ?? 'dropdownId'}\n messageOnNoResults=\"\"\n alignLeft={true}\n />\n </Dropdown>\n <Button\n variant={variant}\n {...renderProps}\n onKeyPress={(e: any) => {\n if (isOpen) return;\n\n if (e.key === 'Enter' || e.key === ' ') {\n setFocused(0);\n setKeyboardNavigated(true);\n }\n }}\n testId={'options_toggleBtn'}\n ref={dropdownButtonRef}\n disabled={disabled}\n type={type}\n size={size}\n minWidth={'unset'}\n onClick={(e) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }}\n icon={isOpen ? <ArrowDropUp size=\"16px\" /> : <ArrowDropDown size=\"16px\" />}\n flatEdge=\"left\"\n />\n </ButtonsContainer>\n );\n};\n\nexport default DualFunctionButton;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DualFunctionButton.js","names":["React","Button","ArrowDropDown","ArrowDropUp","Dropdown","nanoid","Size","DropdownContent","styled","useClickOutsideRef","useFocusOutsideRef","ButtonsContainer","div","props","size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","useState","isOpen","setIsOpen","activeDescendant","setActiveDescendant","focused","setFocused","keyboardNavigated","setKeyboardNavigated","dropdownContainerRef","useRef","selectedValues","setSelectedValues","dropdownContentRef","dropdownButtonRef","dropdownContentId","useEffect","itemsType","e","key","stopPropagation"],"sources":["../../src/Button/DualFunctionButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport Button, { ButtonProps } from './Button';\nimport { ArrowDropDown, ArrowDropUp } from '../icons/systemicons/SystemIcons';\nimport { Dropdown } from '../Dropdown/CommonStyling';\nimport { nanoid } from 'nanoid';\nimport { Size } from '../types';\nimport DropdownContent, { DropdownCustomizationProps } from '../Dropdown/DropdownContent';\nimport styled from 'styled-components';\nimport { useClickOutsideRef, useFocusOutsideRef } from '../common';\n\nconst ButtonsContainer = styled.div<{ size?: Size }>`\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ${(props) => (props.size == Size.Large ? '4px 18px' : props.size == Size.Medium ? '4px 14px' : '4px 10px')};\n }\n`;\n\nexport interface ButtonOption {\n label: string;\n}\n\nexport interface DualButtonProps extends ButtonProps {\n dropdownCustomizationProps: DropdownCustomizationProps;\n dropdownMenuValues?: string[];\n setDropdownMenuValues?: (values: string[]) => void | boolean | undefined;\n}\n\nconst DualFunctionButton: React.FunctionComponent<DualButtonProps> = ({\n children = 'Primary Button',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n testId,\n disabled,\n id,\n dropdownMenuValues,\n setDropdownMenuValues,\n dropdownCustomizationProps,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, icon, onClick, ...renderProps } = props;\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n const dropdownButtonRef = useClickOutsideRef(\n () => setIsOpen(false),\n [dropdownContainerRef],\n useFocusOutsideRef(() => setIsOpen(false), [dropdownContentRef]),\n );\n \n const dropdownContentId = id ? id + '_dropdownContent' : nanoid();\n\n React.useEffect(() => {\n !isOpen && setKeyboardNavigated(false);\n }, [isOpen]);\n\n return (\n <ButtonsContainer ref={dropdownContainerRef} size={size}>\n <Dropdown isButton={true} readOnly={false} disabled={false} margin=\"\">\n <Button {...renderProps} onClick={onClick} disabled={disabled} type={type} loading={loading} icon={icon} size={size} width={width} variant={variant} flatEdge=\"right\">\n {children}\n </Button>\n <DropdownContent\n containerRef={dropdownContainerRef}\n customizationProps={dropdownCustomizationProps}\n filter=\"\"\n ref={dropdownContentRef}\n selectedValues={dropdownCustomizationProps.itemsType == 'normal' ? [] : dropdownMenuValues ?? selectedValues}\n setSelectedValues={setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues}\n isButton={true}\n setIsOpen={setIsOpen}\n focused={focused}\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\n setFocused={setFocused}\n size={size}\n outline={keyboardNavigated}\n isOpen={isOpen}\n id={dropdownContentId}\n messageOnNoResults=\"\"\n alignLeft={true}\n ariaRolesType=\"menu\"\n />\n </Dropdown>\n <Button\n variant={variant}\n {...renderProps}\n onKeyPress={(e: any) => {\n if (isOpen) return;\n\n if (e.key === 'Enter' || e.key === ' ') {\n setFocused(0);\n setKeyboardNavigated(true);\n }\n }}\n testId={'options_toggleBtn'}\n ref={dropdownButtonRef}\n aria-activedescendant={activeDescendant}\n role=\"button\"\n aria-controls={dropdownContentId}\n disabled={disabled}\n type={type}\n size={size}\n minWidth={'unset'}\n onClick={(e) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }}\n icon={isOpen ? <ArrowDropUp size=\"16px\" /> : <ArrowDropDown size=\"16px\" />}\n flatEdge=\"left\"\n />\n </ButtonsContainer>\n );\n};\n\nexport default DualFunctionButton;\n"],"mappings":"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"}
@@ -132,7 +132,7 @@ var IconButton = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
132
132
  shouldNotInteract: shouldNotInteract,
133
133
  iconColor: iconColor,
134
134
  unsetIconSize: unsetIconSize,
135
- tabIndex: tabIndex || 0,
135
+ tabIndex: tabIndex,
136
136
  borderRadius: borderRadius || shape === 'circular' ? 18 : 0,
137
137
  onMouseDown: _common.defaultOnMouseDownHandler,
138
138
  hidden: hidden,
@@ -162,7 +162,7 @@ var IconButton = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
162
162
  useTransparentBackground: useTransparentBackground,
163
163
  iconColor: iconColor,
164
164
  unsetIconSize: unsetIconSize,
165
- tabIndex: tabIndex || 0,
165
+ tabIndex: tabIndex,
166
166
  borderRadius: borderRadius || shape === 'circular' ? 18 : 0,
167
167
  onMouseDown: _common.defaultOnMouseDownHandler,
168
168
  hidden: hidden,
@@ -1 +1 @@
1
- {"version":3,"file":"Iconbutton.cjs","names":["getBorderRadius","props","borderRadius","getBorderRadiusStyle","radius","flatEdge","IconButtonContent","styled","div","StyledIconButton","button","hideOnLowWidth","BREAKPOINTS","MEDIUM","unsetIconSize","invertFocus","invertedFocusStyles","focusStyles","StyledPrimaryIconButton","useTransparentBackground","COLORS","primary_500","iconColor","white","primary_700","primary_800","neutral_200","StyledSecondaryIconButton","neutral_600","shouldNotInteract","primary_20","primary_100","neutral_300","IconButton","React","forwardRef","ref","id","variant","shape","action","isInMobileMenu","children","disabled","tabIndex","focusBackgroundColor","type","hidden","rest","event","stopPropagation","defaultOnMouseDownHandler"],"sources":["../../src/Button/Iconbutton.tsx"],"sourcesContent":["import React from 'react';\nimport styled, { css, CSSProperties } from 'styled-components';\n\nimport { BREAKPOINTS, COLORS, focusStyles, invertedFocusStyles } from '../styles';\nimport { defaultOnMouseDownHandler } from '../common';\n\ninterface HeaderItemProps {\n hideOnLowWidth: boolean;\n inMobileMenu?: boolean;\n useTransparentBackground?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n borderRadius?: number;\n shape?: string;\n flatEdge?: string;\n focusBackgroundColor?: string;\n invertFocus?: boolean;\n shouldNotInteract?: boolean;\n}\n\nconst getBorderRadius = (props: HeaderItemProps) => (props.borderRadius ? `${props.borderRadius}px` : '4px');\n\nconst getBorderRadiusStyle = (props: HeaderItemProps) => {\n const radius = getBorderRadius(props);\n switch (props.flatEdge) {\n case 'left':\n return `0px ${radius} ${radius} 0px`;\n\n case 'right':\n return `${radius} 0px 0px ${radius}`;\n\n case 'none':\n default:\n return `${radius}`;\n }\n};\n\nexport const IconButtonContent = styled.div``;\n\nexport const StyledIconButton = styled.button<HeaderItemProps>`\n border-width: 0;\n cursor: pointer;\n height: 48px;\n width: 48px;\n background: transparent;\n position: relative;\n\n display: ${(props) => (props.hideOnLowWidth ? 'none' : 'block')};\n ${BREAKPOINTS.MEDIUM} {\n display: block;\n }\n\n border-radius: ${(props) => (props.borderRadius ? `${props.borderRadius}px` : '4px')};\n ${IconButtonContent} {\n height: 36px;\n width: 36px;\n border-radius: ${getBorderRadiusStyle};\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n height: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n width: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n padding: 0;\n }\n }\n &:only-child {\n margin: 0;\n }\n &:disabled {\n cursor: not-allowed;\n }\n\n &:focus {\n ${(props) => (props.invertFocus ? invertedFocusStyles : focusStyles)}\n }\n`;\n\nexport const StyledPrimaryIconButton = styled(StyledIconButton)`\n ${IconButtonContent} {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.primary_500)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.white};\n path {\n fill: ${(props) => props.iconColor || COLORS.white};\n }\n }\n }\n &:hover:not(:disabled),\n &.hover-state {\n ${IconButtonContent} {\n background-color: ${COLORS.primary_700};\n }\n ${IconButtonContent} svg path,\n ${IconButtonContent} svg {\n fill: ${COLORS.white};\n }\n }\n &:active:not(:disabled),\n &.active-state {\n ${IconButtonContent} {\n background: ${COLORS.primary_800};\n }\n ${IconButtonContent} svg path,\n ${IconButtonContent} svg {\n fill: ${COLORS.white};\n }\n }\n &:disabled {\n ${IconButtonContent} {\n background-color: ${COLORS.neutral_200};\n }\n svg {\n path {\n fill: ${COLORS.white};\n }\n fill: ${COLORS.white};\n }\n }\n`;\n\nexport const StyledSecondaryIconButton = styled(StyledIconButton)`\n ${IconButtonContent} {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n path {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n }\n }\n }\n\n pointer-events: ${(props) => (props.shouldNotInteract ? 'none' : 'auto')};\n\n &:hover:not(:disabled) {\n ${IconButtonContent} {\n background-color: ${COLORS.primary_20};\n }\n ${IconButtonContent} svg path,\n ${IconButtonContent} svg {\n fill: ${COLORS.primary_700};\n }\n }\n &:active:not(:disabled),\n &.active-state {\n ${IconButtonContent} {\n background: ${COLORS.primary_100};\n }\n ${IconButtonContent} svg path,\n ${IconButtonContent} svg {\n fill: ${COLORS.primary_800};\n }\n }\n\n &:disabled {\n ${IconButtonContent} {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n }\n svg {\n path {\n fill: ${COLORS.neutral_300};\n }\n fill: ${COLORS.neutral_300};\n }\n }\n`;\n\nexport interface IconButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'onMouseDown'> {\n variant?: 'primary' | 'secondary';\n shape?: 'square' | 'circular';\n action: (event?: React.MouseEvent<HTMLButtonElement>) => void;\n hideOnLowWidth?: boolean;\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n isInMobileMenu?: boolean;\n useTransparentBackground?: boolean;\n shouldNotInteract?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n borderRadius?: number;\n focusBackgroundColor?: string;\n children?: React.ReactNode;\n invertFocus?: boolean;\n}\n\nconst IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n (\n {\n id,\n variant,\n shape,\n action,\n hideOnLowWidth,\n isInMobileMenu,\n children,\n useTransparentBackground,\n shouldNotInteract,\n disabled,\n iconColor,\n unsetIconSize,\n tabIndex,\n flatEdge,\n borderRadius,\n focusBackgroundColor,\n type,\n hidden,\n invertFocus,\n ...rest\n }: IconButtonProps,\n ref,\n ) => {\n // Let's render button\n switch (variant) {\n case 'secondary':\n return (\n <StyledSecondaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n action(event);\n }}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n shouldNotInteract={shouldNotInteract}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex || 0}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n hidden={hidden}\n invertFocus={invertFocus}\n focusBackgroundColor={focusBackgroundColor}\n {...rest}>\n <IconButtonContent>{children}</IconButtonContent>\n </StyledSecondaryIconButton>\n );\n case 'primary':\n default:\n return (\n <StyledPrimaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n flatEdge={flatEdge}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n action(event);\n }}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex || 0}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n hidden={hidden}\n invertFocus={invertFocus}\n focusBackgroundColor={focusBackgroundColor}\n {...rest}>\n <IconButtonContent>{children}</IconButtonContent>\n </StyledPrimaryIconButton>\n );\n }\n },\n);\n\nexport default IconButton;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Iconbutton.cjs","names":["getBorderRadius","props","borderRadius","getBorderRadiusStyle","radius","flatEdge","IconButtonContent","styled","div","StyledIconButton","button","hideOnLowWidth","BREAKPOINTS","MEDIUM","unsetIconSize","invertFocus","invertedFocusStyles","focusStyles","StyledPrimaryIconButton","useTransparentBackground","COLORS","primary_500","iconColor","white","primary_700","primary_800","neutral_200","StyledSecondaryIconButton","neutral_600","shouldNotInteract","primary_20","primary_100","neutral_300","IconButton","React","forwardRef","ref","id","variant","shape","action","isInMobileMenu","children","disabled","tabIndex","focusBackgroundColor","type","hidden","rest","event","stopPropagation","defaultOnMouseDownHandler"],"sources":["../../src/Button/Iconbutton.tsx"],"sourcesContent":["import React from 'react';\nimport styled, { css, CSSProperties } from 'styled-components';\n\nimport { BREAKPOINTS, COLORS, focusStyles, invertedFocusStyles } from '../styles';\nimport { defaultOnMouseDownHandler } from '../common';\n\ninterface HeaderItemProps {\n hideOnLowWidth: boolean;\n inMobileMenu?: boolean;\n useTransparentBackground?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n borderRadius?: number;\n shape?: string;\n flatEdge?: string;\n focusBackgroundColor?: string;\n invertFocus?: boolean;\n shouldNotInteract?: boolean;\n}\n\nconst getBorderRadius = (props: HeaderItemProps) => (props.borderRadius ? `${props.borderRadius}px` : '4px');\n\nconst getBorderRadiusStyle = (props: HeaderItemProps) => {\n const radius = getBorderRadius(props);\n switch (props.flatEdge) {\n case 'left':\n return `0px ${radius} ${radius} 0px`;\n\n case 'right':\n return `${radius} 0px 0px ${radius}`;\n\n case 'none':\n default:\n return `${radius}`;\n }\n};\n\nexport const IconButtonContent = styled.div``;\n\nexport const StyledIconButton = styled.button<HeaderItemProps>`\n border-width: 0;\n cursor: pointer;\n height: 48px;\n width: 48px;\n background: transparent;\n position: relative;\n\n display: ${(props) => (props.hideOnLowWidth ? 'none' : 'block')};\n ${BREAKPOINTS.MEDIUM} {\n display: block;\n }\n\n border-radius: ${(props) => (props.borderRadius ? `${props.borderRadius}px` : '4px')};\n ${IconButtonContent} {\n height: 36px;\n width: 36px;\n border-radius: ${getBorderRadiusStyle};\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n height: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n width: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n padding: 0;\n }\n }\n &:only-child {\n margin: 0;\n }\n &:disabled {\n cursor: not-allowed;\n }\n\n &:focus {\n ${(props) => (props.invertFocus ? invertedFocusStyles : focusStyles)}\n }\n`;\n\nexport const StyledPrimaryIconButton = styled(StyledIconButton)`\n ${IconButtonContent} {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.primary_500)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.white};\n path {\n fill: ${(props) => props.iconColor || COLORS.white};\n }\n }\n }\n &:hover:not(:disabled),\n &.hover-state {\n ${IconButtonContent} {\n background-color: ${COLORS.primary_700};\n }\n ${IconButtonContent} svg path,\n ${IconButtonContent} svg {\n fill: ${COLORS.white};\n }\n }\n &:active:not(:disabled),\n &.active-state {\n ${IconButtonContent} {\n background: ${COLORS.primary_800};\n }\n ${IconButtonContent} svg path,\n ${IconButtonContent} svg {\n fill: ${COLORS.white};\n }\n }\n &:disabled {\n ${IconButtonContent} {\n background-color: ${COLORS.neutral_200};\n }\n svg {\n path {\n fill: ${COLORS.white};\n }\n fill: ${COLORS.white};\n }\n }\n`;\n\nexport const StyledSecondaryIconButton = styled(StyledIconButton)`\n ${IconButtonContent} {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n path {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n }\n }\n }\n\n pointer-events: ${(props) => (props.shouldNotInteract ? 'none' : 'auto')};\n\n &:hover:not(:disabled) {\n ${IconButtonContent} {\n background-color: ${COLORS.primary_20};\n }\n ${IconButtonContent} svg path,\n ${IconButtonContent} svg {\n fill: ${COLORS.primary_700};\n }\n }\n &:active:not(:disabled),\n &.active-state {\n ${IconButtonContent} {\n background: ${COLORS.primary_100};\n }\n ${IconButtonContent} svg path,\n ${IconButtonContent} svg {\n fill: ${COLORS.primary_800};\n }\n }\n\n &:disabled {\n ${IconButtonContent} {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n }\n svg {\n path {\n fill: ${COLORS.neutral_300};\n }\n fill: ${COLORS.neutral_300};\n }\n }\n`;\n\nexport interface IconButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'onMouseDown'> {\n variant?: 'primary' | 'secondary';\n shape?: 'square' | 'circular';\n action: (event?: React.MouseEvent<HTMLButtonElement>) => void;\n hideOnLowWidth?: boolean;\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n isInMobileMenu?: boolean;\n useTransparentBackground?: boolean;\n shouldNotInteract?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n borderRadius?: number;\n focusBackgroundColor?: string;\n children?: React.ReactNode;\n invertFocus?: boolean;\n}\n\nconst IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n (\n {\n id,\n variant,\n shape,\n action,\n hideOnLowWidth,\n isInMobileMenu,\n children,\n useTransparentBackground,\n shouldNotInteract,\n disabled,\n iconColor,\n unsetIconSize,\n tabIndex,\n flatEdge,\n borderRadius,\n focusBackgroundColor,\n type,\n hidden,\n invertFocus,\n ...rest\n }: IconButtonProps,\n ref,\n ) => {\n // Let's render button\n switch (variant) {\n case 'secondary':\n return (\n <StyledSecondaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n action(event);\n }}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n shouldNotInteract={shouldNotInteract}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n hidden={hidden}\n invertFocus={invertFocus}\n focusBackgroundColor={focusBackgroundColor}\n {...rest}>\n <IconButtonContent>{children}</IconButtonContent>\n </StyledSecondaryIconButton>\n );\n case 'primary':\n default:\n return (\n <StyledPrimaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n flatEdge={flatEdge}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n action(event);\n }}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n hidden={hidden}\n invertFocus={invertFocus}\n focusBackgroundColor={focusBackgroundColor}\n {...rest}>\n <IconButtonContent>{children}</IconButtonContent>\n </StyledPrimaryIconButton>\n );\n }\n },\n);\n\nexport default IconButton;\n"],"mappings":"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"}
@@ -107,7 +107,7 @@ var IconButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
107
107
  shouldNotInteract: shouldNotInteract,
108
108
  iconColor: iconColor,
109
109
  unsetIconSize: unsetIconSize,
110
- tabIndex: tabIndex || 0,
110
+ tabIndex: tabIndex,
111
111
  borderRadius: borderRadius || shape === 'circular' ? 18 : 0,
112
112
  onMouseDown: defaultOnMouseDownHandler,
113
113
  hidden: hidden,
@@ -137,7 +137,7 @@ var IconButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
137
137
  useTransparentBackground: useTransparentBackground,
138
138
  iconColor: iconColor,
139
139
  unsetIconSize: unsetIconSize,
140
- tabIndex: tabIndex || 0,
140
+ tabIndex: tabIndex,
141
141
  borderRadius: borderRadius || shape === 'circular' ? 18 : 0,
142
142
  onMouseDown: defaultOnMouseDownHandler,
143
143
  hidden: hidden,