@dxc-technology/halstack-react 11.0.0 → 12.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BackgroundColorContext.d.ts +1 -10
- package/BackgroundColorContext.js +3 -8
- package/HalstackContext.d.ts +32 -145
- package/HalstackContext.js +3 -7
- package/accordion/Accordion.accessibility.test.d.ts +1 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.js +18 -35
- package/accordion/Accordion.stories.tsx +7 -49
- package/accordion/Accordion.test.d.ts +1 -0
- package/accordion/Accordion.test.js +3 -3
- package/accordion/types.d.ts +1 -1
- package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
- package/accordion-group/AccordionGroup.accessibility.test.js +82 -0
- package/accordion-group/AccordionGroup.d.ts +2 -3
- package/accordion-group/AccordionGroup.js +4 -4
- 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 +3 -3
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +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.d.ts +4 -0
- package/action-icon/ActionIcon.js +48 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.d.ts +1 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/action-icon/types.js +5 -0
- package/alert/Alert.accessibility.test.d.ts +1 -0
- package/alert/Alert.accessibility.test.js +95 -0
- package/alert/Alert.js +21 -75
- 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.d.ts +1 -1
- package/badge/Badge.js +141 -28
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.d.ts +1 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/box/Box.accessibility.test.d.ts +1 -0
- package/box/Box.accessibility.test.js +33 -0
- package/box/Box.js +2 -5
- 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 +169 -0
- package/breadcrumbs/Item.d.ts +4 -0
- package/breadcrumbs/Item.js +52 -0
- package/breadcrumbs/dropdownTheme.d.ts +53 -0
- package/breadcrumbs/dropdownTheme.js +62 -0
- package/breadcrumbs/types.d.ts +16 -0
- package/breadcrumbs/types.js +5 -0
- package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
- package/bulleted-list/BulletedList.accessibility.test.js +119 -0
- package/bulleted-list/BulletedList.js +16 -23
- package/bulleted-list/BulletedList.stories.tsx +1 -2
- package/button/Button.accessibility.test.d.ts +1 -0
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.js +16 -16
- package/button/Button.stories.tsx +34 -53
- package/button/Button.test.d.ts +1 -0
- package/button/Button.test.js +4 -2
- package/button/types.d.ts +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.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 +36 -44
- 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 +69 -0
- package/chip/Chip.js +20 -26
- package/chip/Chip.stories.tsx +67 -50
- package/chip/Chip.test.d.ts +1 -0
- package/chip/Chip.test.js +5 -5
- package/chip/types.d.ts +35 -12
- package/common/coreTokens.d.ts +105 -14
- package/common/coreTokens.js +40 -22
- package/common/fonts.css +2 -0
- package/common/variables.d.ts +31 -141
- package/common/variables.js +104 -214
- 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.d.ts +1 -0
- package/contextual-menu/ContextualMenu.accessibility.test.js +98 -0
- package/contextual-menu/ContextualMenu.d.ts +5 -0
- package/contextual-menu/ContextualMenu.js +88 -0
- package/contextual-menu/ContextualMenu.stories.tsx +232 -0
- package/contextual-menu/ContextualMenu.test.d.ts +1 -0
- package/contextual-menu/ContextualMenu.test.js +205 -0
- package/contextual-menu/GroupItem.d.ts +4 -0
- package/contextual-menu/GroupItem.js +67 -0
- package/contextual-menu/ItemAction.d.ts +4 -0
- package/contextual-menu/ItemAction.js +51 -0
- package/contextual-menu/MenuItem.d.ts +4 -0
- package/contextual-menu/MenuItem.js +29 -0
- package/contextual-menu/SingleItem.d.ts +4 -0
- package/contextual-menu/SingleItem.js +38 -0
- package/contextual-menu/types.d.ts +58 -0
- package/contextual-menu/types.js +5 -0
- package/date-input/Calendar.js +1 -1
- package/date-input/DateInput.accessibility.test.d.ts +1 -0
- package/date-input/DateInput.accessibility.test.js +230 -0
- package/date-input/DateInput.js +19 -20
- package/date-input/DateInput.stories.tsx +15 -8
- package/date-input/DateInput.test.d.ts +1 -0
- package/date-input/DateInput.test.js +9 -8
- package/date-input/DatePicker.js +13 -7
- package/date-input/YearPicker.js +1 -1
- package/date-input/types.d.ts +2 -2
- package/dialog/Dialog.accessibility.test.d.ts +1 -0
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.js +11 -25
- package/dialog/Dialog.stories.tsx +175 -0
- package/dialog/Dialog.test.d.ts +1 -0
- package/dialog/Dialog.test.js +113 -49
- package/divider/Divider.accessibility.test.d.ts +1 -0
- 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.d.ts +1 -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.d.ts +1 -0
- package/dropdown/Dropdown.accessibility.test.js +184 -0
- package/dropdown/Dropdown.js +37 -51
- package/dropdown/Dropdown.stories.tsx +15 -26
- package/dropdown/Dropdown.test.d.ts +1 -0
- package/dropdown/Dropdown.test.js +100 -70
- package/dropdown/DropdownMenu.js +4 -4
- package/dropdown/DropdownMenuItem.js +8 -4
- package/dropdown/types.d.ts +3 -5
- package/file-input/FileInput.accessibility.test.d.ts +1 -0
- package/file-input/FileInput.accessibility.test.js +167 -0
- package/file-input/FileInput.js +127 -145
- package/file-input/FileInput.test.d.ts +1 -0
- package/file-input/FileInput.test.js +125 -129
- package/file-input/FileItem.js +18 -28
- package/file-input/types.d.ts +1 -1
- package/footer/Footer.accessibility.test.d.ts +1 -0
- package/footer/Footer.accessibility.test.js +125 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +36 -31
- package/footer/Footer.stories.tsx +58 -2
- package/footer/Footer.test.d.ts +1 -0
- package/footer/Footer.test.js +1 -1
- package/footer/Icons.d.ts +1 -0
- package/footer/Icons.js +52 -16
- package/footer/types.d.ts +8 -8
- package/header/Header.accessibility.test.d.ts +1 -0
- package/header/Header.accessibility.test.js +94 -0
- package/header/Header.js +20 -41
- package/header/Header.stories.tsx +16 -0
- package/header/Header.test.d.ts +1 -0
- package/header/Header.test.js +1 -1
- package/header/Icons.js +1 -6
- package/header/types.d.ts +4 -3
- 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.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.d.ts +1 -0
- package/image/Image.accessibility.test.js +56 -0
- package/image/Image.js +1 -1
- package/image/Image.stories.tsx +3 -1
- package/layout/ApplicationLayout.d.ts +1 -1
- package/layout/ApplicationLayout.js +10 -7
- 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 +8 -3
- package/main.js +38 -9
- package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +1 -2
- package/nav-tabs/NavTabs.js +25 -7
- package/nav-tabs/NavTabs.stories.tsx +44 -24
- package/nav-tabs/NavTabs.test.d.ts +1 -0
- package/nav-tabs/NavTabs.test.js +12 -10
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- package/nav-tabs/Tab.js +23 -23
- 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 +228 -0
- package/number-input/NumberInput.d.ts +0 -7
- package/number-input/NumberInput.js +24 -5
- package/number-input/NumberInput.test.d.ts +1 -0
- package/number-input/NumberInput.test.js +166 -7
- package/number-input/NumberInputContext.d.ts +3 -0
- package/number-input/NumberInputContext.js +8 -0
- package/number-input/types.d.ts +6 -0
- package/package.json +20 -18
- package/paginator/Paginator.accessibility.test.d.ts +1 -0
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +14 -14
- package/paginator/Paginator.test.d.ts +1 -0
- package/paginator/Paginator.test.js +1 -1
- package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/paragraph/Paragraph.js +2 -7
- package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +7 -7
- package/password-input/PasswordInput.stories.tsx +0 -1
- package/password-input/PasswordInput.test.d.ts +1 -0
- package/password-input/PasswordInput.test.js +5 -5
- package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +11 -15
- 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 +15 -17
- 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 +285 -0
- package/resultset-table/ResultsetTable.d.ts +4 -1
- package/resultset-table/ResultsetTable.js +25 -13
- package/resultset-table/ResultsetTable.stories.tsx +118 -5
- package/resultset-table/ResultsetTable.test.d.ts +1 -0
- package/resultset-table/ResultsetTable.test.js +76 -1
- package/resultset-table/types.d.ts +40 -7
- package/select/Listbox.js +24 -16
- package/select/Option.js +19 -10
- package/select/Select.accessibility.test.d.ts +1 -0
- package/select/Select.accessibility.test.js +228 -0
- package/select/Select.js +72 -54
- package/select/Select.stories.tsx +59 -111
- package/select/Select.test.d.ts +1 -0
- package/select/Select.test.js +393 -459
- package/select/types.d.ts +3 -3
- package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.js +21 -19
- package/sidenav/Sidenav.stories.tsx +4 -9
- 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 +104 -0
- package/slider/Slider.js +31 -42
- package/slider/Slider.stories.tsx +180 -0
- package/slider/Slider.test.d.ts +1 -0
- package/slider/Slider.test.js +12 -9
- package/spinner/Spinner.accessibility.test.d.ts +1 -0
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +12 -16
- 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.d.ts +4 -0
- package/status-light/StatusLight.js +51 -0
- package/status-light/StatusLight.stories.tsx +74 -0
- package/status-light/StatusLight.test.d.ts +1 -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.d.ts +1 -0
- package/switch/Switch.accessibility.test.js +98 -0
- package/switch/Switch.js +29 -37
- package/switch/Switch.stories.tsx +12 -0
- package/switch/Switch.test.d.ts +1 -0
- package/switch/Switch.test.js +1 -1
- package/table/DropdownTheme.js +62 -0
- package/table/Table.accessibility.test.d.ts +1 -0
- package/table/Table.accessibility.test.js +93 -0
- package/table/Table.d.ts +6 -2
- package/table/Table.js +74 -12
- package/table/Table.stories.tsx +309 -2
- package/table/Table.test.d.ts +1 -0
- package/table/Table.test.js +92 -1
- package/table/types.d.ts +28 -0
- package/tabs/Tab.js +13 -9
- package/tabs/Tabs.accessibility.test.d.ts +1 -0
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +12 -24
- package/tabs/Tabs.stories.tsx +8 -4
- 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 +4 -7
- 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 +19 -14
- package/text-input/TextInput.accessibility.test.d.ts +1 -0
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +103 -126
- package/text-input/TextInput.stories.tsx +17 -8
- package/text-input/TextInput.test.d.ts +1 -0
- package/text-input/TextInput.test.js +97 -80
- package/textarea/Textarea.accessibility.test.d.ts +1 -0
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +13 -21
- package/textarea/Textarea.stories.tsx +0 -1
- 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 +11 -16
- package/toggle-group/ToggleGroup.stories.tsx +3 -3
- 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/useTheme.d.ts +31 -141
- package/utils/BaseTypography.js +1 -1
- package/utils/FocusLock.js +16 -6
- 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 +19 -0
- package/wizard/Wizard.test.d.ts +1 -0
- package/wizard/Wizard.test.js +1 -1
- package/wizard/types.d.ts +2 -2
- 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 -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/{layout → sidenav}/SidenavContext.d.ts +0 -0
- /package/{layout → sidenav}/SidenavContext.js +0 -0
|
@@ -8,7 +8,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _react2 = require("@testing-library/react");
|
|
10
10
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
11
|
-
var _Dropdown = _interopRequireDefault(require("./Dropdown
|
|
11
|
+
var _Dropdown = _interopRequireDefault(require("./Dropdown"));
|
|
12
12
|
// Mocking DOMRect for Radix Primitive Popover
|
|
13
13
|
global.globalThis = global;
|
|
14
14
|
global.DOMRect = {
|
|
@@ -54,86 +54,92 @@ var options = [{
|
|
|
54
54
|
}];
|
|
55
55
|
describe("Dropdown component tests", function () {
|
|
56
56
|
test("Renders with correct aria attributes", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
57
|
-
var _render, getAllByRole, getByRole, dropdown, menu;
|
|
57
|
+
var onSelectOption, _render, getAllByRole, getByRole, dropdown, menu;
|
|
58
58
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
59
59
|
while (1) switch (_context.prev = _context.next) {
|
|
60
60
|
case 0:
|
|
61
|
+
onSelectOption = jest.fn();
|
|
61
62
|
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
62
63
|
options: options,
|
|
63
|
-
label: "dropdown-test"
|
|
64
|
+
label: "dropdown-test",
|
|
65
|
+
onSelectOption: onSelectOption
|
|
64
66
|
})), getAllByRole = _render.getAllByRole, getByRole = _render.getByRole;
|
|
65
67
|
dropdown = getByRole("button");
|
|
66
68
|
expect(dropdown.getAttribute("aria-haspopup")).toBe("true");
|
|
67
69
|
expect(dropdown.getAttribute("aria-expanded")).toBeNull();
|
|
68
70
|
expect(dropdown.getAttribute("aria-activedescendant")).toBeNull();
|
|
69
|
-
_context.next =
|
|
71
|
+
_context.next = 8;
|
|
70
72
|
return _userEvent["default"].click(dropdown);
|
|
71
|
-
case
|
|
73
|
+
case 8:
|
|
72
74
|
menu = getByRole("menu");
|
|
73
75
|
expect(dropdown.getAttribute("aria-controls")).toBe(menu.id);
|
|
74
76
|
expect(dropdown.getAttribute("aria-expanded")).toBe("true");
|
|
75
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
|
|
77
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
76
78
|
expect(menu.getAttribute("aria-orientation")).toBe("vertical");
|
|
77
79
|
expect(menu.getAttribute("aria-labelledby")).toBe(dropdown.id);
|
|
78
80
|
expect(getAllByRole("menuitem").length).toBe(4);
|
|
79
|
-
case
|
|
81
|
+
case 15:
|
|
80
82
|
case "end":
|
|
81
83
|
return _context.stop();
|
|
82
84
|
}
|
|
83
85
|
}, _callee);
|
|
84
86
|
})));
|
|
85
87
|
test("Button trigger opens and closes the menu options when clicked", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
86
|
-
var _render2, getByRole, queryByRole, getByText, dropdown;
|
|
88
|
+
var onSelectOption, _render2, getByRole, queryByRole, getByText, dropdown;
|
|
87
89
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
88
90
|
while (1) switch (_context2.prev = _context2.next) {
|
|
89
91
|
case 0:
|
|
92
|
+
onSelectOption = jest.fn();
|
|
90
93
|
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
91
94
|
options: options,
|
|
92
|
-
label: "dropdown-test"
|
|
95
|
+
label: "dropdown-test",
|
|
96
|
+
onSelectOption: onSelectOption
|
|
93
97
|
})), getByRole = _render2.getByRole, queryByRole = _render2.queryByRole, getByText = _render2.getByText;
|
|
94
98
|
dropdown = getByRole("button");
|
|
95
99
|
expect(queryByRole("menu")).toBeFalsy();
|
|
96
|
-
_context2.next =
|
|
100
|
+
_context2.next = 6;
|
|
97
101
|
return _userEvent["default"].click(dropdown);
|
|
98
|
-
case
|
|
102
|
+
case 6:
|
|
99
103
|
expect(queryByRole("menu")).toBeTruthy();
|
|
100
104
|
expect(getByText("Amazon")).toBeTruthy();
|
|
101
105
|
expect(getByText("Ebay")).toBeTruthy();
|
|
102
106
|
expect(getByText("Wallapop")).toBeTruthy();
|
|
103
107
|
expect(getByText("Aliexpress")).toBeTruthy();
|
|
104
|
-
_context2.next =
|
|
108
|
+
_context2.next = 13;
|
|
105
109
|
return _userEvent["default"].click(dropdown);
|
|
106
|
-
case 12:
|
|
107
|
-
expect(queryByRole("menu")).toBeFalsy();
|
|
108
110
|
case 13:
|
|
111
|
+
expect(queryByRole("menu")).toBeFalsy();
|
|
112
|
+
case 14:
|
|
109
113
|
case "end":
|
|
110
114
|
return _context2.stop();
|
|
111
115
|
}
|
|
112
116
|
}, _callee2);
|
|
113
117
|
})));
|
|
114
118
|
test("Button trigger is not interactive when disabled", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
115
|
-
var _render3, getByRole, queryByRole, queryByText, dropdown;
|
|
119
|
+
var onSelectOption, _render3, getByRole, queryByRole, queryByText, dropdown;
|
|
116
120
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
117
121
|
while (1) switch (_context3.prev = _context3.next) {
|
|
118
122
|
case 0:
|
|
123
|
+
onSelectOption = jest.fn();
|
|
119
124
|
_render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
120
125
|
disabled: true,
|
|
121
126
|
options: options,
|
|
122
|
-
label: "dropdown-test"
|
|
127
|
+
label: "dropdown-test",
|
|
128
|
+
onSelectOption: onSelectOption
|
|
123
129
|
})), getByRole = _render3.getByRole, queryByRole = _render3.queryByRole, queryByText = _render3.queryByText;
|
|
124
130
|
dropdown = getByRole("button");
|
|
125
131
|
expect(queryByRole("menu")).toBeFalsy();
|
|
126
|
-
_context3.next =
|
|
132
|
+
_context3.next = 6;
|
|
127
133
|
return _userEvent["default"].click(dropdown);
|
|
128
|
-
case
|
|
134
|
+
case 6:
|
|
129
135
|
expect(queryByRole("menu")).toBeFalsy();
|
|
130
136
|
expect(queryByText("Amazon")).toBeFalsy();
|
|
131
|
-
_context3.next =
|
|
137
|
+
_context3.next = 10;
|
|
132
138
|
return _userEvent["default"].click(dropdown);
|
|
133
|
-
case
|
|
139
|
+
case 10:
|
|
134
140
|
expect(queryByRole("menu")).toBeFalsy();
|
|
135
141
|
expect(dropdown.getAttribute("aria-expanded")).toBeNull();
|
|
136
|
-
case
|
|
142
|
+
case 12:
|
|
137
143
|
case "end":
|
|
138
144
|
return _context3.stop();
|
|
139
145
|
}
|
|
@@ -166,10 +172,12 @@ describe("Dropdown component tests", function () {
|
|
|
166
172
|
}, _callee4);
|
|
167
173
|
})));
|
|
168
174
|
test("When expandOnHover is true, the dropdown trigger shows and hides the menu when it is hovered", function () {
|
|
175
|
+
var onSelectOption = jest.fn();
|
|
169
176
|
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
170
177
|
options: options,
|
|
171
178
|
expandOnHover: true,
|
|
172
|
-
label: "dropdown-test"
|
|
179
|
+
label: "dropdown-test",
|
|
180
|
+
onSelectOption: onSelectOption
|
|
173
181
|
})),
|
|
174
182
|
queryByText = _render5.queryByText,
|
|
175
183
|
getByRole = _render5.getByRole,
|
|
@@ -180,34 +188,38 @@ describe("Dropdown component tests", function () {
|
|
|
180
188
|
var menu = getByRole("menu");
|
|
181
189
|
expect(menu).toBeTruthy();
|
|
182
190
|
expect(document.activeElement === menu).toBeTruthy();
|
|
183
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
|
|
191
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
184
192
|
});
|
|
185
193
|
test("The menu is closed when the dropdown loses the focus (blur)", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
|
|
186
|
-
var _render6, getByRole, queryByRole, dropdown;
|
|
194
|
+
var onSelectOption, _render6, getByRole, queryByRole, dropdown;
|
|
187
195
|
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
188
196
|
while (1) switch (_context5.prev = _context5.next) {
|
|
189
197
|
case 0:
|
|
198
|
+
onSelectOption = jest.fn();
|
|
190
199
|
_render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
191
200
|
options: options,
|
|
192
|
-
label: "dropdown-test"
|
|
201
|
+
label: "dropdown-test",
|
|
202
|
+
onSelectOption: onSelectOption
|
|
193
203
|
})), getByRole = _render6.getByRole, queryByRole = _render6.queryByRole;
|
|
194
204
|
dropdown = getByRole("button");
|
|
195
|
-
_context5.next =
|
|
205
|
+
_context5.next = 5;
|
|
196
206
|
return _userEvent["default"].click(dropdown);
|
|
197
|
-
case
|
|
207
|
+
case 5:
|
|
198
208
|
expect(getByRole("menu")).toBeTruthy();
|
|
199
209
|
_react2.fireEvent.blur(getByRole("menu"));
|
|
200
210
|
expect(queryByRole("menu")).toBeFalsy();
|
|
201
|
-
case
|
|
211
|
+
case 8:
|
|
202
212
|
case "end":
|
|
203
213
|
return _context5.stop();
|
|
204
214
|
}
|
|
205
215
|
}, _callee5);
|
|
206
216
|
})));
|
|
207
217
|
test("Menu button key events - Arrow up opens the list and moves the focus to the last menu item", function () {
|
|
218
|
+
var onSelectOption = jest.fn();
|
|
208
219
|
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
209
220
|
options: options,
|
|
210
|
-
label: "dropdown-test"
|
|
221
|
+
label: "dropdown-test",
|
|
222
|
+
onSelectOption: onSelectOption
|
|
211
223
|
})),
|
|
212
224
|
getByRole = _render7.getByRole;
|
|
213
225
|
var dropdown = getByRole("button");
|
|
@@ -220,12 +232,14 @@ describe("Dropdown component tests", function () {
|
|
|
220
232
|
var menu = getByRole("menu");
|
|
221
233
|
expect(menu).toBeTruthy();
|
|
222
234
|
expect(document.activeElement === menu).toBeTruthy();
|
|
223
|
-
expect(getByRole("menu").getAttribute("aria-activedescendant")).toBe("option-3");
|
|
235
|
+
expect(getByRole("menu").getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-3"));
|
|
224
236
|
});
|
|
225
237
|
test("Menu button key events - Arrow down opens the list and moves the focus to the first menu item", function () {
|
|
238
|
+
var onSelectOption = jest.fn();
|
|
226
239
|
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
227
240
|
options: options,
|
|
228
|
-
label: "dropdown-test"
|
|
241
|
+
label: "dropdown-test",
|
|
242
|
+
onSelectOption: onSelectOption
|
|
229
243
|
})),
|
|
230
244
|
getByRole = _render8.getByRole;
|
|
231
245
|
var dropdown = getByRole("button");
|
|
@@ -238,12 +252,14 @@ describe("Dropdown component tests", function () {
|
|
|
238
252
|
var menu = getByRole("menu");
|
|
239
253
|
expect(menu).toBeTruthy();
|
|
240
254
|
expect(document.activeElement === menu).toBeTruthy();
|
|
241
|
-
expect(getByRole("menu").getAttribute("aria-activedescendant")).toBe("option-0");
|
|
255
|
+
expect(getByRole("menu").getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
242
256
|
});
|
|
243
257
|
test("Menu button key events - Enter opens the list and moves the focus to the first menu item", function () {
|
|
258
|
+
var onSelectOption = jest.fn();
|
|
244
259
|
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
245
260
|
options: options,
|
|
246
|
-
label: "dropdown-test"
|
|
261
|
+
label: "dropdown-test",
|
|
262
|
+
onSelectOption: onSelectOption
|
|
247
263
|
})),
|
|
248
264
|
getByRole = _render9.getByRole;
|
|
249
265
|
var dropdown = getByRole("button");
|
|
@@ -256,12 +272,14 @@ describe("Dropdown component tests", function () {
|
|
|
256
272
|
var menu = getByRole("menu");
|
|
257
273
|
expect(menu).toBeTruthy();
|
|
258
274
|
expect(document.activeElement === menu).toBeTruthy();
|
|
259
|
-
expect(getByRole("menu").getAttribute("aria-activedescendant")).toBe("option-0");
|
|
275
|
+
expect(getByRole("menu").getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
260
276
|
});
|
|
261
277
|
test("Menu button key events - Space opens the list and moves the focus to the first menu item", function () {
|
|
278
|
+
var onSelectOption = jest.fn();
|
|
262
279
|
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
263
280
|
options: options,
|
|
264
|
-
label: "dropdown-test"
|
|
281
|
+
label: "dropdown-test",
|
|
282
|
+
onSelectOption: onSelectOption
|
|
265
283
|
})),
|
|
266
284
|
getByRole = _render10.getByRole;
|
|
267
285
|
var dropdown = getByRole("button");
|
|
@@ -274,7 +292,7 @@ describe("Dropdown component tests", function () {
|
|
|
274
292
|
var menu = getByRole("menu");
|
|
275
293
|
expect(menu).toBeTruthy();
|
|
276
294
|
expect(document.activeElement === menu).toBeTruthy();
|
|
277
|
-
expect(getByRole("menu").getAttribute("aria-activedescendant")).toBe("option-0");
|
|
295
|
+
expect(getByRole("menu").getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
278
296
|
});
|
|
279
297
|
test("Menu key events - Arrow up moves the focus to the previous menu item", function () {
|
|
280
298
|
var onSelectOption = jest.fn();
|
|
@@ -298,7 +316,7 @@ describe("Dropdown component tests", function () {
|
|
|
298
316
|
charCode: 38
|
|
299
317
|
});
|
|
300
318
|
expect(document.activeElement === menu).toBeTruthy();
|
|
301
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-2");
|
|
319
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-2"));
|
|
302
320
|
_react2.fireEvent.keyDown(menu, {
|
|
303
321
|
key: "Enter",
|
|
304
322
|
code: "Enter",
|
|
@@ -329,7 +347,7 @@ describe("Dropdown component tests", function () {
|
|
|
329
347
|
charCode: 38
|
|
330
348
|
});
|
|
331
349
|
expect(document.activeElement === menu).toBeTruthy();
|
|
332
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
|
|
350
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-3"));
|
|
333
351
|
_react2.fireEvent.keyDown(menu, {
|
|
334
352
|
key: "Enter",
|
|
335
353
|
code: "Enter",
|
|
@@ -371,7 +389,7 @@ describe("Dropdown component tests", function () {
|
|
|
371
389
|
charCode: 40
|
|
372
390
|
});
|
|
373
391
|
expect(document.activeElement === menu).toBeTruthy();
|
|
374
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-2");
|
|
392
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-2"));
|
|
375
393
|
_react2.fireEvent.keyDown(menu, {
|
|
376
394
|
key: "Enter",
|
|
377
395
|
code: "Enter",
|
|
@@ -407,7 +425,7 @@ describe("Dropdown component tests", function () {
|
|
|
407
425
|
charCode: 40
|
|
408
426
|
});
|
|
409
427
|
expect(document.activeElement === menu).toBeTruthy();
|
|
410
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
|
|
428
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
411
429
|
_react2.fireEvent.keyDown(menu, {
|
|
412
430
|
key: "Enter",
|
|
413
431
|
code: "Enter",
|
|
@@ -446,17 +464,19 @@ describe("Dropdown component tests", function () {
|
|
|
446
464
|
}, _callee8);
|
|
447
465
|
})));
|
|
448
466
|
test("Menu key events - Esc closes the menu and sets focus on the menu button", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
|
|
449
|
-
var _render16, getByRole, queryByRole;
|
|
467
|
+
var onSelectOption, _render16, getByRole, queryByRole;
|
|
450
468
|
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
|
451
469
|
while (1) switch (_context9.prev = _context9.next) {
|
|
452
470
|
case 0:
|
|
471
|
+
onSelectOption = jest.fn();
|
|
453
472
|
_render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
454
473
|
options: options,
|
|
455
|
-
label: "dropdown-test"
|
|
474
|
+
label: "dropdown-test",
|
|
475
|
+
onSelectOption: onSelectOption
|
|
456
476
|
})), getByRole = _render16.getByRole, queryByRole = _render16.queryByRole;
|
|
457
|
-
_context9.next =
|
|
477
|
+
_context9.next = 4;
|
|
458
478
|
return _userEvent["default"].click(getByRole("button"));
|
|
459
|
-
case
|
|
479
|
+
case 4:
|
|
460
480
|
_react2.fireEvent.keyDown(getByRole("menu"), {
|
|
461
481
|
key: "Esc",
|
|
462
482
|
code: "Esc",
|
|
@@ -465,16 +485,18 @@ describe("Dropdown component tests", function () {
|
|
|
465
485
|
});
|
|
466
486
|
expect(queryByRole("menu")).toBeFalsy();
|
|
467
487
|
expect(document.activeElement === getByRole("button")).toBeTruthy();
|
|
468
|
-
case
|
|
488
|
+
case 7:
|
|
469
489
|
case "end":
|
|
470
490
|
return _context9.stop();
|
|
471
491
|
}
|
|
472
492
|
}, _callee9);
|
|
473
493
|
})));
|
|
474
494
|
test("Menu key events - Home moves the focus to the first menu item", function () {
|
|
495
|
+
var onSelectOption = jest.fn();
|
|
475
496
|
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
476
497
|
options: options,
|
|
477
|
-
label: "dropdown-test-1"
|
|
498
|
+
label: "dropdown-test-1",
|
|
499
|
+
onSelectOption: onSelectOption
|
|
478
500
|
})),
|
|
479
501
|
getByRole = _render17.getByRole;
|
|
480
502
|
_react2.fireEvent.keyDown(getByRole("button"), {
|
|
@@ -484,46 +506,50 @@ describe("Dropdown component tests", function () {
|
|
|
484
506
|
charCode: 38
|
|
485
507
|
});
|
|
486
508
|
var menu = getByRole("menu");
|
|
487
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
|
|
509
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-3"));
|
|
488
510
|
_react2.fireEvent.keyDown(menu, {
|
|
489
511
|
key: "Home",
|
|
490
512
|
code: "Home",
|
|
491
513
|
keyCode: 36,
|
|
492
514
|
charCode: 36
|
|
493
515
|
});
|
|
494
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
|
|
516
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
495
517
|
});
|
|
496
518
|
test("Menu key events - End moves the focus to the last menu item", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
|
|
497
|
-
var _render18, getByRole, menu;
|
|
519
|
+
var onSelectOption, _render18, getByRole, menu;
|
|
498
520
|
return _regenerator["default"].wrap(function _callee10$(_context10) {
|
|
499
521
|
while (1) switch (_context10.prev = _context10.next) {
|
|
500
522
|
case 0:
|
|
523
|
+
onSelectOption = jest.fn();
|
|
501
524
|
_render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
502
525
|
options: options,
|
|
503
|
-
label: "dropdown-test-1"
|
|
526
|
+
label: "dropdown-test-1",
|
|
527
|
+
onSelectOption: onSelectOption
|
|
504
528
|
})), getByRole = _render18.getByRole;
|
|
505
|
-
_context10.next =
|
|
529
|
+
_context10.next = 4;
|
|
506
530
|
return _userEvent["default"].click(getByRole("button"));
|
|
507
|
-
case
|
|
531
|
+
case 4:
|
|
508
532
|
menu = getByRole("menu");
|
|
509
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
|
|
533
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
510
534
|
_react2.fireEvent.keyDown(menu, {
|
|
511
535
|
key: "End",
|
|
512
536
|
code: "End",
|
|
513
537
|
keyCode: 35,
|
|
514
538
|
charCode: 35
|
|
515
539
|
});
|
|
516
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
|
|
517
|
-
case
|
|
540
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-3"));
|
|
541
|
+
case 8:
|
|
518
542
|
case "end":
|
|
519
543
|
return _context10.stop();
|
|
520
544
|
}
|
|
521
545
|
}, _callee10);
|
|
522
546
|
})));
|
|
523
547
|
test("Menu key events - PageUp moves the focus to the first menu item", function () {
|
|
548
|
+
var onSelectOption = jest.fn();
|
|
524
549
|
var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
525
550
|
options: options,
|
|
526
|
-
label: "dropdown-test-1"
|
|
551
|
+
label: "dropdown-test-1",
|
|
552
|
+
onSelectOption: onSelectOption
|
|
527
553
|
})),
|
|
528
554
|
getByRole = _render19.getByRole;
|
|
529
555
|
_react2.fireEvent.keyDown(getByRole("button"), {
|
|
@@ -533,55 +559,59 @@ describe("Dropdown component tests", function () {
|
|
|
533
559
|
charCode: 38
|
|
534
560
|
});
|
|
535
561
|
var menu = getByRole("menu");
|
|
536
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
|
|
562
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-3"));
|
|
537
563
|
_react2.fireEvent.keyDown(menu, {
|
|
538
564
|
key: "PageUp",
|
|
539
565
|
code: "PageUp",
|
|
540
566
|
keyCode: 33,
|
|
541
567
|
charCode: 33
|
|
542
568
|
});
|
|
543
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
|
|
569
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
544
570
|
});
|
|
545
571
|
test("Menu key events - PageDown moves the focus to the last menu item", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11() {
|
|
546
|
-
var _render20, getByRole, menu;
|
|
572
|
+
var onSelectOption, _render20, getByRole, menu;
|
|
547
573
|
return _regenerator["default"].wrap(function _callee11$(_context11) {
|
|
548
574
|
while (1) switch (_context11.prev = _context11.next) {
|
|
549
575
|
case 0:
|
|
576
|
+
onSelectOption = jest.fn();
|
|
550
577
|
_render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
551
578
|
options: options,
|
|
552
|
-
label: "dropdown-test-1"
|
|
579
|
+
label: "dropdown-test-1",
|
|
580
|
+
onSelectOption: onSelectOption
|
|
553
581
|
})), getByRole = _render20.getByRole;
|
|
554
|
-
_context11.next =
|
|
582
|
+
_context11.next = 4;
|
|
555
583
|
return _userEvent["default"].click(getByRole("button"));
|
|
556
|
-
case
|
|
584
|
+
case 4:
|
|
557
585
|
menu = getByRole("menu");
|
|
558
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
|
|
586
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-0"));
|
|
559
587
|
_react2.fireEvent.keyDown(menu, {
|
|
560
588
|
key: "PageDown",
|
|
561
589
|
code: "PageDown",
|
|
562
590
|
keyCode: 34,
|
|
563
591
|
charCode: 34
|
|
564
592
|
});
|
|
565
|
-
expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
|
|
566
|
-
case
|
|
593
|
+
expect(menu.getAttribute("aria-activedescendant")).toBe("".concat(menu.id, "-option-3"));
|
|
594
|
+
case 8:
|
|
567
595
|
case "end":
|
|
568
596
|
return _context11.stop();
|
|
569
597
|
}
|
|
570
598
|
}, _callee11);
|
|
571
599
|
})));
|
|
572
600
|
test("Menu key events - Tab closes the menu and sets focus to the next element", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
|
|
573
|
-
var _render21, getByRole, queryByRole, dropdown;
|
|
601
|
+
var onSelectOption, _render21, getByRole, queryByRole, dropdown;
|
|
574
602
|
return _regenerator["default"].wrap(function _callee12$(_context12) {
|
|
575
603
|
while (1) switch (_context12.prev = _context12.next) {
|
|
576
604
|
case 0:
|
|
605
|
+
onSelectOption = jest.fn();
|
|
577
606
|
_render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
|
|
578
607
|
options: options,
|
|
579
|
-
label: "dropdown-test-1"
|
|
608
|
+
label: "dropdown-test-1",
|
|
609
|
+
onSelectOption: onSelectOption
|
|
580
610
|
})), getByRole = _render21.getByRole, queryByRole = _render21.queryByRole;
|
|
581
611
|
dropdown = getByRole("button");
|
|
582
|
-
_context12.next =
|
|
612
|
+
_context12.next = 5;
|
|
583
613
|
return _userEvent["default"].click(dropdown);
|
|
584
|
-
case
|
|
614
|
+
case 5:
|
|
585
615
|
expect(getByRole("menu")).toBeTruthy();
|
|
586
616
|
_react2.fireEvent.keyDown(getByRole("menu"), {
|
|
587
617
|
key: "Tab",
|
|
@@ -590,7 +620,7 @@ describe("Dropdown component tests", function () {
|
|
|
590
620
|
charCode: 9
|
|
591
621
|
});
|
|
592
622
|
expect(queryByRole("menu")).toBeFalsy();
|
|
593
|
-
case
|
|
623
|
+
case 8:
|
|
594
624
|
case "end":
|
|
595
625
|
return _context12.stop();
|
|
596
626
|
}
|
package/dropdown/DropdownMenu.js
CHANGED
|
@@ -21,7 +21,7 @@ var DropdownMenu = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
21
21
|
styles = _ref.styles;
|
|
22
22
|
return /*#__PURE__*/_react["default"].createElement(DropdownMenuContainer, {
|
|
23
23
|
onMouseDown: function onMouseDown(event) {
|
|
24
|
-
// Prevent the onBlur event from closing menu when clicking on the menu since
|
|
24
|
+
// Prevent the onBlur event from closing menu when clicking on the menu since
|
|
25
25
|
// it is implemented with a Portal and the menu is not a direct child of the container
|
|
26
26
|
event.preventDefault();
|
|
27
27
|
},
|
|
@@ -30,14 +30,14 @@ var DropdownMenu = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
30
30
|
role: "menu",
|
|
31
31
|
"aria-labelledby": dropdownTriggerId,
|
|
32
32
|
"aria-orientation": "vertical",
|
|
33
|
-
"aria-activedescendant": "option-".concat(visualFocusIndex),
|
|
33
|
+
"aria-activedescendant": visualFocusIndex !== -1 ? "".concat(id, "-option-").concat(visualFocusIndex) : undefined,
|
|
34
34
|
tabIndex: -1,
|
|
35
35
|
ref: ref,
|
|
36
36
|
style: styles
|
|
37
37
|
}, options.map(function (option, index) {
|
|
38
38
|
return /*#__PURE__*/_react["default"].createElement(_DropdownMenuItem["default"], {
|
|
39
|
-
id: "option-".concat(index),
|
|
40
|
-
key: "option-".concat(index),
|
|
39
|
+
id: "".concat(id, "-option-").concat(index),
|
|
40
|
+
key: "".concat(id, "-option-").concat(index),
|
|
41
41
|
visuallyFocused: index === visualFocusIndex,
|
|
42
42
|
iconPosition: iconsPosition,
|
|
43
43
|
onClick: menuItemOnClick,
|
|
@@ -8,6 +8,7 @@ exports["default"] = void 0;
|
|
|
8
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
+
var _Icon = _interopRequireDefault(require("../icon/Icon"));
|
|
11
12
|
var _templateObject, _templateObject2, _templateObject3;
|
|
12
13
|
var DropdownMenuItem = function DropdownMenuItem(_ref) {
|
|
13
14
|
var id = _ref.id,
|
|
@@ -24,9 +25,10 @@ var DropdownMenuItem = function DropdownMenuItem(_ref) {
|
|
|
24
25
|
role: "menuitem",
|
|
25
26
|
tabIndex: -1
|
|
26
27
|
}, iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemLabel, null, option.label), option.icon && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemIcon, {
|
|
27
|
-
role: typeof option.icon === "string" ? undefined : "img"
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
role: typeof option.icon === "string" ? undefined : "img",
|
|
29
|
+
"aria-hidden": true
|
|
30
|
+
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
31
|
+
icon: option.icon
|
|
30
32
|
}) : option.icon), iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemLabel, null, option.label));
|
|
31
33
|
};
|
|
32
34
|
var DropdownMenuItemContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: ", ";\n min-height: 36px;\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n cursor: pointer;\n\n ", "\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
|
|
@@ -57,11 +59,13 @@ var DropdownMenuItemLabel = _styledComponents["default"].span(_templateObject2 |
|
|
|
57
59
|
}, function (props) {
|
|
58
60
|
return props.theme.optionFontColor;
|
|
59
61
|
});
|
|
60
|
-
var DropdownMenuItemIcon = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n\n
|
|
62
|
+
var DropdownMenuItemIcon = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n font-size: ", ";\n\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
|
|
61
63
|
return props.theme.optionIconColor;
|
|
62
64
|
}, function (props) {
|
|
63
65
|
return props.theme.optionIconSize;
|
|
64
66
|
}, function (props) {
|
|
65
67
|
return props.theme.optionIconSize;
|
|
68
|
+
}, function (props) {
|
|
69
|
+
return props.theme.optionIconSize;
|
|
66
70
|
});
|
|
67
71
|
var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(DropdownMenuItem);
|
package/dropdown/types.d.ts
CHANGED
|
@@ -14,8 +14,7 @@ export type Option = {
|
|
|
14
14
|
*/
|
|
15
15
|
label?: string;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
* option label.
|
|
17
|
+
* Material Symbol name or SVG element as the icon that will be placed next to the label.
|
|
19
18
|
*/
|
|
20
19
|
icon?: string | SVG;
|
|
21
20
|
/**
|
|
@@ -34,8 +33,7 @@ type Props = {
|
|
|
34
33
|
*/
|
|
35
34
|
optionsIconPosition?: "before" | "after";
|
|
36
35
|
/**
|
|
37
|
-
*
|
|
38
|
-
* dropdown label.
|
|
36
|
+
* Material Symbol name or SVG element as the icon that will be placed next to the label.
|
|
39
37
|
*/
|
|
40
38
|
icon?: string | SVG;
|
|
41
39
|
/**
|
|
@@ -55,7 +53,7 @@ type Props = {
|
|
|
55
53
|
*/
|
|
56
54
|
disabled?: boolean;
|
|
57
55
|
/**
|
|
58
|
-
* If true, the options are
|
|
56
|
+
* If true, the options are shown when the dropdown is hover.
|
|
59
57
|
*/
|
|
60
58
|
expandOnHover?: boolean;
|
|
61
59
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|