@dxc-technology/halstack-react 10.1.0 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BackgroundColorContext.d.ts +1 -10
- package/BackgroundColorContext.js +4 -21
- package/HalstackContext.d.ts +45 -143
- package/HalstackContext.js +10 -35
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.js +33 -84
- package/accordion/Accordion.stories.tsx +8 -64
- package/accordion/Accordion.test.js +18 -33
- package/accordion/types.d.ts +6 -6
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +2 -3
- package/accordion-group/AccordionGroup.js +17 -44
- package/accordion-group/AccordionGroup.stories.tsx +24 -24
- package/accordion-group/AccordionGroup.test.js +42 -60
- package/accordion-group/AccordionGroupAccordion.js +11 -23
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +7 -7
- 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 +34 -120
- package/alert/Alert.test.js +28 -45
- package/alert/types.d.ts +5 -5
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +142 -42
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/bleed/Bleed.js +13 -21
- package/bleed/types.d.ts +2 -2
- package/box/Box.accessibility.test.js +33 -0
- package/box/Box.js +11 -33
- package/box/Box.test.js +1 -6
- package/box/types.d.ts +3 -3
- package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
- package/breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/breadcrumbs/Breadcrumbs.js +79 -0
- package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
- package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.test.js +169 -0
- package/breadcrumbs/Item.d.ts +4 -0
- package/breadcrumbs/Item.js +52 -0
- package/breadcrumbs/dropdownTheme.d.ts +53 -0
- package/breadcrumbs/dropdownTheme.js +62 -0
- package/breadcrumbs/types.d.ts +16 -0
- package/breadcrumbs/types.js +5 -0
- package/bulleted-list/BulletedList.accessibility.test.js +119 -0
- package/bulleted-list/BulletedList.js +22 -55
- package/bulleted-list/BulletedList.stories.tsx +2 -93
- package/bulleted-list/types.d.ts +5 -5
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.js +36 -59
- package/button/Button.stories.tsx +35 -135
- package/button/Button.test.js +13 -21
- package/button/types.d.ts +5 -5
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.js +23 -45
- package/card/Card.test.js +10 -21
- package/card/types.d.ts +5 -5
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.js +88 -123
- package/checkbox/Checkbox.stories.tsx +16 -54
- package/checkbox/Checkbox.test.js +107 -63
- package/checkbox/types.d.ts +8 -4
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +22 -36
- package/chip/Chip.stories.tsx +10 -25
- package/chip/Chip.test.js +17 -30
- package/chip/types.d.ts +4 -4
- package/common/coreTokens.d.ts +105 -14
- package/common/coreTokens.js +40 -23
- package/common/utils.js +2 -8
- package/common/variables.d.ts +46 -144
- package/common/variables.js +120 -225
- 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 +97 -0
- package/contextual-menu/ContextualMenu.d.ts +5 -0
- package/contextual-menu/ContextualMenu.js +88 -0
- package/contextual-menu/ContextualMenu.stories.tsx +232 -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 +51 -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.js +13 -57
- package/date-input/DateInput.accessibility.test.js +228 -0
- package/date-input/DateInput.js +53 -100
- package/date-input/DateInput.stories.tsx +19 -31
- package/date-input/DateInput.test.js +674 -701
- package/date-input/DatePicker.js +23 -48
- package/date-input/YearPicker.js +8 -34
- package/date-input/types.d.ts +28 -22
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.js +21 -59
- package/dialog/Dialog.stories.tsx +176 -0
- package/dialog/Dialog.test.js +126 -188
- package/dialog/types.d.ts +18 -13
- 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.js +63 -130
- package/dropdown/Dropdown.stories.tsx +15 -26
- package/dropdown/Dropdown.test.js +402 -389
- package/dropdown/DropdownMenu.js +12 -23
- package/dropdown/DropdownMenuItem.js +13 -21
- package/dropdown/types.d.ts +20 -24
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.js +180 -284
- package/file-input/FileInput.stories.tsx +1 -1
- package/file-input/FileInput.test.js +279 -354
- package/file-input/FileItem.js +29 -66
- package/file-input/types.d.ts +9 -9
- package/flex/Flex.js +25 -39
- package/flex/types.d.ts +6 -6
- package/footer/Footer.accessibility.test.js +125 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +43 -68
- package/footer/Footer.stories.tsx +58 -2
- package/footer/Footer.test.js +18 -32
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +53 -22
- package/footer/types.d.ts +17 -17
- package/grid/Grid.js +1 -16
- package/grid/types.d.ts +10 -10
- package/header/Header.accessibility.test.js +93 -0
- package/header/Header.d.ts +1 -1
- package/header/Header.js +38 -104
- package/header/Header.stories.tsx +16 -0
- package/header/Header.test.js +12 -25
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +3 -13
- package/header/types.d.ts +7 -8
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +9 -31
- package/heading/Heading.test.js +70 -87
- 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 +2 -2
- package/image/Image.js +17 -32
- package/image/Image.stories.tsx +3 -1
- package/image/types.d.ts +2 -2
- package/inset/Inset.js +13 -21
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +2 -2
- package/layout/ApplicationLayout.js +23 -60
- package/layout/Icons.d.ts +4 -5
- package/layout/Icons.js +2 -16
- package/layout/types.d.ts +3 -3
- package/link/Link.accessibility.test.js +108 -0
- package/link/Link.js +28 -47
- package/link/Link.stories.tsx +4 -4
- package/link/Link.test.js +23 -41
- package/link/types.d.ts +14 -14
- package/main.d.ts +8 -4
- package/main.js +39 -60
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +1 -2
- package/nav-tabs/NavTabs.js +19 -48
- package/nav-tabs/NavTabs.stories.tsx +30 -25
- package/nav-tabs/NavTabs.test.js +45 -50
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- package/nav-tabs/Tab.js +38 -67
- package/nav-tabs/types.d.ts +10 -10
- package/number-input/NumberInput.accessibility.test.js +228 -0
- package/number-input/NumberInput.d.ts +0 -7
- package/number-input/NumberInput.js +47 -39
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +839 -575
- package/number-input/NumberInputContext.d.ts +3 -0
- package/number-input/NumberInputContext.js +8 -0
- package/number-input/types.d.ts +17 -5
- package/package.json +41 -37
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +27 -52
- package/paginator/Paginator.test.js +224 -207
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/paragraph/Paragraph.js +3 -19
- package/paragraph/Paragraph.stories.tsx +0 -17
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +32 -54
- package/password-input/PasswordInput.stories.tsx +1 -34
- package/password-input/PasswordInput.test.js +153 -129
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +26 -56
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
- package/progress-bar/ProgressBar.test.js +35 -52
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.js +4 -27
- package/quick-nav/QuickNav.stories.tsx +1 -1
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +22 -54
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +38 -83
- package/radio-group/RadioGroup.stories.tsx +10 -10
- package/radio-group/RadioGroup.test.js +504 -470
- package/radio-group/types.d.ts +8 -8
- package/resultset-table/Icons.d.ts +7 -0
- package/{resultsetTable → resultset-table}/Icons.js +1 -5
- package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
- package/resultset-table/ResultsetTable.d.ts +7 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.js +45 -69
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +118 -5
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +148 -92
- package/{resultsetTable → resultset-table}/types.d.ts +44 -11
- package/resultset-table/types.js +5 -0
- package/select/Listbox.js +40 -54
- package/select/Option.js +28 -36
- package/select/Select.accessibility.test.js +228 -0
- package/select/Select.js +107 -171
- package/select/Select.stories.tsx +59 -111
- package/select/Select.test.js +1895 -1858
- package/select/types.d.ts +15 -16
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.js +44 -81
- package/sidenav/Sidenav.stories.tsx +4 -9
- package/sidenav/Sidenav.test.js +3 -10
- package/{layout → sidenav}/SidenavContext.d.ts +1 -1
- package/{layout → sidenav}/SidenavContext.js +3 -9
- package/sidenav/types.d.ts +20 -20
- package/slider/Slider.accessibility.test.js +104 -0
- package/slider/Slider.js +70 -126
- package/slider/Slider.test.js +107 -103
- package/slider/types.d.ts +4 -4
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +21 -55
- package/spinner/Spinner.test.js +25 -34
- 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 +98 -0
- package/switch/Switch.js +49 -97
- package/switch/Switch.stories.tsx +12 -34
- package/switch/Switch.test.js +51 -96
- package/switch/types.d.ts +4 -4
- package/table/DropdownTheme.js +62 -0
- package/table/Table.accessibility.test.js +93 -0
- package/table/Table.d.ts +6 -2
- package/table/Table.js +76 -33
- package/table/{Table.stories.jsx → Table.stories.tsx} +309 -2
- package/table/Table.test.js +93 -6
- package/table/types.d.ts +34 -6
- package/tabs/Tab.js +22 -37
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +59 -147
- package/tabs/Tabs.stories.tsx +8 -4
- package/tabs/Tabs.test.js +57 -131
- package/tabs/types.d.ts +21 -21
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +27 -57
- package/tag/Tag.stories.tsx +4 -7
- package/tag/Tag.test.js +17 -36
- package/tag/types.d.ts +9 -9
- package/text-input/Suggestion.js +9 -26
- package/text-input/Suggestions.d.ts +1 -1
- package/text-input/Suggestions.js +30 -70
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +203 -289
- package/text-input/TextInput.stories.tsx +65 -160
- package/text-input/TextInput.test.js +1227 -1194
- package/text-input/types.d.ts +25 -17
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +68 -109
- package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -100
- package/textarea/Textarea.test.js +150 -179
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.js +25 -64
- package/toggle-group/ToggleGroup.stories.tsx +4 -4
- package/toggle-group/ToggleGroup.test.js +48 -81
- package/toggle-group/types.d.ts +12 -12
- package/typography/Typography.accessibility.test.js +339 -0
- package/typography/Typography.js +4 -13
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +43 -141
- package/useTheme.js +1 -8
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +2 -2
- package/utils/BaseTypography.js +16 -30
- package/utils/FocusLock.js +25 -39
- package/wizard/Wizard.accessibility.test.js +55 -0
- package/wizard/Wizard.js +27 -73
- package/wizard/Wizard.stories.tsx +19 -0
- package/wizard/Wizard.test.js +53 -80
- package/wizard/types.d.ts +8 -8
- package/common/OpenSans.css +0 -69
- 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-input/Icons.d.ts +0 -6
- package/date-input/Icons.js +0 -75
- package/paginator/Icons.d.ts +0 -5
- package/paginator/Icons.js +0 -54
- package/password-input/Icons.d.ts +0 -6
- package/password-input/Icons.js +0 -39
- package/resultsetTable/Icons.d.ts +0 -7
- package/resultsetTable/ResultsetTable.d.ts +0 -4
- package/select/Icons.d.ts +0 -10
- package/select/Icons.js +0 -93
- package/sidenav/Icons.d.ts +0 -7
- package/sidenav/Icons.js +0 -51
- package/slider/Slider.stories.tsx +0 -240
- package/text-input/Icons.d.ts +0 -8
- package/text-input/Icons.js +0 -60
- /package/{resultsetTable → action-icon}/types.js +0 -0
- /package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
package/dropdown/DropdownMenu.js
CHANGED
|
@@ -1,34 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
-
|
|
12
9
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
10
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
15
|
-
|
|
16
11
|
var _DropdownMenuItem = _interopRequireDefault(require("./DropdownMenuItem"));
|
|
17
|
-
|
|
18
12
|
var _templateObject;
|
|
19
|
-
|
|
20
13
|
var DropdownMenu = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
21
14
|
var id = _ref.id,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
15
|
+
dropdownTriggerId = _ref.dropdownTriggerId,
|
|
16
|
+
iconsPosition = _ref.iconsPosition,
|
|
17
|
+
visualFocusIndex = _ref.visualFocusIndex,
|
|
18
|
+
menuItemOnClick = _ref.menuItemOnClick,
|
|
19
|
+
onKeyDown = _ref.onKeyDown,
|
|
20
|
+
options = _ref.options,
|
|
21
|
+
styles = _ref.styles;
|
|
29
22
|
return /*#__PURE__*/_react["default"].createElement(DropdownMenuContainer, {
|
|
30
23
|
onMouseDown: function onMouseDown(event) {
|
|
31
|
-
// Prevent the onBlur event from closing menu when clicking on the menu since
|
|
24
|
+
// Prevent the onBlur event from closing menu when clicking on the menu since
|
|
32
25
|
// it is implemented with a Portal and the menu is not a direct child of the container
|
|
33
26
|
event.preventDefault();
|
|
34
27
|
},
|
|
@@ -37,14 +30,14 @@ var DropdownMenu = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
37
30
|
role: "menu",
|
|
38
31
|
"aria-labelledby": dropdownTriggerId,
|
|
39
32
|
"aria-orientation": "vertical",
|
|
40
|
-
"aria-activedescendant": "option-".concat(visualFocusIndex),
|
|
33
|
+
"aria-activedescendant": visualFocusIndex !== -1 ? "".concat(id, "-option-").concat(visualFocusIndex) : undefined,
|
|
41
34
|
tabIndex: -1,
|
|
42
35
|
ref: ref,
|
|
43
36
|
style: styles
|
|
44
37
|
}, options.map(function (option, index) {
|
|
45
38
|
return /*#__PURE__*/_react["default"].createElement(_DropdownMenuItem["default"], {
|
|
46
|
-
id: "option-".concat(index),
|
|
47
|
-
key: "option-".concat(index),
|
|
39
|
+
id: "".concat(id, "-option-").concat(index),
|
|
40
|
+
key: "".concat(id, "-option-").concat(index),
|
|
48
41
|
visuallyFocused: index === visualFocusIndex,
|
|
49
42
|
iconPosition: iconsPosition,
|
|
50
43
|
onClick: menuItemOnClick,
|
|
@@ -52,7 +45,6 @@ var DropdownMenu = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
52
45
|
});
|
|
53
46
|
}));
|
|
54
47
|
});
|
|
55
|
-
|
|
56
48
|
var DropdownMenuContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 230px;\n min-width: min-content;\n padding: 0;\n margin: 0;\n background-color: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n border-radius: ", ";\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n outline: none;\n\n overflow-y: auto;\n &::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n &::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 6px;\n }\n &::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 6px;\n }\n"])), function (props) {
|
|
57
49
|
return props.theme.optionBackgroundColor;
|
|
58
50
|
}, function (props) {
|
|
@@ -68,7 +60,4 @@ var DropdownMenuContainer = _styledComponents["default"].ul(_templateObject || (
|
|
|
68
60
|
}, function (props) {
|
|
69
61
|
return props.theme.scrollBarTrackColor;
|
|
70
62
|
});
|
|
71
|
-
|
|
72
|
-
var _default = /*#__PURE__*/_react["default"].memo(DropdownMenu);
|
|
73
|
-
|
|
74
|
-
exports["default"] = _default;
|
|
63
|
+
var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(DropdownMenu);
|
|
@@ -1,26 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
-
|
|
12
9
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
10
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
15
|
-
|
|
11
|
+
var _Icon = _interopRequireDefault(require("../icon/Icon"));
|
|
16
12
|
var _templateObject, _templateObject2, _templateObject3;
|
|
17
|
-
|
|
18
13
|
var DropdownMenuItem = function DropdownMenuItem(_ref) {
|
|
19
14
|
var id = _ref.id,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
visuallyFocused = _ref.visuallyFocused,
|
|
16
|
+
iconPosition = _ref.iconPosition,
|
|
17
|
+
_onClick = _ref.onClick,
|
|
18
|
+
option = _ref.option;
|
|
24
19
|
return /*#__PURE__*/_react["default"].createElement(DropdownMenuItemContainer, {
|
|
25
20
|
visuallyFocused: visuallyFocused,
|
|
26
21
|
onClick: function onClick() {
|
|
@@ -30,12 +25,12 @@ var DropdownMenuItem = function DropdownMenuItem(_ref) {
|
|
|
30
25
|
role: "menuitem",
|
|
31
26
|
tabIndex: -1
|
|
32
27
|
}, iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemLabel, null, option.label), option.icon && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemIcon, {
|
|
33
|
-
role: typeof option.icon === "string" ? undefined : "img"
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
role: typeof option.icon === "string" ? undefined : "img",
|
|
29
|
+
"aria-hidden": true
|
|
30
|
+
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
31
|
+
icon: option.icon
|
|
36
32
|
}) : option.icon), iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemLabel, null, option.label));
|
|
37
33
|
};
|
|
38
|
-
|
|
39
34
|
var DropdownMenuItemContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: ", ";\n min-height: 36px;\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n cursor: pointer;\n\n ", "\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
|
|
40
35
|
return props.theme.optionIconSpacing;
|
|
41
36
|
}, function (props) {
|
|
@@ -53,7 +48,6 @@ var DropdownMenuItemContainer = _styledComponents["default"].li(_templateObject
|
|
|
53
48
|
}, function (props) {
|
|
54
49
|
return props.theme.activeOptionBackgroundColor;
|
|
55
50
|
});
|
|
56
|
-
|
|
57
51
|
var DropdownMenuItemLabel = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5rem;\n color: ", ";\n white-space: nowrap;\n"])), function (props) {
|
|
58
52
|
return props.theme.optionFontFamily;
|
|
59
53
|
}, function (props) {
|
|
@@ -65,15 +59,13 @@ var DropdownMenuItemLabel = _styledComponents["default"].span(_templateObject2 |
|
|
|
65
59
|
}, function (props) {
|
|
66
60
|
return props.theme.optionFontColor;
|
|
67
61
|
});
|
|
68
|
-
|
|
69
|
-
var DropdownMenuItemIcon = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n\n img,\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
|
|
62
|
+
var DropdownMenuItemIcon = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n font-size: ", ";\n\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
|
|
70
63
|
return props.theme.optionIconColor;
|
|
71
64
|
}, function (props) {
|
|
72
65
|
return props.theme.optionIconSize;
|
|
73
66
|
}, function (props) {
|
|
74
67
|
return props.theme.optionIconSize;
|
|
68
|
+
}, function (props) {
|
|
69
|
+
return props.theme.optionIconSize;
|
|
75
70
|
});
|
|
76
|
-
|
|
77
|
-
var _default = /*#__PURE__*/_react["default"].memo(DropdownMenuItem);
|
|
78
|
-
|
|
79
|
-
exports["default"] = _default;
|
|
71
|
+
var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(DropdownMenuItem);
|
package/dropdown/types.d.ts
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
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
|
-
export
|
|
9
|
+
type Size = "small" | "medium" | "large" | "fillParent" | "fitContent";
|
|
10
|
+
type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
11
|
+
export type Option = {
|
|
12
12
|
/**
|
|
13
13
|
* Option display value.
|
|
14
14
|
*/
|
|
15
15
|
label?: string;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
* option label.
|
|
17
|
+
* Material Symbol name or SVG element as the icon that will be placed next to the label.
|
|
19
18
|
*/
|
|
20
19
|
icon?: string | SVG;
|
|
21
20
|
/**
|
|
@@ -23,7 +22,7 @@ export declare type Option = {
|
|
|
23
22
|
*/
|
|
24
23
|
value: string;
|
|
25
24
|
};
|
|
26
|
-
|
|
25
|
+
type Props = {
|
|
27
26
|
/**
|
|
28
27
|
* An array of objects representing the options.
|
|
29
28
|
*/
|
|
@@ -34,8 +33,7 @@ declare type Props = {
|
|
|
34
33
|
*/
|
|
35
34
|
optionsIconPosition?: "before" | "after";
|
|
36
35
|
/**
|
|
37
|
-
*
|
|
38
|
-
* dropdown label.
|
|
36
|
+
* Material Symbol name or SVG element as the icon that will be placed next to the label.
|
|
39
37
|
*/
|
|
40
38
|
icon?: string | SVG;
|
|
41
39
|
/**
|
|
@@ -51,14 +49,18 @@ declare type Props = {
|
|
|
51
49
|
*/
|
|
52
50
|
caretHidden?: boolean;
|
|
53
51
|
/**
|
|
54
|
-
*
|
|
55
|
-
* The value of the selected option will be passed as a parameter.
|
|
52
|
+
* If true, the component will be disabled.
|
|
56
53
|
*/
|
|
57
|
-
|
|
54
|
+
disabled?: boolean;
|
|
58
55
|
/**
|
|
59
|
-
* If true, the options are
|
|
56
|
+
* If true, the options are shown when the dropdown is hover.
|
|
60
57
|
*/
|
|
61
58
|
expandOnHover?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* This function will be called every time the selection changes.
|
|
61
|
+
* The value of the selected option will be passed as a parameter.
|
|
62
|
+
*/
|
|
63
|
+
onSelectOption: (value: string) => void;
|
|
62
64
|
/**
|
|
63
65
|
* Size of the margin to be applied to the component.
|
|
64
66
|
* You can pass an object with 'top', 'bottom', 'left' and 'right'
|
|
@@ -70,15 +72,11 @@ declare type Props = {
|
|
|
70
72
|
*/
|
|
71
73
|
size?: Size;
|
|
72
74
|
/**
|
|
73
|
-
* Value of the tabindex.
|
|
75
|
+
* Value of the tabindex attribute.
|
|
74
76
|
*/
|
|
75
77
|
tabIndex?: number;
|
|
76
|
-
/**
|
|
77
|
-
* If true, the component will be disabled.
|
|
78
|
-
*/
|
|
79
|
-
disabled?: boolean;
|
|
80
78
|
};
|
|
81
|
-
export
|
|
79
|
+
export type DropdownMenuProps = {
|
|
82
80
|
id: string;
|
|
83
81
|
dropdownTriggerId: string;
|
|
84
82
|
iconsPosition: "before" | "after";
|
|
@@ -86,11 +84,9 @@ export declare type DropdownMenuProps = {
|
|
|
86
84
|
menuItemOnClick: (value: string) => void;
|
|
87
85
|
onKeyDown: (event: React.KeyboardEvent<HTMLUListElement>) => void;
|
|
88
86
|
options: Option[];
|
|
89
|
-
styles:
|
|
90
|
-
width: number;
|
|
91
|
-
};
|
|
87
|
+
styles: React.CSSProperties;
|
|
92
88
|
};
|
|
93
|
-
export
|
|
89
|
+
export type DropdownMenuItemProps = {
|
|
94
90
|
id: string;
|
|
95
91
|
visuallyFocused: boolean;
|
|
96
92
|
iconPosition: "before" | "after";
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
var _axeHelper = require("../../test/accessibility/axe-helper.js");
|
|
9
|
+
var _FileInput = _interopRequireDefault(require("./FileInput.tsx"));
|
|
10
|
+
var picPreview = "https://cdn.mos.cms.futurecdn.net/CAZ6JXi6huSuN4QGE627NR.jpg";
|
|
11
|
+
var file1 = new File(["file1"], "file.pdf", {
|
|
12
|
+
type: "text/plain"
|
|
13
|
+
});
|
|
14
|
+
var file2 = new File(["file2"], "file2.mp3", {
|
|
15
|
+
type: "audio"
|
|
16
|
+
});
|
|
17
|
+
var file3 = new File(["file3"], "file3.png", {
|
|
18
|
+
type: "image/png"
|
|
19
|
+
});
|
|
20
|
+
var file4 = new File(["file4"], "file4file4file4file4file4file4file4file4file4.mp4", {
|
|
21
|
+
type: "video"
|
|
22
|
+
});
|
|
23
|
+
var file5 = new File(["file5"], "file5file5file5file5file5file5file5file5file5.mp4", {
|
|
24
|
+
type: "video"
|
|
25
|
+
});
|
|
26
|
+
var filesExamples = [{
|
|
27
|
+
file: file1
|
|
28
|
+
}, {
|
|
29
|
+
file: file2
|
|
30
|
+
}, {
|
|
31
|
+
file: file3,
|
|
32
|
+
preview: picPreview
|
|
33
|
+
}, {
|
|
34
|
+
file: file4
|
|
35
|
+
}, {
|
|
36
|
+
error: "This error message is a multiline paragraph for testing.",
|
|
37
|
+
file: file5
|
|
38
|
+
}, {
|
|
39
|
+
error: "Error message",
|
|
40
|
+
file: file3,
|
|
41
|
+
preview: picPreview
|
|
42
|
+
}];
|
|
43
|
+
describe("FileInput component accessibility tests", function () {
|
|
44
|
+
it("Should not have basic accessibility issues for dropzone mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
45
|
+
var _render, container, results;
|
|
46
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
47
|
+
while (1) switch (_context.prev = _context.next) {
|
|
48
|
+
case 0:
|
|
49
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_FileInput["default"], {
|
|
50
|
+
label: "File input",
|
|
51
|
+
helperText: "Helper Text",
|
|
52
|
+
value: filesExamples,
|
|
53
|
+
buttonLabel: "Button Label",
|
|
54
|
+
dropAreaLabel: "Drop Area",
|
|
55
|
+
margin: "medium",
|
|
56
|
+
mode: "dropzone",
|
|
57
|
+
multiple: true,
|
|
58
|
+
minSize: 1000,
|
|
59
|
+
maxSize: 20000,
|
|
60
|
+
showPreview: true
|
|
61
|
+
})), container = _render.container;
|
|
62
|
+
_context.next = 3;
|
|
63
|
+
return (0, _axeHelper.axe)(container);
|
|
64
|
+
case 3:
|
|
65
|
+
results = _context.sent;
|
|
66
|
+
expect(results).toHaveNoViolations();
|
|
67
|
+
case 5:
|
|
68
|
+
case "end":
|
|
69
|
+
return _context.stop();
|
|
70
|
+
}
|
|
71
|
+
}, _callee);
|
|
72
|
+
})));
|
|
73
|
+
it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
74
|
+
var _render2, container, results;
|
|
75
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
76
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
77
|
+
case 0:
|
|
78
|
+
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_FileInput["default"], {
|
|
79
|
+
label: "File input",
|
|
80
|
+
helperText: "Helper Text",
|
|
81
|
+
value: filesExamples,
|
|
82
|
+
buttonLabel: "Button Label",
|
|
83
|
+
dropAreaLabel: "Drop Area",
|
|
84
|
+
margin: "medium",
|
|
85
|
+
mode: "dropzone",
|
|
86
|
+
multiple: true,
|
|
87
|
+
minSize: 1000,
|
|
88
|
+
maxSize: 20000,
|
|
89
|
+
disabled: true
|
|
90
|
+
})), container = _render2.container;
|
|
91
|
+
_context2.next = 3;
|
|
92
|
+
return (0, _axeHelper.axe)(container);
|
|
93
|
+
case 3:
|
|
94
|
+
results = _context2.sent;
|
|
95
|
+
expect(results).toHaveNoViolations();
|
|
96
|
+
case 5:
|
|
97
|
+
case "end":
|
|
98
|
+
return _context2.stop();
|
|
99
|
+
}
|
|
100
|
+
}, _callee2);
|
|
101
|
+
})));
|
|
102
|
+
it("Should not have basic accessibility issues for file mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
103
|
+
var _render3, container, results;
|
|
104
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
105
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
106
|
+
case 0:
|
|
107
|
+
_render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_FileInput["default"], {
|
|
108
|
+
label: "File input",
|
|
109
|
+
helperText: "Helper Text",
|
|
110
|
+
value: filesExamples,
|
|
111
|
+
buttonLabel: "Button Label",
|
|
112
|
+
dropAreaLabel: "Drop Area",
|
|
113
|
+
margin: "medium",
|
|
114
|
+
mode: "file",
|
|
115
|
+
multiple: true,
|
|
116
|
+
minSize: 1000,
|
|
117
|
+
maxSize: 20000,
|
|
118
|
+
showPreview: true
|
|
119
|
+
})), container = _render3.container;
|
|
120
|
+
_context3.next = 3;
|
|
121
|
+
return (0, _axeHelper.axe)(container);
|
|
122
|
+
case 3:
|
|
123
|
+
results = _context3.sent;
|
|
124
|
+
expect(results).toHaveNoViolations();
|
|
125
|
+
case 5:
|
|
126
|
+
case "end":
|
|
127
|
+
return _context3.stop();
|
|
128
|
+
}
|
|
129
|
+
}, _callee3);
|
|
130
|
+
})));
|
|
131
|
+
it("Should not have basic accessibility issues for filedrop mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
132
|
+
var _render4, container, results;
|
|
133
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
134
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
135
|
+
case 0:
|
|
136
|
+
_render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_FileInput["default"], {
|
|
137
|
+
label: "File input",
|
|
138
|
+
helperText: "Helper Text",
|
|
139
|
+
value: filesExamples,
|
|
140
|
+
buttonLabel: "Button Label",
|
|
141
|
+
dropAreaLabel: "Drop Area",
|
|
142
|
+
margin: "medium",
|
|
143
|
+
mode: "filedrop",
|
|
144
|
+
multiple: true,
|
|
145
|
+
minSize: 1000,
|
|
146
|
+
maxSize: 20000,
|
|
147
|
+
showPreview: true
|
|
148
|
+
})), container = _render4.container;
|
|
149
|
+
_context4.next = 3;
|
|
150
|
+
return (0, _axeHelper.axe)(container);
|
|
151
|
+
case 3:
|
|
152
|
+
results = _context4.sent;
|
|
153
|
+
expect(results).toHaveNoViolations();
|
|
154
|
+
case 5:
|
|
155
|
+
case "end":
|
|
156
|
+
return _context4.stop();
|
|
157
|
+
}
|
|
158
|
+
}, _callee4);
|
|
159
|
+
})));
|
|
160
|
+
});
|