@dxc-technology/halstack-react 0.0.0-5a1e592 → 0.0.0-5b15506
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 +32 -139
- package/HalstackContext.js +10 -35
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.js +33 -84
- package/accordion/Accordion.stories.tsx +5 -51
- 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 +1 -1
- 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 +29 -118
- 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/bulleted-list/BulletedList.accessibility.test.js +107 -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 +33 -133
- 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 +21 -44
- 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 +55 -109
- package/checkbox/Checkbox.stories.tsx +0 -54
- package/checkbox/Checkbox.test.js +79 -108
- package/checkbox/types.d.ts +4 -4
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +20 -36
- package/chip/Chip.stories.tsx +5 -24
- 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 +32 -136
- package/common/variables.js +43 -154
- 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 +7 -0
- package/contextual-menu/ContextualMenu.js +71 -0
- package/contextual-menu/ContextualMenu.stories.tsx +182 -0
- package/contextual-menu/ContextualMenu.test.js +71 -0
- package/contextual-menu/MenuItemAction.d.ts +4 -0
- package/contextual-menu/MenuItemAction.js +46 -0
- package/contextual-menu/types.d.ts +22 -0
- package/contextual-menu/types.js +5 -0
- package/date-input/Calendar.js +13 -57
- package/date-input/DateInput.accessibility.test.js +216 -0
- package/date-input/DateInput.js +45 -94
- package/date-input/DateInput.stories.tsx +1 -30
- package/date-input/DateInput.test.js +667 -708
- package/date-input/DatePicker.js +23 -48
- package/date-input/YearPicker.js +8 -34
- package/date-input/types.d.ts +28 -26
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.js +13 -40
- package/dialog/Dialog.stories.tsx +170 -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 +59 -128
- package/dropdown/Dropdown.stories.tsx +5 -16
- package/dropdown/Dropdown.test.js +391 -378
- package/dropdown/DropdownMenu.js +8 -19
- package/dropdown/DropdownMenuItem.js +11 -20
- 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 +25 -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 +117 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +43 -68
- package/footer/Footer.stories.tsx +46 -2
- package/footer/Footer.test.js +18 -32
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +66 -7
- 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 +84 -0
- package/header/Header.d.ts +1 -1
- package/header/Header.js +36 -103
- package/header/Header.test.js +12 -25
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +2 -7
- 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 +15 -55
- package/layout/Icons.d.ts +5 -5
- package/layout/Icons.js +1 -7
- package/layout/types.d.ts +3 -3
- package/link/Link.accessibility.test.js +112 -0
- package/link/Link.js +28 -47
- package/link/Link.stories.tsx +2 -2
- package/link/Link.test.js +23 -41
- package/link/types.d.ts +14 -14
- package/main.d.ts +7 -4
- package/main.js +32 -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 +38 -45
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- package/nav-tabs/Tab.js +33 -62
- 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 +39 -37
- package/paginator/Icons.d.ts +5 -5
- package/paginator/Icons.js +5 -19
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +15 -43
- 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 +27 -50
- 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 +21 -53
- 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.js +15 -47
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +34 -80
- package/radio-group/RadioGroup.test.js +504 -497
- package/radio-group/types.d.ts +5 -5
- package/resultset-table/Icons.d.ts +7 -0
- package/{resultsetTable → resultset-table}/Icons.js +1 -5
- package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
- package/resultset-table/ResultsetTable.d.ts +7 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.js +44 -69
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +106 -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 +18 -42
- package/select/Option.js +26 -35
- package/select/Select.accessibility.test.js +217 -0
- package/select/Select.js +101 -169
- package/select/Select.stories.tsx +33 -97
- package/select/Select.test.js +1894 -1846
- 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 +68 -125
- 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 +16 -54
- 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 +89 -0
- package/switch/Switch.js +49 -97
- package/switch/Switch.stories.tsx +0 -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 +82 -0
- package/table/Table.d.ts +6 -2
- package/table/Table.js +76 -33
- package/table/{Table.stories.jsx → Table.stories.tsx} +297 -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 +2 -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 +19 -67
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +193 -285
- package/text-input/TextInput.stories.tsx +10 -153
- package/text-input/TextInput.test.js +1213 -1269
- package/text-input/types.d.ts +21 -17
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +49 -93
- package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -108
- package/textarea/Textarea.test.js +135 -208
- package/textarea/types.d.ts +5 -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 +29 -133
- 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 -65
- 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/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/utils/FocusLock.js
CHANGED
|
@@ -1,33 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = 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
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
-
|
|
14
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
-
|
|
16
|
-
function
|
|
17
|
-
|
|
18
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(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; }
|
|
19
|
-
|
|
11
|
+
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); }
|
|
12
|
+
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; }
|
|
20
13
|
var not = {
|
|
21
14
|
negTabIndex: ':not([tabindex^="-"])',
|
|
22
15
|
disabled: ":not(:disabled)"
|
|
23
16
|
};
|
|
24
17
|
var focusableQuery = ["a[href]".concat(not.negTabIndex), "area[href]".concat(not.negTabIndex), "input:not([type=\"hidden\"])".concat(not.negTabIndex).concat(not.disabled), "select".concat(not.negTabIndex).concat(not.disabled), "textarea".concat(not.negTabIndex).concat(not.disabled), "button".concat(not.negTabIndex).concat(not.disabled), "details > summary:first-of-type".concat(not.negTabIndex), "iframe".concat(not.negTabIndex), "audio[controls]".concat(not.negTabIndex), "video[controls]".concat(not.negTabIndex), "[contenteditable]".concat(not.negTabIndex), "[tabindex]".concat(not.negTabIndex).concat(not.disabled)].join(",");
|
|
25
|
-
|
|
26
18
|
var getFocusableElements = function getFocusableElements(container) {
|
|
27
19
|
return Array.prototype.slice.call(container.querySelectorAll(focusableQuery)).filter(function (element) {
|
|
28
20
|
return element.getAttribute("aria-hidden") !== "true" && window.getComputedStyle(element).display !== "none" && window.getComputedStyle(element).visibility !== "hidden";
|
|
29
21
|
});
|
|
30
22
|
};
|
|
23
|
+
|
|
31
24
|
/**
|
|
32
25
|
* This function will try to focus the element and return true if it was able to receive the focus.
|
|
33
26
|
* Even if the element is focusable (passes any of the conditions of our selector), there is the possibility
|
|
@@ -35,37 +28,35 @@ var getFocusableElements = function getFocusableElements(container) {
|
|
|
35
28
|
* @param element: HTMLElement
|
|
36
29
|
* @returns
|
|
37
30
|
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
var attempFocus = function attempFocus(element) {
|
|
31
|
+
var attemptFocus = function attemptFocus(element) {
|
|
41
32
|
element === null || element === void 0 ? void 0 : element.focus();
|
|
42
33
|
return document.activeElement === element;
|
|
43
34
|
};
|
|
35
|
+
|
|
44
36
|
/**
|
|
45
37
|
* @param element: HTMLElement
|
|
46
38
|
* @returns boolean: true if element is contained inside a Radix Portal, false otherwise.
|
|
47
39
|
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
40
|
var radixPortalContains = function radixPortalContains(activeElement) {
|
|
51
41
|
var radixPortals = document.querySelectorAll("[data-radix-portal]");
|
|
42
|
+
var radixPoppers = document.querySelectorAll("[data-radix-popper-content-wrapper]");
|
|
52
43
|
return Array.prototype.slice.call(radixPortals).some(function (portal) {
|
|
53
44
|
return portal.contains(activeElement);
|
|
45
|
+
}) || Array.prototype.slice.call(radixPoppers).some(function (popper) {
|
|
46
|
+
return popper.contains(activeElement);
|
|
54
47
|
});
|
|
55
48
|
};
|
|
49
|
+
|
|
56
50
|
/**
|
|
57
51
|
* Custom hook that returns an array of focusable elements inside a container.
|
|
58
52
|
* @param ref: React.MutableRefObject<HTMLDivElement>
|
|
59
53
|
* @returns
|
|
60
54
|
*/
|
|
61
|
-
|
|
62
|
-
|
|
63
55
|
var useFocusableElements = function useFocusableElements(ref) {
|
|
64
56
|
var _useState = (0, _react.useState)(),
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
57
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
58
|
+
focusableElements = _useState2[0],
|
|
59
|
+
setFocusableElements = _useState2[1];
|
|
69
60
|
(0, _react.useEffect)(function () {
|
|
70
61
|
if (ref.current != null) {
|
|
71
62
|
setFocusableElements(getFocusableElements(ref.current));
|
|
@@ -84,6 +75,7 @@ var useFocusableElements = function useFocusableElements(ref) {
|
|
|
84
75
|
}, []);
|
|
85
76
|
return focusableElements;
|
|
86
77
|
};
|
|
78
|
+
|
|
87
79
|
/**
|
|
88
80
|
* Traps the focus inside the children of the component. It will focus the first focusable element when the component is mounted.
|
|
89
81
|
* When the focus is on the last focusable element and the user tries to focus the next element, it will focus the first element.
|
|
@@ -92,33 +84,26 @@ var useFocusableElements = function useFocusableElements(ref) {
|
|
|
92
84
|
* @param children: React.ReactNode
|
|
93
85
|
* @returns
|
|
94
86
|
*/
|
|
95
|
-
|
|
96
|
-
|
|
97
87
|
var FocusLock = function FocusLock(_ref) {
|
|
98
88
|
var children = _ref.children;
|
|
99
89
|
var childrenContainerRef = (0, _react.useRef)();
|
|
100
90
|
var focusableElements = useFocusableElements(childrenContainerRef);
|
|
101
91
|
var focusFirst = (0, _react.useCallback)(function () {
|
|
102
92
|
var _childrenContainerRef;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
93
|
+
if ((focusableElements === null || focusableElements === void 0 ? void 0 : focusableElements.length) === 0) (_childrenContainerRef = childrenContainerRef.current) === null || _childrenContainerRef === void 0 ? void 0 : _childrenContainerRef.focus();else if ((focusableElements === null || focusableElements === void 0 ? void 0 : focusableElements.length) > 0) focusableElements.some(function (element) {
|
|
94
|
+
return attemptFocus(element);
|
|
95
|
+
});
|
|
107
96
|
}, [focusableElements]);
|
|
108
|
-
|
|
109
97
|
var focusLast = function focusLast() {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
98
|
+
focusableElements.reverse().some(function (element) {
|
|
99
|
+
return attemptFocus(element);
|
|
100
|
+
});
|
|
113
101
|
};
|
|
114
|
-
|
|
115
102
|
var focusLock = function focusLock(event) {
|
|
116
|
-
if (event.key === "Tab") focusableElements.length === 0 && event.preventDefault();
|
|
103
|
+
if (event.key === "Tab") focusableElements.length === 0 && event.preventDefault();
|
|
117
104
|
};
|
|
118
|
-
|
|
119
105
|
(0, _react.useEffect)(function () {
|
|
120
106
|
var _childrenContainerRef2;
|
|
121
|
-
|
|
122
107
|
if (!((_childrenContainerRef2 = childrenContainerRef.current) !== null && _childrenContainerRef2 !== void 0 && _childrenContainerRef2.contains(document.activeElement)) && !radixPortalContains(document.activeElement)) focusFirst();
|
|
123
108
|
}, [focusFirst]);
|
|
124
109
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -127,12 +112,13 @@ var FocusLock = function FocusLock(_ref) {
|
|
|
127
112
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
128
113
|
onKeyDown: focusLock,
|
|
129
114
|
ref: childrenContainerRef,
|
|
130
|
-
tabIndex: (focusableElements === null || focusableElements === void 0 ? void 0 : focusableElements.length) === 0 ? 0 : -1
|
|
115
|
+
tabIndex: (focusableElements === null || focusableElements === void 0 ? void 0 : focusableElements.length) === 0 ? 0 : -1,
|
|
116
|
+
style: {
|
|
117
|
+
outline: "none"
|
|
118
|
+
}
|
|
131
119
|
}, children), /*#__PURE__*/_react["default"].createElement("div", {
|
|
132
120
|
onFocus: focusFirst,
|
|
133
121
|
tabIndex: 0
|
|
134
122
|
}));
|
|
135
123
|
};
|
|
136
|
-
|
|
137
|
-
var _default = FocusLock;
|
|
138
|
-
exports["default"] = _default;
|
|
124
|
+
var _default = exports["default"] = FocusLock;
|
|
@@ -0,0 +1,55 @@
|
|
|
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 _jestAxe = require("jest-axe");
|
|
9
|
+
var _Wizard = _interopRequireDefault(require("./Wizard.tsx"));
|
|
10
|
+
var favoriteSVG = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
11
|
+
viewBox: "0 0 24 24",
|
|
12
|
+
fill: "currentColor"
|
|
13
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
14
|
+
d: "M0 0h24v24H0z",
|
|
15
|
+
fill: "none"
|
|
16
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
17
|
+
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"
|
|
18
|
+
}));
|
|
19
|
+
describe("Wizard component accessibility tests", function () {
|
|
20
|
+
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
21
|
+
var _render, container, results;
|
|
22
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
23
|
+
while (1) switch (_context.prev = _context.next) {
|
|
24
|
+
case 0:
|
|
25
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
|
|
26
|
+
steps: [{
|
|
27
|
+
label: "first-step",
|
|
28
|
+
description: "Description",
|
|
29
|
+
icon: favoriteSVG
|
|
30
|
+
}, {
|
|
31
|
+
label: "second-step",
|
|
32
|
+
description: "Description"
|
|
33
|
+
}, {
|
|
34
|
+
label: "valid-step",
|
|
35
|
+
valid: true
|
|
36
|
+
}, {
|
|
37
|
+
label: "disabled-step",
|
|
38
|
+
disabled: true
|
|
39
|
+
}],
|
|
40
|
+
mode: "vertical",
|
|
41
|
+
defaultCurrentStep: 1,
|
|
42
|
+
margin: "medium"
|
|
43
|
+
})), container = _render.container;
|
|
44
|
+
_context.next = 3;
|
|
45
|
+
return (0, _jestAxe.axe)(container);
|
|
46
|
+
case 3:
|
|
47
|
+
results = _context.sent;
|
|
48
|
+
expect(results).toHaveNoViolations();
|
|
49
|
+
case 5:
|
|
50
|
+
case "end":
|
|
51
|
+
return _context.stop();
|
|
52
|
+
}
|
|
53
|
+
}, _callee);
|
|
54
|
+
})));
|
|
55
|
+
});
|
package/wizard/Wizard.js
CHANGED
|
@@ -1,34 +1,22 @@
|
|
|
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
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
-
|
|
14
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
|
-
|
|
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
14
|
var _variables = require("../common/variables");
|
|
23
|
-
|
|
24
15
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
|
-
|
|
26
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11
|
|
27
|
-
|
|
28
|
-
function
|
|
29
|
-
|
|
30
|
-
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; }
|
|
31
|
-
|
|
16
|
+
var _Icon = _interopRequireDefault(require("../icon/Icon"));
|
|
17
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
|
|
18
|
+
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); }
|
|
19
|
+
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; }
|
|
32
20
|
var icons = {
|
|
33
21
|
validIcon: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
34
22
|
id: "check_circle_black_18dp",
|
|
@@ -80,38 +68,31 @@ var icons = {
|
|
|
80
68
|
fill: "#d0011b"
|
|
81
69
|
}))
|
|
82
70
|
};
|
|
83
|
-
|
|
84
71
|
var DxcWizard = function DxcWizard(_ref) {
|
|
85
72
|
var _ref2;
|
|
86
|
-
|
|
87
73
|
var _ref$mode = _ref.mode,
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
74
|
+
mode = _ref$mode === void 0 ? "horizontal" : _ref$mode,
|
|
75
|
+
defaultCurrentStep = _ref.defaultCurrentStep,
|
|
76
|
+
currentStep = _ref.currentStep,
|
|
77
|
+
onStepClick = _ref.onStepClick,
|
|
78
|
+
steps = _ref.steps,
|
|
79
|
+
margin = _ref.margin,
|
|
80
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
81
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
97
82
|
var _useState = (0, _react.useState)((_ref2 = currentStep !== null && currentStep !== void 0 ? currentStep : defaultCurrentStep) !== null && _ref2 !== void 0 ? _ref2 : 0),
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
83
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
84
|
+
innerCurrent = _useState2[0],
|
|
85
|
+
setInnerCurrentStep = _useState2[1];
|
|
102
86
|
var renderedCurrent = currentStep == null ? innerCurrent : currentStep;
|
|
103
87
|
var colorsTheme = (0, _useTheme["default"])();
|
|
104
|
-
|
|
105
88
|
var handleStepClick = function handleStepClick(newValue) {
|
|
106
89
|
if (currentStep == null) {
|
|
107
90
|
setInnerCurrentStep(newValue);
|
|
108
91
|
}
|
|
109
|
-
|
|
110
92
|
if (onStepClick) {
|
|
111
93
|
onStepClick(newValue);
|
|
112
94
|
}
|
|
113
95
|
};
|
|
114
|
-
|
|
115
96
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
116
97
|
theme: colorsTheme.wizard
|
|
117
98
|
}, /*#__PURE__*/_react["default"].createElement(StepsContainer, {
|
|
@@ -139,9 +120,9 @@ var DxcWizard = function DxcWizard(_ref) {
|
|
|
139
120
|
current: i === renderedCurrent,
|
|
140
121
|
visited: i < renderedCurrent,
|
|
141
122
|
disabled: step.disabled
|
|
142
|
-
}, step.icon ?
|
|
143
|
-
|
|
144
|
-
}) : step.icon
|
|
123
|
+
}, step.icon ? typeof step.icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
124
|
+
icon: step.icon
|
|
125
|
+
}) : step.icon : /*#__PURE__*/_react["default"].createElement(Number, null, i + 1)), step.valid !== undefined && (step.valid ? /*#__PURE__*/_react["default"].createElement(ValidityIconContainer, null, icons.validIcon) : /*#__PURE__*/_react["default"].createElement(ValidityIconContainer, null, icons.invalidIcon))), (step.label || step.description) && /*#__PURE__*/_react["default"].createElement(InfoContainer, null, step.label && /*#__PURE__*/_react["default"].createElement(Label, {
|
|
145
126
|
current: i === renderedCurrent,
|
|
146
127
|
disabled: step.disabled,
|
|
147
128
|
visited: i <= innerCurrent
|
|
@@ -154,7 +135,6 @@ var DxcWizard = function DxcWizard(_ref) {
|
|
|
154
135
|
}));
|
|
155
136
|
})));
|
|
156
137
|
};
|
|
157
|
-
|
|
158
138
|
var StepsContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n justify-content: center;\n ", ";\n font-family: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
159
139
|
return props.mode === "vertical" ? "column" : "row";
|
|
160
140
|
}, function (props) {
|
|
@@ -172,7 +152,6 @@ var StepsContainer = _styledComponents["default"].div(_templateObject || (_templ
|
|
|
172
152
|
}, function (props) {
|
|
173
153
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
174
154
|
});
|
|
175
|
-
|
|
176
155
|
var StepContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n ", "\n flex-grow: ", ";\n flex-direction: ", ";\n ", "\n"])), function (props) {
|
|
177
156
|
return props.mode !== "vertical" && "align-items: center;";
|
|
178
157
|
}, function (props) {
|
|
@@ -182,7 +161,6 @@ var StepContainer = _styledComponents["default"].div(_templateObject2 || (_templ
|
|
|
182
161
|
}, function (props) {
|
|
183
162
|
return props.mode === "vertical" && "width: fit-content;";
|
|
184
163
|
});
|
|
185
|
-
|
|
186
164
|
var Step = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: flex-start;\n align-items: center;\n border: none;\n border-radius: 0.25rem;\n background: inherit;\n margin: ", ";\n\n padding: 0px;\n ", ";\n\n &:hover {\n ", ";\n }\n &:focus {\n outline: 2px solid ", ";\n }\n"])), function (props) {
|
|
187
165
|
return props.first ? props.mode === "vertical" ? "0 0 24px 0" : "0 24px 0 0" : props.last ? props.mode === "vertical" ? "24px 0 0 0" : "0 0 0 24px" : props.mode === "vertical" ? "24px 0" : "0 24px";
|
|
188
166
|
}, function (props) {
|
|
@@ -192,12 +170,10 @@ var Step = _styledComponents["default"].button(_templateObject3 || (_templateObj
|
|
|
192
170
|
}, function (props) {
|
|
193
171
|
return props.theme.focusColor;
|
|
194
172
|
});
|
|
195
|
-
|
|
196
173
|
var StepHeader = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n display: inline-flex;\n ", "\n"])), function (props) {
|
|
197
174
|
return props.validityIcon && "padding-bottom: 4px;";
|
|
198
175
|
});
|
|
199
|
-
|
|
200
|
-
var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n\n ", "\n ", ";\n\n border-radius: ", ";\n\n display: flex;\n justify-content: center;\n align-items: center;\n"])), function (props) {
|
|
176
|
+
var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n\n ", "\n ", ";\n\n border-radius: ", ";\n\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n font-size: ", ";\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
|
|
201
177
|
return props.disabled ? props.theme.disabledStepWidth : props.current ? props.theme.selectedStepWidth : props.theme.stepWidth;
|
|
202
178
|
}, function (props) {
|
|
203
179
|
return props.disabled ? props.theme.disabledStepHeight : props.current ? props.theme.selectedStepHeight : props.theme.stepHeight;
|
|
@@ -207,21 +183,14 @@ var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templ
|
|
|
207
183
|
return props.disabled ? "color: ".concat(props.theme.disabledStepFontColor, ";") : "color: ".concat(props.current ? props.theme.selectedStepFontColor : !props.visited ? props.theme.unvisitedStepFontColor : props.theme.visitedStepFontColor, ";");
|
|
208
184
|
}, function (props) {
|
|
209
185
|
return !props.current && !props.disabled ? props.theme.stepBorderRadius : props.current ? props.theme.selectedStepBorderRadius : props.disabled ? props.theme.disabledStepBorderRadius : "";
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
var Icon = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n"])), function (props) {
|
|
213
|
-
return props.theme.stepIconSize;
|
|
214
186
|
}, function (props) {
|
|
215
187
|
return props.theme.stepIconSize;
|
|
216
|
-
})
|
|
217
|
-
|
|
218
|
-
var StepIconContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n overflow: hidden;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
188
|
+
}, function (props) {
|
|
219
189
|
return props.theme.stepIconSize;
|
|
220
190
|
}, function (props) {
|
|
221
191
|
return props.theme.stepIconSize;
|
|
222
192
|
});
|
|
223
|
-
|
|
224
|
-
var Number = _styledComponents["default"].p(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n opacity: 1;\n margin: 0px 0px 0px 1px;\n"])), function (props) {
|
|
193
|
+
var Number = _styledComponents["default"].p(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n opacity: 1;\n margin: 0px 0px 0px 1px;\n"])), function (props) {
|
|
225
194
|
return props.theme.stepFontSize;
|
|
226
195
|
}, function (props) {
|
|
227
196
|
return props.theme.stepFontFamily;
|
|
@@ -232,12 +201,9 @@ var Number = _styledComponents["default"].p(_templateObject8 || (_templateObject
|
|
|
232
201
|
}, function (props) {
|
|
233
202
|
return props.theme.stepFontTracking;
|
|
234
203
|
});
|
|
235
|
-
|
|
236
|
-
var
|
|
237
|
-
|
|
238
|
-
var InfoContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: 12px;\n"])));
|
|
239
|
-
|
|
240
|
-
var Label = _styledComponents["default"].p(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n text-align: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n ", ";\n text-transform: ", ";\n margin: 0;\n"])), function (props) {
|
|
204
|
+
var ValidityIconContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n width: 18px;\n height: 18px;\n position: absolute;\n top: 22.5px;\n left: 22.5px;\n"])));
|
|
205
|
+
var InfoContainer = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: 12px;\n"])));
|
|
206
|
+
var Label = _styledComponents["default"].p(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n text-align: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n ", ";\n text-transform: ", ";\n margin: 0;\n"])), function (props) {
|
|
241
207
|
return props.theme.labelTextAlign;
|
|
242
208
|
}, function (props) {
|
|
243
209
|
return props.theme.labelFontFamily;
|
|
@@ -254,8 +220,7 @@ var Label = _styledComponents["default"].p(_templateObject11 || (_templateObject
|
|
|
254
220
|
}, function (props) {
|
|
255
221
|
return props.theme.labelFontTextTransform;
|
|
256
222
|
});
|
|
257
|
-
|
|
258
|
-
var Description = _styledComponents["default"].p(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n text-align: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n ", ";\n margin: 0;\n"])), function (props) {
|
|
223
|
+
var Description = _styledComponents["default"].p(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n text-align: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n ", ";\n margin: 0;\n"])), function (props) {
|
|
259
224
|
return props.theme.helperTextTextAlign;
|
|
260
225
|
}, function (props) {
|
|
261
226
|
return props.theme.helperTextFontFamily;
|
|
@@ -272,14 +237,11 @@ var Description = _styledComponents["default"].p(_templateObject12 || (_template
|
|
|
272
237
|
}, function (props) {
|
|
273
238
|
return props.disabled ? "color: ".concat(props.theme.disabledHelperTextFontColor, ";") : "color: ".concat(!props.visited ? props.theme.unvisitedHelperTextFontColor : props.current ? props.theme.selectedHelperTextFontColor : props.theme.visitedHelperTextFontColor, ";");
|
|
274
239
|
});
|
|
275
|
-
|
|
276
|
-
var StepSeparator = _styledComponents["default"].div(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n ", "\n border: ", ";\n opacity: 1;\n flex-grow: 1;\n"])), function (props) {
|
|
240
|
+
var StepSeparator = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n ", "\n border: ", ";\n opacity: 1;\n flex-grow: 1;\n"])), function (props) {
|
|
277
241
|
return props.mode === "horizontal" ? "height: 0;" : "width: 0;";
|
|
278
242
|
}, function (props) {
|
|
279
243
|
return props.mode === "vertical" && "margin: 0 18px;";
|
|
280
244
|
}, function (props) {
|
|
281
245
|
return "".concat(props.theme.separatorBorderStyle, " ").concat(props.theme.separatorBorderThickness, " ").concat(props.theme.separatorColor);
|
|
282
246
|
});
|
|
283
|
-
|
|
284
|
-
var _default = DxcWizard;
|
|
285
|
-
exports["default"] = _default;
|
|
247
|
+
var _default = exports["default"] = DxcWizard;
|
|
@@ -133,6 +133,21 @@ const stepLargeIcons = [
|
|
|
133
133
|
},
|
|
134
134
|
];
|
|
135
135
|
|
|
136
|
+
const stepMaterialSymbols = [
|
|
137
|
+
{
|
|
138
|
+
label: "First step",
|
|
139
|
+
icon: "filled_home",
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
label: "Second step",
|
|
143
|
+
icon: "filled_favorite",
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
label: "Third step",
|
|
147
|
+
icon: "filled_star",
|
|
148
|
+
},
|
|
149
|
+
];
|
|
150
|
+
|
|
136
151
|
const opinionatedTheme = {
|
|
137
152
|
wizard: {
|
|
138
153
|
baseColor: "#5f249f",
|
|
@@ -171,6 +186,10 @@ export const Chromatic = () => (
|
|
|
171
186
|
<Title title="With large icons" theme="light" level={4} />
|
|
172
187
|
<DxcWizard steps={stepLargeIcons}></DxcWizard>
|
|
173
188
|
</ExampleContainer>
|
|
189
|
+
<ExampleContainer>
|
|
190
|
+
<Title title="With Material Symbols" theme="light" level={4} />
|
|
191
|
+
<DxcWizard steps={stepMaterialSymbols}></DxcWizard>
|
|
192
|
+
</ExampleContainer>
|
|
174
193
|
<Title title="Margins horizontal" theme="light" level={2} />
|
|
175
194
|
<ExampleContainer>
|
|
176
195
|
<Title title="Xxsmall margin" theme="light" level={4} />
|
package/wizard/Wizard.test.js
CHANGED
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
6
|
var _Wizard = _interopRequireDefault(require("./Wizard.tsx"));
|
|
10
|
-
|
|
11
7
|
describe("Wizard components tests", function () {
|
|
12
8
|
test("Wizard renders with correct steps", function () {
|
|
13
9
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
10
|
+
steps: [{
|
|
11
|
+
label: "first-step"
|
|
12
|
+
}, {
|
|
13
|
+
label: "second-step"
|
|
14
|
+
}]
|
|
15
|
+
})),
|
|
16
|
+
getByText = _render.getByText,
|
|
17
|
+
getAllByRole = _render.getAllByRole;
|
|
23
18
|
var steps = getAllByRole("button");
|
|
24
19
|
expect(getByText("first-step")).toBeTruthy();
|
|
25
20
|
expect(getByText("second-step")).toBeTruthy();
|
|
@@ -28,112 +23,90 @@ describe("Wizard components tests", function () {
|
|
|
28
23
|
});
|
|
29
24
|
test("Wizard renders with initially selected step", function () {
|
|
30
25
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
26
|
+
defaultCurrentStep: 1,
|
|
27
|
+
steps: [{
|
|
28
|
+
label: "first-step"
|
|
29
|
+
}, {
|
|
30
|
+
label: "second-step"
|
|
31
|
+
}]
|
|
32
|
+
})),
|
|
33
|
+
getAllByRole = _render2.getAllByRole;
|
|
40
34
|
var steps = getAllByRole("button");
|
|
41
35
|
expect(steps[1].getAttribute("aria-current")).toBe("step");
|
|
42
36
|
});
|
|
43
37
|
test("Click on step text", function () {
|
|
44
38
|
var onClick = jest.fn();
|
|
45
|
-
|
|
46
39
|
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
40
|
+
onStepClick: onClick,
|
|
41
|
+
steps: [{
|
|
42
|
+
label: "first-step"
|
|
43
|
+
}]
|
|
44
|
+
})),
|
|
45
|
+
getByText = _render3.getByText;
|
|
54
46
|
var step = getByText("first-step");
|
|
55
|
-
|
|
56
47
|
_react2.fireEvent.click(step);
|
|
57
|
-
|
|
58
48
|
expect(onClick).toHaveBeenCalled();
|
|
59
49
|
});
|
|
60
50
|
test("Click on step description", function () {
|
|
61
51
|
var onClick = jest.fn();
|
|
62
|
-
|
|
63
52
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
53
|
+
onStepClick: onClick,
|
|
54
|
+
steps: [{
|
|
55
|
+
label: "first-step",
|
|
56
|
+
description: "step-description"
|
|
57
|
+
}]
|
|
58
|
+
})),
|
|
59
|
+
getByText = _render4.getByText;
|
|
72
60
|
var step = getByText("step-description");
|
|
73
|
-
|
|
74
61
|
_react2.fireEvent.click(step);
|
|
75
|
-
|
|
76
62
|
expect(onClick).toHaveBeenCalled();
|
|
77
63
|
});
|
|
78
64
|
test("Click on step number", function () {
|
|
79
65
|
var onClick = jest.fn();
|
|
80
|
-
|
|
81
66
|
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
67
|
+
onStepClick: onClick,
|
|
68
|
+
steps: [{
|
|
69
|
+
label: "first-step"
|
|
70
|
+
}]
|
|
71
|
+
})),
|
|
72
|
+
getByText = _render5.getByText;
|
|
89
73
|
var step = getByText("1");
|
|
90
|
-
|
|
91
74
|
_react2.fireEvent.click(step);
|
|
92
|
-
|
|
93
75
|
expect(onClick).toHaveBeenCalled();
|
|
94
76
|
});
|
|
95
77
|
test("Click on disable step", function () {
|
|
96
78
|
var onClick = jest.fn();
|
|
97
|
-
|
|
98
79
|
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
80
|
+
onStepClick: onClick,
|
|
81
|
+
steps: [{
|
|
82
|
+
label: "first-step"
|
|
83
|
+
}, {
|
|
84
|
+
label: "second-step",
|
|
85
|
+
disabled: true
|
|
86
|
+
}]
|
|
87
|
+
})),
|
|
88
|
+
getByText = _render6.getByText;
|
|
109
89
|
var step = getByText("second-step");
|
|
110
|
-
|
|
111
90
|
_react2.fireEvent.click(step);
|
|
112
|
-
|
|
113
91
|
expect(onClick).toHaveBeenCalledTimes(0);
|
|
114
92
|
});
|
|
115
93
|
test("Controlled wizard function is called", function () {
|
|
116
94
|
var onClick = jest.fn(function (i) {
|
|
117
95
|
return i;
|
|
118
96
|
});
|
|
119
|
-
|
|
120
97
|
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
98
|
+
currentStep: 0,
|
|
99
|
+
onStepClick: onClick,
|
|
100
|
+
steps: [{
|
|
101
|
+
label: "first-step"
|
|
102
|
+
}, {
|
|
103
|
+
label: "second-step"
|
|
104
|
+
}]
|
|
105
|
+
})),
|
|
106
|
+
getAllByRole = _render7.getAllByRole;
|
|
131
107
|
var steps = getAllByRole("button");
|
|
132
|
-
|
|
133
108
|
_react2.fireEvent.click(steps[1]);
|
|
134
|
-
|
|
135
109
|
_react2.fireEvent.click(steps[0]);
|
|
136
|
-
|
|
137
110
|
expect(onClick).toHaveBeenCalledTimes(2);
|
|
138
111
|
expect(onClick).toHaveBeenNthCalledWith(1, 1);
|
|
139
112
|
expect(onClick).toHaveBeenNthCalledWith(2, 0);
|