@dxc-technology/halstack-react 0.0.0-74c93cf → 0.0.0-74dd241
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.js +1 -1
- package/HalstackContext.d.ts +2 -5
- package/HalstackContext.js +6 -6
- package/accordion/Accordion.accessibility.test.d.ts +1 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.js +9 -10
- package/accordion/Accordion.stories.tsx +4 -15
- package/accordion/Accordion.test.d.ts +1 -0
- package/accordion/Accordion.test.js +3 -3
- package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
- package/accordion-group/AccordionGroup.accessibility.test.js +82 -0
- package/accordion-group/AccordionGroup.js +1 -1
- package/accordion-group/AccordionGroup.stories.tsx +23 -23
- package/accordion-group/AccordionGroup.test.d.ts +1 -0
- package/accordion-group/AccordionGroup.test.js +5 -9
- package/accordion-group/AccordionGroupAccordion.js +1 -1
- package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
- package/action-icon/ActionIcon.accessibility.test.js +63 -0
- package/action-icon/ActionIcon.test.d.ts +1 -0
- package/action-icon/ActionIcon.test.js +1 -1
- package/alert/Alert.accessibility.test.d.ts +1 -0
- package/alert/Alert.accessibility.test.js +95 -0
- package/alert/Alert.js +21 -72
- package/alert/Alert.test.d.ts +1 -0
- package/alert/Alert.test.js +1 -1
- package/badge/Badge.accessibility.test.d.ts +1 -0
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.js +6 -4
- package/badge/Badge.stories.tsx +11 -11
- package/badge/Badge.test.d.ts +1 -0
- package/badge/Badge.test.js +2 -2
- package/badge/types.d.ts +1 -1
- package/box/Box.accessibility.test.d.ts +1 -0
- package/box/Box.accessibility.test.js +33 -0
- package/box/Box.js +1 -1
- package/box/Box.test.d.ts +1 -0
- package/box/Box.test.js +1 -1
- 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 +168 -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.d.ts +1 -0
- package/bulleted-list/BulletedList.accessibility.test.js +119 -0
- package/bulleted-list/BulletedList.js +7 -4
- package/bulleted-list/BulletedList.stories.tsx +1 -1
- package/button/Button.accessibility.test.d.ts +1 -0
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.js +1 -1
- package/button/Button.stories.tsx +3 -4
- package/button/Button.test.d.ts +1 -0
- package/button/Button.test.js +1 -1
- package/card/Card.accessibility.test.d.ts +1 -0
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.js +3 -2
- package/card/Card.stories.tsx +1 -1
- package/card/Card.test.d.ts +1 -0
- package/card/Card.test.js +1 -1
- package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.js +10 -13
- package/checkbox/Checkbox.test.d.ts +1 -0
- package/checkbox/Checkbox.test.js +1 -1
- package/chip/Chip.accessibility.test.d.ts +1 -0
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +11 -6
- package/chip/Chip.stories.tsx +6 -25
- package/chip/Chip.test.d.ts +1 -0
- package/chip/Chip.test.js +5 -5
- package/common/coreTokens.js +3 -3
- package/common/variables.d.ts +2 -5
- package/common/variables.js +68 -71
- package/container/Container.stories.tsx +3 -3
- package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
- package/contextual-menu/ContextualMenu.accessibility.test.js +98 -0
- package/contextual-menu/ContextualMenu.d.ts +3 -5
- package/contextual-menu/ContextualMenu.js +89 -52
- package/contextual-menu/ContextualMenu.stories.tsx +115 -74
- package/contextual-menu/ContextualMenu.test.d.ts +1 -0
- package/contextual-menu/ContextualMenu.test.js +200 -24
- 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 +50 -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 +50 -11
- package/date-input/Calendar.js +47 -31
- package/date-input/DateInput.accessibility.test.d.ts +1 -0
- package/date-input/DateInput.accessibility.test.js +229 -0
- package/date-input/DateInput.js +28 -23
- package/date-input/DateInput.stories.tsx +18 -12
- package/date-input/DateInput.test.d.ts +1 -0
- package/date-input/DateInput.test.js +39 -39
- package/date-input/DatePicker.js +13 -7
- package/date-input/YearPicker.js +10 -5
- package/dialog/Dialog.accessibility.test.d.ts +1 -0
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.js +9 -20
- package/dialog/Dialog.stories.tsx +8 -4
- package/dialog/Dialog.test.d.ts +1 -0
- package/dialog/Dialog.test.js +112 -49
- package/divider/Divider.accessibility.test.d.ts +1 -0
- package/divider/Divider.accessibility.test.js +33 -0
- package/divider/Divider.test.d.ts +1 -0
- package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
- package/dropdown/Dropdown.accessibility.test.js +183 -0
- package/dropdown/Dropdown.js +16 -15
- package/dropdown/Dropdown.stories.tsx +11 -11
- package/dropdown/Dropdown.test.d.ts +1 -0
- package/dropdown/Dropdown.test.js +101 -72
- package/dropdown/DropdownMenu.js +4 -4
- package/dropdown/DropdownMenuItem.js +2 -1
- package/file-input/FileInput.accessibility.test.d.ts +1 -0
- package/file-input/FileInput.accessibility.test.js +167 -0
- package/file-input/FileInput.js +6 -47
- package/file-input/FileInput.test.d.ts +1 -0
- package/file-input/FileInput.test.js +51 -106
- package/file-input/FileItem.js +18 -28
- package/file-input/types.d.ts +0 -4
- package/footer/Footer.accessibility.test.d.ts +1 -0
- package/footer/Footer.accessibility.test.js +125 -0
- package/footer/Footer.js +8 -6
- package/footer/Footer.stories.tsx +40 -3
- package/footer/Footer.test.d.ts +1 -0
- package/footer/Footer.test.js +1 -1
- package/footer/Icons.js +2 -30
- package/footer/types.d.ts +1 -1
- package/grid/Grid.stories.tsx +3 -1
- package/header/Header.accessibility.test.d.ts +1 -0
- package/header/Header.accessibility.test.js +94 -0
- package/header/Header.js +12 -22
- package/header/Header.stories.tsx +17 -1
- package/header/Header.test.d.ts +1 -0
- package/header/Header.test.js +1 -1
- package/header/Icons.js +1 -6
- package/heading/Heading.accessibility.test.d.ts +1 -0
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.d.ts +1 -0
- package/heading/Heading.test.js +1 -14
- package/icon/Icon.accessibility.test.d.ts +1 -0
- package/icon/Icon.accessibility.test.js +30 -0
- package/icon/Icon.js +1 -1
- package/image/Image.accessibility.test.d.ts +1 -0
- package/image/Image.accessibility.test.js +56 -0
- package/image/Image.js +1 -1
- package/layout/ApplicationLayout.js +9 -6
- package/layout/Icons.d.ts +0 -1
- package/layout/Icons.js +1 -11
- package/link/Link.accessibility.test.d.ts +1 -0
- package/link/Link.accessibility.test.js +108 -0
- package/link/Link.js +8 -6
- package/link/Link.stories.tsx +4 -4
- package/link/Link.test.d.ts +1 -0
- package/link/Link.test.js +1 -1
- package/link/types.d.ts +1 -1
- package/main.d.ts +2 -1
- package/main.js +8 -1
- package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.js +19 -4
- package/nav-tabs/NavTabs.stories.tsx +41 -23
- package/nav-tabs/NavTabs.test.d.ts +1 -0
- package/nav-tabs/NavTabs.test.js +10 -9
- package/nav-tabs/Tab.js +17 -18
- package/nav-tabs/types.d.ts +1 -1
- package/number-input/NumberInput.accessibility.test.d.ts +1 -0
- package/number-input/NumberInput.accessibility.test.js +227 -0
- package/number-input/NumberInput.js +1 -1
- package/number-input/NumberInput.stories.tsx +2 -16
- package/number-input/NumberInput.test.d.ts +1 -0
- package/number-input/NumberInput.test.js +6 -7
- package/package.json +31 -27
- package/paginator/Paginator.accessibility.test.d.ts +1 -0
- package/paginator/Paginator.accessibility.test.js +78 -0
- package/paginator/Paginator.js +13 -10
- package/paginator/Paginator.test.d.ts +1 -0
- package/paginator/Paginator.test.js +2 -3
- package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
- package/password-input/PasswordInput.accessibility.test.js +152 -0
- package/password-input/PasswordInput.js +7 -7
- package/password-input/PasswordInput.stories.tsx +1 -1
- package/password-input/PasswordInput.test.d.ts +1 -0
- package/password-input/PasswordInput.test.js +6 -7
- package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +6 -4
- package/progress-bar/ProgressBar.test.d.ts +1 -0
- package/progress-bar/ProgressBar.test.js +1 -1
- package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.js +1 -1
- package/radio-group/Radio.js +6 -9
- package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +14 -16
- package/radio-group/RadioGroup.test.d.ts +1 -0
- package/radio-group/RadioGroup.test.js +3 -5
- package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
- package/resultset-table/ResultsetTable.accessibility.test.js +284 -0
- package/resultset-table/ResultsetTable.js +3 -2
- package/resultset-table/ResultsetTable.stories.tsx +13 -1
- package/resultset-table/ResultsetTable.test.d.ts +1 -0
- package/resultset-table/ResultsetTable.test.js +2 -4
- package/select/Listbox.js +24 -16
- package/select/Option.js +12 -10
- package/select/Select.accessibility.test.d.ts +1 -0
- package/select/Select.accessibility.test.js +227 -0
- package/select/Select.js +38 -28
- package/select/Select.stories.tsx +60 -112
- package/select/Select.test.d.ts +1 -0
- package/select/Select.test.js +371 -474
- package/select/types.d.ts +1 -1
- package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.js +16 -12
- package/sidenav/Sidenav.stories.tsx +5 -10
- package/sidenav/Sidenav.test.d.ts +1 -0
- package/sidenav/Sidenav.test.js +1 -1
- package/sidenav/types.d.ts +2 -2
- package/slider/Slider.accessibility.test.d.ts +1 -0
- package/slider/Slider.accessibility.test.js +103 -0
- package/slider/Slider.js +11 -13
- package/slider/Slider.stories.tsx +180 -0
- package/slider/Slider.test.d.ts +1 -0
- package/slider/Slider.test.js +13 -11
- package/spinner/Spinner.accessibility.test.d.ts +1 -0
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +6 -2
- package/spinner/Spinner.test.d.ts +1 -0
- package/spinner/Spinner.test.js +1 -1
- package/status-light/StatusLight.accessibility.test.d.ts +1 -0
- package/status-light/StatusLight.accessibility.test.js +157 -0
- package/status-light/StatusLight.test.d.ts +1 -0
- package/status-light/StatusLight.test.js +1 -1
- package/switch/Switch.accessibility.test.d.ts +1 -0
- package/switch/Switch.accessibility.test.js +98 -0
- package/switch/Switch.js +6 -9
- package/switch/Switch.stories.tsx +12 -0
- package/switch/Switch.test.d.ts +1 -0
- package/switch/Switch.test.js +1 -1
- package/table/Table.accessibility.test.d.ts +1 -0
- package/table/Table.accessibility.test.js +92 -0
- package/table/Table.js +1 -1
- package/table/Table.stories.tsx +13 -1
- package/table/Table.test.d.ts +1 -0
- package/table/Table.test.js +2 -4
- package/tabs/Tab.js +6 -5
- package/tabs/Tabs.accessibility.test.d.ts +1 -0
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +9 -20
- package/tabs/Tabs.stories.tsx +7 -3
- package/tabs/Tabs.test.d.ts +1 -0
- package/tabs/Tabs.test.js +20 -38
- package/tabs/types.d.ts +2 -2
- package/tag/Tag.accessibility.test.d.ts +1 -0
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +7 -7
- package/tag/Tag.stories.tsx +5 -8
- package/tag/Tag.test.d.ts +1 -0
- package/tag/Tag.test.js +5 -13
- package/tag/types.d.ts +2 -2
- package/text-input/Suggestion.js +1 -1
- package/text-input/Suggestions.js +17 -7
- package/text-input/TextInput.accessibility.test.d.ts +1 -0
- package/text-input/TextInput.accessibility.test.js +320 -0
- package/text-input/TextInput.js +34 -30
- package/text-input/TextInput.stories.tsx +10 -7
- package/text-input/TextInput.test.d.ts +1 -0
- package/text-input/TextInput.test.js +2 -3
- package/textarea/Textarea.accessibility.test.d.ts +1 -0
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +14 -13
- package/textarea/Textarea.test.d.ts +1 -0
- package/textarea/Textarea.test.js +1 -1
- package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.js +10 -12
- package/toggle-group/ToggleGroup.stories.tsx +4 -4
- package/toggle-group/ToggleGroup.test.d.ts +1 -0
- package/toggle-group/ToggleGroup.test.js +1 -1
- package/toggle-group/types.d.ts +2 -2
- package/typography/Typography.accessibility.test.d.ts +1 -0
- package/typography/Typography.accessibility.test.js +339 -0
- package/typography/Typography.stories.tsx +1 -3
- package/useTheme.d.ts +2 -5
- package/utils/BaseTypography.js +1 -1
- package/utils/FocusLock.js +3 -2
- package/wizard/Wizard.accessibility.test.d.ts +1 -0
- package/wizard/Wizard.accessibility.test.js +55 -0
- package/wizard/Wizard.js +14 -25
- package/wizard/Wizard.stories.tsx +20 -1
- package/wizard/Wizard.test.d.ts +1 -0
- package/wizard/Wizard.test.js +1 -1
- package/wizard/types.d.ts +1 -1
- package/contextual-menu/MenuItemAction.d.ts +0 -4
- package/contextual-menu/MenuItemAction.js +0 -46
- package/date-input/Icons.d.ts +0 -6
- package/date-input/Icons.js +0 -58
- package/paginator/Icons.d.ts +0 -5
- package/paginator/Icons.js +0 -40
- package/password-input/Icons.d.ts +0 -6
- package/password-input/Icons.js +0 -35
- package/select/Icons.d.ts +0 -10
- package/select/Icons.js +0 -89
- package/sidenav/Icons.d.ts +0 -7
- package/sidenav/Icons.js +0 -47
- package/text-input/Icons.d.ts +0 -8
- package/text-input/Icons.js +0 -56
package/dialog/Dialog.test.js
CHANGED
|
@@ -1,20 +1,54 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
4
8
|
var _react = _interopRequireDefault(require("react"));
|
|
5
9
|
var _react2 = require("@testing-library/react");
|
|
6
10
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
7
|
-
var _Dialog = _interopRequireDefault(require("./Dialog
|
|
8
|
-
var _TextInput = _interopRequireDefault(require("../text-input/TextInput
|
|
9
|
-
var _Textarea = _interopRequireDefault(require("../textarea/Textarea
|
|
10
|
-
var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox
|
|
11
|
-
var _Select = _interopRequireDefault(require("../select/Select
|
|
12
|
-
var _Button = _interopRequireDefault(require("../button/Button
|
|
13
|
-
var _Link = _interopRequireDefault(require("../link/Link
|
|
14
|
-
var _Card = _interopRequireDefault(require("../card/Card
|
|
15
|
-
var _RadioGroup = _interopRequireDefault(require("../radio-group/RadioGroup
|
|
16
|
-
var _Slider = _interopRequireDefault(require("../slider/Slider
|
|
17
|
-
var _Switch = _interopRequireDefault(require("../switch/Switch
|
|
11
|
+
var _Dialog = _interopRequireDefault(require("./Dialog"));
|
|
12
|
+
var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
|
|
13
|
+
var _Textarea = _interopRequireDefault(require("../textarea/Textarea"));
|
|
14
|
+
var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
|
|
15
|
+
var _Select = _interopRequireDefault(require("../select/Select"));
|
|
16
|
+
var _Button = _interopRequireDefault(require("../button/Button"));
|
|
17
|
+
var _Link = _interopRequireDefault(require("../link/Link"));
|
|
18
|
+
var _Card = _interopRequireDefault(require("../card/Card"));
|
|
19
|
+
var _RadioGroup = _interopRequireDefault(require("../radio-group/RadioGroup"));
|
|
20
|
+
var _Slider = _interopRequireDefault(require("../slider/Slider"));
|
|
21
|
+
var _Switch = _interopRequireDefault(require("../switch/Switch"));
|
|
22
|
+
var _DateInput = _interopRequireDefault(require("../date-input/DateInput"));
|
|
23
|
+
// Mocking DOMRect for Radix Primitive Popover
|
|
24
|
+
global.globalThis = global;
|
|
25
|
+
global.DOMRect = {
|
|
26
|
+
fromRect: function fromRect() {
|
|
27
|
+
return {
|
|
28
|
+
top: 0,
|
|
29
|
+
left: 0,
|
|
30
|
+
bottom: 0,
|
|
31
|
+
right: 0,
|
|
32
|
+
width: 0,
|
|
33
|
+
height: 0
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
global.ResizeObserver = /*#__PURE__*/function () {
|
|
38
|
+
function ResizeObserver() {
|
|
39
|
+
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
40
|
+
}
|
|
41
|
+
return (0, _createClass2["default"])(ResizeObserver, [{
|
|
42
|
+
key: "observe",
|
|
43
|
+
value: function observe() {}
|
|
44
|
+
}, {
|
|
45
|
+
key: "unobserve",
|
|
46
|
+
value: function unobserve() {}
|
|
47
|
+
}, {
|
|
48
|
+
key: "disconnect",
|
|
49
|
+
value: function disconnect() {}
|
|
50
|
+
}]);
|
|
51
|
+
}();
|
|
18
52
|
var options = [{
|
|
19
53
|
label: "Female",
|
|
20
54
|
value: "female"
|
|
@@ -29,7 +63,7 @@ var options = [{
|
|
|
29
63
|
value: "other"
|
|
30
64
|
}];
|
|
31
65
|
describe("Dialog component tests", function () {
|
|
32
|
-
test("Dialog renders with correct text and
|
|
66
|
+
test("Dialog renders with correct text and accessibility attributes", function () {
|
|
33
67
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "dialog-text")),
|
|
34
68
|
getByText = _render.getByText,
|
|
35
69
|
getByRole = _render.getByRole;
|
|
@@ -77,11 +111,40 @@ describe("Dialog component tests", function () {
|
|
|
77
111
|
});
|
|
78
112
|
expect(onCloseClick).toHaveBeenCalled();
|
|
79
113
|
});
|
|
114
|
+
test("Does not call function onCloseClick when 'Escape' key is pressed while a child popover is opened", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
115
|
+
var onCloseClick, _render6, getByRole, calendarAction;
|
|
116
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
117
|
+
while (1) switch (_context.prev = _context.next) {
|
|
118
|
+
case 0:
|
|
119
|
+
onCloseClick = jest.fn();
|
|
120
|
+
_render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
|
|
121
|
+
onCloseClick: onCloseClick
|
|
122
|
+
}, /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
123
|
+
label: "With format M-dd-yyyy",
|
|
124
|
+
format: "M-dd-yyyy"
|
|
125
|
+
}))), getByRole = _render6.getByRole;
|
|
126
|
+
calendarAction = getByRole("combobox");
|
|
127
|
+
_context.next = 5;
|
|
128
|
+
return _userEvent["default"].click(calendarAction);
|
|
129
|
+
case 5:
|
|
130
|
+
_react2.fireEvent.keyDown(document.activeElement, {
|
|
131
|
+
key: "Escape",
|
|
132
|
+
code: "Escape",
|
|
133
|
+
keyCode: 27,
|
|
134
|
+
charCode: 27
|
|
135
|
+
});
|
|
136
|
+
expect(onCloseClick).not.toHaveBeenCalled();
|
|
137
|
+
case 7:
|
|
138
|
+
case "end":
|
|
139
|
+
return _context.stop();
|
|
140
|
+
}
|
|
141
|
+
}, _callee);
|
|
142
|
+
})));
|
|
80
143
|
});
|
|
81
144
|
describe("Dialog component: Focus lock tests", function () {
|
|
82
145
|
test("Close action: when there's no focusable content, the focus never leaves the close action (unless you click outside)", function () {
|
|
83
|
-
var
|
|
84
|
-
getByRole =
|
|
146
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "example-dialog")),
|
|
147
|
+
getByRole = _render7.getByRole;
|
|
85
148
|
var button = getByRole("button");
|
|
86
149
|
var dialog = getByRole("dialog");
|
|
87
150
|
expect(document.activeElement).toEqual(button);
|
|
@@ -95,100 +158,100 @@ describe("Dialog component: Focus lock tests", function () {
|
|
|
95
158
|
expect(document.activeElement).toEqual(button);
|
|
96
159
|
});
|
|
97
160
|
test("Autofocus with Button component", function () {
|
|
98
|
-
var
|
|
161
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
99
162
|
label: "Accept"
|
|
100
163
|
}))),
|
|
101
|
-
getAllByRole =
|
|
164
|
+
getAllByRole = _render8.getAllByRole;
|
|
102
165
|
var button = getAllByRole("button")[0];
|
|
103
166
|
expect(document.activeElement).toEqual(button);
|
|
104
167
|
expect(button.getAttribute("aria-label")).not.toBe("Close dialog");
|
|
105
168
|
});
|
|
106
169
|
test("Autofocus with Card component", function () {
|
|
107
|
-
var
|
|
170
|
+
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Card["default"], {
|
|
108
171
|
linkHref: "https://developer.dxc.com/halstack/next/components/card/"
|
|
109
172
|
}, "example-card"))),
|
|
110
|
-
getByRole =
|
|
173
|
+
getByRole = _render9.getByRole;
|
|
111
174
|
var card = getByRole("link");
|
|
112
175
|
expect(document.activeElement).toEqual(card);
|
|
113
176
|
});
|
|
114
177
|
test("Autofocus with Checkbox component", function () {
|
|
115
|
-
var
|
|
178
|
+
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
116
179
|
label: "Name"
|
|
117
180
|
}))),
|
|
118
|
-
getByRole =
|
|
181
|
+
getByRole = _render10.getByRole;
|
|
119
182
|
var checkbox = getByRole("checkbox");
|
|
120
183
|
expect(document.activeElement).toEqual(checkbox);
|
|
121
184
|
});
|
|
122
185
|
test("Autofocus with Link component", function () {
|
|
123
|
-
var
|
|
186
|
+
var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "This is a text with a ", /*#__PURE__*/_react["default"].createElement(_Link["default"], {
|
|
124
187
|
href: "#"
|
|
125
188
|
}, "Link"), " to another page.")),
|
|
126
|
-
getByRole =
|
|
189
|
+
getByRole = _render11.getByRole;
|
|
127
190
|
var link = getByRole("link");
|
|
128
191
|
expect(document.activeElement).toEqual(link);
|
|
129
192
|
});
|
|
130
193
|
test("Autofocus with RadioGroup component", function () {
|
|
131
|
-
var
|
|
194
|
+
var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
132
195
|
label: "Example",
|
|
133
196
|
options: options
|
|
134
197
|
}))),
|
|
135
|
-
getAllByRole =
|
|
198
|
+
getAllByRole = _render12.getAllByRole;
|
|
136
199
|
var checkedRadio = getAllByRole("radio")[0];
|
|
137
200
|
expect(document.activeElement).toEqual(checkedRadio);
|
|
138
201
|
});
|
|
139
202
|
test("Autofocus with Select component", function () {
|
|
140
|
-
var
|
|
203
|
+
var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
141
204
|
label: "Country",
|
|
142
205
|
options: options
|
|
143
206
|
}))),
|
|
144
|
-
getByRole =
|
|
207
|
+
getByRole = _render13.getByRole;
|
|
145
208
|
var select = getByRole("combobox");
|
|
146
209
|
expect(document.activeElement).toEqual(select);
|
|
147
210
|
});
|
|
148
211
|
test("Autofocus with Slider component", function () {
|
|
149
|
-
var
|
|
212
|
+
var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
150
213
|
label: "label",
|
|
151
214
|
minValue: 0,
|
|
152
215
|
maxValue: 100,
|
|
153
216
|
showLimitsValues: true
|
|
154
217
|
}))),
|
|
155
|
-
getByRole =
|
|
218
|
+
getByRole = _render14.getByRole;
|
|
156
219
|
var slider = getByRole("slider");
|
|
157
220
|
expect(document.activeElement).toEqual(slider);
|
|
158
221
|
});
|
|
159
222
|
test("Autofocus with Switch component", function () {
|
|
160
|
-
var
|
|
223
|
+
var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
161
224
|
label: "Example"
|
|
162
225
|
}))),
|
|
163
|
-
getByRole =
|
|
226
|
+
getByRole = _render15.getByRole;
|
|
164
227
|
var switchButton = getByRole("switch");
|
|
165
228
|
expect(document.activeElement).toEqual(switchButton);
|
|
166
229
|
});
|
|
167
230
|
test("Autofocus with Text Input component", function () {
|
|
168
|
-
var
|
|
231
|
+
var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
169
232
|
label: "Name"
|
|
170
233
|
}))),
|
|
171
|
-
getByRole =
|
|
234
|
+
getByRole = _render16.getByRole;
|
|
172
235
|
var input = getByRole("textbox");
|
|
173
236
|
expect(document.activeElement).toEqual(input);
|
|
174
237
|
});
|
|
175
238
|
test("Autofocus with Textarea component", function () {
|
|
176
|
-
var
|
|
239
|
+
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
177
240
|
label: "Name"
|
|
178
241
|
}))),
|
|
179
|
-
getByRole =
|
|
242
|
+
getByRole = _render17.getByRole;
|
|
180
243
|
var textarea = getByRole("textbox");
|
|
181
244
|
expect(document.activeElement).toEqual(textarea);
|
|
182
245
|
});
|
|
183
246
|
test("Negative tabindex elements are not automatically focused, even if it is enabled and a valid focusable item (programatically and by click)", function () {
|
|
184
|
-
var
|
|
185
|
-
|
|
247
|
+
var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement("input", {
|
|
248
|
+
title: "Name",
|
|
186
249
|
tabIndex: -1
|
|
187
250
|
}), /*#__PURE__*/_react["default"].createElement("input", {
|
|
188
|
-
|
|
251
|
+
title: "Name"
|
|
189
252
|
}))),
|
|
190
|
-
getAllByRole =
|
|
191
|
-
getByRole =
|
|
253
|
+
getAllByRole = _render18.getAllByRole,
|
|
254
|
+
getByRole = _render18.getByRole;
|
|
192
255
|
var inputs = getAllByRole("textbox");
|
|
193
256
|
var button = getByRole("button");
|
|
194
257
|
expect(document.activeElement).toEqual(inputs[1]);
|
|
@@ -198,7 +261,7 @@ describe("Dialog component: Focus lock tests", function () {
|
|
|
198
261
|
expect(document.activeElement).toEqual(inputs[1]);
|
|
199
262
|
});
|
|
200
263
|
test("Focus jumps disabled components and negative tabIndexes when autofocusing first item", function () {
|
|
201
|
-
var
|
|
264
|
+
var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
202
265
|
label: "Accept",
|
|
203
266
|
disabled: true
|
|
204
267
|
}), /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
@@ -235,12 +298,12 @@ describe("Dialog component: Focus lock tests", function () {
|
|
|
235
298
|
}), /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
236
299
|
label: "Description"
|
|
237
300
|
}))),
|
|
238
|
-
getAllByRole =
|
|
301
|
+
getAllByRole = _render19.getAllByRole;
|
|
239
302
|
var textarea = getAllByRole("textbox")[2];
|
|
240
303
|
expect(document.activeElement).toEqual(textarea);
|
|
241
304
|
});
|
|
242
305
|
test("Focus jumps from last element to the first", function () {
|
|
243
|
-
var
|
|
306
|
+
var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
244
307
|
label: "Accept",
|
|
245
308
|
disabled: true
|
|
246
309
|
}), /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
@@ -249,7 +312,7 @@ describe("Dialog component: Focus lock tests", function () {
|
|
|
249
312
|
label: "Name",
|
|
250
313
|
options: options
|
|
251
314
|
}))),
|
|
252
|
-
getByRole =
|
|
315
|
+
getByRole = _render20.getByRole;
|
|
253
316
|
var closeAction = getByRole("button");
|
|
254
317
|
var textarea = getByRole("textbox");
|
|
255
318
|
expect(document.activeElement).toEqual(textarea);
|
|
@@ -260,13 +323,13 @@ describe("Dialog component: Focus lock tests", function () {
|
|
|
260
323
|
expect(document.activeElement).toEqual(textarea);
|
|
261
324
|
});
|
|
262
325
|
test("'display: none;', 'visibility: hidden;' and 'type = 'hidden'' elements are never autofocused", function () {
|
|
263
|
-
var
|
|
264
|
-
|
|
326
|
+
var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement("input", {
|
|
327
|
+
title: "Name",
|
|
265
328
|
style: {
|
|
266
329
|
display: "none"
|
|
267
330
|
}
|
|
268
331
|
}), /*#__PURE__*/_react["default"].createElement("input", {
|
|
269
|
-
|
|
332
|
+
title: "Name",
|
|
270
333
|
style: {
|
|
271
334
|
visibility: "hidden"
|
|
272
335
|
}
|
|
@@ -274,21 +337,21 @@ describe("Dialog component: Focus lock tests", function () {
|
|
|
274
337
|
type: "hidden",
|
|
275
338
|
name: "example"
|
|
276
339
|
}))),
|
|
277
|
-
getByRole =
|
|
340
|
+
getByRole = _render21.getByRole;
|
|
278
341
|
var closeAction = getByRole("button");
|
|
279
342
|
expect(document.activeElement).toEqual(closeAction);
|
|
280
343
|
_userEvent["default"].tab();
|
|
281
344
|
expect(document.activeElement).toEqual(closeAction);
|
|
282
345
|
});
|
|
283
346
|
test("Focus gets trapped in the Dialog when there are not focusable elements inside until it is closed", function () {
|
|
284
|
-
var
|
|
347
|
+
var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
285
348
|
label: "Name"
|
|
286
349
|
}), /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
|
|
287
350
|
isCloseVisible: false
|
|
288
351
|
}, /*#__PURE__*/_react["default"].createElement("h2", null, "Policy agreement"), /*#__PURE__*/_react["default"].createElement("p", null, "Sample text.")), /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
289
352
|
label: "Surname"
|
|
290
353
|
}))),
|
|
291
|
-
getAllByRole =
|
|
354
|
+
getAllByRole = _render22.getAllByRole;
|
|
292
355
|
var inputs = getAllByRole("textbox");
|
|
293
356
|
var dialog = getAllByRole("dialog")[0];
|
|
294
357
|
_userEvent["default"].tab();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
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 _Divider = _interopRequireDefault(require("./Divider"));
|
|
10
|
+
describe("Divider accessibility tests", function () {
|
|
11
|
+
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
12
|
+
var _render, container, results;
|
|
13
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
14
|
+
while (1) switch (_context.prev = _context.next) {
|
|
15
|
+
case 0:
|
|
16
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Divider["default"], {
|
|
17
|
+
orientation: "vertical",
|
|
18
|
+
color: "darkGrey",
|
|
19
|
+
decorative: false,
|
|
20
|
+
weight: "strong"
|
|
21
|
+
})), container = _render.container;
|
|
22
|
+
_context.next = 3;
|
|
23
|
+
return (0, _axeHelper.axe)(container);
|
|
24
|
+
case 3:
|
|
25
|
+
results = _context.sent;
|
|
26
|
+
expect(results).toHaveNoViolations();
|
|
27
|
+
case 5:
|
|
28
|
+
case "end":
|
|
29
|
+
return _context.stop();
|
|
30
|
+
}
|
|
31
|
+
}, _callee);
|
|
32
|
+
})));
|
|
33
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,183 @@
|
|
|
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _react2 = require("@testing-library/react");
|
|
10
|
+
var _axeHelper = require("../../test/accessibility/axe-helper.js");
|
|
11
|
+
var _Dropdown = _interopRequireDefault(require("./Dropdown"));
|
|
12
|
+
var iconSVG = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
13
|
+
viewBox: "0 0 24 24",
|
|
14
|
+
height: "24",
|
|
15
|
+
width: "24",
|
|
16
|
+
fill: "currentColor"
|
|
17
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
18
|
+
d: "M0 0h24v24H0z",
|
|
19
|
+
fill: "none"
|
|
20
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
21
|
+
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"
|
|
22
|
+
}));
|
|
23
|
+
var iconUrl = "https://iconape.com/wp-content/files/yd/367773/svg/logo-linkedin-logo-icon-png-svg.png";
|
|
24
|
+
|
|
25
|
+
// Mocking DOMRect for Radix Primitive Popover
|
|
26
|
+
global.globalThis = global;
|
|
27
|
+
global.DOMRect = {
|
|
28
|
+
fromRect: function fromRect() {
|
|
29
|
+
return {
|
|
30
|
+
top: 0,
|
|
31
|
+
left: 0,
|
|
32
|
+
bottom: 0,
|
|
33
|
+
right: 0,
|
|
34
|
+
width: 0,
|
|
35
|
+
height: 0
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
global.ResizeObserver = /*#__PURE__*/function () {
|
|
40
|
+
function ResizeObserver() {
|
|
41
|
+
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
42
|
+
}
|
|
43
|
+
return (0, _createClass2["default"])(ResizeObserver, [{
|
|
44
|
+
key: "observe",
|
|
45
|
+
value: function observe() {}
|
|
46
|
+
}, {
|
|
47
|
+
key: "unobserve",
|
|
48
|
+
value: function unobserve() {}
|
|
49
|
+
}, {
|
|
50
|
+
key: "disconnect",
|
|
51
|
+
value: function disconnect() {}
|
|
52
|
+
}]);
|
|
53
|
+
}();
|
|
54
|
+
var options = [{
|
|
55
|
+
value: "1",
|
|
56
|
+
label: "Amazon",
|
|
57
|
+
icon: iconUrl
|
|
58
|
+
}, {
|
|
59
|
+
value: "2",
|
|
60
|
+
label: "Ebay",
|
|
61
|
+
icon: iconUrl
|
|
62
|
+
}, {
|
|
63
|
+
value: "3",
|
|
64
|
+
label: "Wallapop",
|
|
65
|
+
icon: iconSVG
|
|
66
|
+
}, {
|
|
67
|
+
value: "4",
|
|
68
|
+
label: "Aliexpress",
|
|
69
|
+
icon: iconSVG
|
|
70
|
+
}];
|
|
71
|
+
describe("Dropdown component accessibility tests", function () {
|
|
72
|
+
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
73
|
+
var _render, baseElement, results;
|
|
74
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
75
|
+
while (1) switch (_context.prev = _context.next) {
|
|
76
|
+
case 0:
|
|
77
|
+
// baseElement is needed when using React Portals
|
|
78
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
79
|
+
options: options,
|
|
80
|
+
label: "dropdown-test",
|
|
81
|
+
icon: iconSVG,
|
|
82
|
+
iconPosition: "before",
|
|
83
|
+
margin: "medium",
|
|
84
|
+
size: "medium",
|
|
85
|
+
optionsIconPosition: "before",
|
|
86
|
+
onSelectOption: function onSelectOption() {}
|
|
87
|
+
})), baseElement = _render.baseElement;
|
|
88
|
+
_context.next = 3;
|
|
89
|
+
return (0, _axeHelper.axe)(baseElement);
|
|
90
|
+
case 3:
|
|
91
|
+
results = _context.sent;
|
|
92
|
+
expect(results).toHaveNoViolations();
|
|
93
|
+
case 5:
|
|
94
|
+
case "end":
|
|
95
|
+
return _context.stop();
|
|
96
|
+
}
|
|
97
|
+
}, _callee);
|
|
98
|
+
})));
|
|
99
|
+
it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
100
|
+
var _render2, baseElement, results;
|
|
101
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
102
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
103
|
+
case 0:
|
|
104
|
+
// baseElement is needed when using React Portals
|
|
105
|
+
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
106
|
+
options: options,
|
|
107
|
+
label: "dropdown-test",
|
|
108
|
+
icon: iconSVG,
|
|
109
|
+
iconPosition: "before",
|
|
110
|
+
margin: "medium",
|
|
111
|
+
size: "medium",
|
|
112
|
+
optionsIconPosition: "before",
|
|
113
|
+
onSelectOption: function onSelectOption() {},
|
|
114
|
+
disabled: true
|
|
115
|
+
})), baseElement = _render2.baseElement;
|
|
116
|
+
_context2.next = 3;
|
|
117
|
+
return (0, _axeHelper.axe)(baseElement);
|
|
118
|
+
case 3:
|
|
119
|
+
results = _context2.sent;
|
|
120
|
+
expect(results).toHaveNoViolations();
|
|
121
|
+
case 5:
|
|
122
|
+
case "end":
|
|
123
|
+
return _context2.stop();
|
|
124
|
+
}
|
|
125
|
+
}, _callee2);
|
|
126
|
+
})));
|
|
127
|
+
it("Should not have basic accessibility issues for caret-hidden mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
128
|
+
var _render3, baseElement, results;
|
|
129
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
130
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
131
|
+
case 0:
|
|
132
|
+
// baseElement is needed when using React Portals
|
|
133
|
+
_render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
134
|
+
options: options,
|
|
135
|
+
label: "dropdown-test",
|
|
136
|
+
icon: iconSVG,
|
|
137
|
+
iconPosition: "after",
|
|
138
|
+
margin: "medium",
|
|
139
|
+
size: "medium",
|
|
140
|
+
optionsIconPosition: "after",
|
|
141
|
+
onSelectOption: function onSelectOption() {},
|
|
142
|
+
caretHidden: true
|
|
143
|
+
})), baseElement = _render3.baseElement;
|
|
144
|
+
_context3.next = 3;
|
|
145
|
+
return (0, _axeHelper.axe)(baseElement);
|
|
146
|
+
case 3:
|
|
147
|
+
results = _context3.sent;
|
|
148
|
+
expect(results).toHaveNoViolations();
|
|
149
|
+
case 5:
|
|
150
|
+
case "end":
|
|
151
|
+
return _context3.stop();
|
|
152
|
+
}
|
|
153
|
+
}, _callee3);
|
|
154
|
+
})));
|
|
155
|
+
it("Should not have basic accessibility issues for expand-on-hover mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
156
|
+
var _render4, baseElement, results;
|
|
157
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
158
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
159
|
+
case 0:
|
|
160
|
+
// baseElement is needed when using React Portals
|
|
161
|
+
_render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
162
|
+
options: options,
|
|
163
|
+
label: "dropdown-test",
|
|
164
|
+
icon: iconSVG,
|
|
165
|
+
iconPosition: "after",
|
|
166
|
+
margin: "medium",
|
|
167
|
+
size: "medium",
|
|
168
|
+
optionsIconPosition: "after",
|
|
169
|
+
onSelectOption: function onSelectOption() {},
|
|
170
|
+
expandOnHover: true
|
|
171
|
+
})), baseElement = _render4.baseElement;
|
|
172
|
+
_context4.next = 3;
|
|
173
|
+
return (0, _axeHelper.axe)(baseElement);
|
|
174
|
+
case 3:
|
|
175
|
+
results = _context4.sent;
|
|
176
|
+
expect(results).toHaveNoViolations();
|
|
177
|
+
case 5:
|
|
178
|
+
case "end":
|
|
179
|
+
return _context4.stop();
|
|
180
|
+
}
|
|
181
|
+
}, _callee4);
|
|
182
|
+
})));
|
|
183
|
+
});
|
package/dropdown/Dropdown.js
CHANGED
|
@@ -14,13 +14,12 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
|
14
14
|
var _variables = require("../common/variables");
|
|
15
15
|
var _utils = require("../common/utils");
|
|
16
16
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
17
|
-
var _uuid = require("uuid");
|
|
18
17
|
var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
|
|
19
18
|
var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
|
|
20
19
|
var _Icon = _interopRequireDefault(require("../icon/Icon"));
|
|
21
20
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
22
21
|
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); }
|
|
23
|
-
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 &&
|
|
22
|
+
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 && {}.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; }
|
|
24
23
|
var useWidth = function useWidth(target) {
|
|
25
24
|
var _useState = (0, _react.useState)(0),
|
|
26
25
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
@@ -62,18 +61,17 @@ var DxcDropdown = function DxcDropdown(_ref) {
|
|
|
62
61
|
size = _ref$size === void 0 ? "fitContent" : _ref$size,
|
|
63
62
|
_ref$tabIndex = _ref.tabIndex,
|
|
64
63
|
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
65
|
-
var
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
var
|
|
69
|
-
|
|
64
|
+
var id = (0, _react.useId)();
|
|
65
|
+
var triggerId = "trigger-".concat(id);
|
|
66
|
+
var menuId = "menu-".concat(id);
|
|
67
|
+
var _useState3 = (0, _react.useState)(false),
|
|
68
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
69
|
+
isOpen = _useState4[0],
|
|
70
|
+
changeIsOpen = _useState4[1];
|
|
71
|
+
var _useState5 = (0, _react.useState)(0),
|
|
70
72
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
var _useState7 = (0, _react.useState)(0),
|
|
74
|
-
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
75
|
-
visualFocusIndex = _useState8[0],
|
|
76
|
-
setVisualFocusIndex = _useState8[1];
|
|
73
|
+
visualFocusIndex = _useState6[0],
|
|
74
|
+
setVisualFocusIndex = _useState6[1];
|
|
77
75
|
var colorsTheme = (0, _useTheme["default"])();
|
|
78
76
|
var triggerRef = (0, _react.useRef)(null);
|
|
79
77
|
var menuRef = (0, _react.useRef)(null);
|
|
@@ -149,6 +147,7 @@ var DxcDropdown = function DxcDropdown(_ref) {
|
|
|
149
147
|
case "Esc":
|
|
150
148
|
case "Escape":
|
|
151
149
|
event.preventDefault();
|
|
150
|
+
isOpen && event.stopPropagation();
|
|
152
151
|
handleOnCloseMenu();
|
|
153
152
|
(_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.focus();
|
|
154
153
|
break;
|
|
@@ -201,13 +200,15 @@ var DxcDropdown = function DxcDropdown(_ref) {
|
|
|
201
200
|
size: size,
|
|
202
201
|
id: triggerId,
|
|
203
202
|
"aria-haspopup": "true",
|
|
204
|
-
"aria-controls": menuId,
|
|
203
|
+
"aria-controls": isOpen ? menuId : undefined,
|
|
205
204
|
"aria-expanded": isOpen ? true : undefined,
|
|
205
|
+
"aria-label": "Show options",
|
|
206
206
|
tabIndex: tabIndex,
|
|
207
207
|
ref: triggerRef
|
|
208
208
|
}, /*#__PURE__*/_react["default"].createElement(DropdownTriggerContent, null, label && iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(DropdownTriggerIcon, {
|
|
209
209
|
disabled: disabled,
|
|
210
|
-
role: typeof icon === "string" ? undefined : "img"
|
|
210
|
+
role: typeof icon === "string" ? undefined : "img",
|
|
211
|
+
"aria-hidden": true
|
|
211
212
|
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
212
213
|
icon: icon
|
|
213
214
|
}) : icon), label && iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label)), !caretHidden && /*#__PURE__*/_react["default"].createElement(CaretIcon, {
|