@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
|
@@ -89,14 +89,20 @@ const ChipInputContainer = exports.ChipInputContainer = _styledComponents.defaul
|
|
|
89
89
|
border-radius: 4px;
|
|
90
90
|
margin-bottom: 4px;
|
|
91
91
|
box-shadow: inset 0 0 0 1px ${props => _styles.COLORS.getColor('neutral_400', props.theme)};
|
|
92
|
-
background-color: ${props => _styles.COLORS.
|
|
92
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
93
|
+
componentType: 'bg-surface',
|
|
94
|
+
defaultVariant: 'default'
|
|
95
|
+
}, props.theme)};
|
|
93
96
|
box-sizing: border-box;
|
|
94
97
|
cursor: text;
|
|
95
98
|
outline: none;
|
|
96
99
|
display: flex;
|
|
97
100
|
align-items: center;
|
|
98
101
|
|
|
99
|
-
${props => (0, _styles.ComponentMStyling)(_styles.ComponentTextStyle.Regular, _styles.COLORS.
|
|
102
|
+
${props => (0, _styles.ComponentMStyling)(_styles.ComponentTextStyle.Regular, _styles.COLORS.generateToken({
|
|
103
|
+
componentType: 'text',
|
|
104
|
+
defaultVariant: 'default'
|
|
105
|
+
}, props.theme))}
|
|
100
106
|
&.small {
|
|
101
107
|
padding: 0;
|
|
102
108
|
min-height: 48px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipInputField.cjs","names":["_react","_interopRequireDefault","require","_types","_Chips","_InputFields","_styles","_styledComponents","_interopRequireWildcard","_LoadingIndicator","_common","_Button","_icons","_jsxRuntime","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Wrapper","styled","div","Loading","ChipInputBoundItems","exports","ChipInputContentContainer","scrollBarStyling","Size","Small","ChipInputEl","input","ComponentMStyling","ComponentTextStyle","Regular","props","COLORS","getColor","theme","Italic","generateToken","componentType","defaultVariant","ChipInputContainer","ComponentSStyling","focusStyles","ChipInputField","React","forwardRef","_ref","ref","inputId","items","disabled","placeholder","altPlaceholder","multiLine","size","Medium","validationMessage","loading","onRemoveItem","onInputValueChange","onInputKeyDown","onActivationChange","inputValue","required","onBlur","rest","_objectWithoutProperties2","useTheme","containerRef","useRef","inputRef","useFocusVisibleRef","useImperativeHandle","current","useEffect","document","activeElement","scrollIntoView","block","inline","handleInputKeyDown","key","value","repeat","handleItemRemove","event","item","index","focus","focusVisible","detail","handleInputClear","handleContainerKeyDown","querySelectorAll","currentIndex","Array","from","indexOf","target","direction","cls","jsxs","children","jsx","onKeyDown","onClick","className","map","chip","InputChip","icon","variant","States","Default","text","label","onRemove","type","id","tabIndex","onChange","stopPropagation","IconButton","dataTestId","action","useTransparentBackground","shape","style","marginLeft","focusOnClick","SystemIcons","Clear","LoadingIndicator","color","ErrorMessage","TechnicalWarning","propTypes","_propTypes","string","isRequired","array","bool","func"],"sources":["../../src/ChipsInput/ChipInputField.tsx"],"sourcesContent":["import React from 'react';\r\nimport {ChipItem} from './ChipInputTypes';\r\nimport {Size, States} from '../types';\r\nimport {InputChip} from '../Chips';\r\nimport {ErrorMessage} from '../InputFields';\r\nimport {\r\n COLORS,\r\n ComponentMStyling,\r\n ComponentSStyling,\r\n ComponentTextStyle,\r\n focusStyles,\r\n scrollBarStyling\r\n} from '../styles';\r\nimport styled, { useTheme } from 'styled-components';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {IconButton} from '../Button';\r\nimport {SystemIcons} from '../icons';\r\n\r\nconst Wrapper = styled.div`\r\n position: relative;\r\n`;\r\n\r\nconst Loading = styled.div`\r\n height: 20px;\r\n width: 20px;\r\n`;\r\n\r\nexport const ChipInputBoundItems = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n gap: 8px;\r\n flex: 1;\r\n min-width: 40px;\r\n`;\r\n\r\nexport const ChipInputContentContainer = styled.div`\r\n width: 100%;\r\n background: transparent;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n column-gap: 8px;\r\n margin-right: 6px;\r\n padding-right: 10px;\r\n padding-left: 16px;\r\n flex-wrap: nowrap;\r\n overflow-x: scroll;\r\n min-height: 48px;\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n ::-webkit-scrollbar:horizontal {\r\n display: none;\r\n }\r\n\r\n .action-right:focus,\r\n button:focus {\r\n outline-offset: -4px !important;\r\n }\r\n`;\r\n\r\nexport const ChipInputEl = styled.input`\r\n border: none;\r\n outline: none;\r\n\r\n height: 40px;\r\n min-width: 40px;\r\n display: inline-flex;\r\n flex: 1;\r\n background: transparent;\r\n\r\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n color: ${props => COLORS.getColor('black', props.theme)} !important;\r\n\r\n &::placeholder {\r\n ${props => ComponentMStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n`;\r\n\r\nexport const ChipInputContainer = styled.div`\r\n width: 100%;\r\n height: auto;\r\n border-radius: 4px;\r\n margin-bottom: 4px;\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_400', props.theme)};\r\n background-color: ${props => COLORS.getColor('white', props.theme)};\r\n box-sizing: border-box;\r\n cursor: text;\r\n outline: none;\r\n display: flex;\r\n align-items: center;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.getColor('black', props.theme))}\r\n &.small {\r\n padding: 0;\r\n min-height: 48px;\r\n\r\n ${ChipInputEl}::placeholder {\r\n ${props => ComponentSStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n }\r\n\r\n &.medium {\r\n padding: 4px 0;\r\n min-height: 56px;\r\n\r\n ${ChipInputEl}::placeholder {\r\n ${props => ComponentMStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n }\r\n\r\n &.multiline.medium {\r\n ${ChipInputContentContainer} {\r\n max-height: calc(48px * 3);\r\n flex-wrap: wrap;\r\n overflow-y: auto;\r\n overflow-x: unset;\r\n }\r\n }\r\n\r\n &.focus-visible-within,\r\n &:focus {\r\n ${focusStyles}\r\n }\r\n\r\n &:hover {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('primary_700', props.theme)};\r\n }\r\n\r\n &:focus-within {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('primary_800', props.theme)};\r\n }\r\n\r\n &.invalid,\r\n &.invalid:hover,\r\n &.invalid:focus {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('critical_500', props.theme)};\r\n }\r\n\r\n &.disabled {\r\n ${ChipInputContentContainer} {\r\n pointer-events: none;\r\n }\r\n\r\n cursor: not-allowed;\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_100', props.theme)};\r\n outline: none;\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)} !important;\r\n }\r\n`;\r\n\r\nexport interface ChipInputFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'id' | 'required' | 'tabIndex' | 'value' | 'onChange' | 'onKeyDown' | 'placeholder' | 'onClick' | 'disabled' | 'size'> {\r\n inputId: string;\r\n items: ChipItem[];\r\n disabled?: boolean;\r\n placeholder?: string;\r\n altPlaceholder?: string;\r\n multiLine?: boolean;\r\n size?: Size.Large | Size.Medium | Size.Small;\r\n loading?: boolean;\r\n required?: boolean;\r\n\r\n validationMessage?: string;\r\n\r\n onRemoveItem: (item: ChipItem, index: number) => void;\r\n inputValue: string;\r\n onInputValueChange: (value: string) => void;\r\n onInputKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n onActivationChange?: (active: boolean) => void;\r\n}\r\n\r\nexport const ChipInputField = React.forwardRef<HTMLInputElement, ChipInputFieldProps>(\r\n (\r\n {\r\n inputId,\r\n items,\r\n disabled = false,\r\n placeholder,\r\n altPlaceholder,\r\n multiLine = true,\r\n size = Size.Medium,\r\n validationMessage,\r\n loading,\r\n onRemoveItem,\r\n onInputValueChange,\r\n onInputKeyDown,\r\n onActivationChange,\r\n inputValue,\r\n required,\r\n onBlur,\r\n ...rest\r\n },\r\n ref,\r\n ) => {\r\n const theme = useTheme();\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const inputRef = useFocusVisibleRef([containerRef]);\r\n \r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef])\r\n\r\n /**\r\n * Scroll container to last item on change\r\n * */\r\n React.useEffect(() => {\r\n if (inputRef.current && document.activeElement === inputRef.current) {\r\n inputRef.current.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n }, [containerRef, inputRef, items]);\r\n\r\n /**\r\n * Remove last cheap on backspace\r\n * */\r\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Backspace' && !inputRef.current?.value && !e.repeat && items.length > 0) {\r\n onRemoveItem(items[items.length - 1], items.length - 1);\r\n } else {\r\n onInputKeyDown(e);\r\n }\r\n };\r\n\r\n const handleItemRemove = (event: any, item: ChipItem, index: number) => {\r\n onRemoveItem(item, index);\r\n inputRef.current?.focus({focusVisible: event.detail !== 1} as any);\r\n };\r\n\r\n const handleInputClear = (e: any) => {\r\n onInputValueChange('');\r\n inputRef.current?.focus({focusVisible: e?.detail !== 1} as any);\r\n };\r\n\r\n const handleContainerKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (!containerRef.current || (e.key !== 'ArrowLeft' && e.key !== 'ArrowRight')) return;\r\n\r\n const items = containerRef.current.querySelectorAll('[tabindex=\"0\"]') as NodeListOf<HTMLElement>;\r\n const currentIndex = Array.from(items).indexOf(e.target as any);\r\n const direction = e.key === 'ArrowLeft' ? -1 : 1;\r\n const item = items[currentIndex + direction];\r\n item?.focus({focusVisible: true} as any);\r\n\r\n onActivationChange && onActivationChange(false);\r\n };\r\n\r\n const cls = `${multiLine ? 'multiline' : ''} ${validationMessage ? 'invalid' : ''} ${size} ${loading ? 'loading' : ''} ${disabled ? 'disabled' : ''}`;\r\n\r\n return (\r\n <Wrapper onBlur={onBlur}>\r\n <ChipInputContainer\r\n data-testid=\"chip-input-container\"\r\n ref={containerRef}\r\n onKeyDown={handleContainerKeyDown}\r\n onClick={() => !disabled && inputRef.current?.focus()}\r\n className={cls}>\r\n <ChipInputContentContainer>\r\n {items?.map((chip: ChipItem, index: number) => (\r\n <InputChip\r\n key={`chip_${index}`}\r\n icon={chip?.icon}\r\n size={size}\r\n disabled={chip.disabled || disabled}\r\n variant={chip.variant || States.Default}\r\n text={chip.label}\r\n onRemove={(e) => handleItemRemove(e, chip, index)}\r\n />\r\n ))}\r\n <ChipInputBoundItems>\r\n <ChipInputEl\r\n ref={inputRef}\r\n type=\"text\"\r\n id={inputId}\r\n required={required}\r\n tabIndex={disabled ? -1 : 0}\r\n value={inputValue}\r\n onChange={(e) => onInputValueChange(e.target.value)}\r\n onKeyDown={handleInputKeyDown}\r\n placeholder={items?.length === 0 ? placeholder : altPlaceholder || ''}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n onActivationChange && onActivationChange(true);\r\n }}\r\n {...rest}\r\n />\r\n {inputValue && !disabled && (\r\n <IconButton\r\n id={`clear-btn-${inputId}`}\r\n dataTestId={`clear-btn-${inputId}`}\r\n action={handleInputClear}\r\n ref={(ref) => {\r\n ref?.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }}\r\n useTransparentBackground={true}\r\n shape={'circular'}\r\n style={{marginLeft: '-8px'}}\r\n focusOnClick={true}\r\n variant={'secondary'}>\r\n <SystemIcons.Clear/>\r\n </IconButton>\r\n )}\r\n\r\n {loading && (\r\n <Loading className={size}>\r\n <LoadingIndicator size={Size.Small} color={COLORS.generateToken({componentType:'icon',defaultVariant:'subtle'}, theme)}/>\r\n </Loading>\r\n )}\r\n </ChipInputBoundItems>\r\n </ChipInputContentContainer>\r\n </ChipInputContainer>\r\n {validationMessage && (\r\n <ErrorMessage>\r\n <SystemIcons.TechnicalWarning color={COLORS.getColor('critical_400', theme)}/>\r\n <span>{validationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n </Wrapper>\r\n );\r\n },\r\n);\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ChipInputField.cjs","names":["_react","_interopRequireDefault","require","_types","_Chips","_InputFields","_styles","_styledComponents","_interopRequireWildcard","_LoadingIndicator","_common","_Button","_icons","_jsxRuntime","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Wrapper","styled","div","Loading","ChipInputBoundItems","exports","ChipInputContentContainer","scrollBarStyling","Size","Small","ChipInputEl","input","ComponentMStyling","ComponentTextStyle","Regular","props","COLORS","getColor","theme","Italic","generateToken","componentType","defaultVariant","ChipInputContainer","ComponentSStyling","focusStyles","ChipInputField","React","forwardRef","_ref","ref","inputId","items","disabled","placeholder","altPlaceholder","multiLine","size","Medium","validationMessage","loading","onRemoveItem","onInputValueChange","onInputKeyDown","onActivationChange","inputValue","required","onBlur","rest","_objectWithoutProperties2","useTheme","containerRef","useRef","inputRef","useFocusVisibleRef","useImperativeHandle","current","useEffect","document","activeElement","scrollIntoView","block","inline","handleInputKeyDown","key","value","repeat","handleItemRemove","event","item","index","focus","focusVisible","detail","handleInputClear","handleContainerKeyDown","querySelectorAll","currentIndex","Array","from","indexOf","target","direction","cls","jsxs","children","jsx","onKeyDown","onClick","className","map","chip","InputChip","icon","variant","States","Default","text","label","onRemove","type","id","tabIndex","onChange","stopPropagation","IconButton","dataTestId","action","useTransparentBackground","shape","style","marginLeft","focusOnClick","SystemIcons","Clear","LoadingIndicator","color","ErrorMessage","TechnicalWarning","propTypes","_propTypes","string","isRequired","array","bool","func"],"sources":["../../src/ChipsInput/ChipInputField.tsx"],"sourcesContent":["import React from 'react';\r\nimport {ChipItem} from './ChipInputTypes';\r\nimport {Size, States} from '../types';\r\nimport {InputChip} from '../Chips';\r\nimport {ErrorMessage} from '../InputFields';\r\nimport {\r\n COLORS,\r\n ComponentMStyling,\r\n ComponentSStyling,\r\n ComponentTextStyle,\r\n focusStyles,\r\n scrollBarStyling\r\n} from '../styles';\r\nimport styled, { useTheme } from 'styled-components';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {IconButton} from '../Button';\r\nimport {SystemIcons} from '../icons';\r\n\r\nconst Wrapper = styled.div`\r\n position: relative;\r\n`;\r\n\r\nconst Loading = styled.div`\r\n height: 20px;\r\n width: 20px;\r\n`;\r\n\r\nexport const ChipInputBoundItems = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n gap: 8px;\r\n flex: 1;\r\n min-width: 40px;\r\n`;\r\n\r\nexport const ChipInputContentContainer = styled.div`\r\n width: 100%;\r\n background: transparent;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n column-gap: 8px;\r\n margin-right: 6px;\r\n padding-right: 10px;\r\n padding-left: 16px;\r\n flex-wrap: nowrap;\r\n overflow-x: scroll;\r\n min-height: 48px;\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n ::-webkit-scrollbar:horizontal {\r\n display: none;\r\n }\r\n\r\n .action-right:focus,\r\n button:focus {\r\n outline-offset: -4px !important;\r\n }\r\n`;\r\n\r\nexport const ChipInputEl = styled.input`\r\n border: none;\r\n outline: none;\r\n\r\n height: 40px;\r\n min-width: 40px;\r\n display: inline-flex;\r\n flex: 1;\r\n background: transparent;\r\n\r\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n color: ${props => COLORS.getColor('black', props.theme)} !important;\r\n\r\n &::placeholder {\r\n ${props => ComponentMStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n`;\r\n\r\nexport const ChipInputContainer = styled.div`\r\n width: 100%;\r\n height: auto;\r\n border-radius: 4px;\r\n margin-bottom: 4px;\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_400', props.theme)};\r\n background-color: ${props => COLORS.generateToken({componentType:'bg-surface', defaultVariant:'default'}, props.theme)};\r\n box-sizing: border-box;\r\n cursor: text;\r\n outline: none;\r\n display: flex;\r\n align-items: center;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme))}\r\n &.small {\r\n padding: 0;\r\n min-height: 48px;\r\n\r\n ${ChipInputEl}::placeholder {\r\n ${props => ComponentSStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n }\r\n\r\n &.medium {\r\n padding: 4px 0;\r\n min-height: 56px;\r\n\r\n ${ChipInputEl}::placeholder {\r\n ${props => ComponentMStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n }\r\n\r\n &.multiline.medium {\r\n ${ChipInputContentContainer} {\r\n max-height: calc(48px * 3);\r\n flex-wrap: wrap;\r\n overflow-y: auto;\r\n overflow-x: unset;\r\n }\r\n }\r\n\r\n &.focus-visible-within,\r\n &:focus {\r\n ${focusStyles}\r\n }\r\n\r\n &:hover {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('primary_700', props.theme)};\r\n }\r\n\r\n &:focus-within {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('primary_800', props.theme)};\r\n }\r\n\r\n &.invalid,\r\n &.invalid:hover,\r\n &.invalid:focus {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('critical_500', props.theme)};\r\n }\r\n\r\n &.disabled {\r\n ${ChipInputContentContainer} {\r\n pointer-events: none;\r\n }\r\n\r\n cursor: not-allowed;\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_100', props.theme)};\r\n outline: none;\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)} !important;\r\n }\r\n`;\r\n\r\nexport interface ChipInputFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'id' | 'required' | 'tabIndex' | 'value' | 'onChange' | 'onKeyDown' | 'placeholder' | 'onClick' | 'disabled' | 'size'> {\r\n inputId: string;\r\n items: ChipItem[];\r\n disabled?: boolean;\r\n placeholder?: string;\r\n altPlaceholder?: string;\r\n multiLine?: boolean;\r\n size?: Size.Large | Size.Medium | Size.Small;\r\n loading?: boolean;\r\n required?: boolean;\r\n\r\n validationMessage?: string;\r\n\r\n onRemoveItem: (item: ChipItem, index: number) => void;\r\n inputValue: string;\r\n onInputValueChange: (value: string) => void;\r\n onInputKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n onActivationChange?: (active: boolean) => void;\r\n}\r\n\r\nexport const ChipInputField = React.forwardRef<HTMLInputElement, ChipInputFieldProps>(\r\n (\r\n {\r\n inputId,\r\n items,\r\n disabled = false,\r\n placeholder,\r\n altPlaceholder,\r\n multiLine = true,\r\n size = Size.Medium,\r\n validationMessage,\r\n loading,\r\n onRemoveItem,\r\n onInputValueChange,\r\n onInputKeyDown,\r\n onActivationChange,\r\n inputValue,\r\n required,\r\n onBlur,\r\n ...rest\r\n },\r\n ref,\r\n ) => {\r\n const theme = useTheme();\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const inputRef = useFocusVisibleRef([containerRef]);\r\n \r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef])\r\n\r\n /**\r\n * Scroll container to last item on change\r\n * */\r\n React.useEffect(() => {\r\n if (inputRef.current && document.activeElement === inputRef.current) {\r\n inputRef.current.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n }, [containerRef, inputRef, items]);\r\n\r\n /**\r\n * Remove last cheap on backspace\r\n * */\r\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Backspace' && !inputRef.current?.value && !e.repeat && items.length > 0) {\r\n onRemoveItem(items[items.length - 1], items.length - 1);\r\n } else {\r\n onInputKeyDown(e);\r\n }\r\n };\r\n\r\n const handleItemRemove = (event: any, item: ChipItem, index: number) => {\r\n onRemoveItem(item, index);\r\n inputRef.current?.focus({focusVisible: event.detail !== 1} as any);\r\n };\r\n\r\n const handleInputClear = (e: any) => {\r\n onInputValueChange('');\r\n inputRef.current?.focus({focusVisible: e?.detail !== 1} as any);\r\n };\r\n\r\n const handleContainerKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (!containerRef.current || (e.key !== 'ArrowLeft' && e.key !== 'ArrowRight')) return;\r\n\r\n const items = containerRef.current.querySelectorAll('[tabindex=\"0\"]') as NodeListOf<HTMLElement>;\r\n const currentIndex = Array.from(items).indexOf(e.target as any);\r\n const direction = e.key === 'ArrowLeft' ? -1 : 1;\r\n const item = items[currentIndex + direction];\r\n item?.focus({focusVisible: true} as any);\r\n\r\n onActivationChange && onActivationChange(false);\r\n };\r\n\r\n const cls = `${multiLine ? 'multiline' : ''} ${validationMessage ? 'invalid' : ''} ${size} ${loading ? 'loading' : ''} ${disabled ? 'disabled' : ''}`;\r\n\r\n return (\r\n <Wrapper onBlur={onBlur}>\r\n <ChipInputContainer\r\n data-testid=\"chip-input-container\"\r\n ref={containerRef}\r\n onKeyDown={handleContainerKeyDown}\r\n onClick={() => !disabled && inputRef.current?.focus()}\r\n className={cls}>\r\n <ChipInputContentContainer>\r\n {items?.map((chip: ChipItem, index: number) => (\r\n <InputChip\r\n key={`chip_${index}`}\r\n icon={chip?.icon}\r\n size={size}\r\n disabled={chip.disabled || disabled}\r\n variant={chip.variant || States.Default}\r\n text={chip.label}\r\n onRemove={(e) => handleItemRemove(e, chip, index)}\r\n />\r\n ))}\r\n <ChipInputBoundItems>\r\n <ChipInputEl\r\n ref={inputRef}\r\n type=\"text\"\r\n id={inputId}\r\n required={required}\r\n tabIndex={disabled ? -1 : 0}\r\n value={inputValue}\r\n onChange={(e) => onInputValueChange(e.target.value)}\r\n onKeyDown={handleInputKeyDown}\r\n placeholder={items?.length === 0 ? placeholder : altPlaceholder || ''}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n onActivationChange && onActivationChange(true);\r\n }}\r\n {...rest}\r\n />\r\n {inputValue && !disabled && (\r\n <IconButton\r\n id={`clear-btn-${inputId}`}\r\n dataTestId={`clear-btn-${inputId}`}\r\n action={handleInputClear}\r\n ref={(ref) => {\r\n ref?.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }}\r\n useTransparentBackground={true}\r\n shape={'circular'}\r\n style={{marginLeft: '-8px'}}\r\n focusOnClick={true}\r\n variant={'secondary'}>\r\n <SystemIcons.Clear/>\r\n </IconButton>\r\n )}\r\n\r\n {loading && (\r\n <Loading className={size}>\r\n <LoadingIndicator size={Size.Small} color={COLORS.generateToken({componentType:'icon',defaultVariant:'subtle'}, theme)}/>\r\n </Loading>\r\n )}\r\n </ChipInputBoundItems>\r\n </ChipInputContentContainer>\r\n </ChipInputContainer>\r\n {validationMessage && (\r\n <ErrorMessage>\r\n <SystemIcons.TechnicalWarning color={COLORS.getColor('critical_400', theme)}/>\r\n <span>{validationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n </Wrapper>\r\n );\r\n },\r\n);\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -80,14 +80,20 @@ export const ChipInputContainer = styled.div`
|
|
|
80
80
|
border-radius: 4px;
|
|
81
81
|
margin-bottom: 4px;
|
|
82
82
|
box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_400', props.theme)};
|
|
83
|
-
background-color: ${props => COLORS.
|
|
83
|
+
background-color: ${props => COLORS.generateToken({
|
|
84
|
+
componentType: 'bg-surface',
|
|
85
|
+
defaultVariant: 'default'
|
|
86
|
+
}, props.theme)};
|
|
84
87
|
box-sizing: border-box;
|
|
85
88
|
cursor: text;
|
|
86
89
|
outline: none;
|
|
87
90
|
display: flex;
|
|
88
91
|
align-items: center;
|
|
89
92
|
|
|
90
|
-
${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.
|
|
93
|
+
${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({
|
|
94
|
+
componentType: 'text',
|
|
95
|
+
defaultVariant: 'default'
|
|
96
|
+
}, props.theme))}
|
|
91
97
|
&.small {
|
|
92
98
|
padding: 0;
|
|
93
99
|
min-height: 48px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipInputField.js","names":["React","Size","States","InputChip","ErrorMessage","COLORS","ComponentMStyling","ComponentSStyling","ComponentTextStyle","focusStyles","scrollBarStyling","styled","useTheme","LoadingIndicator","useFocusVisibleRef","IconButton","SystemIcons","jsx","_jsx","jsxs","_jsxs","Wrapper","div","Loading","ChipInputBoundItems","ChipInputContentContainer","Small","ChipInputEl","input","Regular","props","getColor","theme","Italic","generateToken","componentType","defaultVariant","ChipInputContainer","ChipInputField","forwardRef","_ref","ref","inputId","items","disabled","placeholder","altPlaceholder","multiLine","size","Medium","validationMessage","loading","onRemoveItem","onInputValueChange","onInputKeyDown","onActivationChange","inputValue","required","onBlur","rest","_objectWithoutProperties","_excluded","containerRef","useRef","inputRef","useImperativeHandle","current","useEffect","document","activeElement","scrollIntoView","block","inline","handleInputKeyDown","e","key","value","repeat","length","handleItemRemove","event","item","index","focus","focusVisible","detail","handleInputClear","handleContainerKeyDown","querySelectorAll","currentIndex","Array","from","indexOf","target","direction","cls","children","onKeyDown","onClick","className","map","chip","icon","variant","Default","text","label","onRemove","_objectSpread","type","id","tabIndex","onChange","stopPropagation","dataTestId","action","useTransparentBackground","shape","style","marginLeft","focusOnClick","Clear","color","TechnicalWarning","propTypes","_pt","string","isRequired","array","bool","func"],"sources":["../../src/ChipsInput/ChipInputField.tsx"],"sourcesContent":["import React from 'react';\r\nimport {ChipItem} from './ChipInputTypes';\r\nimport {Size, States} from '../types';\r\nimport {InputChip} from '../Chips';\r\nimport {ErrorMessage} from '../InputFields';\r\nimport {\r\n COLORS,\r\n ComponentMStyling,\r\n ComponentSStyling,\r\n ComponentTextStyle,\r\n focusStyles,\r\n scrollBarStyling\r\n} from '../styles';\r\nimport styled, { useTheme } from 'styled-components';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {IconButton} from '../Button';\r\nimport {SystemIcons} from '../icons';\r\n\r\nconst Wrapper = styled.div`\r\n position: relative;\r\n`;\r\n\r\nconst Loading = styled.div`\r\n height: 20px;\r\n width: 20px;\r\n`;\r\n\r\nexport const ChipInputBoundItems = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n gap: 8px;\r\n flex: 1;\r\n min-width: 40px;\r\n`;\r\n\r\nexport const ChipInputContentContainer = styled.div`\r\n width: 100%;\r\n background: transparent;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n column-gap: 8px;\r\n margin-right: 6px;\r\n padding-right: 10px;\r\n padding-left: 16px;\r\n flex-wrap: nowrap;\r\n overflow-x: scroll;\r\n min-height: 48px;\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n ::-webkit-scrollbar:horizontal {\r\n display: none;\r\n }\r\n\r\n .action-right:focus,\r\n button:focus {\r\n outline-offset: -4px !important;\r\n }\r\n`;\r\n\r\nexport const ChipInputEl = styled.input`\r\n border: none;\r\n outline: none;\r\n\r\n height: 40px;\r\n min-width: 40px;\r\n display: inline-flex;\r\n flex: 1;\r\n background: transparent;\r\n\r\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n color: ${props => COLORS.getColor('black', props.theme)} !important;\r\n\r\n &::placeholder {\r\n ${props => ComponentMStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n`;\r\n\r\nexport const ChipInputContainer = styled.div`\r\n width: 100%;\r\n height: auto;\r\n border-radius: 4px;\r\n margin-bottom: 4px;\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_400', props.theme)};\r\n background-color: ${props => COLORS.getColor('white', props.theme)};\r\n box-sizing: border-box;\r\n cursor: text;\r\n outline: none;\r\n display: flex;\r\n align-items: center;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.getColor('black', props.theme))}\r\n &.small {\r\n padding: 0;\r\n min-height: 48px;\r\n\r\n ${ChipInputEl}::placeholder {\r\n ${props => ComponentSStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n }\r\n\r\n &.medium {\r\n padding: 4px 0;\r\n min-height: 56px;\r\n\r\n ${ChipInputEl}::placeholder {\r\n ${props => ComponentMStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n }\r\n\r\n &.multiline.medium {\r\n ${ChipInputContentContainer} {\r\n max-height: calc(48px * 3);\r\n flex-wrap: wrap;\r\n overflow-y: auto;\r\n overflow-x: unset;\r\n }\r\n }\r\n\r\n &.focus-visible-within,\r\n &:focus {\r\n ${focusStyles}\r\n }\r\n\r\n &:hover {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('primary_700', props.theme)};\r\n }\r\n\r\n &:focus-within {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('primary_800', props.theme)};\r\n }\r\n\r\n &.invalid,\r\n &.invalid:hover,\r\n &.invalid:focus {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('critical_500', props.theme)};\r\n }\r\n\r\n &.disabled {\r\n ${ChipInputContentContainer} {\r\n pointer-events: none;\r\n }\r\n\r\n cursor: not-allowed;\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_100', props.theme)};\r\n outline: none;\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)} !important;\r\n }\r\n`;\r\n\r\nexport interface ChipInputFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'id' | 'required' | 'tabIndex' | 'value' | 'onChange' | 'onKeyDown' | 'placeholder' | 'onClick' | 'disabled' | 'size'> {\r\n inputId: string;\r\n items: ChipItem[];\r\n disabled?: boolean;\r\n placeholder?: string;\r\n altPlaceholder?: string;\r\n multiLine?: boolean;\r\n size?: Size.Large | Size.Medium | Size.Small;\r\n loading?: boolean;\r\n required?: boolean;\r\n\r\n validationMessage?: string;\r\n\r\n onRemoveItem: (item: ChipItem, index: number) => void;\r\n inputValue: string;\r\n onInputValueChange: (value: string) => void;\r\n onInputKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n onActivationChange?: (active: boolean) => void;\r\n}\r\n\r\nexport const ChipInputField = React.forwardRef<HTMLInputElement, ChipInputFieldProps>(\r\n (\r\n {\r\n inputId,\r\n items,\r\n disabled = false,\r\n placeholder,\r\n altPlaceholder,\r\n multiLine = true,\r\n size = Size.Medium,\r\n validationMessage,\r\n loading,\r\n onRemoveItem,\r\n onInputValueChange,\r\n onInputKeyDown,\r\n onActivationChange,\r\n inputValue,\r\n required,\r\n onBlur,\r\n ...rest\r\n },\r\n ref,\r\n ) => {\r\n const theme = useTheme();\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const inputRef = useFocusVisibleRef([containerRef]);\r\n \r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef])\r\n\r\n /**\r\n * Scroll container to last item on change\r\n * */\r\n React.useEffect(() => {\r\n if (inputRef.current && document.activeElement === inputRef.current) {\r\n inputRef.current.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n }, [containerRef, inputRef, items]);\r\n\r\n /**\r\n * Remove last cheap on backspace\r\n * */\r\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Backspace' && !inputRef.current?.value && !e.repeat && items.length > 0) {\r\n onRemoveItem(items[items.length - 1], items.length - 1);\r\n } else {\r\n onInputKeyDown(e);\r\n }\r\n };\r\n\r\n const handleItemRemove = (event: any, item: ChipItem, index: number) => {\r\n onRemoveItem(item, index);\r\n inputRef.current?.focus({focusVisible: event.detail !== 1} as any);\r\n };\r\n\r\n const handleInputClear = (e: any) => {\r\n onInputValueChange('');\r\n inputRef.current?.focus({focusVisible: e?.detail !== 1} as any);\r\n };\r\n\r\n const handleContainerKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (!containerRef.current || (e.key !== 'ArrowLeft' && e.key !== 'ArrowRight')) return;\r\n\r\n const items = containerRef.current.querySelectorAll('[tabindex=\"0\"]') as NodeListOf<HTMLElement>;\r\n const currentIndex = Array.from(items).indexOf(e.target as any);\r\n const direction = e.key === 'ArrowLeft' ? -1 : 1;\r\n const item = items[currentIndex + direction];\r\n item?.focus({focusVisible: true} as any);\r\n\r\n onActivationChange && onActivationChange(false);\r\n };\r\n\r\n const cls = `${multiLine ? 'multiline' : ''} ${validationMessage ? 'invalid' : ''} ${size} ${loading ? 'loading' : ''} ${disabled ? 'disabled' : ''}`;\r\n\r\n return (\r\n <Wrapper onBlur={onBlur}>\r\n <ChipInputContainer\r\n data-testid=\"chip-input-container\"\r\n ref={containerRef}\r\n onKeyDown={handleContainerKeyDown}\r\n onClick={() => !disabled && inputRef.current?.focus()}\r\n className={cls}>\r\n <ChipInputContentContainer>\r\n {items?.map((chip: ChipItem, index: number) => (\r\n <InputChip\r\n key={`chip_${index}`}\r\n icon={chip?.icon}\r\n size={size}\r\n disabled={chip.disabled || disabled}\r\n variant={chip.variant || States.Default}\r\n text={chip.label}\r\n onRemove={(e) => handleItemRemove(e, chip, index)}\r\n />\r\n ))}\r\n <ChipInputBoundItems>\r\n <ChipInputEl\r\n ref={inputRef}\r\n type=\"text\"\r\n id={inputId}\r\n required={required}\r\n tabIndex={disabled ? -1 : 0}\r\n value={inputValue}\r\n onChange={(e) => onInputValueChange(e.target.value)}\r\n onKeyDown={handleInputKeyDown}\r\n placeholder={items?.length === 0 ? placeholder : altPlaceholder || ''}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n onActivationChange && onActivationChange(true);\r\n }}\r\n {...rest}\r\n />\r\n {inputValue && !disabled && (\r\n <IconButton\r\n id={`clear-btn-${inputId}`}\r\n dataTestId={`clear-btn-${inputId}`}\r\n action={handleInputClear}\r\n ref={(ref) => {\r\n ref?.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }}\r\n useTransparentBackground={true}\r\n shape={'circular'}\r\n style={{marginLeft: '-8px'}}\r\n focusOnClick={true}\r\n variant={'secondary'}>\r\n <SystemIcons.Clear/>\r\n </IconButton>\r\n )}\r\n\r\n {loading && (\r\n <Loading className={size}>\r\n <LoadingIndicator size={Size.Small} color={COLORS.generateToken({componentType:'icon',defaultVariant:'subtle'}, theme)}/>\r\n </Loading>\r\n )}\r\n </ChipInputBoundItems>\r\n </ChipInputContentContainer>\r\n </ChipInputContainer>\r\n {validationMessage && (\r\n <ErrorMessage>\r\n <SystemIcons.TechnicalWarning color={COLORS.getColor('critical_400', theme)}/>\r\n <span>{validationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n </Wrapper>\r\n );\r\n },\r\n);\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ChipInputField.js","names":["React","Size","States","InputChip","ErrorMessage","COLORS","ComponentMStyling","ComponentSStyling","ComponentTextStyle","focusStyles","scrollBarStyling","styled","useTheme","LoadingIndicator","useFocusVisibleRef","IconButton","SystemIcons","jsx","_jsx","jsxs","_jsxs","Wrapper","div","Loading","ChipInputBoundItems","ChipInputContentContainer","Small","ChipInputEl","input","Regular","props","getColor","theme","Italic","generateToken","componentType","defaultVariant","ChipInputContainer","ChipInputField","forwardRef","_ref","ref","inputId","items","disabled","placeholder","altPlaceholder","multiLine","size","Medium","validationMessage","loading","onRemoveItem","onInputValueChange","onInputKeyDown","onActivationChange","inputValue","required","onBlur","rest","_objectWithoutProperties","_excluded","containerRef","useRef","inputRef","useImperativeHandle","current","useEffect","document","activeElement","scrollIntoView","block","inline","handleInputKeyDown","e","key","value","repeat","length","handleItemRemove","event","item","index","focus","focusVisible","detail","handleInputClear","handleContainerKeyDown","querySelectorAll","currentIndex","Array","from","indexOf","target","direction","cls","children","onKeyDown","onClick","className","map","chip","icon","variant","Default","text","label","onRemove","_objectSpread","type","id","tabIndex","onChange","stopPropagation","dataTestId","action","useTransparentBackground","shape","style","marginLeft","focusOnClick","Clear","color","TechnicalWarning","propTypes","_pt","string","isRequired","array","bool","func"],"sources":["../../src/ChipsInput/ChipInputField.tsx"],"sourcesContent":["import React from 'react';\r\nimport {ChipItem} from './ChipInputTypes';\r\nimport {Size, States} from '../types';\r\nimport {InputChip} from '../Chips';\r\nimport {ErrorMessage} from '../InputFields';\r\nimport {\r\n COLORS,\r\n ComponentMStyling,\r\n ComponentSStyling,\r\n ComponentTextStyle,\r\n focusStyles,\r\n scrollBarStyling\r\n} from '../styles';\r\nimport styled, { useTheme } from 'styled-components';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {IconButton} from '../Button';\r\nimport {SystemIcons} from '../icons';\r\n\r\nconst Wrapper = styled.div`\r\n position: relative;\r\n`;\r\n\r\nconst Loading = styled.div`\r\n height: 20px;\r\n width: 20px;\r\n`;\r\n\r\nexport const ChipInputBoundItems = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n gap: 8px;\r\n flex: 1;\r\n min-width: 40px;\r\n`;\r\n\r\nexport const ChipInputContentContainer = styled.div`\r\n width: 100%;\r\n background: transparent;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n column-gap: 8px;\r\n margin-right: 6px;\r\n padding-right: 10px;\r\n padding-left: 16px;\r\n flex-wrap: nowrap;\r\n overflow-x: scroll;\r\n min-height: 48px;\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n ::-webkit-scrollbar:horizontal {\r\n display: none;\r\n }\r\n\r\n .action-right:focus,\r\n button:focus {\r\n outline-offset: -4px !important;\r\n }\r\n`;\r\n\r\nexport const ChipInputEl = styled.input`\r\n border: none;\r\n outline: none;\r\n\r\n height: 40px;\r\n min-width: 40px;\r\n display: inline-flex;\r\n flex: 1;\r\n background: transparent;\r\n\r\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n color: ${props => COLORS.getColor('black', props.theme)} !important;\r\n\r\n &::placeholder {\r\n ${props => ComponentMStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n`;\r\n\r\nexport const ChipInputContainer = styled.div`\r\n width: 100%;\r\n height: auto;\r\n border-radius: 4px;\r\n margin-bottom: 4px;\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_400', props.theme)};\r\n background-color: ${props => COLORS.generateToken({componentType:'bg-surface', defaultVariant:'default'}, props.theme)};\r\n box-sizing: border-box;\r\n cursor: text;\r\n outline: none;\r\n display: flex;\r\n align-items: center;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme))}\r\n &.small {\r\n padding: 0;\r\n min-height: 48px;\r\n\r\n ${ChipInputEl}::placeholder {\r\n ${props => ComponentSStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n }\r\n\r\n &.medium {\r\n padding: 4px 0;\r\n min-height: 56px;\r\n\r\n ${ChipInputEl}::placeholder {\r\n ${props => ComponentMStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text',defaultVariant:'subtle'}, props.theme))}\r\n }\r\n }\r\n\r\n &.multiline.medium {\r\n ${ChipInputContentContainer} {\r\n max-height: calc(48px * 3);\r\n flex-wrap: wrap;\r\n overflow-y: auto;\r\n overflow-x: unset;\r\n }\r\n }\r\n\r\n &.focus-visible-within,\r\n &:focus {\r\n ${focusStyles}\r\n }\r\n\r\n &:hover {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('primary_700', props.theme)};\r\n }\r\n\r\n &:focus-within {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('primary_800', props.theme)};\r\n }\r\n\r\n &.invalid,\r\n &.invalid:hover,\r\n &.invalid:focus {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.getColor('critical_500', props.theme)};\r\n }\r\n\r\n &.disabled {\r\n ${ChipInputContentContainer} {\r\n pointer-events: none;\r\n }\r\n\r\n cursor: not-allowed;\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.getColor('neutral_100', props.theme)};\r\n outline: none;\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)} !important;\r\n }\r\n`;\r\n\r\nexport interface ChipInputFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'id' | 'required' | 'tabIndex' | 'value' | 'onChange' | 'onKeyDown' | 'placeholder' | 'onClick' | 'disabled' | 'size'> {\r\n inputId: string;\r\n items: ChipItem[];\r\n disabled?: boolean;\r\n placeholder?: string;\r\n altPlaceholder?: string;\r\n multiLine?: boolean;\r\n size?: Size.Large | Size.Medium | Size.Small;\r\n loading?: boolean;\r\n required?: boolean;\r\n\r\n validationMessage?: string;\r\n\r\n onRemoveItem: (item: ChipItem, index: number) => void;\r\n inputValue: string;\r\n onInputValueChange: (value: string) => void;\r\n onInputKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n onActivationChange?: (active: boolean) => void;\r\n}\r\n\r\nexport const ChipInputField = React.forwardRef<HTMLInputElement, ChipInputFieldProps>(\r\n (\r\n {\r\n inputId,\r\n items,\r\n disabled = false,\r\n placeholder,\r\n altPlaceholder,\r\n multiLine = true,\r\n size = Size.Medium,\r\n validationMessage,\r\n loading,\r\n onRemoveItem,\r\n onInputValueChange,\r\n onInputKeyDown,\r\n onActivationChange,\r\n inputValue,\r\n required,\r\n onBlur,\r\n ...rest\r\n },\r\n ref,\r\n ) => {\r\n const theme = useTheme();\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const inputRef = useFocusVisibleRef([containerRef]);\r\n \r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef])\r\n\r\n /**\r\n * Scroll container to last item on change\r\n * */\r\n React.useEffect(() => {\r\n if (inputRef.current && document.activeElement === inputRef.current) {\r\n inputRef.current.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n }, [containerRef, inputRef, items]);\r\n\r\n /**\r\n * Remove last cheap on backspace\r\n * */\r\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Backspace' && !inputRef.current?.value && !e.repeat && items.length > 0) {\r\n onRemoveItem(items[items.length - 1], items.length - 1);\r\n } else {\r\n onInputKeyDown(e);\r\n }\r\n };\r\n\r\n const handleItemRemove = (event: any, item: ChipItem, index: number) => {\r\n onRemoveItem(item, index);\r\n inputRef.current?.focus({focusVisible: event.detail !== 1} as any);\r\n };\r\n\r\n const handleInputClear = (e: any) => {\r\n onInputValueChange('');\r\n inputRef.current?.focus({focusVisible: e?.detail !== 1} as any);\r\n };\r\n\r\n const handleContainerKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (!containerRef.current || (e.key !== 'ArrowLeft' && e.key !== 'ArrowRight')) return;\r\n\r\n const items = containerRef.current.querySelectorAll('[tabindex=\"0\"]') as NodeListOf<HTMLElement>;\r\n const currentIndex = Array.from(items).indexOf(e.target as any);\r\n const direction = e.key === 'ArrowLeft' ? -1 : 1;\r\n const item = items[currentIndex + direction];\r\n item?.focus({focusVisible: true} as any);\r\n\r\n onActivationChange && onActivationChange(false);\r\n };\r\n\r\n const cls = `${multiLine ? 'multiline' : ''} ${validationMessage ? 'invalid' : ''} ${size} ${loading ? 'loading' : ''} ${disabled ? 'disabled' : ''}`;\r\n\r\n return (\r\n <Wrapper onBlur={onBlur}>\r\n <ChipInputContainer\r\n data-testid=\"chip-input-container\"\r\n ref={containerRef}\r\n onKeyDown={handleContainerKeyDown}\r\n onClick={() => !disabled && inputRef.current?.focus()}\r\n className={cls}>\r\n <ChipInputContentContainer>\r\n {items?.map((chip: ChipItem, index: number) => (\r\n <InputChip\r\n key={`chip_${index}`}\r\n icon={chip?.icon}\r\n size={size}\r\n disabled={chip.disabled || disabled}\r\n variant={chip.variant || States.Default}\r\n text={chip.label}\r\n onRemove={(e) => handleItemRemove(e, chip, index)}\r\n />\r\n ))}\r\n <ChipInputBoundItems>\r\n <ChipInputEl\r\n ref={inputRef}\r\n type=\"text\"\r\n id={inputId}\r\n required={required}\r\n tabIndex={disabled ? -1 : 0}\r\n value={inputValue}\r\n onChange={(e) => onInputValueChange(e.target.value)}\r\n onKeyDown={handleInputKeyDown}\r\n placeholder={items?.length === 0 ? placeholder : altPlaceholder || ''}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n onActivationChange && onActivationChange(true);\r\n }}\r\n {...rest}\r\n />\r\n {inputValue && !disabled && (\r\n <IconButton\r\n id={`clear-btn-${inputId}`}\r\n dataTestId={`clear-btn-${inputId}`}\r\n action={handleInputClear}\r\n ref={(ref) => {\r\n ref?.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }}\r\n useTransparentBackground={true}\r\n shape={'circular'}\r\n style={{marginLeft: '-8px'}}\r\n focusOnClick={true}\r\n variant={'secondary'}>\r\n <SystemIcons.Clear/>\r\n </IconButton>\r\n )}\r\n\r\n {loading && (\r\n <Loading className={size}>\r\n <LoadingIndicator size={Size.Small} color={COLORS.generateToken({componentType:'icon',defaultVariant:'subtle'}, theme)}/>\r\n </Loading>\r\n )}\r\n </ChipInputBoundItems>\r\n </ChipInputContentContainer>\r\n </ChipInputContainer>\r\n {validationMessage && (\r\n <ErrorMessage>\r\n <SystemIcons.TechnicalWarning color={COLORS.getColor('critical_400', theme)}/>\r\n <span>{validationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n </Wrapper>\r\n );\r\n },\r\n);\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {act, fireEvent, render, RenderResult} from '../../test-utils';
|
|
3
|
+
import {ChipDropdownInput} from '../..';
|
|
4
|
+
import '../../../jest.setup';
|
|
5
|
+
|
|
6
|
+
const list = ['Contact', 'About', 'Base', 'Blog', 'Custom', 'Support', 'Tools'];
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
describe('<ChipDropdownInput />', () => {
|
|
11
|
+
it('Renders with no default values and no items available', async () => {
|
|
12
|
+
let componentResult: RenderResult;
|
|
13
|
+
|
|
14
|
+
//initial values are determined by using multiple hooks (useEffect)
|
|
15
|
+
//in order to be sure we get the last rendered version of the component, we need to wait for it
|
|
16
|
+
await act(async () => {
|
|
17
|
+
componentResult = render(
|
|
18
|
+
<ChipDropdownInput inputId="test_chip" list={[]} values={[]} onValueChange={(input) => {
|
|
19
|
+
}} placeholder="Search" altPlaceholder="" messageOnNoResults="No results found"/>,
|
|
20
|
+
);
|
|
21
|
+
});
|
|
22
|
+
//check correct placeholder displayed
|
|
23
|
+
expect(componentResult!.getByPlaceholderText('Search') as HTMLInputElement).toBeTruthy();
|
|
24
|
+
//check chip input with provided id rendered
|
|
25
|
+
expect(componentResult!.container.querySelector('input[id="test_chip"]')).toBeTruthy();
|
|
26
|
+
//check no initial value displayed
|
|
27
|
+
expect((componentResult!.getByPlaceholderText('Search') as HTMLInputElement).value).toBe('');
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('Renders with default values and items available', async () => {
|
|
31
|
+
let componentResult: RenderResult;
|
|
32
|
+
await act(async () => {
|
|
33
|
+
componentResult = render(
|
|
34
|
+
<ChipDropdownInput
|
|
35
|
+
inputId="test_chip"
|
|
36
|
+
list={list}
|
|
37
|
+
values={['Support']}
|
|
38
|
+
onValueChange={(input) => {
|
|
39
|
+
}}
|
|
40
|
+
placeholder="Search"
|
|
41
|
+
altPlaceholder="Type to search"
|
|
42
|
+
messageOnNoResults="No results found"
|
|
43
|
+
/>,
|
|
44
|
+
);
|
|
45
|
+
});
|
|
46
|
+
//check alt placeholder displayed when list values
|
|
47
|
+
expect(componentResult!.getByPlaceholderText('Type to search') as HTMLInputElement).toBeTruthy();
|
|
48
|
+
//check correct initial value displayed
|
|
49
|
+
expect(componentResult!.getByText('Support')).toBeTruthy();
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('Renders dropdown on input click', async () => {
|
|
53
|
+
const wrapper = render(
|
|
54
|
+
<ChipDropdownInput
|
|
55
|
+
inputId="test_chip"
|
|
56
|
+
list={list}
|
|
57
|
+
values={['Support']}
|
|
58
|
+
onValueChange={(input) => {
|
|
59
|
+
}}
|
|
60
|
+
placeholder="Search"
|
|
61
|
+
altPlaceholder="Type to search"
|
|
62
|
+
messageOnNoResults="No results found"
|
|
63
|
+
/>,
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
act(() => {
|
|
67
|
+
fireEvent.click(wrapper.getByPlaceholderText('Type to search'));
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
expect(wrapper.container.querySelector('.show')).toBeInTheDocument();
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it('Renders dropdown and items are filtered by search criteria', () => {
|
|
74
|
+
const changeMock = jest.fn();
|
|
75
|
+
|
|
76
|
+
const wrapper = render(
|
|
77
|
+
<ChipDropdownInput
|
|
78
|
+
inputId="test_chip"
|
|
79
|
+
list={list}
|
|
80
|
+
values={[]}
|
|
81
|
+
onValueChange={changeMock}
|
|
82
|
+
placeholder="Search"
|
|
83
|
+
altPlaceholder="Type to search"
|
|
84
|
+
messageOnNoResults="No results found"
|
|
85
|
+
/>,
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
act(() => {
|
|
89
|
+
fireEvent.change(wrapper.getByPlaceholderText('Search'), {target: {value: 'b'}});
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
list.filter((item) => item.toLowerCase().includes('b')).forEach((item) => {
|
|
93
|
+
expect(wrapper.queryByText(item)).toBeInTheDocument();
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
list.filter((item) => !item.toLowerCase().includes('b')).forEach((item) => {
|
|
97
|
+
expect(wrapper.queryByText(item)).not.toBeInTheDocument();
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
});
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { act, fireEvent, render, RenderResult } from '../../test-utils';
|
|
3
|
+
import { ChipInput, Size } from '../..';
|
|
4
|
+
import '../../../jest.setup';
|
|
5
|
+
|
|
6
|
+
const list = ['Contact', 'About', 'Base', 'Blog', 'Custom', 'Support', 'Tools'];
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
describe('<ChipInput />', () => {
|
|
11
|
+
it('Render component correctly', async () => {
|
|
12
|
+
let componentResult: RenderResult;
|
|
13
|
+
|
|
14
|
+
//initial values are determined by using multiple hooks (useEffect)
|
|
15
|
+
//in order to be sure we get the last rendered version of the component, we need to wait for it
|
|
16
|
+
await act(async () => {
|
|
17
|
+
componentResult = render(
|
|
18
|
+
<ChipInput size={Size.Medium} inputId="utest" values={[list[0]]} onValueChange={() => {}} placeholder="Plchd label" altPlaceholder="Alt plchd label" />,
|
|
19
|
+
);
|
|
20
|
+
});
|
|
21
|
+
//check element wrapper component rendered
|
|
22
|
+
expect(componentResult!.getByTestId('chip-input-container')).toBeTruthy();
|
|
23
|
+
//check correct placeholder displayed
|
|
24
|
+
expect(componentResult!.getByPlaceholderText('Alt plchd label') as HTMLInputElement).toBeTruthy();
|
|
25
|
+
//check chip input with provided id rendered
|
|
26
|
+
expect(componentResult!.container.querySelector('input[id="utest"]')).toBeTruthy();
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('Render component with correct size', async () => {
|
|
30
|
+
let componentResult: RenderResult;
|
|
31
|
+
|
|
32
|
+
await act(async () => {
|
|
33
|
+
componentResult = render(
|
|
34
|
+
<ChipInput size={Size.Small} inputId="utest" values={[list[0]]} onValueChange={() => {}} placeholder="Plchd label" altPlaceholder="Alt plchd label" />,
|
|
35
|
+
);
|
|
36
|
+
});
|
|
37
|
+
//check element wrapper component rendered
|
|
38
|
+
expect(componentResult!.getByTestId('chip-input-container')).toBeTruthy();
|
|
39
|
+
|
|
40
|
+
//check element has correct class size present
|
|
41
|
+
expect(componentResult!.getByTestId('chip-input-container')).toHaveClass('small');
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('Test component focused on click', async () => {
|
|
45
|
+
let componentResult: RenderResult;
|
|
46
|
+
|
|
47
|
+
//initial values are determined by using multiple hooks (useEffect)
|
|
48
|
+
//in order to be sure we get the last rendered version of the component, we need to wait for it
|
|
49
|
+
await act(async () => {
|
|
50
|
+
componentResult = render(
|
|
51
|
+
<ChipInput size={Size.Small} inputId="utest" values={[list[0]]} onValueChange={() => {}} placeholder="Plchd label" altPlaceholder="Alt plchd label" />,
|
|
52
|
+
);
|
|
53
|
+
});
|
|
54
|
+
//check element wrapper component rendered
|
|
55
|
+
expect(componentResult!.getByTestId('chip-input-container')).toBeTruthy();
|
|
56
|
+
|
|
57
|
+
//check focus not present
|
|
58
|
+
expect(componentResult!.getByPlaceholderText('Alt plchd label') as HTMLInputElement).not.toHaveFocus();
|
|
59
|
+
|
|
60
|
+
//trigger click for chip input
|
|
61
|
+
fireEvent.click(componentResult!.getByTestId('chip-input-container'));
|
|
62
|
+
|
|
63
|
+
//check focus present
|
|
64
|
+
expect(componentResult!.getByPlaceholderText('Alt plchd label') as HTMLInputElement).toHaveFocus();
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it('Test component callbacks', async () => {
|
|
68
|
+
const onValueChange = jest.fn();
|
|
69
|
+
let componentResult: RenderResult;
|
|
70
|
+
|
|
71
|
+
//initial values are determined by using multiple hooks (useEffect)
|
|
72
|
+
//in order to be sure we get the last rendered version of the component, we need to wait for it
|
|
73
|
+
await act(async () => {
|
|
74
|
+
componentResult = render(
|
|
75
|
+
<ChipInput size={Size.Small} inputId="utest" values={[list[0]]} onValueChange={onValueChange} placeholder="Plchd label" altPlaceholder="Alt plchd label" />,
|
|
76
|
+
);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
//mock scrollIntoView otherwise test will fail when selecting an item
|
|
80
|
+
window.HTMLElement.prototype.scrollIntoView = function () {};
|
|
81
|
+
|
|
82
|
+
const inputElem = componentResult!.getByPlaceholderText('Alt plchd label') as HTMLInputElement;
|
|
83
|
+
|
|
84
|
+
//check element wrapper component rendered
|
|
85
|
+
expect(componentResult!.getByTestId('chip-input-container')).toBeTruthy();
|
|
86
|
+
|
|
87
|
+
//trigger click for chip input
|
|
88
|
+
fireEvent.click(componentResult!.getByTestId('chip-input-container'));
|
|
89
|
+
|
|
90
|
+
//trigger value change
|
|
91
|
+
fireEvent.change(inputElem, { target: { value: list[1] } });
|
|
92
|
+
|
|
93
|
+
//pressing enter will automatically select the found item
|
|
94
|
+
fireEvent.keyDown(inputElem, { key: 'Enter', code: 'Enter', charCode: 13 });
|
|
95
|
+
|
|
96
|
+
expect(onValueChange).toHaveBeenCalledTimes(1);
|
|
97
|
+
|
|
98
|
+
//two items present, default and the new selected one
|
|
99
|
+
expect(componentResult!.container.querySelectorAll('.chip-icon')).toHaveLength(2);
|
|
100
|
+
|
|
101
|
+
//pressing on the x button, the item will be removed from selection
|
|
102
|
+
const removeItemElem = componentResult!.getByTestId('chip-input-container').querySelector('div.chip-icon') as HTMLDivElement;
|
|
103
|
+
|
|
104
|
+
fireEvent.click(removeItemElem);
|
|
105
|
+
|
|
106
|
+
//change callback should be called
|
|
107
|
+
expect(onValueChange).toHaveBeenCalledTimes(2);
|
|
108
|
+
//only one item should be present at the moment
|
|
109
|
+
expect(componentResult!.container.querySelectorAll('.chip-icon')).toHaveLength(1);
|
|
110
|
+
|
|
111
|
+
//expect that on pressing backspace the added item will be deleted
|
|
112
|
+
fireEvent.keyDown(inputElem, { key: 'Backspace', charCode: 8 });
|
|
113
|
+
|
|
114
|
+
//no item should be present at the moment
|
|
115
|
+
expect(componentResult!.container.querySelectorAll('.chip-icon')).toHaveLength(0);
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
it('Test component chips are removed when clear all button toggled', async () => {
|
|
119
|
+
const onValueChange = jest.fn();
|
|
120
|
+
let componentResult: RenderResult;
|
|
121
|
+
|
|
122
|
+
//initial values are determined by using multiple hooks (useEffect)
|
|
123
|
+
//in order to be sure we get the last rendered version of the component, we need to wait for it
|
|
124
|
+
await act(async () => {
|
|
125
|
+
componentResult = render(
|
|
126
|
+
<ChipInput size={Size.Small} inputId="utest" values={[list[0]]} onValueChange={onValueChange} placeholder="Plchd label" altPlaceholder="Alt plchd label" />,
|
|
127
|
+
);
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
//check element wrapper component rendered
|
|
131
|
+
expect(componentResult!.getByTestId('chip-input-container')).toBeTruthy();
|
|
132
|
+
|
|
133
|
+
//one item present, the default one
|
|
134
|
+
expect(componentResult!.container.querySelectorAll('.chip-icon')).toHaveLength(1);
|
|
135
|
+
const input = componentResult!.getByPlaceholderText('Alt plchd label') as HTMLInputElement;
|
|
136
|
+
|
|
137
|
+
const mockInputData = 'mock data';
|
|
138
|
+
//trigger value change
|
|
139
|
+
fireEvent.change(input, { target: { value: mockInputData } });
|
|
140
|
+
|
|
141
|
+
expect(input).toHaveValue(mockInputData);
|
|
142
|
+
|
|
143
|
+
//expect clear button to be displayed
|
|
144
|
+
expect(componentResult!.getByTestId('clear-btn-utest')).toBeTruthy();
|
|
145
|
+
|
|
146
|
+
//press on clear button
|
|
147
|
+
fireEvent.click(componentResult!.getByTestId('clear-btn-utest'));
|
|
148
|
+
|
|
149
|
+
//expect input to have no value
|
|
150
|
+
expect(input).toHaveValue('');
|
|
151
|
+
|
|
152
|
+
//one chip selected
|
|
153
|
+
expect(componentResult!.container.querySelectorAll('.chip-icon')).toHaveLength(1);
|
|
154
|
+
});
|
|
155
|
+
});
|
|
@@ -8,7 +8,7 @@ exports.default = exports.DropdownContentListContainer = exports.DropdownContent
|
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
-
var
|
|
11
|
+
var _TextButton = _interopRequireDefault(require("../Button/TextButton"));
|
|
12
12
|
var _types = require("../types");
|
|
13
13
|
var _CommonStyling = require("./CommonStyling");
|
|
14
14
|
var _typography = require("../styles/typography");
|
|
@@ -579,7 +579,7 @@ const DropdownContent = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
|
579
579
|
}), customizationProps.action && customizationProps.actionLabel && /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownContentActionButtonContainer, {
|
|
580
580
|
$size: size,
|
|
581
581
|
$scrollable: customizationProps.scrollable,
|
|
582
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
582
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextButton.default, {
|
|
583
583
|
width: "100%",
|
|
584
584
|
role: "menuitem",
|
|
585
585
|
icon: customizationProps.actionIcon,
|