@laerdal/life-react-components 1.11.0-dev.9 → 2.0.0
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.
- package/dist/Accordion/AccordionItem.cjs +12 -7
- package/dist/Accordion/AccordionItem.cjs.map +1 -1
- package/dist/Accordion/AccordionItem.js +12 -7
- package/dist/Accordion/AccordionItem.js.map +1 -1
- package/dist/Accordion/ContentAccordion.cjs +3 -1
- package/dist/Accordion/ContentAccordion.cjs.map +1 -1
- package/dist/Accordion/ContentAccordion.js +3 -1
- package/dist/Accordion/ContentAccordion.js.map +1 -1
- package/dist/Accordion/styles.cjs +1 -1
- package/dist/Accordion/styles.cjs.map +1 -1
- package/dist/Accordion/styles.js +1 -1
- package/dist/Accordion/styles.js.map +1 -1
- package/dist/AuthPage/AuthPage.d.ts +0 -1
- package/dist/Banners/Banner.cjs +9 -4
- package/dist/Banners/Banner.cjs.map +1 -1
- package/dist/Banners/Banner.js +8 -4
- package/dist/Banners/Banner.js.map +1 -1
- package/dist/Breadcrumb/Breadcrumb.cjs +12 -0
- package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
- package/dist/Breadcrumb/Breadcrumb.js +12 -0
- package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/Button/DualFunctionButton.cjs +27 -12
- package/dist/Button/DualFunctionButton.cjs.map +1 -1
- package/dist/Button/DualFunctionButton.js +26 -12
- package/dist/Button/DualFunctionButton.js.map +1 -1
- package/dist/Button/Iconbutton.cjs +2 -2
- package/dist/Button/Iconbutton.cjs.map +1 -1
- package/dist/Button/Iconbutton.js +2 -2
- package/dist/Button/Iconbutton.js.map +1 -1
- package/dist/Card/VerticalCard/Card.cjs +2 -2
- package/dist/Card/VerticalCard/Card.cjs.map +1 -1
- package/dist/Card/VerticalCard/Card.js +2 -2
- package/dist/Card/VerticalCard/Card.js.map +1 -1
- package/dist/ChipsInput/ChipDropdownInput.cjs +33 -22
- package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
- package/dist/ChipsInput/ChipDropdownInput.js +33 -22
- package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
- package/dist/Dropdown/BasicDropdown.cjs +26 -12
- package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
- package/dist/Dropdown/BasicDropdown.js +26 -12
- package/dist/Dropdown/BasicDropdown.js.map +1 -1
- package/dist/Dropdown/DropdownButton.cjs +27 -11
- package/dist/Dropdown/DropdownButton.cjs.map +1 -1
- package/dist/Dropdown/DropdownButton.js +27 -11
- package/dist/Dropdown/DropdownButton.js.map +1 -1
- package/dist/Dropdown/DropdownButtonTypes.cjs.map +1 -1
- package/dist/Dropdown/DropdownButtonTypes.d.ts +1 -1
- package/dist/Dropdown/DropdownButtonTypes.js.map +1 -1
- package/dist/Dropdown/DropdownContent.cjs +44 -6
- package/dist/Dropdown/DropdownContent.cjs.map +1 -1
- package/dist/Dropdown/DropdownContent.d.ts +2 -0
- package/dist/Dropdown/DropdownContent.js +44 -6
- package/dist/Dropdown/DropdownContent.js.map +1 -1
- package/dist/Dropdown/DropdownFilter.cjs +23 -9
- package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
- package/dist/Dropdown/DropdownFilter.js +23 -9
- package/dist/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/Footer/Components/FooterBottomLinks.d.ts +0 -1
- package/dist/Footer/Components/FooterDropdownLinks.d.ts +0 -1
- package/dist/Footer/Components/FooterNavSection.cjs +7 -2
- package/dist/Footer/Components/FooterNavSection.cjs.map +1 -1
- package/dist/Footer/Components/FooterNavSection.d.ts +0 -1
- package/dist/Footer/Components/FooterNavSection.js +6 -2
- package/dist/Footer/Components/FooterNavSection.js.map +1 -1
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.d.ts +0 -1
- package/dist/Footer/Components/FooterTop.d.ts +0 -1
- package/dist/Footer/Footer.d.ts +0 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs +3 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs.map +1 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.js +2 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.d.ts +0 -1
- package/dist/GlobalNavigationBar/desktop/UserMenu.d.ts +0 -1
- package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs +24 -2
- package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/CommonStyles.d.ts +5 -0
- package/dist/GlobalNavigationBar/mobile/CommonStyles.js +8 -2
- package/dist/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs +53 -0
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs.map +1 -0
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.d.ts +6 -0
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js +34 -0
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js.map +1 -0
- package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs +3 -5
- package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenu.d.ts +0 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenu.js +2 -4
- package/dist/GlobalNavigationBar/mobile/MobileMenu.js.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs +30 -61
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js +30 -57
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js.map +1 -1
- package/dist/GlobalNavigationBar/types.cjs.map +1 -1
- package/dist/GlobalNavigationBar/types.d.ts +3 -1
- package/dist/GlobalNavigationBar/types.js.map +1 -1
- package/dist/InputFields/Checkbox.cjs +1 -0
- package/dist/InputFields/Checkbox.cjs.map +1 -1
- package/dist/InputFields/Checkbox.js +1 -0
- package/dist/InputFields/Checkbox.js.map +1 -1
- package/dist/InputFields/DatepickerField.cjs +12 -4
- package/dist/InputFields/DatepickerField.cjs.map +1 -1
- package/dist/InputFields/DatepickerField.js +6 -4
- package/dist/InputFields/DatepickerField.js.map +1 -1
- package/dist/InputFields/DatepickerFieldHeader.d.ts +0 -1
- package/dist/InputFields/Label.cjs +16 -14
- package/dist/InputFields/Label.cjs.map +1 -1
- package/dist/InputFields/Label.d.ts +1 -0
- package/dist/InputFields/Label.js +15 -13
- package/dist/InputFields/Label.js.map +1 -1
- package/dist/InputFields/NumberField.cjs +1 -1
- package/dist/InputFields/NumberField.cjs.map +1 -1
- package/dist/InputFields/NumberField.js +1 -1
- package/dist/InputFields/NumberField.js.map +1 -1
- package/dist/InputFields/QuickSearch.cjs +1 -1
- package/dist/InputFields/QuickSearch.cjs.map +1 -1
- package/dist/InputFields/QuickSearch.js +1 -1
- package/dist/InputFields/QuickSearch.js.map +1 -1
- package/dist/InputFields/ResponsiveComponentWrapper.cjs +3 -3
- package/dist/InputFields/ResponsiveComponentWrapper.cjs.map +1 -1
- package/dist/InputFields/ResponsiveComponentWrapper.js +3 -3
- package/dist/InputFields/ResponsiveComponentWrapper.js.map +1 -1
- package/dist/InputFields/SearchBar.cjs +1 -0
- package/dist/InputFields/SearchBar.cjs.map +1 -1
- package/dist/InputFields/SearchBar.js +1 -0
- package/dist/InputFields/SearchBar.js.map +1 -1
- package/dist/InputFields/Textarea.cjs.map +1 -1
- package/dist/InputFields/Textarea.d.ts +1 -1
- package/dist/InputFields/Textarea.js.map +1 -1
- package/dist/InputFields/types.cjs.map +1 -1
- package/dist/InputFields/types.d.ts +1 -1
- package/dist/InputFields/types.js.map +1 -1
- package/dist/LoadingIndicator/LoadingIndicator.d.ts +0 -1
- package/dist/MiniProductCard/MiniProductCard.d.ts +0 -1
- package/dist/Modals/ModalContent.cjs +2 -1
- package/dist/Modals/ModalContent.cjs.map +1 -1
- package/dist/Modals/ModalContent.d.ts +1 -0
- package/dist/Modals/ModalContent.js +2 -1
- package/dist/Modals/ModalContent.js.map +1 -1
- package/dist/Modals/ModalDialog.cjs +1 -0
- package/dist/Modals/ModalDialog.cjs.map +1 -1
- package/dist/Modals/ModalDialog.d.ts +1 -0
- package/dist/Modals/ModalDialog.js +1 -0
- package/dist/Modals/ModalDialog.js.map +1 -1
- package/dist/NavItem/NavItem.cjs +22 -1
- package/dist/NavItem/NavItem.cjs.map +1 -1
- package/dist/NavItem/NavItem.d.ts +7 -1
- package/dist/NavItem/NavItem.js +18 -1
- package/dist/NavItem/NavItem.js.map +1 -1
- package/dist/NavItem/index.cjs.map +1 -1
- package/dist/NavItem/index.d.ts +1 -0
- package/dist/NavItem/index.js.map +1 -1
- package/dist/Paginator/Paginator.d.ts +0 -1
- package/dist/QuizButton/QuizButton.cjs +3 -1
- package/dist/QuizButton/QuizButton.cjs.map +1 -1
- package/dist/QuizButton/QuizButton.js +3 -1
- package/dist/QuizButton/QuizButton.js.map +1 -1
- package/dist/SideMenu/SideMenuBody.d.ts +0 -1
- package/dist/SideMenu/SideMenuFooter.d.ts +0 -1
- package/dist/SideMenu/SideMenuHeader.d.ts +0 -1
- package/dist/SideMenu/types.d.ts +0 -1
- package/dist/SkipToContent/SkipToContent.cjs +5 -0
- package/dist/SkipToContent/SkipToContent.cjs.map +1 -1
- package/dist/SkipToContent/SkipToContent.d.ts +3 -1
- package/dist/SkipToContent/SkipToContent.js +4 -0
- package/dist/SkipToContent/SkipToContent.js.map +1 -1
- package/dist/Switcher/MobileCustomMenuContent.cjs +56 -0
- package/dist/Switcher/MobileCustomMenuContent.cjs.map +1 -0
- package/dist/Switcher/MobileCustomMenuContent.d.ts +8 -0
- package/dist/Switcher/MobileCustomMenuContent.js +39 -0
- package/dist/Switcher/MobileCustomMenuContent.js.map +1 -0
- package/dist/Switcher/MobileSwitcherMenu.cjs +17 -4
- package/dist/Switcher/MobileSwitcherMenu.cjs.map +1 -1
- package/dist/Switcher/MobileSwitcherMenu.d.ts +5 -3
- package/dist/Switcher/MobileSwitcherMenu.js +16 -4
- package/dist/Switcher/MobileSwitcherMenu.js.map +1 -1
- package/dist/Switcher/SwitcherMenuItem.d.ts +0 -1
- package/dist/Table/Table.cjs +9 -6
- package/dist/Table/Table.cjs.map +1 -1
- package/dist/Table/Table.js +9 -6
- package/dist/Table/Table.js.map +1 -1
- package/dist/Table/TableBody.cjs +6 -5
- package/dist/Table/TableBody.cjs.map +1 -1
- package/dist/Table/TableBody.d.ts +1 -3
- package/dist/Table/TableBody.js +6 -5
- package/dist/Table/TableBody.js.map +1 -1
- package/dist/Table/TableStyles.cjs +1 -1
- package/dist/Table/TableStyles.cjs.map +1 -1
- package/dist/Table/TableStyles.js +1 -1
- package/dist/Table/TableStyles.js.map +1 -1
- package/dist/Table/TableTypes.cjs.map +1 -1
- package/dist/Table/TableTypes.d.ts +5 -1
- package/dist/Table/TableTypes.js.map +1 -1
- package/dist/Table/index.cjs.map +1 -1
- package/dist/Table/index.d.ts +1 -1
- package/dist/Table/index.js.map +1 -1
- package/dist/Tabs/TabLink.cjs +13 -16
- package/dist/Tabs/TabLink.cjs.map +1 -1
- package/dist/Tabs/TabLink.d.ts +1 -1
- package/dist/Tabs/TabLink.js +14 -16
- package/dist/Tabs/TabLink.js.map +1 -1
- package/dist/Tabs/VerticalTabs.cjs +1 -0
- package/dist/Tabs/VerticalTabs.cjs.map +1 -1
- package/dist/Tabs/VerticalTabs.d.ts +1 -2
- package/dist/Tabs/VerticalTabs.js +1 -0
- package/dist/Tabs/VerticalTabs.js.map +1 -1
- package/dist/Tile/TileBody.cjs.map +1 -1
- package/dist/Tile/TileBody.d.ts +1 -0
- package/dist/Tile/TileBody.js.map +1 -1
- package/dist/Tile/TileCommonItems.d.ts +0 -1
- package/dist/Toasters/ToastContext.cjs +5 -0
- package/dist/Toasters/ToastContext.cjs.map +1 -1
- package/dist/Toasters/ToastContext.d.ts +6 -4
- package/dist/Toasters/ToastContext.js +4 -0
- package/dist/Toasters/ToastContext.js.map +1 -1
- package/dist/Toggles/TogglerTypes.d.ts +0 -1
- package/dist/Tooltips/TooltipTypes.d.ts +0 -1
- package/dist/Tooltips/TooltipWrapper.d.ts +0 -1
- package/dist/common/ScrollableContainer.cjs +44 -0
- package/dist/common/ScrollableContainer.cjs.map +1 -0
- package/dist/common/ScrollableContainer.d.ts +2 -0
- package/dist/common/ScrollableContainer.js +28 -0
- package/dist/common/ScrollableContainer.js.map +1 -0
- package/dist/icons/contenticons/ContentIcons.cjs +83 -2
- package/dist/icons/contenticons/ContentIcons.cjs.map +1 -1
- package/dist/icons/contenticons/ContentIcons.d.ts +3 -0
- package/dist/icons/contenticons/ContentIcons.js +72 -0
- package/dist/icons/contenticons/ContentIcons.js.map +1 -1
- package/dist/icons/index.cjs +14 -7
- package/dist/icons/index.cjs.map +1 -1
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/index.js +14 -7
- package/dist/icons/index.js.map +1 -1
- package/dist/icons/systemicons/SystemIcons.cjs +30 -1
- package/dist/icons/systemicons/SystemIcons.cjs.map +1 -1
- package/dist/icons/systemicons/SystemIcons.d.ts +1 -0
- package/dist/icons/systemicons/SystemIcons.js +26 -0
- package/dist/icons/systemicons/SystemIcons.js.map +1 -1
- package/dist/styles/typography.cjs +27 -13
- package/dist/styles/typography.cjs.map +1 -1
- package/dist/styles/typography.d.ts +2 -0
- package/dist/styles/typography.js +27 -13
- package/dist/styles/typography.js.map +1 -1
- package/dist/utils/utils.cjs +13 -0
- package/dist/utils/utils.cjs.map +1 -0
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.js +4 -0
- package/dist/utils/utils.js.map +1 -0
- 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} \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} \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,
|
|
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,
|
|
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":";;;;;;;;;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;MAA4D,OAAO,EAAE,iBAACgB,CAAD,EAAO;QAAEA,CAAC,CAACC,cAAF;QAAoBf,YAAY,CAACF,OAAD,CAAZ;MAAuB,CAAzH;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,CAACiC,WAAhE;QAA6E,IAAI,EAAEJ;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,CAACkC,WAA1C;UAAuD,IAAI,EAAC;QAA5D,EALR;QAME,OAAO,EAAEP;MANX,EAFF;IAAA,EADD,gBAaC;MAAA,wBACE,KAAC,WAAD,CAAa,YAAb;QAA0B,SAAS,EAAC,aAApC;QAAkD,KAAK,EAAE3B,MAAM,CAACiC,WAAhE;QAA6E,IAAI,EAAEJ;MAAnF,EADF,eAEE,KAAC,SAAD;QAAW,EAAE,EAAE,gBAAgBnB,KAAK,CAACU,MAAN,GAAe,CAA/B,CAAf;QAAkD,OAAO,EAAE,iBAACW,CAAD,EAAO;UAAEA,CAAC,CAACC,cAAF;UAAoBf,YAAY,CAACP,KAAK,CAACA,KAAK,CAACU,MAAN,GAAe,CAAhB,CAAL,CAAwBI,GAAzB,CAAZ;QAA2C,CAAnI;QAAqI,MAAM,EAAC,OAA5I;QAAoJ,OAAO,EAAC,SAA5J;QAAsK,IAAI,EAAEd,KAAK,CAACA,KAAK,CAACU,MAAN,GAAe,CAAhB,CAAL,CAAwBI,GAApM;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,CAACiC,WAAhE;QAA6E,IAAI,EAAEJ;MAAnF,EADF,eAEE,KAAC,SAAD;QAAW,EAAE,EAAE,gBAAgBnB,KAAK,CAACU,MAAN,GAAe,CAA/B,CAAf;QAAkD,OAAO,EAAE,iBAACW,CAAD,EAAO;UAAEA,CAAC,CAACC,cAAF;UAAoBf,YAAY,CAACP,KAAK,CAACA,KAAK,CAACU,MAAN,GAAe,CAAhB,CAAL,CAAwBI,GAAzB,CAAZ;QAA2C,CAAnI;QAAqI,MAAM,EAAC,OAA5I;QAAoJ,OAAO,EAAC,SAA5J;QAAsK,IAAI,EAAEd,KAAK,CAACA,KAAK,CAACU,MAAN,GAAe,CAAhB,CAAL,CAAwBI,GAApM;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,CAACiC,WAAhE;QAA6E,IAAI,EAAEJ;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"}
|
|
@@ -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(
|
|
88
|
+
var _React$useState3 = React.useState(),
|
|
87
89
|
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
activeDescendant = _React$useState4[0],
|
|
91
|
+
setActiveDescendant = _React$useState4[1];
|
|
90
92
|
|
|
91
|
-
var _React$useState5 = React.useState(
|
|
93
|
+
var _React$useState5 = React.useState(null),
|
|
92
94
|
_React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
|
|
93
|
-
|
|
94
|
-
|
|
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$
|
|
99
|
-
_React$
|
|
100
|
-
selectedValues = _React$
|
|
101
|
-
setSelectedValues = _React$
|
|
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:
|
|
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={
|
|
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(
|
|
60
|
+
var _React$useState3 = React.useState(),
|
|
60
61
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
activeDescendant = _React$useState4[0],
|
|
63
|
+
setActiveDescendant = _React$useState4[1];
|
|
63
64
|
|
|
64
|
-
var _React$useState5 = React.useState(
|
|
65
|
+
var _React$useState5 = React.useState(null),
|
|
65
66
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
66
|
-
|
|
67
|
-
|
|
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$
|
|
72
|
-
_React$
|
|
73
|
-
selectedValues = _React$
|
|
74
|
-
setSelectedValues = _React$
|
|
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:
|
|
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={
|
|
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":";;;;;;;;;;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,MAAP,MAAoC,UAApC;AACA,SAASC,aAAT,EAAwBC,WAAxB,QAA2C,kCAA3C;AACA,SAASC,QAAT,QAAyB,2BAAzB;AACA,SAASC,MAAT,QAAuB,QAAvB;AACA,SAASC,IAAT,QAAqB,UAArB;AACA,OAAOC,eAAP,MAA4D,6BAA5D;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,SAASC,kBAAT,EAA6BC,kBAA7B,QAAuD,WAAvD;;;AAEA,IAAMC,gBAAgB,GAAGH,MAAM,CAACI,GAAV,2OAUP,UAACC,KAAD;EAAA,OAAYA,KAAK,CAACC,IAAN,IAAcR,IAAI,CAACS,KAAnB,GAA2B,UAA3B,GAAwCF,KAAK,CAACC,IAAN,IAAcR,IAAI,CAACU,MAAnB,GAA4B,UAA5B,GAAyC,UAA7F;AAAA,CAVO,CAAtB;;AAwBA,IAAMC,kBAA4D,GAAG,SAA/DA,kBAA+D,OAa/D;EAAA,yBAZJC,QAYI;EAAA,IAZJA,QAYI,8BAZO,gBAYP;EAAA,wBAXJC,OAWI;EAAA,IAXJA,OAWI,6BAXM,SAWN;EAAA,qBAVJC,IAUI;EAAA,IAVJA,IAUI,0BAVG,QAUH;EAAA,qBATJN,IASI;EAAA,IATJA,IASI,0BATGR,IAAI,CAACU,MASR;EAAA,sBARJK,KAQI;EAAA,IARJA,KAQI,2BARI,MAQJ;EAAA,IAPJC,MAOI,QAPJA,MAOI;EAAA,IANJC,QAMI,QANJA,QAMI;EAAA,IALJC,EAKI,QALJA,EAKI;EAAA,IAJJC,kBAII,QAJJA,kBAII;EAAA,IAHJC,qBAGI,QAHJA,qBAGI;EAAA,IAFJC,0BAEI,QAFJA,0BAEI;EAAA,IADDd,KACC;;EACJ;EACA,IAAQe,OAAR,GAAmDf,KAAnD,CAAQe,OAAR;EAAA,IAAiBC,IAAjB,GAAmDhB,KAAnD,CAAiBgB,IAAjB;EAAA,IAAuBC,OAAvB,GAAmDjB,KAAnD,CAAuBiB,OAAvB;EAAA,IAAmCC,WAAnC,4BAAmDlB,KAAnD;;EACA,sBAA4Bb,KAAK,CAACgC,QAAN,CAAwB,KAAxB,CAA5B;EAAA;EAAA,IAAOC,MAAP;EAAA,IAAeC,SAAf;;EACA,uBAAgDlC,KAAK,CAACgC,QAAN,EAAhD;EAAA;EAAA,IAAOG,gBAAP;EAAA,IAAyBC,mBAAzB;;EACA,uBAA8BpC,KAAK,CAACgC,QAAN,CAA8B,IAA9B,CAA9B;EAAA;EAAA,IAAOK,OAAP;EAAA,IAAgBC,UAAhB;;EACA,uBAAkDtC,KAAK,CAACgC,QAAN,CAAwB,KAAxB,CAAlD;EAAA;EAAA,IAAOO,iBAAP;EAAA,IAA0BC,oBAA1B;;EACA,IAAMC,oBAAoB,GAAGzC,KAAK,CAAC0C,MAAN,CAA6B,IAA7B,CAA7B;;EACA,uBAA4C1C,KAAK,CAACgC,QAAN,CAAyB,EAAzB,CAA5C;EAAA;EAAA,IAAOW,cAAP;EAAA,IAAuBC,iBAAvB;;EAEA,IAAMC,kBAAkB,GAAG7C,KAAK,CAAC0C,MAAN,CAA6B,IAA7B,CAA3B;EACA,IAAMI,iBAAiB,GAAGrC,kBAAkB,CAC1C;IAAA,OAAMyB,SAAS,CAAC,KAAD,CAAf;EAAA,CAD0C,EAE1C,CAACO,oBAAD,CAF0C,EAG1C/B,kBAAkB,CAAC;IAAA,OAAMwB,SAAS,CAAC,KAAD,CAAf;EAAA,CAAD,EAAyB,CAACW,kBAAD,CAAzB,CAHwB,CAA5C;EAMA,IAAME,iBAAiB,GAAGvB,EAAE,GAAGA,EAAE,GAAG,kBAAR,GAA6BnB,MAAM,EAA/D;EAEAL,KAAK,CAACgD,SAAN,CAAgB,YAAM;IACpB,CAACf,MAAD,IAAWO,oBAAoB,CAAC,KAAD,CAA/B;EACD,CAFD,EAEG,CAACP,MAAD,CAFH;EAIA,oBACE,MAAC,gBAAD;IAAkB,GAAG,EAAEQ,oBAAvB;IAA6C,IAAI,EAAE3B,IAAnD;IAAA,wBACE,MAAC,QAAD;MAAU,QAAQ,EAAE,IAApB;MAA0B,QAAQ,EAAE,KAApC;MAA2C,QAAQ,EAAE,KAArD;MAA4D,MAAM,EAAC,EAAnE;MAAA,wBACE,KAAC,MAAD,kCAAYiB,WAAZ;QAAyB,OAAO,EAAED,OAAlC;QAA2C,QAAQ,EAAEP,QAArD;QAA+D,IAAI,EAAEH,IAArE;QAA2E,OAAO,EAAEQ,OAApF;QAA6F,IAAI,EAAEC,IAAnG;QAAyG,IAAI,EAAEf,IAA/G;QAAqH,KAAK,EAAEO,KAA5H;QAAmI,OAAO,EAAEF,OAA5I;QAAqJ,QAAQ,EAAC,OAA9J;QAAA,UACGD;MADH,GADF,eAIE,KAAC,eAAD;QACE,YAAY,EAAEuB,oBADhB;QAEE,kBAAkB,EAAEd,0BAFtB;QAGE,MAAM,EAAC,EAHT;QAIE,GAAG,EAAEkB,kBAJP;QAKE,cAAc,EAAElB,0BAA0B,CAACsB,SAA3B,IAAwC,QAAxC,GAAmD,EAAnD,GAAwDxB,kBAAxD,aAAwDA,kBAAxD,cAAwDA,kBAAxD,GAA8EkB,cALhG;QAME,iBAAiB,EAAEjB,qBAAqB,GAAGA,qBAAH,GAA2BkB,iBANrE;QAOE,QAAQ,EAAE,IAPZ;QAQE,SAAS,EAAEV,SARb;QASE,OAAO,EAAEG,OATX;QAUE,yBAAyB,EAAE,mCAACa,CAAD;UAAA,OAAOd,mBAAmB,CAACc,CAAD,CAA1B;QAAA,CAV7B;QAWE,UAAU,EAAEZ,UAXd;QAYE,IAAI,EAAExB,IAZR;QAaE,OAAO,EAAEyB,iBAbX;QAcE,MAAM,EAAEN,MAdV;QAeE,EAAE,EAAEc,iBAfN;QAgBE,kBAAkB,EAAC,EAhBrB;QAiBE,SAAS,EAAE,IAjBb;QAkBE,aAAa,EAAC;MAlBhB,EAJF;IAAA,EADF,eA0BE,KAAC,MAAD;MACE,OAAO,EAAE5B;IADX,GAEMY,WAFN;MAGE,UAAU,EAAE,oBAACmB,CAAD,EAAY;QACtB,IAAIjB,MAAJ,EAAY;;QAEZ,IAAIiB,CAAC,CAACC,GAAF,KAAU,OAAV,IAAqBD,CAAC,CAACC,GAAF,KAAU,GAAnC,EAAwC;UACtCb,UAAU,CAAC,CAAD,CAAV;UACAE,oBAAoB,CAAC,IAAD,CAApB;QACD;MACF,CAVH;MAWE,MAAM,EAAE,mBAXV;MAYE,GAAG,EAAEM,iBAZP;MAaE,yBAAuBX,gBAbzB;MAcE,IAAI,EAAC,QAdP;MAeE,iBAAeY,iBAfjB;MAgBE,QAAQ,EAAExB,QAhBZ;MAiBE,IAAI,EAAEH,IAjBR;MAkBE,IAAI,EAAEN,IAlBR;MAmBE,QAAQ,EAAE,OAnBZ;MAoBE,OAAO,EAAE,iBAACoC,CAAD,EAAO;QACdA,CAAC,CAACE,eAAF;QACAlB,SAAS,CAAC,CAACD,MAAF,CAAT;MACD,CAvBH;MAwBE,IAAI,EAAEA,MAAM,gBAAG,KAAC,WAAD;QAAa,IAAI,EAAC;MAAlB,EAAH,gBAAiC,KAAC,aAAD;QAAe,IAAI,EAAC;MAApB,EAxB/C;MAyBE,QAAQ,EAAC;IAzBX,GA1BF;EAAA,EADF;AAwDD,CA5FD;;;EAJER,kB;EACAC,qB;;AAiGF,eAAeT,kBAAf"}
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
140
|
+
tabIndex: tabIndex,
|
|
141
141
|
borderRadius: borderRadius || shape === 'circular' ? 18 : 0,
|
|
142
142
|
onMouseDown: defaultOnMouseDownHandler,
|
|
143
143
|
hidden: hidden,
|