@dxc-technology/halstack-react 0.0.0-efa7c74 → 0.0.0-eff2879
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/BackgroundColorContext.d.ts +1 -0
- package/BackgroundColorContext.js +6 -26
- package/HalstackContext.d.ts +1248 -0
- package/HalstackContext.js +310 -0
- package/README.md +47 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +106 -193
- package/accordion/Accordion.stories.tsx +251 -0
- package/accordion/Accordion.test.js +56 -0
- package/accordion/types.d.ts +12 -23
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +3 -3
- package/accordion-group/AccordionGroup.js +39 -108
- package/accordion-group/AccordionGroup.stories.tsx +252 -0
- package/accordion-group/AccordionGroup.test.js +98 -0
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +18 -23
- package/action-icon/ActionIcon.accessibility.test.js +63 -0
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +48 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.accessibility.test.js +95 -0
- package/alert/Alert.js +36 -126
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +75 -0
- package/alert/types.d.ts +5 -5
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +142 -40
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +54 -0
- package/bleed/Bleed.d.ts +3 -0
- package/bleed/Bleed.js +43 -0
- package/bleed/Bleed.stories.tsx +342 -0
- package/bleed/types.d.ts +37 -0
- package/box/Box.accessibility.test.js +33 -0
- package/box/Box.d.ts +1 -1
- package/box/Box.js +31 -82
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +13 -0
- package/box/types.d.ts +3 -14
- package/bulleted-list/BulletedList.accessibility.test.js +107 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +92 -0
- package/bulleted-list/BulletedList.stories.tsx +115 -0
- package/bulleted-list/types.d.ts +38 -0
- package/bulleted-list/types.js +5 -0
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +65 -123
- package/button/Button.stories.tsx +155 -106
- package/button/Button.test.js +38 -0
- package/button/types.d.ts +12 -12
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.d.ts +1 -1
- package/card/Card.js +59 -103
- package/card/Card.stories.tsx +13 -43
- package/card/Card.test.js +39 -0
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +145 -183
- package/checkbox/Checkbox.stories.tsx +166 -136
- package/checkbox/Checkbox.test.js +199 -0
- package/checkbox/types.d.ts +19 -7
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.d.ts +4 -0
- package/chip/Chip.js +49 -146
- package/chip/Chip.stories.tsx +104 -30
- package/chip/Chip.test.js +41 -0
- package/chip/types.d.ts +45 -0
- package/chip/types.js +5 -0
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +6 -12
- package/common/variables.d.ts +1394 -0
- package/common/variables.js +1035 -1346
- package/container/Container.d.ts +4 -0
- package/container/Container.js +194 -0
- package/container/Container.stories.tsx +214 -0
- package/container/types.d.ts +74 -0
- package/container/types.js +5 -0
- package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
- package/contextual-menu/ContextualMenu.d.ts +5 -0
- package/contextual-menu/ContextualMenu.js +88 -0
- package/contextual-menu/ContextualMenu.stories.tsx +219 -0
- package/contextual-menu/ContextualMenu.test.js +205 -0
- package/contextual-menu/GroupItem.d.ts +4 -0
- package/contextual-menu/GroupItem.js +67 -0
- package/contextual-menu/ItemAction.d.ts +4 -0
- package/contextual-menu/ItemAction.js +52 -0
- package/contextual-menu/MenuItem.d.ts +4 -0
- package/contextual-menu/MenuItem.js +29 -0
- package/contextual-menu/SingleItem.d.ts +4 -0
- package/contextual-menu/SingleItem.js +38 -0
- package/contextual-menu/types.d.ts +58 -0
- package/contextual-menu/types.js +5 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.accessibility.test.js +216 -0
- package/date-input/DateInput.js +174 -313
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +808 -0
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +121 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +86 -22
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +57 -130
- package/dialog/Dialog.stories.tsx +320 -167
- package/dialog/Dialog.test.js +307 -0
- package/dialog/types.d.ts +18 -25
- package/divider/Divider.accessibility.test.js +33 -0
- package/divider/Divider.d.ts +4 -0
- package/divider/Divider.js +36 -0
- package/divider/Divider.stories.tsx +223 -0
- package/divider/Divider.test.js +38 -0
- package/divider/types.d.ts +21 -0
- package/divider/types.js +5 -0
- package/dropdown/Dropdown.accessibility.test.js +180 -0
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +232 -330
- package/dropdown/Dropdown.stories.tsx +427 -0
- package/dropdown/Dropdown.test.js +599 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +70 -0
- package/dropdown/types.d.ts +38 -31
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +272 -340
- package/file-input/FileInput.stories.tsx +618 -0
- package/file-input/FileInput.test.js +382 -0
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +60 -121
- package/file-input/types.d.ts +53 -11
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/flex/types.js +5 -0
- package/footer/Footer.accessibility.test.js +117 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +74 -200
- package/footer/{Footer.stories.jsx → Footer.stories.tsx} +84 -39
- package/footer/Footer.test.js +85 -0
- package/footer/Icons.d.ts +3 -0
- package/footer/Icons.js +67 -8
- package/footer/types.d.ts +40 -37
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/grid/types.js +5 -0
- package/header/Header.accessibility.test.js +84 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +103 -218
- package/header/Header.stories.tsx +152 -63
- package/header/Header.test.js +66 -0
- package/header/Icons.d.ts +2 -0
- package/header/Icons.js +4 -9
- package/header/types.d.ts +7 -21
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +11 -33
- package/heading/Heading.stories.tsx +3 -2
- package/heading/Heading.test.js +169 -0
- package/heading/types.d.ts +7 -7
- package/icon/Icon.accessibility.test.js +30 -0
- package/icon/Icon.d.ts +4 -0
- package/icon/Icon.js +33 -0
- package/icon/Icon.stories.tsx +28 -0
- package/icon/types.d.ts +4 -0
- package/icon/types.js +5 -0
- package/image/Image.accessibility.test.js +56 -0
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +129 -0
- package/image/types.d.ts +72 -0
- package/image/types.js +5 -0
- package/inset/Inset.d.ts +3 -0
- package/inset/Inset.js +43 -0
- package/inset/Inset.stories.tsx +230 -0
- package/inset/types.d.ts +37 -0
- package/inset/types.js +5 -0
- package/layout/ApplicationLayout.d.ts +20 -0
- package/layout/ApplicationLayout.js +86 -184
- package/layout/ApplicationLayout.stories.tsx +162 -0
- package/layout/Icons.d.ts +7 -0
- package/layout/Icons.js +41 -48
- package/layout/types.d.ts +41 -0
- package/layout/types.js +5 -0
- package/link/Link.accessibility.test.js +112 -0
- package/link/Link.d.ts +3 -2
- package/link/Link.js +65 -109
- package/link/Link.stories.tsx +159 -52
- package/link/Link.test.js +63 -0
- package/link/types.d.ts +15 -35
- package/main.d.ts +19 -14
- package/main.js +92 -98
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +7 -0
- package/nav-tabs/NavTabs.js +93 -0
- package/nav-tabs/NavTabs.stories.tsx +279 -0
- package/nav-tabs/NavTabs.test.js +75 -0
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +117 -0
- package/nav-tabs/types.d.ts +52 -0
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.accessibility.test.js +228 -0
- package/number-input/NumberInput.js +48 -48
- package/number-input/NumberInput.stories.tsx +44 -28
- package/number-input/NumberInput.test.js +989 -0
- package/number-input/NumberInputContext.d.ts +3 -4
- package/number-input/NumberInputContext.js +3 -14
- package/number-input/types.d.ts +34 -15
- package/package.json +52 -51
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +39 -103
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +335 -0
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +22 -0
- package/paragraph/Paragraph.stories.tsx +27 -0
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +59 -125
- package/password-input/PasswordInput.stories.tsx +3 -35
- package/password-input/PasswordInput.test.js +198 -0
- package/password-input/types.d.ts +32 -26
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +66 -92
- package/progress-bar/ProgressBar.stories.tsx +93 -0
- package/progress-bar/ProgressBar.test.js +93 -0
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +94 -0
- package/quick-nav/QuickNav.stories.tsx +356 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- package/radio-group/Radio.d.ts +4 -0
- package/radio-group/Radio.js +124 -0
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.d.ts +4 -0
- package/radio-group/RadioGroup.js +235 -0
- package/radio-group/RadioGroup.stories.tsx +214 -0
- package/radio-group/RadioGroup.test.js +756 -0
- package/radio-group/types.d.ts +114 -0
- package/radio-group/types.js +5 -0
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
- package/resultset-table/ResultsetTable.d.ts +7 -0
- package/resultset-table/ResultsetTable.js +170 -0
- package/resultset-table/ResultsetTable.stories.tsx +401 -0
- package/resultset-table/ResultsetTable.test.js +381 -0
- package/resultset-table/types.d.ts +100 -0
- package/resultset-table/types.js +5 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +145 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +88 -0
- package/select/Select.accessibility.test.js +217 -0
- package/select/Select.d.ts +4 -0
- package/select/Select.js +248 -515
- package/select/Select.stories.tsx +590 -255
- package/select/Select.test.js +2276 -0
- package/select/types.d.ts +209 -0
- package/select/types.js +5 -0
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +137 -72
- package/sidenav/Sidenav.stories.tsx +246 -134
- package/sidenav/Sidenav.test.js +37 -0
- package/sidenav/SidenavContext.d.ts +5 -0
- package/sidenav/SidenavContext.js +13 -0
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.accessibility.test.js +104 -0
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +149 -181
- package/slider/Slider.test.js +254 -0
- package/slider/types.d.ts +11 -3
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +32 -76
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
- package/spinner/Spinner.test.js +55 -0
- package/spinner/types.d.ts +3 -3
- package/status-light/StatusLight.accessibility.test.js +157 -0
- package/status-light/StatusLight.d.ts +4 -0
- package/status-light/StatusLight.js +51 -0
- package/status-light/StatusLight.stories.tsx +74 -0
- package/status-light/StatusLight.test.js +25 -0
- package/status-light/types.d.ts +17 -0
- package/status-light/types.js +5 -0
- package/switch/Switch.accessibility.test.js +89 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +150 -115
- package/switch/Switch.stories.tsx +45 -68
- package/switch/Switch.test.js +180 -0
- package/switch/types.d.ts +13 -5
- package/table/DropdownTheme.js +62 -0
- package/table/Table.accessibility.test.js +82 -0
- package/table/Table.d.ts +6 -2
- package/table/Table.js +79 -36
- package/table/Table.stories.tsx +651 -0
- package/table/Table.test.js +113 -0
- package/table/types.d.ts +34 -6
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +117 -0
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +307 -147
- package/tabs/Tabs.stories.tsx +121 -18
- package/tabs/Tabs.test.js +276 -0
- package/tabs/types.d.ts +46 -24
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.d.ts +1 -1
- package/tag/Tag.js +44 -86
- package/tag/Tag.stories.tsx +37 -30
- package/tag/Tag.test.js +41 -0
- package/tag/types.d.ts +25 -16
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +67 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +86 -0
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +335 -553
- package/text-input/TextInput.stories.tsx +465 -0
- package/text-input/TextInput.test.js +1756 -0
- package/text-input/types.d.ts +82 -34
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.d.ts +4 -0
- package/textarea/Textarea.js +98 -181
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +406 -0
- package/textarea/types.d.ts +141 -0
- package/textarea/types.js +5 -0
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +98 -113
- package/toggle-group/ToggleGroup.stories.tsx +79 -39
- package/toggle-group/ToggleGroup.test.js +137 -0
- package/toggle-group/types.d.ts +68 -38
- package/typography/Typography.accessibility.test.js +339 -0
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +23 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1147 -0
- package/useTheme.js +4 -11
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +14 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +124 -0
- package/wizard/Wizard.accessibility.test.js +55 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +130 -114
- package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +67 -19
- package/wizard/Wizard.test.js +114 -0
- package/wizard/types.d.ts +15 -15
- package/ThemeContext.js +0 -246
- package/V3Select/V3Select.js +0 -455
- package/V3Select/index.d.ts +0 -27
- package/V3Textarea/V3Textarea.js +0 -260
- package/V3Textarea/index.d.ts +0 -27
- package/card/ice-cream.jpg +0 -0
- package/chip/index.d.ts +0 -22
- package/common/OpenSans.css +0 -81
- package/common/RequiredComponent.js +0 -32
- package/common/fonts/OpenSans-Bold.ttf +0 -0
- package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-Italic.ttf +0 -0
- package/common/fonts/OpenSans-Light.ttf +0 -0
- package/common/fonts/OpenSans-LightItalic.ttf +0 -0
- package/common/fonts/OpenSans-Regular.ttf +0 -0
- package/common/fonts/OpenSans-SemiBold.ttf +0 -0
- package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/paginator/Icons.js +0 -66
- package/progress-bar/ProgressBar.stories.jsx +0 -58
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/types.d.ts +0 -54
- package/resultsetTable/ResultsetTable.d.ts +0 -4
- package/resultsetTable/ResultsetTable.js +0 -249
- package/resultsetTable/types.d.ts +0 -63
- package/select/index.d.ts +0 -131
- package/slider/Slider.stories.tsx +0 -177
- package/table/Table.stories.jsx +0 -276
- package/textarea/Textarea.stories.jsx +0 -135
- package/textarea/index.d.ts +0 -117
- package/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- package/upload/Upload.js +0 -201
- package/upload/buttons-upload/ButtonsUpload.js +0 -111
- package/upload/buttons-upload/Icons.js +0 -40
- package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
- package/upload/dragAndDropArea/Icons.js +0 -39
- package/upload/file-upload/FileToUpload.js +0 -115
- package/upload/file-upload/Icons.js +0 -66
- package/upload/files-upload/FilesToUpload.js +0 -109
- package/upload/index.d.ts +0 -15
- package/upload/transaction/Icons.js +0 -160
- package/upload/transaction/Transaction.js +0 -104
- package/upload/transactions/Transactions.js +0 -94
- package/wizard/Icons.js +0 -65
- /package/{radio → action-icon}/types.js +0 -0
- /package/{resultsetTable → badge}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → bleed/types.js} +0 -0
package/tag/Tag.js
CHANGED
|
@@ -1,78 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
12
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
-
|
|
14
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
15
|
-
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
16
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
|
|
18
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
-
|
|
20
13
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
|
-
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
var _useTheme = _interopRequireDefault(require("../useTheme.js"));
|
|
25
|
-
|
|
26
|
-
var _utils = require("../common/utils.js");
|
|
27
|
-
|
|
14
|
+
var _variables = require("../common/variables");
|
|
15
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
16
|
+
var _utils = require("../common/utils");
|
|
28
17
|
var _Box = _interopRequireDefault(require("../box/Box"));
|
|
29
|
-
|
|
30
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6
|
|
31
|
-
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
|
-
|
|
18
|
+
var _Icon = _interopRequireDefault(require("../icon/Icon"));
|
|
19
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
20
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
21
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
36
22
|
var DxcTag = function DxcTag(_ref) {
|
|
37
23
|
var icon = _ref.icon,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
24
|
+
_ref$label = _ref.label,
|
|
25
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
26
|
+
linkHref = _ref.linkHref,
|
|
27
|
+
onClick = _ref.onClick,
|
|
28
|
+
_ref$iconBgColor = _ref.iconBgColor,
|
|
29
|
+
iconBgColor = _ref$iconBgColor === void 0 ? "#5f249f" : _ref$iconBgColor,
|
|
30
|
+
_ref$labelPosition = _ref.labelPosition,
|
|
31
|
+
labelPosition = _ref$labelPosition === void 0 ? "after" : _ref$labelPosition,
|
|
32
|
+
_ref$newWindow = _ref.newWindow,
|
|
33
|
+
newWindow = _ref$newWindow === void 0 ? false : _ref$newWindow,
|
|
34
|
+
margin = _ref.margin,
|
|
35
|
+
_ref$size = _ref.size,
|
|
36
|
+
size = _ref$size === void 0 ? "fitContent" : _ref$size,
|
|
37
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
38
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
54
39
|
var colorsTheme = (0, _useTheme["default"])();
|
|
55
|
-
|
|
56
40
|
var _useState = (0, _react.useState)(false),
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
41
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
42
|
+
isHovered = _useState2[0],
|
|
43
|
+
changeIsHovered = _useState2[1];
|
|
61
44
|
var clickHandler = function clickHandler() {
|
|
62
45
|
onClick && onClick();
|
|
63
46
|
};
|
|
64
|
-
|
|
65
47
|
var tagContent = /*#__PURE__*/_react["default"].createElement(_Box["default"], {
|
|
66
48
|
size: size,
|
|
67
49
|
shadowDepth: isHovered && (onClick || linkHref) && 2 || 1
|
|
68
|
-
}, /*#__PURE__*/_react["default"].createElement(TagContent, {
|
|
69
|
-
labelPosition: labelPosition
|
|
70
|
-
}, /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
50
|
+
}, /*#__PURE__*/_react["default"].createElement(TagContent, null, labelPosition === "before" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
71
51
|
iconBgColor: iconBgColor
|
|
72
|
-
},
|
|
73
|
-
|
|
74
|
-
})), size !== "small" && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label)));
|
|
75
|
-
|
|
52
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
53
|
+
icon: icon
|
|
54
|
+
}) : icon), labelPosition === "after" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label)));
|
|
76
55
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
77
56
|
theme: colorsTheme.tag
|
|
78
57
|
}, /*#__PURE__*/_react["default"].createElement(StyledDxcTag, {
|
|
@@ -94,19 +73,16 @@ var DxcTag = function DxcTag(_ref) {
|
|
|
94
73
|
target: newWindow ? "_blank" : "_self"
|
|
95
74
|
}, tagContent) : tagContent));
|
|
96
75
|
};
|
|
97
|
-
|
|
98
76
|
var sizes = {
|
|
99
77
|
small: "42px",
|
|
100
78
|
medium: "240px",
|
|
101
79
|
large: "480px",
|
|
102
80
|
fillParent: "100%",
|
|
103
|
-
fitContent: "
|
|
81
|
+
fitContent: "fit-content"
|
|
104
82
|
};
|
|
105
|
-
|
|
106
83
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
107
84
|
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
108
85
|
};
|
|
109
|
-
|
|
110
86
|
var StyledDxcTag = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n cursor: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n height: ", ";\n"])), function (_ref2) {
|
|
111
87
|
var hasAction = _ref2.hasAction;
|
|
112
88
|
return hasAction && "pointer" || "unset";
|
|
@@ -115,51 +91,32 @@ var StyledDxcTag = _styledComponents["default"].div(_templateObject || (_templat
|
|
|
115
91
|
return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
|
|
116
92
|
}, function (_ref4) {
|
|
117
93
|
var margin = _ref4.margin;
|
|
118
|
-
return margin && margin.top ? _variables.spaces[margin.top] : "";
|
|
94
|
+
return margin && (0, _typeof2["default"])(margin) === "object" && margin.top ? _variables.spaces[margin.top] : "";
|
|
119
95
|
}, function (_ref5) {
|
|
120
96
|
var margin = _ref5.margin;
|
|
121
|
-
return margin && margin.right ? _variables.spaces[margin.right] : "";
|
|
97
|
+
return margin && (0, _typeof2["default"])(margin) === "object" && margin.right ? _variables.spaces[margin.right] : "";
|
|
122
98
|
}, function (_ref6) {
|
|
123
99
|
var margin = _ref6.margin;
|
|
124
|
-
return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
|
|
100
|
+
return margin && (0, _typeof2["default"])(margin) === "object" && margin.bottom ? _variables.spaces[margin.bottom] : "";
|
|
125
101
|
}, function (_ref7) {
|
|
126
102
|
var margin = _ref7.margin;
|
|
127
|
-
return margin && margin.left ? _variables.spaces[margin.left] : "";
|
|
103
|
+
return margin && (0, _typeof2["default"])(margin) === "object" && margin.left ? _variables.spaces[margin.left] : "";
|
|
128
104
|
}, function (props) {
|
|
129
105
|
return calculateWidth(props.margin, props.size);
|
|
130
106
|
}, function (props) {
|
|
131
107
|
return props.theme.height;
|
|
132
108
|
});
|
|
133
|
-
|
|
134
|
-
var TagContent = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n flex-direction: ", ";\n width: 100%;\n height: ", ";\n"])), function (_ref8) {
|
|
135
|
-
var labelPosition = _ref8.labelPosition;
|
|
136
|
-
return labelPosition === "before" && "row-reverse" || "row";
|
|
137
|
-
}, function (props) {
|
|
109
|
+
var TagContent = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n width: 100%;\n height: ", ";\n"])), function (props) {
|
|
138
110
|
return props.theme.height;
|
|
139
111
|
});
|
|
140
|
-
|
|
141
112
|
var StyledLink = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: none;\n border-radius: 4px;\n width: 100%;\n :focus {\n outline: 2px solid ", ";\n outline-offset: 0px;\n }\n"])), function (props) {
|
|
142
113
|
return props.theme.focusColor;
|
|
143
114
|
});
|
|
144
|
-
|
|
145
115
|
var StyledButton = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n background: none;\n border-radius: 4px;\n border: none;\n padding: 0;\n cursor: pointer;\n font-family: inherit;\n width: 100%;\n :focus {\n outline: 2px solid ", ";\n }\n"])), function (props) {
|
|
146
116
|
return props.theme.focusColor;
|
|
147
117
|
});
|
|
148
|
-
|
|
149
|
-
var
|
|
150
|
-
return props.theme.iconWidth;
|
|
151
|
-
}, function (props) {
|
|
152
|
-
return props.theme.iconHeight;
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
var TagIconContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n\n img,\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
|
|
156
|
-
return props.theme.iconWidth;
|
|
157
|
-
}, function (props) {
|
|
158
|
-
return props.theme.iconHeight;
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
var IconContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n background: ", ";\n width: ", ";\n height: 100%;\n justify-content: center;\n align-items: center;\n color: ", ";\n min-width: ", ";\n"])), function (_ref9) {
|
|
162
|
-
var iconBgColor = _ref9.iconBgColor;
|
|
118
|
+
var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n background: ", ";\n width: ", ";\n height: 100%;\n justify-content: center;\n align-items: center;\n color: ", ";\n min-width: ", ";\n overflow: hidden;\n font-size: 24px;\n\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (_ref8) {
|
|
119
|
+
var iconBgColor = _ref8.iconBgColor;
|
|
163
120
|
return iconBgColor;
|
|
164
121
|
}, function (props) {
|
|
165
122
|
return props.theme.iconSectionWidth;
|
|
@@ -167,9 +124,12 @@ var IconContainer = _styledComponents["default"].div(_templateObject7 || (_templ
|
|
|
167
124
|
return props.theme.iconColor;
|
|
168
125
|
}, function (props) {
|
|
169
126
|
return props.theme.iconSectionWidth;
|
|
127
|
+
}, function (props) {
|
|
128
|
+
return props.theme.iconWidth;
|
|
129
|
+
}, function (props) {
|
|
130
|
+
return props.theme.iconHeight;
|
|
170
131
|
});
|
|
171
|
-
|
|
172
|
-
var TagLabel = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n flex-grow: 1;\n text-align: center;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n"])), function (props) {
|
|
132
|
+
var TagLabel = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n flex-grow: 1;\n text-align: center;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n"])), function (props) {
|
|
173
133
|
return props.theme.fontFamily;
|
|
174
134
|
}, function (props) {
|
|
175
135
|
return props.theme.fontSize;
|
|
@@ -188,6 +148,4 @@ var TagLabel = _styledComponents["default"].div(_templateObject8 || (_templateOb
|
|
|
188
148
|
}, function (props) {
|
|
189
149
|
return props.theme.labelPaddingRight;
|
|
190
150
|
});
|
|
191
|
-
|
|
192
|
-
var _default = DxcTag;
|
|
193
|
-
exports["default"] = _default;
|
|
151
|
+
var _default = exports["default"] = DxcTag;
|
package/tag/Tag.stories.tsx
CHANGED
|
@@ -3,35 +3,36 @@ import { userEvent, within } from "@storybook/testing-library";
|
|
|
3
3
|
import Title from "../../.storybook/components/Title";
|
|
4
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
5
|
import DxcTag from "./Tag";
|
|
6
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
6
7
|
|
|
7
8
|
export default {
|
|
8
9
|
title: "Tag",
|
|
9
10
|
component: DxcTag,
|
|
10
11
|
};
|
|
11
12
|
|
|
12
|
-
const icon = (
|
|
13
|
-
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
13
|
+
const icon = (
|
|
14
|
+
<svg viewBox="0 0 24 24" fill="currentColor">
|
|
15
|
+
<path d="M0 0h24v24H0z" fill="none" />
|
|
16
|
+
<path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
|
|
17
|
+
</svg>
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
const largeIcon = (
|
|
21
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 0 24 24" width="48px" fill="currentColor">
|
|
22
|
+
<path d="M0 0h24v24H0V0z" fill="none" />
|
|
23
|
+
<path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z" />
|
|
24
|
+
</svg>
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
const opinionatedTheme = {
|
|
28
|
+
tag: {
|
|
29
|
+
fontColor: "#000000",
|
|
30
|
+
iconColor: "#ffffff",
|
|
31
|
+
},
|
|
27
32
|
};
|
|
28
33
|
|
|
29
34
|
export const Chromatic = () => (
|
|
30
35
|
<>
|
|
31
|
-
<ExampleContainer>
|
|
32
|
-
<Title title="Without label" theme="light" level={4} />
|
|
33
|
-
<DxcTag />
|
|
34
|
-
</ExampleContainer>
|
|
35
36
|
<ExampleContainer>
|
|
36
37
|
<Title title="With icon" theme="light" level={4} />
|
|
37
38
|
<DxcTag icon={icon} />
|
|
@@ -46,11 +47,11 @@ export const Chromatic = () => (
|
|
|
46
47
|
</ExampleContainer>
|
|
47
48
|
<ExampleContainer>
|
|
48
49
|
<Title title="With label and icon" theme="light" level={4} />
|
|
49
|
-
<DxcTag label="Tag" icon=
|
|
50
|
+
<DxcTag label="Tag" icon="person" />
|
|
50
51
|
</ExampleContainer>
|
|
51
52
|
<ExampleContainer>
|
|
52
53
|
<Title title="With right icon" theme="light" level={4} />
|
|
53
|
-
<DxcTag label="Tag" icon=
|
|
54
|
+
<DxcTag label="Tag" icon="group" labelPosition="before" />
|
|
54
55
|
</ExampleContainer>
|
|
55
56
|
<ExampleContainer>
|
|
56
57
|
<Title title="Icon background color" theme="light" level={4} />
|
|
@@ -63,7 +64,7 @@ export const Chromatic = () => (
|
|
|
63
64
|
<ExampleContainer pseudoState="pseudo-focus">
|
|
64
65
|
<Title title="With action focused" theme="light" level={4} />
|
|
65
66
|
<DxcTag
|
|
66
|
-
icon=
|
|
67
|
+
icon="done"
|
|
67
68
|
label="Tag"
|
|
68
69
|
onClick={() => {
|
|
69
70
|
console.log("click");
|
|
@@ -102,37 +103,43 @@ export const Chromatic = () => (
|
|
|
102
103
|
<Title title="Sizes" theme="light" level={2} />
|
|
103
104
|
<ExampleContainer>
|
|
104
105
|
<Title title="Small size" theme="light" level={4} />
|
|
105
|
-
<DxcTag label="Small" size="small" />
|
|
106
|
+
<DxcTag label="Small" size="small" icon={icon} />
|
|
106
107
|
</ExampleContainer>
|
|
107
108
|
<ExampleContainer>
|
|
108
109
|
<Title title="Medium size" theme="light" level={4} />
|
|
109
|
-
<DxcTag label="Medium size medium s" size="medium" />
|
|
110
|
+
<DxcTag label="Medium size medium s" size="medium" icon="person" />
|
|
110
111
|
</ExampleContainer>
|
|
111
112
|
<ExampleContainer>
|
|
112
113
|
<Title title="Medium size with ellipsis" theme="light" level={4} />
|
|
113
|
-
<DxcTag label="Medium size medium si medium" size="medium" />
|
|
114
|
+
<DxcTag label="Medium size medium si medium" size="medium" icon={icon} />
|
|
114
115
|
</ExampleContainer>
|
|
115
116
|
<ExampleContainer>
|
|
116
117
|
<Title title="Large size" theme="light" level={4} />
|
|
117
|
-
<DxcTag label="Large size large size large size large size large size" size="large" />
|
|
118
|
+
<DxcTag label="Large size large size large size large size large size" size="large" icon={icon} />
|
|
118
119
|
</ExampleContainer>
|
|
119
120
|
<ExampleContainer>
|
|
120
121
|
<Title title="Large size with ellipsis" theme="light" level={4} />
|
|
121
|
-
<DxcTag label="Large size large size large size large size large size large size" size="large" />
|
|
122
|
+
<DxcTag label="Large size large size large size large size large size large size" size="large" icon={icon} />
|
|
122
123
|
</ExampleContainer>
|
|
123
124
|
<ExampleContainer>
|
|
124
125
|
<Title title="FillParent size" theme="light" level={4} />
|
|
125
|
-
<DxcTag label="FillParent" size="fillParent" />
|
|
126
|
+
<DxcTag label="FillParent" size="fillParent" icon={icon} />
|
|
126
127
|
</ExampleContainer>
|
|
127
128
|
<ExampleContainer>
|
|
128
129
|
<Title title="FitContent size" theme="light" level={4} />
|
|
129
|
-
<DxcTag label="FitContent" size="fitContent" />
|
|
130
|
+
<DxcTag label="FitContent" size="fitContent" icon={icon} />
|
|
131
|
+
</ExampleContainer>
|
|
132
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
133
|
+
<ExampleContainer>
|
|
134
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
135
|
+
<DxcTag label="Tag" icon={icon} />
|
|
136
|
+
</HalstackProvider>
|
|
130
137
|
</ExampleContainer>
|
|
131
138
|
</>
|
|
132
139
|
);
|
|
133
140
|
|
|
134
141
|
const LinkTag = () => (
|
|
135
|
-
<ExampleContainer>
|
|
142
|
+
<ExampleContainer expanded>
|
|
136
143
|
<Title title="Hover link tag" theme="light" level={4} />
|
|
137
144
|
<DxcTag label="Tag" icon={icon} linkHref="https://www.dxc.com" />
|
|
138
145
|
</ExampleContainer>
|
package/tag/Tag.test.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _react = _interopRequireDefault(require("react"));
|
|
5
|
+
var _react2 = require("@testing-library/react");
|
|
6
|
+
var _Tag = _interopRequireDefault(require("./Tag.tsx"));
|
|
7
|
+
describe("Tag component tests", function () {
|
|
8
|
+
test("Tag renders with correct label", function () {
|
|
9
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
10
|
+
label: "tag-test"
|
|
11
|
+
})),
|
|
12
|
+
getByText = _render.getByText;
|
|
13
|
+
expect(getByText("tag-test")).toBeTruthy();
|
|
14
|
+
});
|
|
15
|
+
test("Tag renders with correct label before", function () {
|
|
16
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
17
|
+
label: "tag-test",
|
|
18
|
+
labelPosition: "before"
|
|
19
|
+
})),
|
|
20
|
+
getByText = _render2.getByText;
|
|
21
|
+
expect(getByText("tag-test")).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
test("Tag renders with link href", function () {
|
|
24
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
25
|
+
label: "tag-test",
|
|
26
|
+
linkHref: "/test/page"
|
|
27
|
+
})),
|
|
28
|
+
getByRole = _render3.getByRole;
|
|
29
|
+
expect(getByRole("link").getAttribute("href")).toBe("/test/page");
|
|
30
|
+
});
|
|
31
|
+
test("Call correct function on click", function () {
|
|
32
|
+
var onClick = jest.fn();
|
|
33
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
34
|
+
label: "tag-test",
|
|
35
|
+
onClick: onClick
|
|
36
|
+
})),
|
|
37
|
+
getByText = _render4.getByText;
|
|
38
|
+
_react2.fireEvent.click(getByText("tag-test"));
|
|
39
|
+
expect(onClick).toHaveBeenCalled();
|
|
40
|
+
});
|
|
41
|
+
});
|
package/tag/types.d.ts
CHANGED
|
@@ -1,25 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
type Margin = {
|
|
4
4
|
top?: Space;
|
|
5
5
|
bottom?: Space;
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Element used as the icon that will be placed next to the label.
|
|
13
|
-
*/
|
|
14
|
-
icon?: SVG;
|
|
15
|
-
/**
|
|
16
|
-
* @deprecated URL of the icon.
|
|
17
|
-
*/
|
|
18
|
-
iconSrc?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Text to be placed next inside the tag.
|
|
21
|
-
*/
|
|
22
|
-
label?: string;
|
|
9
|
+
type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
10
|
+
type TagCommonProps = {
|
|
23
11
|
/**
|
|
24
12
|
* If defined, the tag will be displayed as an anchor, using this prop as "href".
|
|
25
13
|
* Component will show some visual feedback on hover.
|
|
@@ -57,4 +45,25 @@ declare type Props = {
|
|
|
57
45
|
*/
|
|
58
46
|
tabIndex?: number;
|
|
59
47
|
};
|
|
48
|
+
type TagLabelProps = TagCommonProps & {
|
|
49
|
+
/**
|
|
50
|
+
* Material Symbol name or SVG element used as the icon that will be placed next to the label.
|
|
51
|
+
*/
|
|
52
|
+
icon?: string | SVG;
|
|
53
|
+
/**
|
|
54
|
+
* Text to be placed next inside the tag.
|
|
55
|
+
*/
|
|
56
|
+
label: string;
|
|
57
|
+
};
|
|
58
|
+
type TagIconProps = TagCommonProps & {
|
|
59
|
+
/**
|
|
60
|
+
* Material Symbol name or SVG element used as the icon that will be placed next to the label.
|
|
61
|
+
*/
|
|
62
|
+
icon: string | SVG;
|
|
63
|
+
/**
|
|
64
|
+
* Text to be placed next inside the tag.
|
|
65
|
+
*/
|
|
66
|
+
label?: string;
|
|
67
|
+
};
|
|
68
|
+
type Props = TagLabelProps | TagIconProps;
|
|
60
69
|
export default Props;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
12
|
+
var _templateObject, _templateObject2;
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
15
|
+
var transformSpecialChars = function transformSpecialChars(str) {
|
|
16
|
+
var specialCharsRegex = /[\\*()\[\]{}+?/]/;
|
|
17
|
+
var value = str;
|
|
18
|
+
if (specialCharsRegex.test(value)) {
|
|
19
|
+
var regexAsString = specialCharsRegex.toString().split("");
|
|
20
|
+
var uniqueSpecialChars = regexAsString.filter(function (item, index) {
|
|
21
|
+
return regexAsString.indexOf(item) === index;
|
|
22
|
+
});
|
|
23
|
+
uniqueSpecialChars.forEach(function (specialChar) {
|
|
24
|
+
if (str.includes(specialChar)) value = value.replace(specialChar, "\\" + specialChar);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
};
|
|
29
|
+
var Suggestion = function Suggestion(_ref) {
|
|
30
|
+
var id = _ref.id,
|
|
31
|
+
value = _ref.value,
|
|
32
|
+
_onClick = _ref.onClick,
|
|
33
|
+
suggestion = _ref.suggestion,
|
|
34
|
+
isLast = _ref.isLast,
|
|
35
|
+
visuallyFocused = _ref.visuallyFocused,
|
|
36
|
+
highlighted = _ref.highlighted;
|
|
37
|
+
var matchedSuggestion = (0, _react.useMemo)(function () {
|
|
38
|
+
var regEx = new RegExp(transformSpecialChars(value), "i");
|
|
39
|
+
return {
|
|
40
|
+
matchedWords: suggestion.match(regEx),
|
|
41
|
+
noMatchedWords: suggestion.replace(regEx, "")
|
|
42
|
+
};
|
|
43
|
+
}, [value, suggestion]);
|
|
44
|
+
return /*#__PURE__*/_react["default"].createElement(SuggestionContainer, {
|
|
45
|
+
id: id,
|
|
46
|
+
onClick: function onClick() {
|
|
47
|
+
_onClick(suggestion);
|
|
48
|
+
},
|
|
49
|
+
visuallyFocused: visuallyFocused,
|
|
50
|
+
role: "option",
|
|
51
|
+
"aria-selected": visuallyFocused ? true : undefined
|
|
52
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledSuggestion, {
|
|
53
|
+
isLast: isLast,
|
|
54
|
+
visuallyFocused: visuallyFocused
|
|
55
|
+
}, highlighted ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("strong", null, matchedSuggestion.matchedWords), matchedSuggestion.noMatchedWords) : suggestion));
|
|
56
|
+
};
|
|
57
|
+
var SuggestionContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0 0.5rem;\n line-height: 1.715em;\n cursor: pointer;\n box-shadow: inset 0 0 0 2px\n ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
|
|
58
|
+
return props.visuallyFocused ? props.theme.focusListOptionBorderColor : "transparent";
|
|
59
|
+
}, function (props) {
|
|
60
|
+
return props.theme.hoverListOptionBackgroundColor;
|
|
61
|
+
}, function (props) {
|
|
62
|
+
return props.theme.activeListOptionBackgroundColor;
|
|
63
|
+
});
|
|
64
|
+
var StyledSuggestion = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 0.25rem 0.5rem 0.188rem 0.5rem;\n ", ";\n"])), function (props) {
|
|
65
|
+
return props.isLast || props.visuallyFocused ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
|
|
66
|
+
});
|
|
67
|
+
var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(Suggestion);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { SuggestionsProps } from "./types";
|
|
3
|
+
declare const _default: React.MemoExoticComponent<({ id, value, suggestions, visualFocusIndex, highlightedSuggestions, searchHasErrors, isSearching, suggestionOnClick, styles, }: SuggestionsProps) => JSX.Element>;
|
|
4
|
+
export default _default;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
12
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
13
|
+
var _Suggestion = _interopRequireDefault(require("./Suggestion"));
|
|
14
|
+
var _Icon = _interopRequireDefault(require("../icon/Icon"));
|
|
15
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
16
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
17
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
18
|
+
var Suggestions = function Suggestions(_ref) {
|
|
19
|
+
var id = _ref.id,
|
|
20
|
+
value = _ref.value,
|
|
21
|
+
suggestions = _ref.suggestions,
|
|
22
|
+
visualFocusIndex = _ref.visualFocusIndex,
|
|
23
|
+
highlightedSuggestions = _ref.highlightedSuggestions,
|
|
24
|
+
searchHasErrors = _ref.searchHasErrors,
|
|
25
|
+
isSearching = _ref.isSearching,
|
|
26
|
+
suggestionOnClick = _ref.suggestionOnClick,
|
|
27
|
+
styles = _ref.styles;
|
|
28
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
29
|
+
var listboxRef = (0, _react.useRef)(null);
|
|
30
|
+
(0, _react.useEffect)(function () {
|
|
31
|
+
var _listboxRef$current, _visualFocusedOptionE;
|
|
32
|
+
var visualFocusedOptionEl = listboxRef === null || listboxRef === void 0 ? void 0 : (_listboxRef$current = listboxRef.current) === null || _listboxRef$current === void 0 ? void 0 : _listboxRef$current.querySelectorAll("[role='option']")[visualFocusIndex];
|
|
33
|
+
visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
|
|
34
|
+
block: "nearest",
|
|
35
|
+
inline: "start"
|
|
36
|
+
});
|
|
37
|
+
}, [visualFocusIndex]);
|
|
38
|
+
return /*#__PURE__*/_react["default"].createElement(SuggestionsContainer, {
|
|
39
|
+
id: id,
|
|
40
|
+
error: searchHasErrors ? true : false,
|
|
41
|
+
onMouseDown: function onMouseDown(event) {
|
|
42
|
+
event.preventDefault();
|
|
43
|
+
},
|
|
44
|
+
ref: listboxRef,
|
|
45
|
+
role: "listbox",
|
|
46
|
+
style: styles
|
|
47
|
+
}, !isSearching && !searchHasErrors && suggestions.length > 0 && suggestions.map(function (suggestion, index) {
|
|
48
|
+
return /*#__PURE__*/_react["default"].createElement(_Suggestion["default"], {
|
|
49
|
+
key: "suggestion-".concat(index),
|
|
50
|
+
id: "suggestion-".concat(index),
|
|
51
|
+
value: value,
|
|
52
|
+
onClick: suggestionOnClick,
|
|
53
|
+
suggestion: suggestion,
|
|
54
|
+
isLast: index === suggestions.length - 1,
|
|
55
|
+
visuallyFocused: visualFocusIndex === index,
|
|
56
|
+
highlighted: highlightedSuggestions
|
|
57
|
+
});
|
|
58
|
+
}), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage, null, translatedLabels.textInput.searchingMessage), searchHasErrors && /*#__PURE__*/_react["default"].createElement(SuggestionsError, null, /*#__PURE__*/_react["default"].createElement(SuggestionsErrorIcon, null, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
59
|
+
icon: "filled_error"
|
|
60
|
+
})), translatedLabels.textInput.fetchingDataErrorMessage));
|
|
61
|
+
};
|
|
62
|
+
var SuggestionsContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 304px;\n overflow-y: auto;\n margin: 0;\n padding: 0.25rem 0;\n background-color: ", ";\n border: 1px solid\n ", ";\n\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
63
|
+
return props.error ? props.theme.errorListDialogBackgroundColor : props.theme.listDialogBackgroundColor;
|
|
64
|
+
}, function (props) {
|
|
65
|
+
return props.error ? props.theme.errorListDialogBorderColor : props.theme.listDialogBorderColor;
|
|
66
|
+
}, function (props) {
|
|
67
|
+
return props.theme.listOptionFontColor;
|
|
68
|
+
}, function (props) {
|
|
69
|
+
return props.theme.fontFamily;
|
|
70
|
+
}, function (props) {
|
|
71
|
+
return props.theme.listOptionFontSize;
|
|
72
|
+
}, function (props) {
|
|
73
|
+
return props.theme.listOptionFontStyle;
|
|
74
|
+
}, function (props) {
|
|
75
|
+
return props.theme.listOptionFontWeight;
|
|
76
|
+
});
|
|
77
|
+
var SuggestionsSystemMessage = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n color: ", ";\n line-height: 1.715em;\n"])), function (props) {
|
|
78
|
+
return props.theme.systemMessageFontColor;
|
|
79
|
+
});
|
|
80
|
+
var SuggestionsErrorIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n margin-right: 0.5rem;\n height: 18px;\n width: 18px;\n font-size: 18px;\n color: ", ";\n"])), function (props) {
|
|
81
|
+
return props.theme.errorIconColor;
|
|
82
|
+
});
|
|
83
|
+
var SuggestionsError = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n align-items: center;\n line-height: 1.715em;\n color: ", ";\n"])), function (props) {
|
|
84
|
+
return props.theme.errorListDialogFontColor;
|
|
85
|
+
});
|
|
86
|
+
var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(Suggestions);
|