@laerdal/life-react-components 6.0.0-dev.8.full → 6.0.1
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/README.md +1 -1
- package/dist/Accordion/__tests__/AccordionMenu.test.tsx +42 -0
- package/dist/Accordion/__tests__/ContentAccordion.test.tsx +150 -0
- package/dist/AuthPage/__tests__/AuthPage.test.tsx +27 -0
- package/dist/Banners/__tests__/Banner.test.tsx +47 -0
- package/dist/Banners/__tests__/OverviewBanner.test.tsx +20 -0
- package/dist/Breadcrumb/__tests__/Breadcrumb.test.tsx +78 -0
- package/dist/Button/DualFunctionButton.cjs +4 -4
- package/dist/Button/DualFunctionButton.cjs.map +1 -1
- package/dist/Button/DualFunctionButton.d.ts +2 -2
- package/dist/Button/DualFunctionButton.js +4 -4
- package/dist/Button/DualFunctionButton.js.map +1 -1
- package/dist/Button/{Button.cjs → TextButton.cjs} +179 -92
- package/dist/Button/TextButton.cjs.map +1 -0
- package/dist/Button/TextButton.d.ts +70 -0
- package/dist/Button/{Button.js → TextButton.js} +178 -91
- package/dist/Button/TextButton.js.map +1 -0
- package/dist/Button/__tests__/BackButton.test.tsx +32 -0
- package/dist/Button/__tests__/Button.test.tsx +45 -0
- package/dist/Button/__tests__/DualButton.test.tsx +119 -0
- package/dist/Button/__tests__/TextButton.test.tsx +45 -0
- package/dist/Button/index.cjs +11 -11
- package/dist/Button/index.cjs.map +1 -1
- package/dist/Button/index.d.ts +2 -2
- package/dist/Button/index.js +2 -2
- package/dist/Button/index.js.map +1 -1
- package/dist/Card/HorizontalCard/__tests__/HorizontalCard.test.tsx +71 -0
- package/dist/Card/VerticalCard/{Card.cjs → VerticalCard.cjs} +62 -26
- package/dist/Card/VerticalCard/VerticalCard.cjs.map +1 -0
- package/dist/Card/VerticalCard/VerticalCard.d.ts +25 -0
- package/dist/Card/VerticalCard/{Card.js → VerticalCard.js} +62 -26
- package/dist/Card/VerticalCard/VerticalCard.js.map +1 -0
- package/dist/Card/VerticalCard/{CardBottomSection.cjs → VerticalCardBottomSection.cjs} +45 -27
- package/dist/Card/VerticalCard/VerticalCardBottomSection.cjs.map +1 -0
- package/dist/Card/VerticalCard/VerticalCardBottomSection.d.ts +53 -0
- package/dist/Card/VerticalCard/{CardBottomSection.js → VerticalCardBottomSection.js} +45 -27
- package/dist/Card/VerticalCard/VerticalCardBottomSection.js.map +1 -0
- package/dist/Card/VerticalCard/{CardMiddleSection.cjs → VerticalCardMiddleSection.cjs} +46 -23
- package/dist/Card/VerticalCard/VerticalCardMiddleSection.cjs.map +1 -0
- package/dist/Card/VerticalCard/VerticalCardMiddleSection.d.ts +42 -0
- package/dist/Card/VerticalCard/{CardMiddleSection.js → VerticalCardMiddleSection.js} +45 -23
- package/dist/Card/VerticalCard/VerticalCardMiddleSection.js.map +1 -0
- package/dist/Card/VerticalCard/{CardTopSection.cjs → VerticalCardTopSection.cjs} +18 -16
- package/dist/Card/VerticalCard/VerticalCardTopSection.cjs.map +1 -0
- package/dist/Card/VerticalCard/{CardTopSection.d.ts → VerticalCardTopSection.d.ts} +8 -8
- package/dist/Card/VerticalCard/{CardTopSection.js → VerticalCardTopSection.js} +17 -15
- package/dist/Card/VerticalCard/VerticalCardTopSection.js.map +1 -0
- package/dist/Card/VerticalCard/__tests__/VerticalCard.test.tsx +124 -0
- package/dist/Card/VerticalCard/index.cjs +25 -25
- package/dist/Card/VerticalCard/index.cjs.map +1 -1
- package/dist/Card/VerticalCard/index.d.ts +7 -7
- package/dist/Card/VerticalCard/index.js +7 -7
- package/dist/Card/VerticalCard/index.js.map +1 -1
- package/dist/Chips/ActionChip.cjs +6 -0
- package/dist/Chips/ActionChip.cjs.map +1 -1
- package/dist/Chips/ActionChip.js +6 -0
- package/dist/Chips/ActionChip.js.map +1 -1
- package/dist/Chips/ChipStyles.cjs +210 -31
- package/dist/Chips/ChipStyles.cjs.map +1 -1
- package/dist/Chips/ChipStyles.js +210 -31
- package/dist/Chips/ChipStyles.js.map +1 -1
- package/dist/Chips/ChoiceChips.cjs +1 -1
- package/dist/Chips/ChoiceChips.cjs.map +1 -1
- package/dist/Chips/ChoiceChips.js +1 -1
- package/dist/Chips/ChoiceChips.js.map +1 -1
- package/dist/Chips/FilterChip.cjs +8 -1
- package/dist/Chips/FilterChip.cjs.map +1 -1
- package/dist/Chips/FilterChip.js +8 -1
- package/dist/Chips/FilterChip.js.map +1 -1
- package/dist/Chips/InputChip.cjs +14 -0
- package/dist/Chips/InputChip.cjs.map +1 -1
- package/dist/Chips/InputChip.js +14 -0
- package/dist/Chips/InputChip.js.map +1 -1
- package/dist/Chips/__tests__/ActionChip.test.tsx +94 -0
- package/dist/Chips/__tests__/ChoiceChips.test.tsx +79 -0
- package/dist/Chips/__tests__/FilterChip.test.tsx +95 -0
- package/dist/Chips/__tests__/InputChip.test.tsx +155 -0
- package/dist/ChipsInput/ChipInputField.cjs +8 -2
- package/dist/ChipsInput/ChipInputField.cjs.map +1 -1
- package/dist/ChipsInput/ChipInputField.js +8 -2
- package/dist/ChipsInput/ChipInputField.js.map +1 -1
- package/dist/ChipsInput/__tests__/ChipDropdownInput.test.tsx +100 -0
- package/dist/ChipsInput/__tests__/ChipInputFields.test.tsx +155 -0
- package/dist/Dropdown/DropdownContent.cjs +2 -2
- package/dist/Dropdown/DropdownContent.cjs.map +1 -1
- package/dist/Dropdown/DropdownContent.js +2 -2
- package/dist/Dropdown/DropdownContent.js.map +1 -1
- package/dist/Dropdown/__tests__/DropdownFilter.test.tsx +39 -0
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.cjs +0 -1
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.cjs.map +1 -1
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.js +0 -1
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.js.map +1 -1
- package/dist/Footer/Components/FooterTop.cjs +3 -0
- package/dist/Footer/Components/FooterTop.cjs.map +1 -1
- package/dist/Footer/Components/FooterTop.js +3 -0
- package/dist/Footer/Components/FooterTop.js.map +1 -1
- package/dist/Footer/__tests__/Footer.test.tsx +182 -0
- package/dist/GlobalNavigationBar/Logo.cjs +2 -1
- package/dist/GlobalNavigationBar/Logo.cjs.map +1 -1
- package/dist/GlobalNavigationBar/Logo.js +2 -1
- package/dist/GlobalNavigationBar/Logo.js.map +1 -1
- package/dist/GlobalNavigationBar/__tests__/Logo.test.tsx +39 -0
- package/dist/GlobalNavigationBar/desktop/MainMenu.cjs +10 -1
- package/dist/GlobalNavigationBar/desktop/MainMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/MainMenu.js +10 -1
- package/dist/GlobalNavigationBar/desktop/MainMenu.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/RightSideNav.cjs +5 -4
- package/dist/GlobalNavigationBar/desktop/RightSideNav.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/RightSideNav.js +6 -5
- package/dist/GlobalNavigationBar/desktop/RightSideNav.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/UserMenu.cjs +1 -1
- package/dist/GlobalNavigationBar/desktop/UserMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/UserMenu.js +2 -2
- package/dist/GlobalNavigationBar/desktop/UserMenu.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/__tests__/DesktopActions.test.tsx +108 -0
- package/dist/GlobalNavigationBar/desktop/__tests__/ExtendedMainMenu.test.tsx +28 -0
- package/dist/GlobalNavigationBar/desktop/__tests__/MainMenu.test.tsx +55 -0
- package/dist/GlobalNavigationBar/desktop/__tests__/RightSideNav.test.tsx +45 -0
- package/dist/GlobalNavigationBar/desktop/__tests__/UserMenu.test.tsx +125 -0
- package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js +2 -2
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js.map +1 -1
- package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenu.test.tsx +317 -0
- package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenuContent.test.tsx +294 -0
- package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenuHeader.test.tsx +195 -0
- package/dist/GlobalNavigationBar/types.cjs.map +1 -1
- package/dist/GlobalNavigationBar/types.d.ts +2 -2
- package/dist/GlobalNavigationBar/types.js.map +1 -1
- package/dist/HyperLink/HyperLink.cjs +18 -2
- package/dist/HyperLink/HyperLink.cjs.map +1 -1
- package/dist/HyperLink/HyperLink.d.ts +2 -0
- package/dist/HyperLink/HyperLink.js +18 -2
- package/dist/HyperLink/HyperLink.js.map +1 -1
- package/dist/HyperLink/styling.cjs +4 -0
- package/dist/HyperLink/styling.cjs.map +1 -1
- package/dist/HyperLink/styling.js +4 -0
- package/dist/HyperLink/styling.js.map +1 -1
- package/dist/InputFields/DatepickerField.cjs +21 -5
- package/dist/InputFields/DatepickerField.cjs.map +1 -1
- package/dist/InputFields/DatepickerField.d.ts +1 -1
- package/dist/InputFields/DatepickerField.js +21 -5
- package/dist/InputFields/DatepickerField.js.map +1 -1
- package/dist/InputFields/NumberField.cjs +4 -0
- package/dist/InputFields/NumberField.cjs.map +1 -1
- package/dist/InputFields/NumberField.js +4 -0
- package/dist/InputFields/NumberField.js.map +1 -1
- package/dist/InputFields/RadioButton.cjs +2 -2
- package/dist/InputFields/RadioButton.cjs.map +1 -1
- package/dist/InputFields/RadioButton.d.ts +4 -4
- package/dist/InputFields/RadioButton.js +2 -2
- package/dist/InputFields/RadioButton.js.map +1 -1
- package/dist/InputFields/TextField.cjs +2 -5
- package/dist/InputFields/TextField.cjs.map +1 -1
- package/dist/InputFields/TextField.d.ts +0 -8
- package/dist/InputFields/TextField.js +2 -5
- package/dist/InputFields/TextField.js.map +1 -1
- package/dist/InputFields/__tests__/NumberField.test.tsx +67 -0
- package/dist/InputFields/__tests__/NumberInput.test.tsx +68 -0
- package/dist/InputFields/__tests__/QuickSearch.test.tsx +42 -0
- package/dist/InputFields/components/SearchBarInput.cjs +5 -0
- package/dist/InputFields/components/SearchBarInput.cjs.map +1 -1
- package/dist/InputFields/components/SearchBarInput.js +5 -0
- package/dist/InputFields/components/SearchBarInput.js.map +1 -1
- package/dist/InputFields/styling.cjs +1 -4
- package/dist/InputFields/styling.cjs.map +1 -1
- package/dist/InputFields/styling.d.ts +0 -1
- package/dist/InputFields/styling.js +1 -4
- package/dist/InputFields/styling.js.map +1 -1
- package/dist/LinearProgress/__tests__/LinearProgress.test.tsx +25 -0
- package/dist/List/__tests__/ListRow.test.tsx +18 -0
- package/dist/LoadingPage/__tests__/GlobalLoadingPage.test.tsx +23 -0
- package/dist/MiniProductCard/MiniProductCard.cjs +15 -1
- package/dist/MiniProductCard/MiniProductCard.cjs.map +1 -1
- package/dist/MiniProductCard/MiniProductCard.d.ts +1 -0
- package/dist/MiniProductCard/MiniProductCard.js +15 -1
- package/dist/MiniProductCard/MiniProductCard.js.map +1 -1
- package/dist/Modals/ModalContainer.cjs +102 -83
- package/dist/Modals/ModalContainer.cjs.map +1 -1
- package/dist/Modals/ModalContainer.d.ts +20 -1
- package/dist/Modals/ModalContainer.js +103 -84
- package/dist/Modals/ModalContainer.js.map +1 -1
- package/dist/Modals/ModalContent.cjs +7 -3
- package/dist/Modals/ModalContent.cjs.map +1 -1
- package/dist/Modals/ModalContent.js +8 -4
- package/dist/Modals/ModalContent.js.map +1 -1
- package/dist/Modals/ModalDialog.cjs +2 -2
- package/dist/Modals/ModalDialog.cjs.map +1 -1
- package/dist/Modals/ModalDialog.js +3 -3
- package/dist/Modals/ModalDialog.js.map +1 -1
- package/dist/Modals/ModalStyles.cjs +12 -0
- package/dist/Modals/ModalStyles.cjs.map +1 -1
- package/dist/Modals/ModalStyles.js +12 -0
- package/dist/Modals/ModalStyles.js.map +1 -1
- package/dist/Modals/ModalTypes.cjs.map +1 -1
- package/dist/Modals/ModalTypes.d.ts +3 -3
- package/dist/Modals/ModalTypes.js.map +1 -1
- package/dist/Modals/__tests__/Modal.test.tsx +169 -0
- package/dist/Modals/__tests__/ModalContainer.test.tsx +77 -0
- package/dist/Modals/__tests__/ModalContent.test.tsx +126 -0
- package/dist/NavItem/NavItem.cjs +7 -1
- package/dist/NavItem/NavItem.cjs.map +1 -1
- package/dist/NavItem/NavItem.js +7 -1
- package/dist/NavItem/NavItem.js.map +1 -1
- package/dist/NavItem/__tests__/NavItem.test.ts +6 -0
- package/dist/Navigation/NavigationProvider.cjs.map +1 -1
- package/dist/Navigation/NavigationProvider.d.ts +3 -0
- package/dist/Navigation/NavigationProvider.js.map +1 -1
- package/dist/NotificationDot/__tests__/NotificationDot.test.tsx +33 -0
- package/dist/Paginator/Paginator.cjs +18 -14
- package/dist/Paginator/Paginator.cjs.map +1 -1
- package/dist/Paginator/Paginator.d.ts +1 -5
- package/dist/Paginator/Paginator.js +18 -14
- package/dist/Paginator/Paginator.js.map +1 -1
- package/dist/Paginator/__tests__/Paginator.test.tsx +33 -0
- package/dist/Popover/Popover.cjs +1 -1
- package/dist/Popover/Popover.cjs.map +1 -1
- package/dist/Popover/Popover.js +2 -2
- package/dist/Popover/Popover.js.map +1 -1
- package/dist/Popover/__tests__/Popover.test.tsx +64 -0
- package/dist/ProfileButton/__tests__/ProfileButton.test.tsx +31 -0
- package/dist/QuizButton/__tests__/QuizButton.test.tsx +53 -0
- package/dist/SegmentControl/__tests__/SegmentControl.test.tsx +145 -0
- package/dist/SideMenu/SideMenuFooter.cjs +1 -1
- package/dist/SideMenu/SideMenuFooter.cjs.map +1 -1
- package/dist/SideMenu/SideMenuFooter.js +2 -2
- package/dist/SideMenu/SideMenuFooter.js.map +1 -1
- package/dist/SideMenu/__tests__/SideMenu.test.tsx +99 -0
- package/dist/SideMenu/types.cjs.map +1 -1
- package/dist/SideMenu/types.d.ts +2 -2
- package/dist/SideMenu/types.js.map +1 -1
- package/dist/Switcher/__tests__/SwitcherMenuItem.tsx +14 -0
- package/dist/Table/TableBody.cjs +1 -1
- package/dist/Table/TableBody.cjs.map +1 -1
- package/dist/Table/TableBody.js +2 -2
- package/dist/Table/TableBody.js.map +1 -1
- package/dist/Table/TableStyles.cjs +4 -1
- package/dist/Table/TableStyles.cjs.map +1 -1
- package/dist/Table/TableStyles.js +4 -1
- package/dist/Table/TableStyles.js.map +1 -1
- package/dist/Table/TableTypes.cjs.map +1 -1
- package/dist/Table/TableTypes.d.ts +2 -2
- package/dist/Table/TableTypes.js.map +1 -1
- package/dist/Table/__tests__/Table.test.tsx +499 -0
- package/dist/Tabs/VerticalTabs.cjs +1 -0
- package/dist/Tabs/VerticalTabs.cjs.map +1 -1
- package/dist/Tabs/VerticalTabs.js +1 -0
- package/dist/Tabs/VerticalTabs.js.map +1 -1
- package/dist/Tabs/__tests__/HorizontalTabs.test.tsx +95 -0
- package/dist/Tabs/__tests__/TabLink.test.tsx +40 -0
- package/dist/Tabs/__tests__/Tablist.test.tsx +37 -0
- package/dist/Tag/Tag.cjs +48 -12
- package/dist/Tag/Tag.cjs.map +1 -1
- package/dist/Tag/Tag.js +48 -12
- package/dist/Tag/Tag.js.map +1 -1
- package/dist/Tag/__tests__/Tag.test.tsx +86 -0
- package/dist/Tile/TileCommonItems.cjs +1 -1
- package/dist/Tile/TileCommonItems.cjs.map +1 -1
- package/dist/Tile/TileCommonItems.js +2 -2
- package/dist/Tile/TileCommonItems.js.map +1 -1
- package/dist/Tile/TileTypes.cjs.map +1 -1
- package/dist/Tile/TileTypes.d.ts +2 -2
- package/dist/Tile/TileTypes.js.map +1 -1
- package/dist/Toasters/Toast.cjs +1 -2
- package/dist/Toasters/Toast.cjs.map +1 -1
- package/dist/Toasters/Toast.js +2 -3
- package/dist/Toasters/Toast.js.map +1 -1
- package/dist/Toasters/__tests__/Toast.test.tsx +74 -0
- package/dist/Toggles/TogglerStyles.cjs +171 -15
- package/dist/Toggles/TogglerStyles.cjs.map +1 -1
- package/dist/Toggles/TogglerStyles.js +171 -15
- package/dist/Toggles/TogglerStyles.js.map +1 -1
- package/dist/Toggles/__tests__/ToggleButton.test.tsx +53 -0
- package/dist/Toggles/__tests__/ToggleSwitch.test.tsx +87 -0
- package/dist/Tooltips/__tests__/TooltipWrapper.test.tsx +16 -0
- package/dist/common/NavigationHelper.cjs +0 -28
- package/dist/common/NavigationHelper.cjs.map +1 -1
- package/dist/common/NavigationHelper.d.ts +0 -4
- package/dist/common/NavigationHelper.js +1 -22
- package/dist/common/NavigationHelper.js.map +1 -1
- package/dist/styles/colors.cjs +6 -0
- package/dist/styles/colors.cjs.map +1 -1
- package/dist/styles/colors.d.ts +6 -0
- package/dist/styles/colors.js +6 -0
- package/dist/styles/colors.js.map +1 -1
- package/dist/styles/design-tokens/dark/tokens.css +481 -0
- package/dist/styles/design-tokens/light/tokens.css +481 -0
- package/dist/styles/design-tokens/rqi_dark/tokens.css +481 -0
- package/dist/styles/design-tokens/rqi_light/tokens.css +481 -0
- package/dist/styles/global.cjs +4 -4
- package/dist/styles/global.cjs.map +1 -1
- package/dist/styles/global.js +4 -4
- package/dist/styles/global.js.map +1 -1
- package/dist/styles/react-datepicker.css +766 -0
- package/dist/styles/typography.cjs +4 -1
- package/dist/styles/typography.cjs.map +1 -1
- package/dist/styles/typography.js +4 -1
- package/dist/styles/typography.js.map +1 -1
- package/dist/test-utils.cjs +7 -1
- package/dist/test-utils.cjs.map +1 -1
- package/dist/test-utils.js +7 -1
- package/dist/test-utils.js.map +1 -1
- package/package.json +11 -6
- package/dist/Button/Button.cjs.map +0 -1
- package/dist/Button/Button.d.ts +0 -70
- package/dist/Button/Button.js.map +0 -1
- package/dist/Card/VerticalCard/Card.cjs.map +0 -1
- package/dist/Card/VerticalCard/Card.d.ts +0 -24
- package/dist/Card/VerticalCard/Card.js.map +0 -1
- package/dist/Card/VerticalCard/CardBottomSection.cjs.map +0 -1
- package/dist/Card/VerticalCard/CardBottomSection.d.ts +0 -49
- package/dist/Card/VerticalCard/CardBottomSection.js.map +0 -1
- package/dist/Card/VerticalCard/CardMiddleSection.cjs.map +0 -1
- package/dist/Card/VerticalCard/CardMiddleSection.d.ts +0 -37
- package/dist/Card/VerticalCard/CardMiddleSection.js.map +0 -1
- package/dist/Card/VerticalCard/CardTopSection.cjs.map +0 -1
- package/dist/Card/VerticalCard/CardTopSection.js.map +0 -1
- package/dist/GlobalNavigationBar/__tests__/GlobalNavigationBar.tests.d.ts +0 -1
- package/dist/GlobalNavigationBar/__tests__/Logo.tests.d.ts +0 -1
- package/dist/List/__tests__/ListRow.tests.d.ts +0 -1
- package/dist/Tabs/__tests__/TabLink.tests.d.ts +0 -1
- package/dist/Tabs/__tests__/Tablist.tests.d.ts +0 -2
- package/dist/common/Link.cjs +0 -45
- package/dist/common/Link.cjs.map +0 -1
- package/dist/common/Link.d.ts +0 -9
- package/dist/common/Link.js +0 -37
- package/dist/common/Link.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextButton.js","names":["React","styled","useTheme","LoadingIndicator","ComponentLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","focusStyles","invertedFocusStyles","Size","defaultOnMouseDownHandler","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","getBorderRadius","flatEdge","radius","TextButtonContentContainer","div","TextButtonBaseStyled","button","TextButtonPrimaryStyled","props","$size","Large","Bold","generateToken","componentType","isOnFill","defaultVariant","theme","Small","$flatEdge","$width","Medium","$iconOnly","state","$invertFocus","undefined","TextButtonSecondaryStyled","TextButtonTertiaryStyled","TextButtonPositiveStyled","getColor","TextButtonDestructiveStyled","TextButtonSecondaryDestructiveStyled","TextButton","forwardRef","_ref","ref","children","variant","type","size","invertFocus","width","testId","disabled","icon","iconPosition","_objectWithoutProperties","_excluded","loading","renderProps","_excluded2","renderIcon","className","renderContent","TextButtonStyled","_objectSpread","onMouseDown","propTypes","_pt","oneOf","bool","oneOfType","string","node"],"sources":["../../src/Button/TextButton.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled, { css, useTheme } from 'styled-components';\r\nimport { LoadingIndicator } from '../LoadingIndicator';\r\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles';\r\nimport { COLORS, focusStyles, invertedFocusStyles } from '../styles';\r\nimport { Size, Testable } from '../types';\r\nimport { defaultOnMouseDownHandler } from '../common';\r\n\r\nconst getBorderRadius = (flatEdge: string | undefined, radius: number) => {\r\n switch (flatEdge) {\r\n case 'left':\r\n return `0px ${radius}px ${radius}px 0px`;\r\n\r\n case 'right':\r\n return `${radius}px 0px 0px ${radius}px`;\r\n\r\n case 'none':\r\n default:\r\n return `${radius}px`;\r\n }\r\n};\r\n\r\nexport const TextButtonContentContainer = styled.div`\r\n min-width: 64px;\r\n`;\r\n\r\nconst TextButtonBaseStyled = styled.button<{$iconOnly: boolean; $size: Size; $flatEdge: string | undefined; $width: string; $invertFocus: boolean | undefined; }>``;\r\n\r\nexport const TextButtonPrimaryStyled = styled(TextButtonBaseStyled)`\r\n border: none;\r\n background-color: transparent;\r\n cursor: pointer;\r\n padding: 0;\r\n margin: 0;\r\n position: relative;\r\n box-sizing: border-box; \r\n &.loading-state {\r\n cursor: wait;\r\n }\r\n ${TextButtonContentContainer} {\r\n ${(props) =>\r\n props.$size === Size.Large\r\n ? ComponentLStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', isOnFill: true, defaultVariant: 'primary' }, props.theme))\r\n : props.$size === Size.Small\r\n ? ComponentSStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', isOnFill: true, defaultVariant: 'primary' }, props.theme))\r\n : ComponentMStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', isOnFill: true, defaultVariant: 'primary' }, props.theme))};\r\n\r\n background-color: ${(props) => COLORS.generateToken({ componentType: 'bg-fill', defaultVariant: 'primary' }, props.theme)};\r\n border-radius: ${(props) => getBorderRadius(props.$flatEdge, 8)};\r\n\r\n width: ${(props) => props.$width};\r\n position: relative;\r\n\r\n min-height: ${(props) => (props.$size === Size.Large ? '56px' : props.$size === Size.Small ? '32px' : '40px')};\r\n\r\n box-sizing: border-box;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: ${(props) => (props.$size === Size.Large ? '14px 16px' : props.$size === Size.Small ? '6px 8px' : '8px 12px')};\r\n\r\n span.icon:not(.loading) {\r\n pointer-events: none;\r\n }\r\n\r\n span.loading {\r\n opacity: 0;\r\n }\r\n\r\n .icon {\r\n margin: ${(props) => (props.$size === Size.Medium ? props.$iconOnly ? '-2px -8px' : '' : (props.$size === Size.Small ? props.$iconOnly ? '-2px -6px' : '' : '' ))};\r\n width: ${(props) => (props.$size === Size.Large ? '28px' : props.$size === Size.Small ? '20px' : '24px')};\r\n height: ${(props) => (props.$size === Size.Large ? '28px' : props.$size === Size.Small ? '20px' : '24px')};\r\n svg {\r\n width: ${(props) => (props.$size === Size.Large ? '28px' : props.$size === Size.Small ? '20px' : '24px')} !important;\r\n height: ${(props) => (props.$size === Size.Large ? '28px' : props.$size === Size.Small ? '20px' : '24px')} !important;\r\n }\r\n }\r\n\r\n .label {\r\n margin: 0 4px;\r\n }\r\n\r\n div {\r\n position: absolute;\r\n width: 100%;\r\n svg {\r\n height: ${(props) => (props.$size === Size.Large ? '28px' : props.$size === Size.Small ? '20px' : '24px')};\r\n width: ${(props) => (props.$size === Size.Large ? '28px' : props.$size === Size.Small ? '20px' : '24px')};\r\n path {\r\n fill: ${(props) => COLORS.generateToken({ componentType: 'icon', isOnFill: true, defaultVariant: 'primary' }, props.theme)};\r\n }\r\n }\r\n }\r\n }\r\n &:hover > ${TextButtonContentContainer},\r\n &.hover-state > ${TextButtonContentContainer} {\r\n background-color: ${(props) => COLORS.generateToken({ componentType: 'bg-fill', state: 'hover', defaultVariant: 'primary' }, props.theme)};\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', isOnFill: true, defaultVariant: 'primary' }, props.theme)};\r\n }\r\n &:active > ${TextButtonContentContainer},\r\n &.active-state > ${TextButtonContentContainer} {\r\n background-color: ${(props) => COLORS.generateToken({ componentType: 'bg-fill', state: 'active', defaultVariant: 'primary' }, props.theme)};\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', isOnFill: true, defaultVariant: 'primary' }, props.theme)};\r\n }\r\n\r\n &:focus,\r\n &.focus-state {\r\n ${(props) => (props.$invertFocus || (props.$invertFocus === undefined) ? invertedFocusStyles : focusStyles)}\r\n }\r\n &:disabled,\r\n &.disabled-state {\r\n cursor: not-allowed;\r\n }\r\n &:disabled > ${TextButtonContentContainer},\r\n &.disabled-state > ${TextButtonContentContainer} {\r\n pointer-events: none;\r\n background-color: ${(props) => COLORS.generateToken({ componentType: 'bg-fill', state: 'disabled' }, props.theme)};\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', isOnFill: true, state: 'disabled' }, props.theme)};\r\n }\r\n`;\r\n\r\nexport const TextButtonSecondaryStyled = styled(TextButtonPrimaryStyled)`\r\n ${TextButtonContentContainer} {\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme)};\r\n background-color: transparent;\r\n div svg path {\r\n fill: ${(props) => COLORS.generateToken({ componentType: 'icon', defaultVariant: 'primary' }, props.theme)};\r\n }\r\n box-shadow: inset 0 0 0 2px ${(props) => COLORS.generateToken({ componentType: 'border', defaultVariant: 'primary' }, props.theme)};\r\n \r\n padding: ${(props) => (props.$size === Size.Large ? '12px 16px' : props.$size === Size.Small ? '4px 8px' : '6px 12px')};\r\n }\r\n\r\n &:hover > ${TextButtonContentContainer},\r\n &.hover-state > ${TextButtonContentContainer} {\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', state:'hover', defaultVariant: 'primary' }, props.theme)};\r\n box-shadow: inset 0 0 0 2px ${(props) => COLORS.generateToken({ componentType: 'border', state:'hover', defaultVariant: 'primary' }, props.theme)};\r\n \r\n background-color: transparent;\r\n div {\r\n svg {\r\n path {\r\n fill: ${(props) => COLORS.generateToken({ componentType: 'text', state:'hover', defaultVariant: 'primary' }, props.theme)};\r\n }\r\n }\r\n }\r\n }\r\n &:active > ${TextButtonContentContainer},\r\n &.active-state > ${TextButtonContentContainer} {\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', state:'active', defaultVariant: 'primary' }, props.theme)};\r\n box-shadow: inset 0 0 0 2px ${(props) => COLORS.generateToken({ componentType: 'border', state:'active', defaultVariant: 'primary' }, props.theme)};\r\n \r\n background-color: transparent;\r\n div {\r\n svg {\r\n path {\r\n fill: ${(props) => COLORS.generateToken({ componentType: 'text', state:'hover', defaultVariant: 'primary' }, props.theme)};\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:disabled > ${TextButtonContentContainer},\r\n &.disabled-state > ${TextButtonContentContainer} {\r\n background-color: transparent;\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', state:'disabled' }, props.theme)};\r\n box-shadow: inset 0 0 0 2px ${(props) => COLORS.generateToken({ componentType: 'border', state:'disabled' }, props.theme)};\r\n }\r\n`;\r\n\r\nexport const TextButtonTertiaryStyled = styled(TextButtonPrimaryStyled)`\r\n${TextButtonContentContainer} {\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme)};\r\n background-color: transparent;\r\n\r\n div svg path {\r\n fill: ${(props) => COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme)};\r\n }\r\n\r\n padding: ${(props) => (props.$size === Size.Large ? '12px 16px' : props.$size === Size.Small ? '4px 8px' : '6px 12px')};\r\n }\r\n\r\n &:hover > ${TextButtonContentContainer},\r\n &.hover-state > ${TextButtonContentContainer} {\r\n background-color: ${(props) => COLORS.generateToken({ componentType: 'bg-surface', state:'hover' }, props.theme)};\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme)};\r\n\r\n div {\r\n svg {\r\n path {\r\n fill: ${(props) => COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme)};\r\n }\r\n }\r\n }\r\n }\r\n &:active > ${TextButtonContentContainer},\r\n &.active-state > ${TextButtonContentContainer} {\r\n background-color: ${(props) => COLORS.generateToken({ componentType: 'bg-surface', state: 'active' }, props.theme)};\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme)};\r\n\r\n div {\r\n svg {\r\n path {\r\n fill: ${(props) => COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme)};\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:disabled > ${TextButtonContentContainer},\r\n &.disabled-state > ${TextButtonContentContainer} {\r\n background-color: transparent !important;\r\n color: ${props => COLORS.generateToken({ componentType: 'text', isOnFill:true, state:'disabled' }, props.theme)};\r\n border-color: transparent !important;\r\n }\r\n`;\r\n\r\nexport const TextButtonPositiveStyled = styled(TextButtonPrimaryStyled)`\r\n ${TextButtonContentContainer} {\r\n color: white;\r\n background-color: ${props => COLORS.getColor('positive_500', props.theme)};\r\n }\r\n &:hover > ${TextButtonContentContainer},\r\n &.hover-state > ${TextButtonContentContainer} {\r\n background-color: ${props => COLORS.getColor('positive_700', props.theme)};\r\n }\r\n &:active > ${TextButtonContentContainer},\r\n &.active-state > ${TextButtonContentContainer} {\r\n background-color: ${props => COLORS.getColor('positive_800', props.theme)};\r\n }\r\n\r\n &:disabled > ${TextButtonContentContainer},\r\n &.disabled-state > ${TextButtonContentContainer} {\r\n background-color: ${props => COLORS.getColor('neutral_100', props.theme)};\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)};\r\n }\r\n`;\r\n\r\nexport const TextButtonDestructiveStyled = styled(TextButtonPrimaryStyled)`\r\n${TextButtonContentContainer} {\r\n color: white;\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', defaultVariant: 'critical' }, props.theme)};\r\n }\r\n &:hover > ${TextButtonContentContainer},\r\n &.hover-state > ${TextButtonContentContainer} {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state:'hover', defaultVariant: 'critical' }, props.theme)};\r\n }\r\n &:active > ${TextButtonContentContainer},\r\n &.active-state > ${TextButtonContentContainer} {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state:'active', defaultVariant: 'critical' }, props.theme)};\r\n }\r\n\r\n &:disabled > ${TextButtonContentContainer},\r\n &.disabled-state > ${TextButtonContentContainer} {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'disabled' }, props.theme)};\r\n color: ${props => COLORS.generateToken({ componentType: 'text', isOnFill: true, state: 'disabled' }, props.theme)}; \r\n }\r\n`;\r\n\r\nexport const TextButtonSecondaryDestructiveStyled = styled(TextButtonPrimaryStyled)`\r\n ${TextButtonContentContainer} {\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', defaultVariant: 'critical' }, props.theme)};\r\n background-color: transparent;\r\n div svg path {\r\n fill: ${(props) => COLORS.generateToken({ componentType: 'icon', defaultVariant: 'critical' }, props.theme)};\r\n }\r\n box-shadow: inset 0 0 0 2px ${(props) => COLORS.generateToken({ componentType: 'border', defaultVariant: 'critical' }, props.theme)};\r\n \r\n padding: ${(props) => (props.$size === Size.Large ? '12px 16px' : props.$size === Size.Small ? '4px 8px' : '6px 12px')};\r\n }\r\n\r\n &:hover > ${TextButtonContentContainer},\r\n &.hover-state > ${TextButtonContentContainer} {\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', state:'hover', defaultVariant: 'critical' }, props.theme)};\r\n box-shadow: inset 0 0 0 2px ${(props) => COLORS.generateToken({ componentType: 'border', state:'hover', defaultVariant: 'critical' }, props.theme)};\r\n \r\n background-color: transparent;\r\n div {\r\n svg {\r\n path {\r\n fill: ${(props) => COLORS.generateToken({ componentType: 'text', state:'hover', defaultVariant: 'critical' }, props.theme)};\r\n }\r\n }\r\n }\r\n }\r\n &:active > ${TextButtonContentContainer},\r\n &.active-state > ${TextButtonContentContainer} {\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', state:'active', defaultVariant: 'critical' }, props.theme)};\r\n box-shadow: inset 0 0 0 2px ${(props) => COLORS.generateToken({ componentType: 'border', state:'active', defaultVariant: 'critical' }, props.theme)};\r\n \r\n background-color: transparent;\r\n div {\r\n svg {\r\n path {\r\n fill: ${(props) => COLORS.generateToken({ componentType: 'text', state:'hover', defaultVariant: 'critical' }, props.theme)};\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:disabled > ${TextButtonContentContainer},\r\n &.disabled-state > ${TextButtonContentContainer} {\r\n background-color: transparent;\r\n color: ${(props) => COLORS.generateToken({ componentType: 'text', state:'disabled' }, props.theme)};\r\n box-shadow: inset 0 0 0 2px ${(props) => COLORS.generateToken({ componentType: 'border', state:'disabled' }, props.theme)};\r\n }\r\n`;\r\n\r\n\r\nexport interface TextButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n /** Look and feel variant of the component. Defaults to 'primary'. */\r\n variant?: 'primary' | 'secondary' | 'tertiary' | 'positive' | 'destructive' | 'secondaryDestructive';\r\n /** Can be used in order to remove rounded corners on right or left edge of the button. Used by 'DualFunctionButton'. Defaults to 'undefined' */\r\n flatEdge?: 'right' | 'left' | 'none' | undefined;\r\n /** Size of the component. Small, Medium or Large. Defaults to 'medium' */\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n /** Allows using inverted colors for outlining focus rect. Shown when component focused by keyboard. */\r\n invertFocus?: boolean;\r\n /** Can be used to set custom value for width style. Value is set for 'ButtonContent' container. */\r\n width?: 'auto' | string;\r\n /** If set, then 'opacity' of children container will be set to 0, and loading indicator will be shown. */\r\n loading?: boolean;\r\n /** TestId. Will be set to the top level button component. */\r\n testId?: string;\r\n /** Icon that will be shown on the left of the children. */\r\n icon?: React.ReactNode;\r\n /** Icon position in the button. Defaults to 'left' */\r\n iconPosition?: 'left' | 'right';\r\n}\r\n\r\n/**\r\n * TextButton component\r\n */\r\nconst TextButton = React.forwardRef<HTMLButtonElement, TextButtonProps>(\r\n ({ children = '', variant = 'primary', type = 'button', size = Size.Medium, invertFocus, width: width = 'auto', testId, disabled, flatEdge, icon, iconPosition = 'left', ...props }, ref) => {\r\n // Let's filter out properties that we don't need to render.\r\n const { loading, ...renderProps } = props;\r\n\r\n const theme = useTheme();\r\n const renderIcon = () => (\r\n <><span className={(children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon')}>{icon}</span></>\r\n )\r\n\r\n const renderContent = () => (\r\n <>\r\n {icon && iconPosition == 'left' && renderIcon()}\r\n {children && <span className={loading ? 'label loading' : 'label'}>{children}</span>}\r\n {icon && iconPosition == 'right' && renderIcon()}\r\n {loading && <LoadingIndicator />}\r\n </>\r\n );\r\n\r\n let TextButtonStyled = TextButtonPrimaryStyled;\r\n switch (variant) {\r\n case 'secondary':\r\n TextButtonStyled = TextButtonSecondaryStyled;\r\n break;\r\n case 'tertiary':\r\n TextButtonStyled = TextButtonTertiaryStyled;\r\n break;\r\n case 'positive':\r\n TextButtonStyled = TextButtonPositiveStyled;\r\n break;\r\n case 'destructive':\r\n TextButtonStyled = TextButtonDestructiveStyled;\r\n break;\r\n case 'secondaryDestructive':\r\n TextButtonStyled = TextButtonSecondaryDestructiveStyled;\r\n break;\r\n }\r\n\r\n return (\r\n <TextButtonStyled\r\n {...renderProps}\r\n $size={size}\r\n $invertFocus={invertFocus} \r\n ref={ref}\r\n disabled={disabled}\r\n $iconOnly={!children}\r\n type={type}\r\n $flatEdge={flatEdge}\r\n $width={width}\r\n data-testid={testId}\r\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\r\n onMouseDown={defaultOnMouseDownHandler}>\r\n <TextButtonContentContainer>{renderContent()}</TextButtonContentContainer>\r\n </TextButtonStyled>\r\n );\r\n },\r\n);\r\n\r\nexport default TextButton;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {act, render} from '../../test-utils';
|
|
3
|
+
import {BackButton} from '../index';
|
|
4
|
+
import {Size} from '../../types'
|
|
5
|
+
import 'jest-styled-components';
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
describe('<BackButton />', () => {
|
|
11
|
+
it('should render back button', function () {
|
|
12
|
+
const {queryByText} = render(<BackButton size={Size.Small}>Back Button</BackButton>);
|
|
13
|
+
expect(queryByText('Back Button')).toBeDefined();
|
|
14
|
+
});
|
|
15
|
+
it('should call action on click', function () {
|
|
16
|
+
const clickMock = jest.fn(() => {});
|
|
17
|
+
const component = render(<BackButton size={Size.Small} onClick={clickMock}>Back Button</BackButton>);
|
|
18
|
+
act(() => {
|
|
19
|
+
component.getByText('Back Button').click();
|
|
20
|
+
});
|
|
21
|
+
expect(clickMock).toBeCalled();
|
|
22
|
+
});
|
|
23
|
+
it('should not call action on click when disabled', function () {
|
|
24
|
+
const clickMock = jest.fn(() => {});
|
|
25
|
+
const component = render(<BackButton size={Size.Small} disabled={true} onClick={clickMock}>Back Button</BackButton>);
|
|
26
|
+
act(() => {
|
|
27
|
+
component.getByText('Back Button').click();
|
|
28
|
+
});
|
|
29
|
+
expect(clickMock).toBeCalledTimes(0);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '../../test-utils';
|
|
3
|
+
import { TextButton } from '../index';
|
|
4
|
+
import 'jest-styled-components';
|
|
5
|
+
import { COLORS } from '../../styles';
|
|
6
|
+
import { Size } from '../..';
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
describe('<TextButton />', () => {
|
|
12
|
+
it('Renders primary button', async () => {
|
|
13
|
+
const { queryByText, getByTestId } = render(
|
|
14
|
+
<TextButton variant="primary" testId="TestButton" size={Size.Large}>
|
|
15
|
+
TestButton
|
|
16
|
+
</TextButton>,
|
|
17
|
+
);
|
|
18
|
+
expect(queryByText('TestButton')).toBeDefined();
|
|
19
|
+
/*expect(getByTestId('TestButton')).toHaveStyleRule('background-color', COLORS.primary);
|
|
20
|
+
expect(getByTestId('TestButton')).toHaveStyleRule('cursor', 'pointer');
|
|
21
|
+
expect(getByTestId('TestButton')).toHaveStyleRule('color', 'white');*/
|
|
22
|
+
});
|
|
23
|
+
it('Renders secondary button', async () => {
|
|
24
|
+
const { queryByText, getByTestId } = render(
|
|
25
|
+
<TextButton variant="secondary" testId="TestButton">
|
|
26
|
+
TestButton
|
|
27
|
+
</TextButton>,
|
|
28
|
+
);
|
|
29
|
+
expect(queryByText('TestButton')).toBeDefined();
|
|
30
|
+
/*expect(getByTestId('TestButton')).toHaveStyleRule('color', COLORS.primary);
|
|
31
|
+
expect(getByTestId('TestButton')).toHaveStyleRule('border-color', COLORS.primary);
|
|
32
|
+
expect(getByTestId('TestButton')).toHaveStyleRule('background-color', 'white');*/
|
|
33
|
+
});
|
|
34
|
+
it('Renders tertiary button', async () => {
|
|
35
|
+
const { queryByText, getByTestId } = render(
|
|
36
|
+
<TextButton variant="tertiary" testId="TestButton">
|
|
37
|
+
TestButton
|
|
38
|
+
</TextButton>,
|
|
39
|
+
);
|
|
40
|
+
expect(queryByText('TestButton')).toBeDefined();
|
|
41
|
+
/*expect(getByTestId('TestButton')).toHaveStyleRule('background-color', 'white');
|
|
42
|
+
expect(getByTestId('TestButton')).toHaveStyleRule('border-color', COLORS.neutral_100);
|
|
43
|
+
expect(getByTestId('TestButton')).toHaveStyleRule('color', COLORS.primary);*/
|
|
44
|
+
});
|
|
45
|
+
});
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { fireEvent, render } from '../../test-utils';
|
|
3
|
+
import { DualFunctionButton } from '../index';
|
|
4
|
+
import '@testing-library/jest-dom';
|
|
5
|
+
import { Size, SystemIcons } from '../..';
|
|
6
|
+
import 'jest-styled-components';
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
describe('<DualButton />', () => {
|
|
12
|
+
it('Renders checkbox button', async () => {
|
|
13
|
+
const dropdownItems = [
|
|
14
|
+
{ value: 'Item 1', icon: undefined },
|
|
15
|
+
{ value: 'Item 2', icon: undefined, disabled: true },
|
|
16
|
+
];
|
|
17
|
+
const { getByText, container, getByTestId } = render(
|
|
18
|
+
<DualFunctionButton
|
|
19
|
+
dropdownCustomizationProps={{
|
|
20
|
+
items: dropdownItems,
|
|
21
|
+
itemsType: 'checkbox',
|
|
22
|
+
multiSelect: true,
|
|
23
|
+
pinTopItem: true,
|
|
24
|
+
actionLabel: 'Custom Action',
|
|
25
|
+
action: () => {},
|
|
26
|
+
onValueUpdate: (vals) => {},
|
|
27
|
+
scrollable: true,
|
|
28
|
+
}}
|
|
29
|
+
id="test"
|
|
30
|
+
size={Size.Small}
|
|
31
|
+
variant="primary">
|
|
32
|
+
Dual button checkbox test
|
|
33
|
+
</DualFunctionButton>,
|
|
34
|
+
);
|
|
35
|
+
//expect button name defined
|
|
36
|
+
expect(getByText('Dual button checkbox test')).toBeTruthy();
|
|
37
|
+
//expect all items displayed
|
|
38
|
+
expect(getByText('Item 1')).toBeTruthy();
|
|
39
|
+
expect(getByText('Item 2')).toBeTruthy();
|
|
40
|
+
|
|
41
|
+
//check that checkbox controls are displayed
|
|
42
|
+
expect(getByText('Item 1').closest('label')).toHaveClass('checkbox-label');
|
|
43
|
+
expect(getByText('Item 2').closest('label')).toHaveClass('checkbox-label');
|
|
44
|
+
|
|
45
|
+
//expect item 2 to be disabled
|
|
46
|
+
expect(getByText('Item 2').closest('div')).toHaveAttribute('disabled');
|
|
47
|
+
|
|
48
|
+
//expect the toggle button to be defined
|
|
49
|
+
expect(getByTestId('options_toggleBtn')).toBeTruthy();
|
|
50
|
+
|
|
51
|
+
//expect select all displayed as pin top item is set as "true"
|
|
52
|
+
expect(document.body.querySelector('[id*="checkbox_selectall"]')).toBeTruthy();
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it('Renders normal dual button', async () => {
|
|
56
|
+
const dropdownItems = [
|
|
57
|
+
{ value: 'Item 1', icon: undefined },
|
|
58
|
+
{ value: 'Item 2', icon: undefined },
|
|
59
|
+
];
|
|
60
|
+
const { getByText, container, getByTestId } = render(
|
|
61
|
+
<DualFunctionButton
|
|
62
|
+
dropdownCustomizationProps={{
|
|
63
|
+
items: dropdownItems,
|
|
64
|
+
itemsType: 'normal',
|
|
65
|
+
multiSelect: true,
|
|
66
|
+
action: () => {},
|
|
67
|
+
onValueUpdate: (vals) => {},
|
|
68
|
+
scrollable: true,
|
|
69
|
+
}}
|
|
70
|
+
id="test"
|
|
71
|
+
size={Size.Small}
|
|
72
|
+
variant="primary">
|
|
73
|
+
Dual button test
|
|
74
|
+
</DualFunctionButton>,
|
|
75
|
+
);
|
|
76
|
+
//check that the dual button text defined
|
|
77
|
+
expect(getByText('Dual button test')).toBeTruthy();
|
|
78
|
+
expect(getByText('Item 1')).toBeTruthy();
|
|
79
|
+
expect(getByText('Item 2')).toBeTruthy();
|
|
80
|
+
//check that none of the items disabled
|
|
81
|
+
expect(getByText('Item 1').closest('div')).not.toHaveAttribute('disabled');
|
|
82
|
+
expect(getByText('Item 2').closest('div')).not.toHaveAttribute('disabled');
|
|
83
|
+
expect(getByTestId('options_toggleBtn')).toBeTruthy();
|
|
84
|
+
|
|
85
|
+
//two options available
|
|
86
|
+
expect(document.body.querySelectorAll('button[tabindex="-1"]')).toHaveLength(2);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it('Renders radio-button type dual button', async () => {
|
|
90
|
+
const dropdownItems = [
|
|
91
|
+
{ value: 'Item 1', icon: undefined, disabled: true },
|
|
92
|
+
{ value: 'Item 2', icon: undefined, disabled: true },
|
|
93
|
+
];
|
|
94
|
+
const { getByText, container, getByTestId } = render(
|
|
95
|
+
<DualFunctionButton
|
|
96
|
+
dropdownCustomizationProps={{
|
|
97
|
+
items: dropdownItems,
|
|
98
|
+
itemsType: 'radio',
|
|
99
|
+
multiSelect: true,
|
|
100
|
+
action: () => {},
|
|
101
|
+
onValueUpdate: (vals) => {},
|
|
102
|
+
scrollable: true,
|
|
103
|
+
}}
|
|
104
|
+
id="test"
|
|
105
|
+
size={Size.Small}
|
|
106
|
+
variant="primary">
|
|
107
|
+
Dual button test radio
|
|
108
|
+
</DualFunctionButton>,
|
|
109
|
+
);
|
|
110
|
+
//check that the dual button text defined
|
|
111
|
+
expect(getByText('Dual button test radio')).toBeTruthy();
|
|
112
|
+
expect(getByText('Item 1')).toBeTruthy();
|
|
113
|
+
expect(getByText('Item 2')).toBeTruthy();
|
|
114
|
+
|
|
115
|
+
//check that radio buttons displayed
|
|
116
|
+
expect(getByText('Item 1').closest('div')).toHaveClass('radio-button-label');
|
|
117
|
+
expect(getByText('Item 2').closest('div')).toHaveClass('radio-button-label');
|
|
118
|
+
});
|
|
119
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '../../test-utils';
|
|
3
|
+
import { TextButton } from '../index';
|
|
4
|
+
import 'jest-styled-components';
|
|
5
|
+
import { COLORS } from '../../styles';
|
|
6
|
+
import { Size } from '../..';
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
describe('<TextButton />', () => {
|
|
12
|
+
it('Renders primary button', async () => {
|
|
13
|
+
const { queryByText, getByTestId } = render(
|
|
14
|
+
<TextButton variant="primary" testId="TestButton" size={Size.Large}>
|
|
15
|
+
TestButton
|
|
16
|
+
</TextButton>,
|
|
17
|
+
);
|
|
18
|
+
expect(queryByText('TestButton')).toBeDefined();
|
|
19
|
+
/*expect(getByTestId('TestButton')).toHaveStyleRule('background-color', COLORS.primary);
|
|
20
|
+
expect(getByTestId('TestButton')).toHaveStyleRule('cursor', 'pointer');
|
|
21
|
+
expect(getByTestId('TestButton')).toHaveStyleRule('color', 'white');*/
|
|
22
|
+
});
|
|
23
|
+
it('Renders secondary button', async () => {
|
|
24
|
+
const { queryByText, getByTestId } = render(
|
|
25
|
+
<TextButton variant="secondary" testId="TestButton">
|
|
26
|
+
TestButton
|
|
27
|
+
</TextButton>,
|
|
28
|
+
);
|
|
29
|
+
expect(queryByText('TestButton')).toBeDefined();
|
|
30
|
+
/*expect(getByTestId('TestButton')).toHaveStyleRule('color', COLORS.primary);
|
|
31
|
+
expect(getByTestId('TestButton')).toHaveStyleRule('border-color', COLORS.primary);
|
|
32
|
+
expect(getByTestId('TestButton')).toHaveStyleRule('background-color', 'white');*/
|
|
33
|
+
});
|
|
34
|
+
it('Renders tertiary button', async () => {
|
|
35
|
+
const { queryByText, getByTestId } = render(
|
|
36
|
+
<TextButton variant="tertiary" testId="TestButton">
|
|
37
|
+
TestButton
|
|
38
|
+
</TextButton>,
|
|
39
|
+
);
|
|
40
|
+
expect(queryByText('TestButton')).toBeDefined();
|
|
41
|
+
/*expect(getByTestId('TestButton')).toHaveStyleRule('background-color', 'white');
|
|
42
|
+
expect(getByTestId('TestButton')).toHaveStyleRule('border-color', COLORS.neutral_100);
|
|
43
|
+
expect(getByTestId('TestButton')).toHaveStyleRule('color', COLORS.primary);*/
|
|
44
|
+
});
|
|
45
|
+
});
|
package/dist/Button/index.cjs
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
var _exportNames = {
|
|
7
7
|
IconButton: true,
|
|
8
|
-
|
|
8
|
+
TextButton: true,
|
|
9
9
|
BackButton: true,
|
|
10
10
|
DualFunctionButton: true
|
|
11
11
|
};
|
|
@@ -15,12 +15,6 @@ Object.defineProperty(exports, "BackButton", {
|
|
|
15
15
|
return _BackButton.default;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "Button", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function () {
|
|
21
|
-
return _Button.default;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
18
|
Object.defineProperty(exports, "DualFunctionButton", {
|
|
25
19
|
enumerable: true,
|
|
26
20
|
get: function () {
|
|
@@ -33,6 +27,12 @@ Object.defineProperty(exports, "IconButton", {
|
|
|
33
27
|
return _Iconbutton.default;
|
|
34
28
|
}
|
|
35
29
|
});
|
|
30
|
+
Object.defineProperty(exports, "TextButton", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _TextButton.default;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
36
|
var _Iconbutton = _interopRequireWildcard(require("./Iconbutton"));
|
|
37
37
|
Object.keys(_Iconbutton).forEach(function (key) {
|
|
38
38
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -45,15 +45,15 @@ Object.keys(_Iconbutton).forEach(function (key) {
|
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
47
|
});
|
|
48
|
-
var
|
|
49
|
-
Object.keys(
|
|
48
|
+
var _TextButton = _interopRequireWildcard(require("./TextButton"));
|
|
49
|
+
Object.keys(_TextButton).forEach(function (key) {
|
|
50
50
|
if (key === "default" || key === "__esModule") return;
|
|
51
51
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
52
|
-
if (key in exports && exports[key] ===
|
|
52
|
+
if (key in exports && exports[key] === _TextButton[key]) return;
|
|
53
53
|
Object.defineProperty(exports, key, {
|
|
54
54
|
enumerable: true,
|
|
55
55
|
get: function () {
|
|
56
|
-
return
|
|
56
|
+
return _TextButton[key];
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
59
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["_Iconbutton","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["_Iconbutton","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_TextButton","_BackButton","_DualFunctionButton","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set"],"sources":["../../src/Button/index.ts"],"sourcesContent":["export { default as IconButton } from './Iconbutton';\r\nexport * from './Iconbutton';\r\nexport { default as TextButton } from './TextButton';\r\nexport * from './TextButton';\r\nexport { default as BackButton } from './BackButton';\r\nexport * from './BackButton';\r\nexport { default as DualFunctionButton } from './DualFunctionButton';\r\nexport * from './DualFunctionButton';\r\n"],"mappings":"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","ignoreList":[]}
|
package/dist/Button/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { default as IconButton } from './Iconbutton';
|
|
2
2
|
export * from './Iconbutton';
|
|
3
|
-
export { default as
|
|
4
|
-
export * from './
|
|
3
|
+
export { default as TextButton } from './TextButton';
|
|
4
|
+
export * from './TextButton';
|
|
5
5
|
export { default as BackButton } from './BackButton';
|
|
6
6
|
export * from './BackButton';
|
|
7
7
|
export { default as DualFunctionButton } from './DualFunctionButton';
|
package/dist/Button/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { default as IconButton } from './Iconbutton';
|
|
2
2
|
export * from './Iconbutton';
|
|
3
|
-
export { default as
|
|
4
|
-
export * from './
|
|
3
|
+
export { default as TextButton } from './TextButton';
|
|
4
|
+
export * from './TextButton';
|
|
5
5
|
export { default as BackButton } from './BackButton';
|
|
6
6
|
export * from './BackButton';
|
|
7
7
|
export { default as DualFunctionButton } from './DualFunctionButton';
|
package/dist/Button/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","IconButton","
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","IconButton","TextButton","BackButton","DualFunctionButton"],"sources":["../../src/Button/index.ts"],"sourcesContent":["export { default as IconButton } from './Iconbutton';\r\nexport * from './Iconbutton';\r\nexport { default as TextButton } from './TextButton';\r\nexport * from './TextButton';\r\nexport { default as BackButton } from './BackButton';\r\nexport * from './BackButton';\r\nexport { default as DualFunctionButton } from './DualFunctionButton';\r\nexport * from './DualFunctionButton';\r\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,UAAU,QAAQ,cAAc;AACpD,cAAc,cAAc;AAC5B,SAASD,OAAO,IAAIE,UAAU,QAAQ,cAAc;AACpD,cAAc,cAAc;AAC5B,SAASF,OAAO,IAAIG,UAAU,QAAQ,cAAc;AACpD,cAAc,cAAc;AAC5B,SAASH,OAAO,IAAII,kBAAkB,QAAQ,sBAAsB;AACpE,cAAc,sBAAsB","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {act, render} from '../../../test-utils';
|
|
3
|
+
import {
|
|
4
|
+
HorizontalCard,
|
|
5
|
+
HorizontalCardDropdownButton,
|
|
6
|
+
HorizontalCardIconButton, HorizontalCardLinearProgression, HorizontalCardTag,
|
|
7
|
+
HorizontalCardToggleButton
|
|
8
|
+
} from '../index';
|
|
9
|
+
import {SystemIcons} from '../../../icons';
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
describe('HorizontalCard', () => {
|
|
14
|
+
const action = jest.fn();
|
|
15
|
+
|
|
16
|
+
const actions: (HorizontalCardIconButton | HorizontalCardToggleButton | HorizontalCardDropdownButton)[] = [
|
|
17
|
+
{componentType: 'icon', action: action, icon: <SystemIcons.Share/>},
|
|
18
|
+
{componentType: 'icon', action: action, icon: <SystemIcons.OpenNewWindow/>}
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
const tags: HorizontalCardTag[] = [{label: 'label 1'}, {label: 'label 2'}, {label: 'label 3'}];
|
|
22
|
+
|
|
23
|
+
const progress: HorizontalCardLinearProgression = {max: 100, value: 30};
|
|
24
|
+
|
|
25
|
+
beforeEach(() => {
|
|
26
|
+
action.mockReset();
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('should render title', async () => {
|
|
30
|
+
const {queryByText} = render(<HorizontalCard title={'title'}/>)
|
|
31
|
+
|
|
32
|
+
expect(queryByText('title')).toBeDefined()
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('should render tags', async () => {
|
|
36
|
+
|
|
37
|
+
const {queryByText} = render(<HorizontalCard title={'title'} tags={tags}/>)
|
|
38
|
+
|
|
39
|
+
expect(queryByText('label 1')).toBeDefined()
|
|
40
|
+
expect(queryByText('label 2')).toBeDefined()
|
|
41
|
+
expect(queryByText('label 3')).toBeDefined()
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('should render actions', async () => {
|
|
45
|
+
const {container} = render(<HorizontalCard title={'title'} actions={actions}/>)
|
|
46
|
+
|
|
47
|
+
expect(container.querySelectorAll('button')).toHaveLength(2)
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('should call action on component click', async () => {
|
|
51
|
+
const {container} = render(<HorizontalCard title={'title'} action={action}/>)
|
|
52
|
+
|
|
53
|
+
act(() => {
|
|
54
|
+
// @ts-ignore
|
|
55
|
+
container.querySelector('.clickable').click();
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
expect(action).toHaveBeenCalled()
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('should call action on button press', async () => {
|
|
62
|
+
const {container} = render(<HorizontalCard title={'title'} actions={actions}/>)
|
|
63
|
+
|
|
64
|
+
act(() => {
|
|
65
|
+
container.querySelectorAll('button').forEach(a => a.click());
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
expect(action).toHaveBeenCalledTimes(2)
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
});
|