@laerdal/life-react-components 6.0.0-dev.1.full → 6.0.0-dev.12.full
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Accordion/ContentAccordion.cjs +40 -11
- package/dist/Accordion/ContentAccordion.cjs.map +1 -1
- package/dist/Accordion/ContentAccordion.js +40 -11
- package/dist/Accordion/ContentAccordion.js.map +1 -1
- package/dist/Accordion/__tests__/AccordionMenu.test.tsx +42 -0
- package/dist/Accordion/__tests__/ContentAccordion.test.tsx +150 -0
- package/dist/Accordion/styles.cjs +51 -13
- package/dist/Accordion/styles.cjs.map +1 -1
- package/dist/Accordion/styles.js +51 -13
- package/dist/Accordion/styles.js.map +1 -1
- package/dist/AuthPage/__tests__/AuthPage.test.tsx +27 -0
- package/dist/Banners/Banner.cjs +38 -34
- package/dist/Banners/Banner.cjs.map +1 -1
- package/dist/Banners/Banner.d.ts +2 -3
- package/dist/Banners/Banner.js +38 -34
- package/dist/Banners/Banner.js.map +1 -1
- package/dist/Banners/__tests__/Banner.test.tsx +47 -0
- package/dist/Banners/__tests__/OverviewBanner.test.tsx +20 -0
- package/dist/Banners/styles.cjs +8 -16
- package/dist/Banners/styles.cjs.map +1 -1
- package/dist/Banners/styles.js +8 -16
- package/dist/Banners/styles.js.map +1 -1
- package/dist/Breadcrumb/Breadcrumb.cjs +8 -2
- package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
- package/dist/Breadcrumb/Breadcrumb.js +8 -2
- package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/Breadcrumb/__tests__/Breadcrumb.test.tsx +78 -0
- package/dist/Breadcrumb/styles.cjs +15 -4
- package/dist/Breadcrumb/styles.cjs.map +1 -1
- package/dist/Breadcrumb/styles.js +15 -4
- package/dist/Breadcrumb/styles.js.map +1 -1
- package/dist/Button/BackButton.cjs +27 -6
- package/dist/Button/BackButton.cjs.map +1 -1
- package/dist/Button/BackButton.js +27 -6
- package/dist/Button/BackButton.js.map +1 -1
- package/dist/Button/Button.cjs +179 -47
- package/dist/Button/Button.cjs.map +1 -1
- package/dist/Button/Button.d.ts +2 -0
- package/dist/Button/Button.js +179 -47
- package/dist/Button/Button.js.map +1 -1
- package/dist/Button/Iconbutton.cjs +83 -21
- package/dist/Button/Iconbutton.cjs.map +1 -1
- package/dist/Button/Iconbutton.js +83 -21
- package/dist/Button/Iconbutton.js.map +1 -1
- 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/Card/HorizontalCard/HorizontalCard.cjs +20 -5
- package/dist/Card/HorizontalCard/HorizontalCard.cjs.map +1 -1
- package/dist/Card/HorizontalCard/HorizontalCard.js +20 -5
- package/dist/Card/HorizontalCard/HorizontalCard.js.map +1 -1
- package/dist/Card/HorizontalCard/HorizontalCardBody.cjs +12 -3
- package/dist/Card/HorizontalCard/HorizontalCardBody.cjs.map +1 -1
- package/dist/Card/HorizontalCard/HorizontalCardBody.js +12 -3
- package/dist/Card/HorizontalCard/HorizontalCardBody.js.map +1 -1
- package/dist/Card/HorizontalCard/HorizontalCardThumbnail.cjs +8 -2
- package/dist/Card/HorizontalCard/HorizontalCardThumbnail.cjs.map +1 -1
- package/dist/Card/HorizontalCard/HorizontalCardThumbnail.js +8 -2
- package/dist/Card/HorizontalCard/HorizontalCardThumbnail.js.map +1 -1
- package/dist/Card/HorizontalCard/__tests__/HorizontalCard.test.tsx +71 -0
- package/dist/Card/HorizontalCard/__tests__/VerticalCard.test.tsx +124 -0
- package/dist/Card/VerticalCard/Card.cjs +20 -5
- package/dist/Card/VerticalCard/Card.cjs.map +1 -1
- package/dist/Card/VerticalCard/Card.js +20 -5
- package/dist/Card/VerticalCard/Card.js.map +1 -1
- package/dist/Card/VerticalCard/CardBottomSection.cjs +72 -19
- package/dist/Card/VerticalCard/CardBottomSection.cjs.map +1 -1
- package/dist/Card/VerticalCard/CardBottomSection.d.ts +8 -1
- package/dist/Card/VerticalCard/CardBottomSection.js +73 -20
- package/dist/Card/VerticalCard/CardBottomSection.js.map +1 -1
- package/dist/Card/VerticalCard/CardMiddleSection.cjs +19 -4
- package/dist/Card/VerticalCard/CardMiddleSection.cjs.map +1 -1
- package/dist/Card/VerticalCard/CardMiddleSection.js +19 -4
- package/dist/Card/VerticalCard/CardMiddleSection.js.map +1 -1
- package/dist/Card/VerticalCard/CardTopSection.cjs +9 -2
- package/dist/Card/VerticalCard/CardTopSection.cjs.map +1 -1
- package/dist/Card/VerticalCard/CardTopSection.js +9 -2
- package/dist/Card/VerticalCard/CardTopSection.js.map +1 -1
- package/dist/Card/__tests__/Card.test.tsx +146 -0
- package/dist/Chips/ChipStyles.cjs +4 -1
- package/dist/Chips/ChipStyles.cjs.map +1 -1
- package/dist/Chips/ChipStyles.js +4 -1
- package/dist/Chips/ChipStyles.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 +16 -4
- package/dist/ChipsInput/ChipInputField.cjs.map +1 -1
- package/dist/ChipsInput/ChipInputField.js +16 -4
- 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/BasicDropdown.cjs +12 -3
- package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
- package/dist/Dropdown/BasicDropdown.js +12 -3
- package/dist/Dropdown/BasicDropdown.js.map +1 -1
- package/dist/Dropdown/CommonStyling.cjs +172 -42
- package/dist/Dropdown/CommonStyling.cjs.map +1 -1
- package/dist/Dropdown/CommonStyling.js +172 -42
- package/dist/Dropdown/CommonStyling.js.map +1 -1
- package/dist/Dropdown/DropdownContent.cjs +36 -10
- package/dist/Dropdown/DropdownContent.cjs.map +1 -1
- package/dist/Dropdown/DropdownContent.js +36 -10
- package/dist/Dropdown/DropdownContent.js.map +1 -1
- package/dist/Dropdown/DropdownFilter.cjs +12 -3
- package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
- package/dist/Dropdown/DropdownFilter.js +12 -3
- package/dist/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/Dropdown/__tests__/DropdownFilter.test.tsx +39 -0
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.cjs +4 -1
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.cjs.map +1 -1
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.js +4 -1
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.js.map +1 -1
- package/dist/Footer/__tests__/Footer.test.tsx +182 -0
- package/dist/GlobalNavigationBar/__tests__/GlobalNavigationBar.tests.d.ts +1 -0
- package/dist/GlobalNavigationBar/__tests__/Logo.test.tsx +39 -0
- package/dist/GlobalNavigationBar/__tests__/Logo.tests.d.ts +1 -0
- package/dist/GlobalNavigationBar/desktop/UserMenu.cjs +4 -1
- package/dist/GlobalNavigationBar/desktop/UserMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/UserMenu.js +4 -1
- 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/__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/HyperLink/styling.cjs +38 -8
- package/dist/HyperLink/styling.cjs.map +1 -1
- package/dist/HyperLink/styling.js +38 -8
- package/dist/HyperLink/styling.js.map +1 -1
- package/dist/InputFields/Checkbox.cjs +54 -14
- package/dist/InputFields/Checkbox.cjs.map +1 -1
- package/dist/InputFields/Checkbox.js +54 -14
- package/dist/InputFields/Checkbox.js.map +1 -1
- package/dist/InputFields/DatepickerField.cjs +149 -43
- package/dist/InputFields/DatepickerField.cjs.map +1 -1
- package/dist/InputFields/DatepickerField.d.ts +1 -1
- package/dist/InputFields/DatepickerField.js +150 -44
- package/dist/InputFields/DatepickerField.js.map +1 -1
- package/dist/InputFields/DatepickerFieldHeader.cjs +20 -5
- package/dist/InputFields/DatepickerFieldHeader.cjs.map +1 -1
- package/dist/InputFields/DatepickerFieldHeader.js +20 -5
- package/dist/InputFields/DatepickerFieldHeader.js.map +1 -1
- package/dist/InputFields/Label.cjs +38 -11
- package/dist/InputFields/Label.cjs.map +1 -1
- package/dist/InputFields/Label.js +38 -11
- package/dist/InputFields/Label.js.map +1 -1
- package/dist/InputFields/NumberField.cjs +66 -16
- package/dist/InputFields/NumberField.cjs.map +1 -1
- package/dist/InputFields/NumberField.js +66 -16
- package/dist/InputFields/NumberField.js.map +1 -1
- package/dist/InputFields/PasswordField.cjs +4 -1
- package/dist/InputFields/PasswordField.cjs.map +1 -1
- package/dist/InputFields/PasswordField.d.ts +1 -1
- package/dist/InputFields/PasswordField.js +4 -1
- package/dist/InputFields/PasswordField.js.map +1 -1
- package/dist/InputFields/QuickSearch.cjs +30 -6
- package/dist/InputFields/QuickSearch.cjs.map +1 -1
- package/dist/InputFields/QuickSearch.js +30 -6
- package/dist/InputFields/QuickSearch.js.map +1 -1
- package/dist/InputFields/RadioButton.cjs +63 -15
- package/dist/InputFields/RadioButton.cjs.map +1 -1
- package/dist/InputFields/RadioButton.js +63 -15
- package/dist/InputFields/RadioButton.js.map +1 -1
- package/dist/InputFields/RichTextField.cjs +60 -15
- package/dist/InputFields/RichTextField.cjs.map +1 -1
- package/dist/InputFields/RichTextField.js +60 -15
- package/dist/InputFields/RichTextField.js.map +1 -1
- package/dist/InputFields/SearchBar.cjs +4 -1
- package/dist/InputFields/SearchBar.cjs.map +1 -1
- package/dist/InputFields/SearchBar.js +4 -1
- package/dist/InputFields/SearchBar.js.map +1 -1
- package/dist/InputFields/TextField.cjs +9 -3
- package/dist/InputFields/TextField.cjs.map +1 -1
- package/dist/InputFields/TextField.d.ts +1 -1
- package/dist/InputFields/TextField.js +9 -3
- package/dist/InputFields/TextField.js.map +1 -1
- package/dist/InputFields/Textarea.cjs +68 -17
- package/dist/InputFields/Textarea.cjs.map +1 -1
- package/dist/InputFields/Textarea.js +68 -17
- package/dist/InputFields/Textarea.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 +28 -7
- package/dist/InputFields/components/SearchBarInput.cjs.map +1 -1
- package/dist/InputFields/components/SearchBarInput.js +28 -7
- package/dist/InputFields/components/SearchBarInput.js.map +1 -1
- package/dist/InputFields/components/SearchField.cjs +60 -15
- package/dist/InputFields/components/SearchField.cjs.map +1 -1
- package/dist/InputFields/components/SearchField.js +60 -15
- package/dist/InputFields/components/SearchField.js.map +1 -1
- package/dist/InputFields/styling.cjs +95 -39
- package/dist/InputFields/styling.cjs.map +1 -1
- package/dist/InputFields/styling.d.ts +1 -2
- package/dist/InputFields/styling.js +95 -39
- package/dist/InputFields/styling.js.map +1 -1
- package/dist/LinearProgress/LinearProgress.cjs +161 -53
- package/dist/LinearProgress/LinearProgress.cjs.map +1 -1
- package/dist/LinearProgress/LinearProgress.js +161 -53
- package/dist/LinearProgress/LinearProgress.js.map +1 -1
- package/dist/LinearProgress/__tests__/LinearProgress.test.tsx +25 -0
- package/dist/List/ListRow.cjs +36 -9
- package/dist/List/ListRow.cjs.map +1 -1
- package/dist/List/ListRow.js +36 -9
- package/dist/List/ListRow.js.map +1 -1
- package/dist/List/__tests__/ListRow.test.tsx +18 -0
- package/dist/List/__tests__/ListRow.tests.d.ts +1 -0
- package/dist/LoadingIndicator/LoadingIndicator.cjs +4 -1
- package/dist/LoadingIndicator/LoadingIndicator.cjs.map +1 -1
- package/dist/LoadingIndicator/LoadingIndicator.js +4 -1
- package/dist/LoadingIndicator/LoadingIndicator.js.map +1 -1
- package/dist/LoadingPage/GlobalLoadingPage.cjs +4 -1
- package/dist/LoadingPage/GlobalLoadingPage.cjs.map +1 -1
- package/dist/LoadingPage/GlobalLoadingPage.js +4 -1
- package/dist/LoadingPage/GlobalLoadingPage.js.map +1 -1
- package/dist/LoadingPage/__tests__/GlobalLoadingPage.test.tsx +23 -0
- package/dist/MenuItem/MenuItem.cjs +101 -26
- package/dist/MenuItem/MenuItem.cjs.map +1 -1
- package/dist/MenuItem/MenuItem.js +101 -26
- package/dist/MenuItem/MenuItem.js.map +1 -1
- package/dist/Modals/Modal.cjs +4 -1
- package/dist/Modals/Modal.cjs.map +1 -1
- package/dist/Modals/Modal.js +4 -1
- package/dist/Modals/Modal.js.map +1 -1
- package/dist/Modals/ModalContent.cjs +24 -6
- package/dist/Modals/ModalContent.cjs.map +1 -1
- package/dist/Modals/ModalContent.js +24 -6
- package/dist/Modals/ModalContent.js.map +1 -1
- package/dist/Modals/ModalDialog.cjs +12 -3
- package/dist/Modals/ModalDialog.cjs.map +1 -1
- package/dist/Modals/ModalDialog.js +12 -3
- package/dist/Modals/ModalDialog.js.map +1 -1
- package/dist/Modals/ModalNote.cjs +16 -4
- package/dist/Modals/ModalNote.cjs.map +1 -1
- package/dist/Modals/ModalNote.js +16 -4
- package/dist/Modals/ModalNote.js.map +1 -1
- package/dist/Modals/ModalStyles.cjs +44 -11
- package/dist/Modals/ModalStyles.cjs.map +1 -1
- package/dist/Modals/ModalStyles.js +44 -11
- package/dist/Modals/ModalStyles.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 +4 -1
- package/dist/NavItem/NavItem.cjs.map +1 -1
- package/dist/NavItem/NavItem.js +4 -1
- package/dist/NavItem/NavItem.js.map +1 -1
- package/dist/NavItem/__tests__/NavItem.test.ts +6 -0
- package/dist/NotificationDot/NotificationDot.cjs +17 -2
- package/dist/NotificationDot/NotificationDot.cjs.map +1 -1
- package/dist/NotificationDot/NotificationDot.js +17 -2
- package/dist/NotificationDot/NotificationDot.js.map +1 -1
- package/dist/NotificationDot/__tests__/NotificationDot.test.tsx +33 -0
- package/dist/Paginator/Paginator.cjs +76 -29
- package/dist/Paginator/Paginator.cjs.map +1 -1
- package/dist/Paginator/Paginator.js +76 -29
- package/dist/Paginator/Paginator.js.map +1 -1
- package/dist/Paginator/__tests__/Paginator.test.tsx +39 -0
- package/dist/Panel/Panel.cjs +4 -1
- package/dist/Panel/Panel.cjs.map +1 -1
- package/dist/Panel/Panel.js +4 -1
- package/dist/Panel/Panel.js.map +1 -1
- package/dist/Popover/Popover.cjs +22 -3
- package/dist/Popover/Popover.cjs.map +1 -1
- package/dist/Popover/Popover.js +22 -3
- package/dist/Popover/Popover.js.map +1 -1
- package/dist/Popover/__tests__/Popover.test.tsx +64 -0
- package/dist/ProfileButton/ProfileButton.cjs +9 -2
- package/dist/ProfileButton/ProfileButton.cjs.map +1 -1
- package/dist/ProfileButton/ProfileButton.js +9 -2
- package/dist/ProfileButton/ProfileButton.js.map +1 -1
- package/dist/ProfileButton/__tests__/ProfileButton.test.tsx +31 -0
- package/dist/QuizButton/__tests__/QuizButton.test.tsx +53 -0
- package/dist/SegmentControl/SegmentControl.cjs +46 -11
- package/dist/SegmentControl/SegmentControl.cjs.map +1 -1
- package/dist/SegmentControl/SegmentControl.js +46 -11
- package/dist/SegmentControl/SegmentControl.js.map +1 -1
- package/dist/SegmentControl/__tests__/SegmentControl.test.tsx +145 -0
- package/dist/SideMenu/SideMenuHeader.cjs +12 -3
- package/dist/SideMenu/SideMenuHeader.cjs.map +1 -1
- package/dist/SideMenu/SideMenuHeader.js +12 -3
- package/dist/SideMenu/SideMenuHeader.js.map +1 -1
- package/dist/SideMenu/__tests__/SideMenu.test.tsx +99 -0
- package/dist/Switcher/SwitcherMenuItem.cjs +4 -1
- package/dist/Switcher/SwitcherMenuItem.cjs.map +1 -1
- package/dist/Switcher/SwitcherMenuItem.js +4 -1
- package/dist/Switcher/SwitcherMenuItem.js.map +1 -1
- package/dist/Switcher/__tests__/SwitcherMenuItem.tsx +14 -0
- package/dist/Table/TableFooter.cjs +8 -2
- package/dist/Table/TableFooter.cjs.map +1 -1
- package/dist/Table/TableFooter.js +8 -2
- package/dist/Table/TableFooter.js.map +1 -1
- package/dist/Table/TableStyles.cjs +132 -33
- package/dist/Table/TableStyles.cjs.map +1 -1
- package/dist/Table/TableStyles.js +132 -33
- package/dist/Table/TableStyles.js.map +1 -1
- package/dist/Table/__tests__/Table.test.tsx +499 -0
- package/dist/Tabs/HorizontalTabs.cjs +68 -18
- package/dist/Tabs/HorizontalTabs.cjs.map +1 -1
- package/dist/Tabs/HorizontalTabs.js +68 -18
- package/dist/Tabs/HorizontalTabs.js.map +1 -1
- package/dist/Tabs/TabLink.cjs +4 -1
- package/dist/Tabs/TabLink.cjs.map +1 -1
- package/dist/Tabs/TabLink.js +4 -1
- package/dist/Tabs/TabLink.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__/TabLink.tests.d.ts +1 -0
- package/dist/Tabs/__tests__/Tablist.test.tsx +37 -0
- package/dist/Tabs/__tests__/Tablist.tests.d.ts +2 -0
- package/dist/Tag/Tag.cjs +2 -2
- package/dist/Tag/Tag.cjs.map +1 -1
- package/dist/Tag/Tag.js +2 -2
- package/dist/Tag/Tag.js.map +1 -1
- package/dist/Tag/__tests__/Tag.test.tsx +86 -0
- package/dist/Tile/Tile.cjs +8 -2
- package/dist/Tile/Tile.cjs.map +1 -1
- package/dist/Tile/Tile.js +8 -2
- package/dist/Tile/Tile.js.map +1 -1
- package/dist/Tile/TileCommonItems.cjs +8 -2
- package/dist/Tile/TileCommonItems.cjs.map +1 -1
- package/dist/Tile/TileCommonItems.js +8 -2
- package/dist/Tile/TileCommonItems.js.map +1 -1
- package/dist/Tile/TileFooter.cjs +4 -1
- package/dist/Tile/TileFooter.cjs.map +1 -1
- package/dist/Tile/TileFooter.js +4 -1
- package/dist/Tile/TileFooter.js.map +1 -1
- package/dist/Tile/TileHeader.cjs +12 -3
- package/dist/Tile/TileHeader.cjs.map +1 -1
- package/dist/Tile/TileHeader.js +12 -3
- package/dist/Tile/TileHeader.js.map +1 -1
- package/dist/Toasters/Toast.cjs +62 -13
- package/dist/Toasters/Toast.cjs.map +1 -1
- package/dist/Toasters/Toast.js +62 -13
- package/dist/Toasters/Toast.js.map +1 -1
- package/dist/Toasters/__tests__/Toast.test.tsx +74 -0
- package/dist/Toggles/ToggleButton.cjs +9 -3
- package/dist/Toggles/ToggleButton.cjs.map +1 -1
- package/dist/Toggles/ToggleButton.d.ts +1 -1
- package/dist/Toggles/ToggleButton.js +9 -3
- package/dist/Toggles/ToggleButton.js.map +1 -1
- package/dist/Toggles/TogglerStyles.cjs +22 -8
- package/dist/Toggles/TogglerStyles.cjs.map +1 -1
- package/dist/Toggles/TogglerStyles.js +22 -8
- 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/TooltipStyles.cjs +28 -6
- package/dist/Tooltips/TooltipStyles.cjs.map +1 -1
- package/dist/Tooltips/TooltipStyles.js +28 -6
- package/dist/Tooltips/TooltipStyles.js.map +1 -1
- package/dist/Tooltips/__tests__/TooltipWrapper.test.tsx +16 -0
- package/dist/common/InputStyling.cjs +30 -7
- package/dist/common/InputStyling.cjs.map +1 -1
- package/dist/common/InputStyling.js +30 -7
- package/dist/common/InputStyling.js.map +1 -1
- package/dist/common/Link.cjs +45 -0
- package/dist/common/Link.cjs.map +1 -0
- package/dist/common/Link.d.ts +9 -0
- package/dist/common/Link.js +37 -0
- package/dist/common/Link.js.map +1 -0
- package/dist/common/NavigationHelper.cjs +30 -0
- package/dist/common/NavigationHelper.cjs.map +1 -0
- package/dist/common/NavigationHelper.d.ts +4 -0
- package/dist/common/NavigationHelper.js +23 -0
- package/dist/common/NavigationHelper.js.map +1 -0
- package/dist/custom.d.ts +2 -0
- package/dist/styles/colors.cjs +439 -84
- package/dist/styles/colors.cjs.map +1 -1
- package/dist/styles/colors.d.ts +200 -11
- package/dist/styles/colors.js +439 -84
- package/dist/styles/colors.js.map +1 -1
- package/dist/styles/global.cjs +19 -2
- package/dist/styles/global.cjs.map +1 -1
- package/dist/styles/global.d.ts +3 -2
- package/dist/styles/global.js +18 -3
- package/dist/styles/global.js.map +1 -1
- package/dist/styles/index.cjs +21 -9
- package/dist/styles/index.cjs.map +1 -1
- package/dist/styles/index.d.ts +2 -2
- package/dist/styles/index.js +18 -6
- package/dist/styles/index.js.map +1 -1
- package/dist/styles/react-datepicker.css +766 -0
- package/dist/utils/color-tokens.cjs +91 -0
- package/dist/utils/color-tokens.cjs.map +1 -0
- package/dist/utils/color-tokens.d.ts +19 -0
- package/dist/utils/color-tokens.js +82 -0
- package/dist/utils/color-tokens.js.map +1 -0
- package/package.json +144 -141
|
@@ -20,14 +20,20 @@ export const SegmentControlItemContent = styled.div`
|
|
|
20
20
|
padding: 0 16px;
|
|
21
21
|
|
|
22
22
|
background-color: transparent;
|
|
23
|
-
color: ${props => COLORS.
|
|
23
|
+
color: ${props => COLORS.generateToken({
|
|
24
|
+
componentType: 'text',
|
|
25
|
+
defaultVariant: 'subtle'
|
|
26
|
+
}, props.theme)};
|
|
24
27
|
`;
|
|
25
28
|
export const SegmentControlItemBackground = styled.div`
|
|
26
29
|
flex: 1;
|
|
27
30
|
display: flex;
|
|
28
31
|
flex-direction: row;
|
|
29
32
|
align-items: center;
|
|
30
|
-
background-color: ${props => COLORS.
|
|
33
|
+
background-color: ${props => COLORS.generateToken({
|
|
34
|
+
componentType: 'bg-surface',
|
|
35
|
+
defaultVariant: 'subtle'
|
|
36
|
+
}, props.theme)};
|
|
31
37
|
padding: 4px 0px;
|
|
32
38
|
`;
|
|
33
39
|
export const SegmentControlItemWrapper = styled.div`
|
|
@@ -47,8 +53,14 @@ export const SegmentControlItemWrapper = styled.div`
|
|
|
47
53
|
z-index: ${Z_INDEXES.hover};
|
|
48
54
|
|
|
49
55
|
${SegmentControlItemContent} {
|
|
50
|
-
background-color: ${props => COLORS.
|
|
51
|
-
|
|
56
|
+
background-color: ${props => COLORS.generateToken({
|
|
57
|
+
componentType: 'bg-surface',
|
|
58
|
+
state: 'hover'
|
|
59
|
+
}, props.theme)};
|
|
60
|
+
color: ${props => COLORS.generateToken({
|
|
61
|
+
componentType: 'text',
|
|
62
|
+
state: 'hover'
|
|
63
|
+
}, props.theme)};
|
|
52
64
|
}
|
|
53
65
|
}
|
|
54
66
|
|
|
@@ -56,8 +68,14 @@ export const SegmentControlItemWrapper = styled.div`
|
|
|
56
68
|
z-index: ${Z_INDEXES.active};
|
|
57
69
|
|
|
58
70
|
${SegmentControlItemContent} {
|
|
59
|
-
background-color: ${props => COLORS.
|
|
60
|
-
|
|
71
|
+
background-color: ${props => COLORS.generateToken({
|
|
72
|
+
componentType: 'bg-surface',
|
|
73
|
+
state: 'active'
|
|
74
|
+
}, props.theme)};
|
|
75
|
+
color: ${props => COLORS.generateToken({
|
|
76
|
+
componentType: 'text',
|
|
77
|
+
state: 'active'
|
|
78
|
+
}, props.theme)};
|
|
61
79
|
}
|
|
62
80
|
}
|
|
63
81
|
|
|
@@ -66,7 +84,10 @@ export const SegmentControlItemWrapper = styled.div`
|
|
|
66
84
|
|
|
67
85
|
${SegmentControlItemContent} {
|
|
68
86
|
background-color: transparent;
|
|
69
|
-
color: ${props => COLORS.
|
|
87
|
+
color: ${props => COLORS.generateToken({
|
|
88
|
+
componentType: 'text',
|
|
89
|
+
state: 'disabled'
|
|
90
|
+
}, props.theme)};
|
|
70
91
|
}
|
|
71
92
|
}
|
|
72
93
|
|
|
@@ -75,8 +96,15 @@ export const SegmentControlItemWrapper = styled.div`
|
|
|
75
96
|
pointer-events: none;
|
|
76
97
|
|
|
77
98
|
${SegmentControlItemContent} {
|
|
78
|
-
background-color: ${props => COLORS.
|
|
79
|
-
|
|
99
|
+
background-color: ${props => COLORS.generateToken({
|
|
100
|
+
componentType: 'bg-fill',
|
|
101
|
+
defaultVariant: 'primary'
|
|
102
|
+
}, props.theme)};
|
|
103
|
+
color: ${props => COLORS.generateToken({
|
|
104
|
+
componentType: 'text',
|
|
105
|
+
isOnFill: true,
|
|
106
|
+
defaultVariant: 'primary'
|
|
107
|
+
}, props.theme)};
|
|
80
108
|
}
|
|
81
109
|
}
|
|
82
110
|
|
|
@@ -85,8 +113,15 @@ export const SegmentControlItemWrapper = styled.div`
|
|
|
85
113
|
pointer-events: unset;
|
|
86
114
|
|
|
87
115
|
${SegmentControlItemContent} {
|
|
88
|
-
background-color: ${props => COLORS.
|
|
89
|
-
|
|
116
|
+
background-color: ${props => COLORS.generateToken({
|
|
117
|
+
componentType: 'bg-fill',
|
|
118
|
+
state: 'disabled'
|
|
119
|
+
}, props.theme)};
|
|
120
|
+
color: ${props => COLORS.generateToken({
|
|
121
|
+
componentType: 'text',
|
|
122
|
+
isOnFill: true,
|
|
123
|
+
state: 'disabled'
|
|
124
|
+
}, props.theme)};
|
|
90
125
|
}
|
|
91
126
|
}
|
|
92
127
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentControl.js","names":["React","Size","styled","COLORS","ComponentMStyling","ComponentSStyling","ComponentTextStyle","focusStyles","Z_INDEXES","defaultOnMouseDownHandler","jsx","_jsx","SegmentControlItemContent","div","props","getColor","theme","SegmentControlItemBackground","SegmentControlItemWrapper","hover","active","SegmentControlWrapper","Bold","SegmentControl","_ref","items","size","Medium","onChange","selected","className","rest","_objectWithoutProperties","_excluded","onKeyPress","e","item","key","document","activeElement","blur","disabled","onClick","_objectSpread","children","map","a","i","content","_excluded2","tabIndex","undefined","onMouseDown","propTypes","_pt","arrayOf","shape","string","isRequired","bool","oneOfType","node","func"],"sources":["../../src/SegmentControl/SegmentControl.tsx"],"sourcesContent":["import React from 'react';\r\nimport {Size} from '../types';\r\nimport styled from 'styled-components';\r\nimport {COLORS, ComponentMStyling, ComponentSStyling, ComponentTextStyle, focusStyles, Z_INDEXES} from '../styles';\r\nimport {defaultOnMouseDownHandler} from '../common';\r\n\r\n\r\nexport const SegmentControlItemContent = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n border-radius: 8px;\r\n padding: 0 16px;\r\n\r\n background-color: transparent;\r\n color: ${props => COLORS.getColor('neutral_600', props.theme)};\r\n`\r\n\r\nexport const SegmentControlItemBackground = styled.div`\r\n flex: 1;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n background-color: ${props => COLORS.getColor('neutral_20', props.theme)};\r\n padding: 4px 0px;\r\n`;\r\n\r\nexport const SegmentControlItemWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n flex: 1;\r\n cursor: pointer;\r\n min-height: 48px;\r\n\r\n &:focus {\r\n ${focusStyles}\r\n }\r\n\r\n &:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n\r\n ${SegmentControlItemContent} {\r\n background-color: ${props => COLORS.getColor('primary_100', props.theme)};\r\n color: ${props => COLORS.getColor('primary_700', props.theme)};\r\n }\r\n }\r\n\r\n &:active {\r\n z-index: ${Z_INDEXES.active};\r\n\r\n ${SegmentControlItemContent} {\r\n background-color: ${props => COLORS.getColor('primary_200', props.theme)};\r\n color: ${props => COLORS.getColor('primary_800', props.theme)};\r\n }\r\n }\r\n\r\n &.disabled {\r\n cursor: not-allowed;\r\n\r\n ${SegmentControlItemContent} {\r\n background-color: transparent;\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)};\r\n }\r\n }\r\n\r\n &.selected {\r\n cursor: default;\r\n pointer-events: none;\r\n\r\n ${SegmentControlItemContent} {\r\n background-color: ${props => COLORS.getColor('primary_500', props.theme)};\r\n color: ${props => COLORS.getColor('white', props.theme)};\r\n }\r\n }\r\n\r\n &.selected.disabled {\r\n cursor: not-allowed;\r\n pointer-events: unset;\r\n \r\n ${SegmentControlItemContent} {\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\n\r\nexport const SegmentControlWrapper = styled.div`\r\n width: 100%;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n\r\n ${SegmentControlItemWrapper}:first-of-type {\r\n ${SegmentControlItemBackground} {\r\n border-bottom-left-radius: 12px;\r\n border-top-left-radius: 12px;\r\n padding-left: 4px;\r\n }\r\n }\r\n\r\n ${SegmentControlItemWrapper}:last-of-type {\r\n ${SegmentControlItemBackground} {\r\n border-bottom-right-radius: 12px;\r\n border-top-right-radius: 12px;\r\n padding-right: 4px;\r\n }\r\n }\r\n\r\n\r\n &.small {\r\n ${SegmentControlItemContent} {\r\n ${ComponentSStyling(ComponentTextStyle.Bold, null)}\r\n min-height: 32px;\r\n }\r\n }\r\n\r\n &.medium {\r\n ${SegmentControlItemContent} {\r\n ${ComponentMStyling(ComponentTextStyle.Bold, null)}\r\n min-height: 40px;\r\n }\r\n }\r\n`;\r\n\r\n\r\nexport interface SegmentControlItem extends Omit<React.HTMLAttributes<HTMLDivElement>, 'tabIndex' | 'content' | 'onMouseDown' | 'onKeyDown' | 'onClick'> {\r\n /**\r\n * Required. The key of the segment control item. This should be unique among all items in the segment control.\r\n */\r\n key: string;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the segment control item is disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Required. The content of the segment control item. This can be a string or a React node.\r\n */\r\n content: React.ReactNode | string;\r\n}\r\n\r\nexport interface SegmentControlProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\r\n /**\r\n * Required. An array of SegmentControlItem objects representing the items in the segment control.\r\n */\r\n items: SegmentControlItem[];\r\n\r\n /**\r\n * Optional. The key of the currently selected item in the segment control. In order to change selected item\r\n * when user clicks on it, you should update this prop to display item as 'selected'.\r\n */\r\n selected: string;\r\n\r\n /**\r\n * Required. A function to be called when the selected item in the segment control changes.\r\n * It should take a string representing the key of the new selected item.\r\n */\r\n onChange: (value: string) => void;\r\n\r\n /**\r\n * Optional. The size of the segment control. Can be 'Small' or 'Medium'.\r\n */\r\n size?: Size.Small | Size.Medium;\r\n}\r\n\r\nconst SegmentControl: React.FunctionComponent<SegmentControlProps> = ({\r\n items,\r\n size = Size.Medium,\r\n onChange,\r\n selected,\r\n className,\r\n ...rest\r\n }) => {\r\n const onKeyPress = (e: React.KeyboardEvent<HTMLDivElement>, item: SegmentControlItem) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n //@ts-ignore\r\n document?.activeElement?.blur();\r\n !item.disabled && onChange(item.key);\r\n }\r\n };\r\n\r\n const onClick = (e: React.MouseEvent, item: SegmentControlItem) => {\r\n !item.disabled && onChange(item.key);\r\n }\r\n\r\n return (\r\n <SegmentControlWrapper className={`${size} ${className || ''}`} {...rest}>\r\n {items.map((a, i) => {\r\n const {key, disabled, content, className, ...rest} = a;\r\n return <SegmentControlItemWrapper key={a.key || i}\r\n className={(className || '') + (a.disabled ? 'disabled' : '') + (a.key === selected ? ' selected' : '')}\r\n tabIndex={a.disabled || a.key === selected ? -1 : 0}\r\n onClick={a.disabled ? undefined : (e) => onClick(e, a)}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onKeyPress={a.disabled ? undefined : (e) => onKeyPress(e, a)}\r\n {...rest}>\r\n <SegmentControlItemBackground>\r\n <SegmentControlItemContent>\r\n {a.content}\r\n </SegmentControlItemContent>\r\n </SegmentControlItemBackground>\r\n </SegmentControlItemWrapper>;\r\n })\r\n }\r\n </SegmentControlWrapper>\r\n );\r\n};\r\n\r\nexport default SegmentControl;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SegmentControl.js","names":["React","Size","styled","COLORS","ComponentMStyling","ComponentSStyling","ComponentTextStyle","focusStyles","Z_INDEXES","defaultOnMouseDownHandler","jsx","_jsx","SegmentControlItemContent","div","props","generateToken","componentType","defaultVariant","theme","SegmentControlItemBackground","SegmentControlItemWrapper","hover","state","active","isOnFill","SegmentControlWrapper","Bold","SegmentControl","_ref","items","size","Medium","onChange","selected","className","rest","_objectWithoutProperties","_excluded","onKeyPress","e","item","key","document","activeElement","blur","disabled","onClick","_objectSpread","children","map","a","i","content","_excluded2","tabIndex","undefined","onMouseDown","propTypes","_pt","arrayOf","shape","string","isRequired","bool","oneOfType","node","func"],"sources":["../../src/SegmentControl/SegmentControl.tsx"],"sourcesContent":["import React from 'react';\r\nimport {Size} from '../types';\r\nimport styled from 'styled-components';\r\nimport {COLORS, ComponentMStyling, ComponentSStyling, ComponentTextStyle, focusStyles, Z_INDEXES} from '../styles';\r\nimport {defaultOnMouseDownHandler} from '../common';\r\n\r\n\r\nexport const SegmentControlItemContent = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n border-radius: 8px;\r\n padding: 0 16px;\r\n\r\n background-color: transparent;\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme)};\r\n`\r\n\r\nexport const SegmentControlItemBackground = styled.div`\r\n flex: 1;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'subtle' }, props.theme)};\r\n padding: 4px 0px;\r\n`;\r\n\r\nexport const SegmentControlItemWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n flex: 1;\r\n cursor: pointer;\r\n min-height: 48px;\r\n\r\n &:focus {\r\n ${focusStyles}\r\n }\r\n\r\n &:hover {\r\n z-index: ${Z_INDEXES.hover};\r\n\r\n ${SegmentControlItemContent} {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'hover' }, props.theme)};\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'hover' }, props.theme)};\r\n }\r\n }\r\n\r\n &:active {\r\n z-index: ${Z_INDEXES.active};\r\n\r\n ${SegmentControlItemContent} {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'active' }, props.theme)};\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'active' }, props.theme)};\r\n }\r\n }\r\n\r\n &.disabled {\r\n cursor: not-allowed;\r\n\r\n ${SegmentControlItemContent} {\r\n background-color: transparent;\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'disabled' }, props.theme)};\r\n }\r\n }\r\n\r\n &.selected {\r\n cursor: default;\r\n pointer-events: none;\r\n\r\n ${SegmentControlItemContent} {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', defaultVariant: 'primary' }, props.theme)};\r\n color: ${props => COLORS.generateToken({ componentType: 'text', isOnFill: true, defaultVariant: 'primary' }, props.theme)};\r\n }\r\n }\r\n\r\n &.selected.disabled {\r\n cursor: not-allowed;\r\n pointer-events: unset;\r\n \r\n ${SegmentControlItemContent} {\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\n\r\nexport const SegmentControlWrapper = styled.div`\r\n width: 100%;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n\r\n ${SegmentControlItemWrapper}:first-of-type {\r\n ${SegmentControlItemBackground} {\r\n border-bottom-left-radius: 12px;\r\n border-top-left-radius: 12px;\r\n padding-left: 4px;\r\n }\r\n }\r\n\r\n ${SegmentControlItemWrapper}:last-of-type {\r\n ${SegmentControlItemBackground} {\r\n border-bottom-right-radius: 12px;\r\n border-top-right-radius: 12px;\r\n padding-right: 4px;\r\n }\r\n }\r\n\r\n\r\n &.small {\r\n ${SegmentControlItemContent} {\r\n ${ComponentSStyling(ComponentTextStyle.Bold, null)}\r\n min-height: 32px;\r\n }\r\n }\r\n\r\n &.medium {\r\n ${SegmentControlItemContent} {\r\n ${ComponentMStyling(ComponentTextStyle.Bold, null)}\r\n min-height: 40px;\r\n }\r\n }\r\n`;\r\n\r\n\r\nexport interface SegmentControlItem extends Omit<React.HTMLAttributes<HTMLDivElement>, 'tabIndex' | 'content' | 'onMouseDown' | 'onKeyDown' | 'onClick'> {\r\n /**\r\n * Required. The key of the segment control item. This should be unique among all items in the segment control.\r\n */\r\n key: string;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the segment control item is disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Required. The content of the segment control item. This can be a string or a React node.\r\n */\r\n content: React.ReactNode | string;\r\n}\r\n\r\nexport interface SegmentControlProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\r\n /**\r\n * Required. An array of SegmentControlItem objects representing the items in the segment control.\r\n */\r\n items: SegmentControlItem[];\r\n\r\n /**\r\n * Optional. The key of the currently selected item in the segment control. In order to change selected item\r\n * when user clicks on it, you should update this prop to display item as 'selected'.\r\n */\r\n selected: string;\r\n\r\n /**\r\n * Required. A function to be called when the selected item in the segment control changes.\r\n * It should take a string representing the key of the new selected item.\r\n */\r\n onChange: (value: string) => void;\r\n\r\n /**\r\n * Optional. The size of the segment control. Can be 'Small' or 'Medium'.\r\n */\r\n size?: Size.Small | Size.Medium;\r\n}\r\n\r\nconst SegmentControl: React.FunctionComponent<SegmentControlProps> = ({\r\n items,\r\n size = Size.Medium,\r\n onChange,\r\n selected,\r\n className,\r\n ...rest\r\n }) => {\r\n const onKeyPress = (e: React.KeyboardEvent<HTMLDivElement>, item: SegmentControlItem) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n //@ts-ignore\r\n document?.activeElement?.blur();\r\n !item.disabled && onChange(item.key);\r\n }\r\n };\r\n\r\n const onClick = (e: React.MouseEvent, item: SegmentControlItem) => {\r\n !item.disabled && onChange(item.key);\r\n }\r\n\r\n return (\r\n <SegmentControlWrapper className={`${size} ${className || ''}`} {...rest}>\r\n {items.map((a, i) => {\r\n const {key, disabled, content, className, ...rest} = a;\r\n return <SegmentControlItemWrapper key={a.key || i}\r\n className={(className || '') + (a.disabled ? 'disabled' : '') + (a.key === selected ? ' selected' : '')}\r\n tabIndex={a.disabled || a.key === selected ? -1 : 0}\r\n onClick={a.disabled ? undefined : (e) => onClick(e, a)}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onKeyPress={a.disabled ? undefined : (e) => onKeyPress(e, a)}\r\n {...rest}>\r\n <SegmentControlItemBackground>\r\n <SegmentControlItemContent>\r\n {a.content}\r\n </SegmentControlItemContent>\r\n </SegmentControlItemBackground>\r\n </SegmentControlItemWrapper>;\r\n })\r\n }\r\n </SegmentControlWrapper>\r\n );\r\n};\r\n\r\nexport default SegmentControl;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {SegmentControlItemWrapper, SegmentControlWrapper} from '../SegmentControl';
|
|
3
|
+
import {render} from '../../test-utils';
|
|
4
|
+
import {SegmentControl} from '../index';
|
|
5
|
+
import {SystemIcons} from '../../icons';
|
|
6
|
+
import {fireEvent} from '@testing-library/react';
|
|
7
|
+
import { act } from "react";
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
describe('SegmentControl', () => {
|
|
13
|
+
|
|
14
|
+
const items = [
|
|
15
|
+
{key: 'item1', content: 'Item 1', disabled: false,},
|
|
16
|
+
{key: 'item2', content: 'Item 2', disabled: false,},
|
|
17
|
+
{key: 'item3', content: 'Item 3', disabled: false,},
|
|
18
|
+
{key: 'item4', content: 'Item 4', disabled: false,},
|
|
19
|
+
{key: 'item5', content: 'Item 5', disabled: false,},
|
|
20
|
+
{key: 'item6', content: 'Item 6', disabled: true,}
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const icons = [
|
|
24
|
+
{key: 'icon1', content: <SystemIcons.Legend3Star size={'20'}/>, disabled: false,},
|
|
25
|
+
{key: 'icon2', content: <SystemIcons.Legend4Square size={'20'}/>, disabled: false,},
|
|
26
|
+
{key: 'icon3', content: <SystemIcons.Legend5Diamond size={'20'}/>, disabled: false,},
|
|
27
|
+
{key: 'icon4', content: <SystemIcons.Legend6Nabla size={'20'}/>, disabled: false,},
|
|
28
|
+
{key: 'icon5', content: <SystemIcons.Legend7Pentagon size={'20'}/>, disabled: false,},
|
|
29
|
+
{key: 'icon6', content: <SystemIcons.Legend8Rectangle size={'20'}/>, disabled: true,}
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
it('should render a segment control with items', () => {
|
|
33
|
+
const wrapper = render(
|
|
34
|
+
<SegmentControl items={items}
|
|
35
|
+
selected={items[0].key}
|
|
36
|
+
onChange={jest.fn()}/>
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
expect(wrapper.container.querySelectorAll(`${SegmentControlWrapper}`)).toHaveLength(1);
|
|
40
|
+
expect(wrapper.container.querySelectorAll(`${SegmentControlItemWrapper}`)).toHaveLength(6);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it('should render items with correct labels', () => {
|
|
44
|
+
const wrapper = render(
|
|
45
|
+
<SegmentControl items={items}
|
|
46
|
+
selected={items[0].key}
|
|
47
|
+
onChange={jest.fn()}/>
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
for (let item of items) {
|
|
51
|
+
expect(wrapper.getByText(item.content)).toBeTruthy();
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it('should render items with icons', () => {
|
|
56
|
+
const wrapper = render(
|
|
57
|
+
<SegmentControl items={icons}
|
|
58
|
+
selected={icons[0].key}
|
|
59
|
+
onChange={jest.fn()}/>
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
expect(wrapper.container.querySelectorAll(`${SegmentControlWrapper}`)).toHaveLength(1);
|
|
63
|
+
expect(wrapper.container.querySelectorAll(`${SegmentControlItemWrapper}`)).toHaveLength(6);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('should render correct item as selected', () => {
|
|
67
|
+
const wrapper = render(
|
|
68
|
+
<SegmentControl items={items}
|
|
69
|
+
selected={items[2].key}
|
|
70
|
+
onChange={jest.fn()}/>
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
expect(wrapper.container.querySelectorAll(`${SegmentControlItemWrapper}.selected`)).toHaveLength(1);
|
|
74
|
+
expect(wrapper.container.querySelectorAll(`${SegmentControlItemWrapper}`)[2].classList).toContain('selected');
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it('should render correct item as disabled', () => {
|
|
78
|
+
const wrapper = render(
|
|
79
|
+
<SegmentControl items={items}
|
|
80
|
+
selected={items[2].key}
|
|
81
|
+
onChange={jest.fn()}/>
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
expect(wrapper.container.querySelectorAll(`${SegmentControlItemWrapper}.disabled`)).toHaveLength(1);
|
|
85
|
+
expect(wrapper.container.querySelectorAll(`${SegmentControlItemWrapper}`)[5].classList).toContain('disabled');
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it('should call on change function on item click', () => {
|
|
89
|
+
const onChange = jest.fn();
|
|
90
|
+
const wrapper = render(
|
|
91
|
+
<SegmentControl items={items}
|
|
92
|
+
selected={items[2].key}
|
|
93
|
+
onChange={onChange}/>
|
|
94
|
+
);
|
|
95
|
+
act(() => {
|
|
96
|
+
wrapper.getByText(items[0].content).dispatchEvent(new MouseEvent('click', {bubbles: true}));
|
|
97
|
+
})
|
|
98
|
+
expect(onChange).toHaveBeenCalledTimes(1);
|
|
99
|
+
expect(onChange).toHaveBeenCalledWith(items[0].key);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
it('should call on change function on item key press', () => {
|
|
103
|
+
const onChange = jest.fn();
|
|
104
|
+
const wrapper = render(
|
|
105
|
+
<SegmentControl items={items}
|
|
106
|
+
selected={items[2].key}
|
|
107
|
+
onChange={onChange}/>
|
|
108
|
+
);
|
|
109
|
+
act(() => {
|
|
110
|
+
fireEvent.keyPress(wrapper.getByText(items[0].content), {key: 'Enter', keyCode: 13, which: 13});
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
expect(onChange).toHaveBeenCalledTimes(1);
|
|
114
|
+
expect(onChange).toHaveBeenCalledWith(items[0].key);
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
it('should not call on change function on disabled item click', () => {
|
|
118
|
+
const onChange = jest.fn();
|
|
119
|
+
const wrapper = render(
|
|
120
|
+
<SegmentControl items={items}
|
|
121
|
+
selected={items[2].key}
|
|
122
|
+
onChange={onChange}/>
|
|
123
|
+
);
|
|
124
|
+
act(() => {
|
|
125
|
+
wrapper.getByText(items[5].content).dispatchEvent(new MouseEvent('click', {bubbles: true}));
|
|
126
|
+
})
|
|
127
|
+
expect(onChange).toHaveBeenCalledTimes(0);
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
it('should not call on change function on disabled item key press', () => {
|
|
131
|
+
const onChange = jest.fn();
|
|
132
|
+
const wrapper = render(
|
|
133
|
+
<SegmentControl items={items}
|
|
134
|
+
selected={items[2].key}
|
|
135
|
+
onChange={onChange}/>
|
|
136
|
+
);
|
|
137
|
+
act(() => {
|
|
138
|
+
fireEvent.keyPress(wrapper.getByText(items[5].content), {key: 'Enter', keyCode: 13, which: 13});
|
|
139
|
+
})
|
|
140
|
+
|
|
141
|
+
expect(onChange).toHaveBeenCalledTimes(0);
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
});
|
|
@@ -37,15 +37,24 @@ const LabelContainer = _styledComponents.default.div`
|
|
|
37
37
|
margin-left: 8px;
|
|
38
38
|
|
|
39
39
|
.small & {
|
|
40
|
-
${props => (0, _styles.ComponentSStyling)(_styles.ComponentTextStyle.Bold, _styles.COLORS.
|
|
40
|
+
${props => (0, _styles.ComponentSStyling)(_styles.ComponentTextStyle.Bold, _styles.COLORS.generateToken({
|
|
41
|
+
componentType: 'text',
|
|
42
|
+
defaultVariant: 'subtle'
|
|
43
|
+
}, props.theme))}
|
|
41
44
|
}
|
|
42
45
|
|
|
43
46
|
.medium & {
|
|
44
|
-
${props => (0, _styles.ComponentMStyling)(_styles.ComponentTextStyle.Bold, _styles.COLORS.
|
|
47
|
+
${props => (0, _styles.ComponentMStyling)(_styles.ComponentTextStyle.Bold, _styles.COLORS.generateToken({
|
|
48
|
+
componentType: 'text',
|
|
49
|
+
defaultVariant: 'subtle'
|
|
50
|
+
}, props.theme))}
|
|
45
51
|
}
|
|
46
52
|
|
|
47
53
|
.large & {
|
|
48
|
-
${props => (0, _styles.ComponentLStyling)(_styles.ComponentTextStyle.Bold, _styles.COLORS.
|
|
54
|
+
${props => (0, _styles.ComponentLStyling)(_styles.ComponentTextStyle.Bold, _styles.COLORS.generateToken({
|
|
55
|
+
componentType: 'text',
|
|
56
|
+
defaultVariant: 'subtle'
|
|
57
|
+
}, props.theme))}
|
|
49
58
|
}
|
|
50
59
|
`;
|
|
51
60
|
const SideMenuHeader = props => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideMenuHeader.cjs","names":["_react","_interopRequireDefault","require","_styledComponents","_styles","_Button","_icons","_jsxRuntime","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","Wrapper","styled","div","LabelContainer","props","ComponentSStyling","ComponentTextStyle","Bold","COLORS","
|
|
1
|
+
{"version":3,"file":"SideMenuHeader.cjs","names":["_react","_interopRequireDefault","require","_styledComponents","_styles","_Button","_icons","_jsxRuntime","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","Wrapper","styled","div","LabelContainer","props","ComponentSStyling","ComponentTextStyle","Bold","COLORS","generateToken","componentType","defaultVariant","theme","ComponentMStyling","ComponentLStyling","SideMenuHeader","jsxs","children","header","actions","map","_ref","index","icon","rest","_objectWithoutProperties2","jsx","IconButton","variant","shape","label","action","onClose","style","marginLeft","SystemIcons","Close","exports"],"sources":["../../src/SideMenu/SideMenuHeader.tsx"],"sourcesContent":["import React from 'react';\r\nimport {SideMenuProps} from './types';\r\nimport styled from 'styled-components';\r\nimport {COLORS, ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle} from '../styles';\r\nimport {IconButton} from '../Button';\r\nimport {SystemIcons} from '../icons';\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n padding: 0 8px;\r\n\r\n .small & {\r\n min-height: 48px;\r\n }\r\n\r\n .medium & {\r\n min-height: 56px;\r\n }\r\n\r\n .large & {\r\n min-height: 64px;\r\n }\r\n`;\r\n\r\nconst LabelContainer = styled.div`\r\n margin-left: 8px;\r\n\r\n .small & {\r\n ${props => ComponentSStyling(ComponentTextStyle.Bold, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n\r\n .medium & {\r\n ${props => ComponentMStyling(ComponentTextStyle.Bold, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n\r\n .large & {\r\n ${props => ComponentLStyling(ComponentTextStyle.Bold, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n`;\r\n\r\nexport const SideMenuHeader = (props: SideMenuProps) => {\r\n\r\n return (\r\n <Wrapper>\r\n {\r\n props.header?.actions?.map(({icon, ...rest}, index) =>\r\n <IconButton key={index} variant={'secondary'} shape={'circular'} {...rest}>\r\n {icon}\r\n </IconButton>\r\n )\r\n }\r\n {\r\n props.header?.label &&\r\n <LabelContainer>\r\n {props.header.label}\r\n </LabelContainer>\r\n }\r\n <IconButton action={props.onClose} variant={'secondary'} shape={'circular'} style={{marginLeft: 'auto'}}>\r\n <SystemIcons.Close/>\r\n </IconButton>\r\n </Wrapper>\r\n )\r\n};\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -30,15 +30,24 @@ const LabelContainer = styled.div`
|
|
|
30
30
|
margin-left: 8px;
|
|
31
31
|
|
|
32
32
|
.small & {
|
|
33
|
-
${props => ComponentSStyling(ComponentTextStyle.Bold, COLORS.
|
|
33
|
+
${props => ComponentSStyling(ComponentTextStyle.Bold, COLORS.generateToken({
|
|
34
|
+
componentType: 'text',
|
|
35
|
+
defaultVariant: 'subtle'
|
|
36
|
+
}, props.theme))}
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
.medium & {
|
|
37
|
-
${props => ComponentMStyling(ComponentTextStyle.Bold, COLORS.
|
|
40
|
+
${props => ComponentMStyling(ComponentTextStyle.Bold, COLORS.generateToken({
|
|
41
|
+
componentType: 'text',
|
|
42
|
+
defaultVariant: 'subtle'
|
|
43
|
+
}, props.theme))}
|
|
38
44
|
}
|
|
39
45
|
|
|
40
46
|
.large & {
|
|
41
|
-
${props => ComponentLStyling(ComponentTextStyle.Bold, COLORS.
|
|
47
|
+
${props => ComponentLStyling(ComponentTextStyle.Bold, COLORS.generateToken({
|
|
48
|
+
componentType: 'text',
|
|
49
|
+
defaultVariant: 'subtle'
|
|
50
|
+
}, props.theme))}
|
|
42
51
|
}
|
|
43
52
|
`;
|
|
44
53
|
export const SideMenuHeader = props => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideMenuHeader.js","names":["React","styled","COLORS","ComponentLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","IconButton","SystemIcons","jsx","_jsx","jsxs","_jsxs","Wrapper","div","LabelContainer","props","Bold","
|
|
1
|
+
{"version":3,"file":"SideMenuHeader.js","names":["React","styled","COLORS","ComponentLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","IconButton","SystemIcons","jsx","_jsx","jsxs","_jsxs","Wrapper","div","LabelContainer","props","Bold","generateToken","componentType","defaultVariant","theme","SideMenuHeader","children","header","actions","map","_ref","index","icon","rest","_objectWithoutProperties","_excluded","_objectSpread","variant","shape","label","action","onClose","style","marginLeft","Close"],"sources":["../../src/SideMenu/SideMenuHeader.tsx"],"sourcesContent":["import React from 'react';\r\nimport {SideMenuProps} from './types';\r\nimport styled from 'styled-components';\r\nimport {COLORS, ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle} from '../styles';\r\nimport {IconButton} from '../Button';\r\nimport {SystemIcons} from '../icons';\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n padding: 0 8px;\r\n\r\n .small & {\r\n min-height: 48px;\r\n }\r\n\r\n .medium & {\r\n min-height: 56px;\r\n }\r\n\r\n .large & {\r\n min-height: 64px;\r\n }\r\n`;\r\n\r\nconst LabelContainer = styled.div`\r\n margin-left: 8px;\r\n\r\n .small & {\r\n ${props => ComponentSStyling(ComponentTextStyle.Bold, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n\r\n .medium & {\r\n ${props => ComponentMStyling(ComponentTextStyle.Bold, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n\r\n .large & {\r\n ${props => ComponentLStyling(ComponentTextStyle.Bold, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n`;\r\n\r\nexport const SideMenuHeader = (props: SideMenuProps) => {\r\n\r\n return (\r\n <Wrapper>\r\n {\r\n props.header?.actions?.map(({icon, ...rest}, index) =>\r\n <IconButton key={index} variant={'secondary'} shape={'circular'} {...rest}>\r\n {icon}\r\n </IconButton>\r\n )\r\n }\r\n {\r\n props.header?.label &&\r\n <LabelContainer>\r\n {props.header.label}\r\n </LabelContainer>\r\n }\r\n <IconButton action={props.onClose} variant={'secondary'} shape={'circular'} style={{marginLeft: 'auto'}}>\r\n <SystemIcons.Close/>\r\n </IconButton>\r\n </Wrapper>\r\n )\r\n};\r\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,MAAM,MAAM,mBAAmB;AACtC,SAAQC,MAAM,EAAEC,iBAAiB,EAAEC,iBAAiB,EAAEC,iBAAiB,EAAEC,kBAAkB,QAAO,WAAW;AAC7G,SAAQC,UAAU,QAAO,WAAW;AACpC,SAAQC,WAAW,QAAO,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAErC,MAAMC,OAAO,GAAGZ,MAAM,CAACa,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,MAAMC,cAAc,GAAGd,MAAM,CAACa,GAAG;AACjC;AACA;AACA;AACA,MAAME,KAAK,IAAIX,iBAAiB,CAACC,kBAAkB,CAACW,IAAI,EAAEf,MAAM,CAACgB,aAAa,CAAC;EAACC,aAAa,EAAC,MAAM;EAACC,cAAc,EAAC;AAAQ,CAAC,EAAEJ,KAAK,CAACK,KAAK,CAAC,CAAC;AAC5I;AACA;AACA;AACA,MAAML,KAAK,IAAIZ,iBAAiB,CAACE,kBAAkB,CAACW,IAAI,EAAEf,MAAM,CAACgB,aAAa,CAAC;EAACC,aAAa,EAAC,MAAM;EAACC,cAAc,EAAC;AAAQ,CAAC,EAAEJ,KAAK,CAACK,KAAK,CAAC,CAAC;AAC5I;AACA;AACA;AACA,MAAML,KAAK,IAAIb,iBAAiB,CAACG,kBAAkB,CAACW,IAAI,EAAEf,MAAM,CAACgB,aAAa,CAAC;EAACC,aAAa,EAAC,MAAM;EAACC,cAAc,EAAC;AAAQ,CAAC,EAAEJ,KAAK,CAACK,KAAK,CAAC,CAAC;AAC5I;AACA,CAAC;AAED,OAAO,MAAMC,cAAc,GAAIN,KAAoB,IAAK;EAEtD,oBACEJ,KAAA,CAACC,OAAO;IAAAU,QAAA,GAEJP,KAAK,CAACQ,MAAM,EAAEC,OAAO,EAAEC,GAAG,CAAC,CAAAC,IAAA,EAAkBC,KAAK;MAAA,IAAtB;UAACC;QAAa,CAAC,GAAAF,IAAA;QAALG,IAAI,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;MAAA,oBACxCtB,IAAA,CAACH,UAAU,EAAA0B,aAAA,CAAAA,aAAA;QAAaC,OAAO,EAAE,WAAY;QAACC,KAAK,EAAE;MAAW,GAAKL,IAAI;QAAAP,QAAA,EACtEM;MAAI,IADUD,KAEL,CAAC;IAAA,CACf,CAAC,EAGDZ,KAAK,CAACQ,MAAM,EAAEY,KAAK,iBACnB1B,IAAA,CAACK,cAAc;MAAAQ,QAAA,EACZP,KAAK,CAACQ,MAAM,CAACY;IAAK,CACL,CAAC,eAEnB1B,IAAA,CAACH,UAAU;MAAC8B,MAAM,EAAErB,KAAK,CAACsB,OAAQ;MAACJ,OAAO,EAAE,WAAY;MAACC,KAAK,EAAE,UAAW;MAACI,KAAK,EAAE;QAACC,UAAU,EAAE;MAAM,CAAE;MAAAjB,QAAA,eACtGb,IAAA,CAACF,WAAW,CAACiC,KAAK,IAAC;IAAC,CACV,CAAC;EAAA,CACN,CAAC;AAEd,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import {SideMenu} from '../index';
|
|
3
|
+
import {act, render} from '../../test-utils';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
describe('SideMenu', () => {
|
|
8
|
+
|
|
9
|
+
it('should render content', () => {
|
|
10
|
+
const wrapper = render(<SideMenu onClose={jest.fn()}>content</SideMenu>);
|
|
11
|
+
|
|
12
|
+
expect(wrapper.getByText('content')).toBeDefined();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('should call onClose when close button is clicked', () => {
|
|
16
|
+
const onClose = jest.fn();
|
|
17
|
+
const wrapper = render(<SideMenu onClose={onClose}>content</SideMenu>);
|
|
18
|
+
|
|
19
|
+
act(() => {
|
|
20
|
+
wrapper.getByRole('button').click();
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
expect(onClose).toHaveBeenCalled();
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
it('should call onClose when close button is clicked', () => {
|
|
28
|
+
const onClose = jest.fn();
|
|
29
|
+
const wrapper = render(<SideMenu onClose={onClose}>content</SideMenu>);
|
|
30
|
+
|
|
31
|
+
act(() => {
|
|
32
|
+
wrapper.getByRole('button').click();
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
expect(onClose).toHaveBeenCalled();
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('should render label', () => {
|
|
39
|
+
const onClose = jest.fn();
|
|
40
|
+
const wrapper = render(<SideMenu onClose={onClose} header={{label: 'label'}}>content</SideMenu>);
|
|
41
|
+
|
|
42
|
+
expect(wrapper.getByText('label')).toBeDefined();
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it('should render header icon buttons ', () => {
|
|
46
|
+
const onClose = jest.fn();
|
|
47
|
+
const wrapper = render(<SideMenu onClose={onClose} header={{
|
|
48
|
+
label: 'label', actions: [{
|
|
49
|
+
action: () => {
|
|
50
|
+
}, icon: <></>
|
|
51
|
+
}, {
|
|
52
|
+
action: () => {
|
|
53
|
+
}, icon: <></>
|
|
54
|
+
}]
|
|
55
|
+
}}>content</SideMenu>);
|
|
56
|
+
|
|
57
|
+
expect(wrapper.getAllByRole('button')).toHaveLength(3);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it('should render footer note', () => {
|
|
61
|
+
const onClose = jest.fn();
|
|
62
|
+
const wrapper = render(<SideMenu onClose={onClose} footer={{note: 'note'}}>content</SideMenu>);
|
|
63
|
+
|
|
64
|
+
expect(wrapper.getByText('note')).toBeDefined();
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it('should render footer buttons', () => {
|
|
68
|
+
const onClose = jest.fn();
|
|
69
|
+
const wrapper = render(<SideMenu onClose={onClose} footer={{
|
|
70
|
+
buttons: [{
|
|
71
|
+
variant: 'primary', label: 'label', onClick: () => {
|
|
72
|
+
}
|
|
73
|
+
}]
|
|
74
|
+
}}>content</SideMenu>);
|
|
75
|
+
|
|
76
|
+
expect(wrapper.getAllByRole('button')).toHaveLength(2);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it('should render footer menu items', () => {
|
|
80
|
+
const onClose = jest.fn();
|
|
81
|
+
const wrapper = render(<SideMenu onClose={onClose} footer={{
|
|
82
|
+
items: [{
|
|
83
|
+
id: '1',
|
|
84
|
+
active: false,
|
|
85
|
+
onClickHandler: () => {},
|
|
86
|
+
item: {displayLabel: 'label 1', value: '1'}
|
|
87
|
+
}, {
|
|
88
|
+
id: '2',
|
|
89
|
+
active: false,
|
|
90
|
+
onClickHandler: () => {},
|
|
91
|
+
item: {displayLabel: 'label 2', value: '2'}
|
|
92
|
+
}]
|
|
93
|
+
}}>content</SideMenu>);
|
|
94
|
+
|
|
95
|
+
expect(wrapper.getByText('label 1')).toBeDefined();
|
|
96
|
+
expect(wrapper.getByText('label 2')).toBeDefined();
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
});
|
|
@@ -20,7 +20,10 @@ const StyledSwitcherItem = _styledComponents.default.div`
|
|
|
20
20
|
text-align: center;
|
|
21
21
|
position: relative;
|
|
22
22
|
|
|
23
|
-
${props => (0, _styles.ComponentMStyling)(_styles.ComponentTextStyle.Regular, _styles.COLORS.
|
|
23
|
+
${props => (0, _styles.ComponentMStyling)(_styles.ComponentTextStyle.Regular, _styles.COLORS.generateToken({
|
|
24
|
+
componentType: 'text',
|
|
25
|
+
defaultVariant: 'subtle'
|
|
26
|
+
}, props.theme))}
|
|
24
27
|
|
|
25
28
|
text-decoration: none;
|
|
26
29
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitcherMenuItem.cjs","names":["_react","_interopRequireDefault","require","_styledComponents","_styles","_common","_jsxRuntime","StyledSwitcherItem","styled","div","props","ComponentMStyling","ComponentTextStyle","Regular","COLORS","
|
|
1
|
+
{"version":3,"file":"SwitcherMenuItem.cjs","names":["_react","_interopRequireDefault","require","_styledComponents","_styles","_common","_jsxRuntime","StyledSwitcherItem","styled","div","props","ComponentMStyling","ComponentTextStyle","Regular","COLORS","generateToken","componentType","defaultVariant","theme","Z_INDEXES","active","getColor","hover","focusStyles","A","a","SwitcherMenuItem","_ref","label","url","disabled","icon","as","testId","jsxs","onClick","window","location","href","onMouseDown","defaultOnMouseDownHandler","target","className","children","React","cloneElement","size","color","propTypes","_propTypes","default","string","isRequired","bool","any","_default","exports"],"sources":["../../src/Switcher/SwitcherMenuItem.tsx"],"sourcesContent":["import React from 'react';\r\nimport styled from 'styled-components';\r\nimport {Z_INDEXES, ComponentMStyling, COLORS, ComponentTextStyle, focusStyles} from '../styles';\r\nimport {defaultOnMouseDownHandler} from '../common';\r\n\r\nconst StyledSwitcherItem = styled.div`\r\n padding: 16px 25px;\r\n margin: 0 2px;\r\n\r\n display: flex;\r\n align-items: center;\r\n text-align: center;\r\n position: relative;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n\r\n text-decoration: none;\r\n\r\n svg {\r\n margin-right: 16px;\r\n }\r\n\r\n &:after {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n left: 4px;\r\n top: 4px;\r\n bottom: 4px;\r\n width: 4px;\r\n background-color: transparent;\r\n border-radius: 2px;\r\n }\r\n\r\n &.active:not(.disabled) {\r\n z-index: ${Z_INDEXES.active};\r\n font-weight: bold;\r\n color: ${props => COLORS.getColor('neutral_800', props.theme)};\r\n\r\n &:after {\r\n background-color: ${props => COLORS.getColor('primary_500', props.theme)};\r\n }\r\n\r\n svg path {\r\n fill: ${props => COLORS.getColor('neutral_800', props.theme)};\r\n }\r\n }\r\n\r\n &.disabled {\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)};\r\n background-color: ${props => COLORS.getColor('neutral_100', props.theme)};\r\n }\r\n\r\n &:hover:not(.disabled) {\r\n z-index: ${Z_INDEXES.hover};\r\n color: ${props => COLORS.getColor('primary_600', props.theme)};\r\n background-color: ${props => COLORS.getColor('primary_20', props.theme)};\r\n\r\n svg path {\r\n fill: ${props => COLORS.getColor('primary_600', props.theme)};\r\n }\r\n }\r\n\r\n &:active:not(.disabled) {\r\n z-index: ${Z_INDEXES.active};\r\n color: ${props => COLORS.getColor('primary_800', props.theme)};\r\n background-color: ${props => COLORS.getColor('primary_100', props.theme)};\r\n\r\n &:after {\r\n background-color: ${props => COLORS.getColor('primary_500', props.theme)};\r\n }\r\n\r\n svg path {\r\n fill: ${props => COLORS.getColor('primary_800', props.theme)};\r\n }\r\n }\r\n\r\n &:focus:not(.disabled) {\r\n ${focusStyles};\r\n \r\n outline-offset: -2px;\r\n }\r\n`;\r\n\r\nconst A = styled.a``;\r\n\r\nexport interface SwitcherNavItem {\r\n label: string;\r\n url: string;\r\n disabled?: boolean;\r\n icon?: any;\r\n as?: any;\r\n testId?: string;\r\n}\r\n\r\nconst SwitcherMenuItem = ({label, url, disabled, icon, as = A, testId}: SwitcherNavItem) => (\r\n <StyledSwitcherItem\r\n onClick={() => (window.location.href = url || '')}\r\n as={as}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n href={url || ''}\r\n target=\"_parent\"\r\n key={label}\r\n className={disabled ? 'disabled' : ''}\r\n data-testid={testId}>\r\n {!!icon && React.cloneElement(icon, {size: '24px', color: '#666666'})}\r\n {label}\r\n </StyledSwitcherItem>\r\n);\r\n\r\nexport default SwitcherMenuItem;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,7 +13,10 @@ const StyledSwitcherItem = styled.div`
|
|
|
13
13
|
text-align: center;
|
|
14
14
|
position: relative;
|
|
15
15
|
|
|
16
|
-
${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.
|
|
16
|
+
${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({
|
|
17
|
+
componentType: 'text',
|
|
18
|
+
defaultVariant: 'subtle'
|
|
19
|
+
}, props.theme))}
|
|
17
20
|
|
|
18
21
|
text-decoration: none;
|
|
19
22
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitcherMenuItem.js","names":["React","styled","Z_INDEXES","ComponentMStyling","COLORS","ComponentTextStyle","focusStyles","defaultOnMouseDownHandler","jsxs","_jsxs","StyledSwitcherItem","div","props","Regular","
|
|
1
|
+
{"version":3,"file":"SwitcherMenuItem.js","names":["React","styled","Z_INDEXES","ComponentMStyling","COLORS","ComponentTextStyle","focusStyles","defaultOnMouseDownHandler","jsxs","_jsxs","StyledSwitcherItem","div","props","Regular","generateToken","componentType","defaultVariant","theme","active","getColor","hover","A","a","SwitcherMenuItem","_ref","label","url","disabled","icon","as","testId","onClick","window","location","href","onMouseDown","target","className","children","cloneElement","size","color","propTypes","_pt","string","isRequired","bool","any"],"sources":["../../src/Switcher/SwitcherMenuItem.tsx"],"sourcesContent":["import React from 'react';\r\nimport styled from 'styled-components';\r\nimport {Z_INDEXES, ComponentMStyling, COLORS, ComponentTextStyle, focusStyles} from '../styles';\r\nimport {defaultOnMouseDownHandler} from '../common';\r\n\r\nconst StyledSwitcherItem = styled.div`\r\n padding: 16px 25px;\r\n margin: 0 2px;\r\n\r\n display: flex;\r\n align-items: center;\r\n text-align: center;\r\n position: relative;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n\r\n text-decoration: none;\r\n\r\n svg {\r\n margin-right: 16px;\r\n }\r\n\r\n &:after {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n left: 4px;\r\n top: 4px;\r\n bottom: 4px;\r\n width: 4px;\r\n background-color: transparent;\r\n border-radius: 2px;\r\n }\r\n\r\n &.active:not(.disabled) {\r\n z-index: ${Z_INDEXES.active};\r\n font-weight: bold;\r\n color: ${props => COLORS.getColor('neutral_800', props.theme)};\r\n\r\n &:after {\r\n background-color: ${props => COLORS.getColor('primary_500', props.theme)};\r\n }\r\n\r\n svg path {\r\n fill: ${props => COLORS.getColor('neutral_800', props.theme)};\r\n }\r\n }\r\n\r\n &.disabled {\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)};\r\n background-color: ${props => COLORS.getColor('neutral_100', props.theme)};\r\n }\r\n\r\n &:hover:not(.disabled) {\r\n z-index: ${Z_INDEXES.hover};\r\n color: ${props => COLORS.getColor('primary_600', props.theme)};\r\n background-color: ${props => COLORS.getColor('primary_20', props.theme)};\r\n\r\n svg path {\r\n fill: ${props => COLORS.getColor('primary_600', props.theme)};\r\n }\r\n }\r\n\r\n &:active:not(.disabled) {\r\n z-index: ${Z_INDEXES.active};\r\n color: ${props => COLORS.getColor('primary_800', props.theme)};\r\n background-color: ${props => COLORS.getColor('primary_100', props.theme)};\r\n\r\n &:after {\r\n background-color: ${props => COLORS.getColor('primary_500', props.theme)};\r\n }\r\n\r\n svg path {\r\n fill: ${props => COLORS.getColor('primary_800', props.theme)};\r\n }\r\n }\r\n\r\n &:focus:not(.disabled) {\r\n ${focusStyles};\r\n \r\n outline-offset: -2px;\r\n }\r\n`;\r\n\r\nconst A = styled.a``;\r\n\r\nexport interface SwitcherNavItem {\r\n label: string;\r\n url: string;\r\n disabled?: boolean;\r\n icon?: any;\r\n as?: any;\r\n testId?: string;\r\n}\r\n\r\nconst SwitcherMenuItem = ({label, url, disabled, icon, as = A, testId}: SwitcherNavItem) => (\r\n <StyledSwitcherItem\r\n onClick={() => (window.location.href = url || '')}\r\n as={as}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n href={url || ''}\r\n target=\"_parent\"\r\n key={label}\r\n className={disabled ? 'disabled' : ''}\r\n data-testid={testId}>\r\n {!!icon && React.cloneElement(icon, {size: '24px', color: '#666666'})}\r\n {label}\r\n </StyledSwitcherItem>\r\n);\r\n\r\nexport default SwitcherMenuItem;\r\n"],"mappings":"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","ignoreList":[]}
|