@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
package/select/types.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ type Margin = {
|
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
9
|
type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
10
|
-
type OptionGroup = {
|
|
10
|
+
export type OptionGroup = {
|
|
11
11
|
/**
|
|
12
12
|
* Label of the group to be shown in the select's listbox.
|
|
13
13
|
*/
|
|
@@ -17,10 +17,10 @@ type OptionGroup = {
|
|
|
17
17
|
*/
|
|
18
18
|
options: Option[];
|
|
19
19
|
};
|
|
20
|
-
type Option = {
|
|
20
|
+
export type Option = {
|
|
21
21
|
/**
|
|
22
22
|
* Element used as the icon that will be placed before the option label.
|
|
23
|
-
* It can be
|
|
23
|
+
* It can be an inline SVG or Material Symbol name. If the url option
|
|
24
24
|
* is the chosen one, take into account that the component's
|
|
25
25
|
* color styling tokens will not be applied to the image.
|
|
26
26
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
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 _Sidenav = _interopRequireDefault(require("./Sidenav"));
|
|
10
|
+
var iconSVG = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
11
|
+
version: "1.1",
|
|
12
|
+
x: "0px",
|
|
13
|
+
y: "0px",
|
|
14
|
+
width: "438.536px",
|
|
15
|
+
height: "438.536px",
|
|
16
|
+
viewBox: "0 0 438.536 438.536",
|
|
17
|
+
fill: "currentColor"
|
|
18
|
+
}, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
|
|
19
|
+
d: "M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123\nC8.045,40.207,0.003,59.576,0.003,82.225v274.084c0,22.647,8.042,42.018,24.123,58.102c16.084,16.084,35.454,24.126,58.102,24.126\nh274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225\nC438.532,59.576,430.49,40.204,414.41,24.123z M373.155,225.548h-49.963V406.84h-74.802V225.548H210.99V163.02h37.401v-37.402\nc0-26.838,6.283-47.107,18.843-60.813c12.559-13.706,33.304-20.555,62.242-20.555h49.963v62.526h-31.401\nc-10.663,0-17.467,1.853-20.417,5.568c-2.949,3.711-4.428,10.23-4.428,19.558v31.119h56.534L373.155,225.548z"
|
|
20
|
+
})));
|
|
21
|
+
describe("Sidenav component accessibility tests", function () {
|
|
22
|
+
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
23
|
+
var _render, container, results;
|
|
24
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
25
|
+
while (1) switch (_context.prev = _context.next) {
|
|
26
|
+
case 0:
|
|
27
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Sidenav["default"], {
|
|
28
|
+
title: "Title"
|
|
29
|
+
}, /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Section, null, /*#__PURE__*/_react["default"].createElement("p", null, "nav-content-test"), /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Link, {
|
|
30
|
+
href: "#",
|
|
31
|
+
icon: iconSVG,
|
|
32
|
+
selected: true
|
|
33
|
+
}, "Link")), /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Section, null, /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Group, {
|
|
34
|
+
title: "Collapsable",
|
|
35
|
+
icon: iconSVG,
|
|
36
|
+
collapsable: true
|
|
37
|
+
}, /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Link, {
|
|
38
|
+
href: "#"
|
|
39
|
+
}, "Lorem ipsum"), /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Link, {
|
|
40
|
+
href: "#"
|
|
41
|
+
}, "Lorem ipsum"), /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Link, {
|
|
42
|
+
href: "#"
|
|
43
|
+
}, "Lorem ipsum"), /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Link, {
|
|
44
|
+
href: "#"
|
|
45
|
+
}, "Lorem ipsum"), /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Link, {
|
|
46
|
+
href: "#"
|
|
47
|
+
}, "Lorem ipsum"))))), container = _render.container;
|
|
48
|
+
_context.next = 3;
|
|
49
|
+
return (0, _axeHelper.axe)(container);
|
|
50
|
+
case 3:
|
|
51
|
+
results = _context.sent;
|
|
52
|
+
expect(results).toHaveNoViolations();
|
|
53
|
+
case 5:
|
|
54
|
+
case "end":
|
|
55
|
+
return _context.stop();
|
|
56
|
+
}
|
|
57
|
+
}, _callee);
|
|
58
|
+
})));
|
|
59
|
+
});
|
package/sidenav/Sidenav.js
CHANGED
|
@@ -13,28 +13,26 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
13
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
14
14
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
15
15
|
var _variables = require("../common/variables");
|
|
16
|
-
var _SidenavContext = require("
|
|
16
|
+
var _SidenavContext = require("./SidenavContext");
|
|
17
17
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
18
|
-
var _BackgroundColorContext = require("../BackgroundColorContext");
|
|
19
18
|
var _Flex = _interopRequireDefault(require("../flex/Flex"));
|
|
20
19
|
var _Bleed = _interopRequireDefault(require("../bleed/Bleed"));
|
|
21
|
-
var
|
|
20
|
+
var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
|
|
21
|
+
var _Icon = _interopRequireDefault(require("../icon/Icon"));
|
|
22
22
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
23
23
|
var _excluded = ["href", "newWindow", "selected", "icon", "onClick", "tabIndex", "children"];
|
|
24
24
|
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); }
|
|
25
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
25
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.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; }
|
|
26
26
|
var DxcSidenav = function DxcSidenav(_ref) {
|
|
27
27
|
var title = _ref.title,
|
|
28
28
|
children = _ref.children;
|
|
29
29
|
var colorsTheme = (0, _useTheme["default"])();
|
|
30
30
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
31
31
|
theme: colorsTheme.sidenav
|
|
32
|
-
}, /*#__PURE__*/_react["default"].createElement(SidenavContainer, null, /*#__PURE__*/_react["default"].createElement(
|
|
33
|
-
color: colorsTheme.sidenav.backgroundColor
|
|
34
|
-
}, title, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
32
|
+
}, /*#__PURE__*/_react["default"].createElement(SidenavContainer, null, title, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
35
33
|
direction: "column",
|
|
36
34
|
gap: "1rem"
|
|
37
|
-
}, children)))
|
|
35
|
+
}, children)));
|
|
38
36
|
};
|
|
39
37
|
var Title = function Title(_ref2) {
|
|
40
38
|
var children = _ref2.children;
|
|
@@ -76,10 +74,12 @@ var Group = function Group(_ref4) {
|
|
|
76
74
|
}, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
77
75
|
alignItems: "center",
|
|
78
76
|
gap: "0.5rem"
|
|
79
|
-
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("
|
|
80
|
-
|
|
81
|
-
}) : icon, title),
|
|
82
|
-
|
|
77
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
78
|
+
icon: icon
|
|
79
|
+
}) : icon, title), /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
80
|
+
icon: collapsed ? "expand_more" : "expand_less"
|
|
81
|
+
})) : title && /*#__PURE__*/_react["default"].createElement(SidenavGroupTitle, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
82
|
+
icon: icon
|
|
83
83
|
}) : icon, title), !collapsed && children));
|
|
84
84
|
};
|
|
85
85
|
var Link = /*#__PURE__*/(0, _react.forwardRef)(function (_ref5, ref) {
|
|
@@ -115,9 +115,11 @@ var Link = /*#__PURE__*/(0, _react.forwardRef)(function (_ref5, ref) {
|
|
|
115
115
|
}, otherProps), /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
116
116
|
alignItems: "center",
|
|
117
117
|
gap: "0.5rem"
|
|
118
|
-
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("
|
|
119
|
-
|
|
120
|
-
}) : icon, children), newWindow &&
|
|
118
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
119
|
+
icon: icon
|
|
120
|
+
}) : icon, children), newWindow && /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
121
|
+
icon: "open_in_new"
|
|
122
|
+
}));
|
|
121
123
|
});
|
|
122
124
|
var SidenavContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n width: 280px;\n @media (max-width: ", "rem) {\n width: 100vw;\n }\n padding: 2rem 1rem;\n background-color: ", ";\n\n overflow-y: auto;\n overflow-x: hidden;\n ::-webkit-scrollbar {\n width: 2px;\n }\n ::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 3px;\n }\n ::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 3px;\n }\n"])), _variables.responsiveSizes.medium, function (props) {
|
|
123
125
|
return props.theme.backgroundColor;
|
|
@@ -141,9 +143,9 @@ var SidenavTitle = _styledComponents["default"].div(_templateObject2 || (_templa
|
|
|
141
143
|
}, function (props) {
|
|
142
144
|
return props.theme.titleFontTextTransform;
|
|
143
145
|
});
|
|
144
|
-
var Divider = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 1px;\n background-color:
|
|
146
|
+
var Divider = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 1px;\n background-color: ", ";\n\n &:last-child {\n display: none;\n }\n"])), _coreTokens["default"].color_grey_400);
|
|
145
147
|
var SidenavGroup = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n a {\n padding: 0.5rem 1.2rem 0.5rem 2.25rem;\n }\n"])));
|
|
146
|
-
var SidenavGroupTitle = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 1.2rem;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n\n
|
|
148
|
+
var SidenavGroupTitle = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 1.2rem;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n span::before {\n font-size: 16px;\n }\n svg {\n height: 16px;\n width: 16px;\n }\n"])), function (props) {
|
|
147
149
|
return props.theme.groupTitleFontFamily;
|
|
148
150
|
}, function (props) {
|
|
149
151
|
return props.theme.groupTitleFontStyle;
|
|
@@ -152,7 +154,7 @@ var SidenavGroupTitle = _styledComponents["default"].span(_templateObject5 || (_
|
|
|
152
154
|
}, function (props) {
|
|
153
155
|
return props.theme.groupTitleFontSize;
|
|
154
156
|
});
|
|
155
|
-
var SidenavGroupTitleButton = _styledComponents["default"].button(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n all: unset;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 0.5rem 1.2rem;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n cursor: pointer;\n\n ", "\n\n &:focus, &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: -2px;\n }\n &:hover {\n ", "\n }\n &:active {\n color: #fff;\n background-color: ", ";\n }\n\n
|
|
157
|
+
var SidenavGroupTitleButton = _styledComponents["default"].button(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n all: unset;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 0.5rem 1.2rem;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n cursor: pointer;\n\n ", "\n\n &:focus, &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: -2px;\n }\n &:hover {\n ", "\n }\n &:active {\n color: #fff;\n background-color: ", ";\n }\n span::before {\n font-size: 16px;\n }\n svg {\n height: 16px;\n width: 16px;\n }\n"])), function (props) {
|
|
156
158
|
return props.theme.groupTitleFontFamily;
|
|
157
159
|
}, function (props) {
|
|
158
160
|
return props.theme.groupTitleFontStyle;
|
|
@@ -169,7 +171,7 @@ var SidenavGroupTitleButton = _styledComponents["default"].button(_templateObjec
|
|
|
169
171
|
}, function (props) {
|
|
170
172
|
return props.selectedGroup ? "#333" : props.theme.groupTitleActiveBackgroundColor;
|
|
171
173
|
});
|
|
172
|
-
var SidenavLink = _styledComponents["default"].a(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n padding: 0.5rem 1.2rem;\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n text-decoration: ", ";\n cursor: pointer;\n\n ", "\n\n &:focus, &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: -2px;\n }\n &:hover {\n ", "\n }\n &:active {\n color: #fff;\n background-color: ", ";\n outline: 2px solid #0095ff;\n outline-offset: -2px;\n }\n\n
|
|
174
|
+
var SidenavLink = _styledComponents["default"].a(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n padding: 0.5rem 1.2rem;\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n text-decoration: ", ";\n cursor: pointer;\n\n ", "\n\n &:focus, &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: -2px;\n }\n &:hover {\n ", "\n }\n &:active {\n color: #fff;\n background-color: ", ";\n outline: 2px solid #0095ff;\n outline-offset: -2px;\n }\n span::before {\n font-size: 16px;\n }\n svg {\n height: 16px;\n width: 16px;\n }\n"])), function (props) {
|
|
173
175
|
return props.theme.linkFontFamily;
|
|
174
176
|
}, function (props) {
|
|
175
177
|
return props.theme.linkFontStyle;
|
|
@@ -15,7 +15,6 @@ export default {
|
|
|
15
15
|
const iconSVG = (
|
|
16
16
|
<svg
|
|
17
17
|
version="1.1"
|
|
18
|
-
id="Capa_1"
|
|
19
18
|
x="0px"
|
|
20
19
|
y="0px"
|
|
21
20
|
width="438.536px"
|
|
@@ -67,15 +66,11 @@ export const Chromatic = () => (
|
|
|
67
66
|
</DxcSidenav.Group>
|
|
68
67
|
</DxcSidenav.Section>
|
|
69
68
|
<DxcSidenav.Section>
|
|
70
|
-
<DxcSidenav.Group
|
|
71
|
-
collapsable={true}
|
|
72
|
-
title="Section Group"
|
|
73
|
-
icon="https://cdn-icons-png.flaticon.com/512/5039/5039041.png"
|
|
74
|
-
>
|
|
69
|
+
<DxcSidenav.Group collapsable={true} title="Section Group" icon="filled_bottom_app_bar">
|
|
75
70
|
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
76
71
|
<DxcSidenav.Link icon={iconSVG}>Group Link</DxcSidenav.Link>
|
|
77
72
|
</DxcSidenav.Group>
|
|
78
|
-
<DxcSidenav.Link icon="
|
|
73
|
+
<DxcSidenav.Link icon="filled_bottom_app_bar" newWindow>
|
|
79
74
|
Single Link
|
|
80
75
|
</DxcSidenav.Link>
|
|
81
76
|
<DxcSidenav.Link newWindow>Single Link</DxcSidenav.Link>
|
|
@@ -99,7 +94,7 @@ export const Chromatic = () => (
|
|
|
99
94
|
<DxcSidenav.Section>
|
|
100
95
|
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
101
96
|
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
102
|
-
<DxcSidenav.Link icon="
|
|
97
|
+
<DxcSidenav.Link icon="filled_bottom_app_bar">Group Link</DxcSidenav.Link>
|
|
103
98
|
</DxcSidenav.Group>
|
|
104
99
|
</DxcSidenav.Section>
|
|
105
100
|
<DxcSidenav.Section>
|
|
@@ -279,4 +274,4 @@ CollapsedActiveGroup.play = async ({ canvasElement }) => {
|
|
|
279
274
|
const canvas = within(canvasElement);
|
|
280
275
|
const collapsableGroups = canvas.getAllByText("Collapsed Group");
|
|
281
276
|
userEvent.click(collapsableGroups[0]);
|
|
282
|
-
};
|
|
277
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/sidenav/Sidenav.test.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
var _react = _interopRequireDefault(require("react"));
|
|
5
5
|
var _react2 = require("@testing-library/react");
|
|
6
|
-
var _Sidenav = _interopRequireDefault(require("./Sidenav
|
|
6
|
+
var _Sidenav = _interopRequireDefault(require("./Sidenav"));
|
|
7
7
|
describe("Sidenav component tests", function () {
|
|
8
8
|
test("Sidenav renders anchors and Section correctly", function () {
|
|
9
9
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Sidenav["default"], null, /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Section, null, /*#__PURE__*/_react["default"].createElement("p", null, "nav-content-test"), /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Link, {
|
package/sidenav/types.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export type SidenavGroupPropsType = {
|
|
|
23
23
|
*/
|
|
24
24
|
collapsable?: boolean;
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* Material Symbol name or SVG icon to be displayed next to the title of the group.
|
|
27
27
|
*/
|
|
28
28
|
icon?: string | SVG;
|
|
29
29
|
/**
|
|
@@ -41,7 +41,7 @@ export type SidenavLinkPropsType = {
|
|
|
41
41
|
*/
|
|
42
42
|
newWindow?: boolean;
|
|
43
43
|
/**
|
|
44
|
-
*
|
|
44
|
+
* The Material symbol or SVG element used as the icon that will be placed to the left of the link text.
|
|
45
45
|
*/
|
|
46
46
|
icon?: string | SVG;
|
|
47
47
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,104 @@
|
|
|
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 _Slider = _interopRequireDefault(require("./Slider"));
|
|
12
|
+
// Mocking DOMRect for Radix Primitive Popover
|
|
13
|
+
global.globalThis = global;
|
|
14
|
+
global.DOMRect = {
|
|
15
|
+
fromRect: function fromRect() {
|
|
16
|
+
return {
|
|
17
|
+
top: 0,
|
|
18
|
+
left: 0,
|
|
19
|
+
bottom: 0,
|
|
20
|
+
right: 0,
|
|
21
|
+
width: 0,
|
|
22
|
+
height: 0
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
global.ResizeObserver = /*#__PURE__*/function () {
|
|
27
|
+
function ResizeObserver() {
|
|
28
|
+
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
29
|
+
}
|
|
30
|
+
(0, _createClass2["default"])(ResizeObserver, [{
|
|
31
|
+
key: "observe",
|
|
32
|
+
value: function observe() {}
|
|
33
|
+
}, {
|
|
34
|
+
key: "unobserve",
|
|
35
|
+
value: function unobserve() {}
|
|
36
|
+
}, {
|
|
37
|
+
key: "disconnect",
|
|
38
|
+
value: function disconnect() {}
|
|
39
|
+
}]);
|
|
40
|
+
return ResizeObserver;
|
|
41
|
+
}();
|
|
42
|
+
describe("Slider component accessibility tests", function () {
|
|
43
|
+
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
44
|
+
var _render, container, results;
|
|
45
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
46
|
+
while (1) switch (_context.prev = _context.next) {
|
|
47
|
+
case 0:
|
|
48
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
49
|
+
helperText: "Helper Text",
|
|
50
|
+
margin: "medium",
|
|
51
|
+
name: "Name",
|
|
52
|
+
size: "medium",
|
|
53
|
+
label: "label",
|
|
54
|
+
step: 10,
|
|
55
|
+
minValue: 0,
|
|
56
|
+
maxValue: 100,
|
|
57
|
+
value: 50,
|
|
58
|
+
showLimitsValues: true,
|
|
59
|
+
showInput: true,
|
|
60
|
+
marks: true
|
|
61
|
+
})), container = _render.container;
|
|
62
|
+
_context.next = 3;
|
|
63
|
+
return (0, _axeHelper.axe)(container);
|
|
64
|
+
case 3:
|
|
65
|
+
results = _context.sent;
|
|
66
|
+
expect(results).toHaveNoViolations();
|
|
67
|
+
case 5:
|
|
68
|
+
case "end":
|
|
69
|
+
return _context.stop();
|
|
70
|
+
}
|
|
71
|
+
}, _callee);
|
|
72
|
+
})));
|
|
73
|
+
it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
74
|
+
var _render2, container, results;
|
|
75
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
76
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
77
|
+
case 0:
|
|
78
|
+
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
79
|
+
helperText: "Helper Text",
|
|
80
|
+
margin: "medium",
|
|
81
|
+
name: "Name",
|
|
82
|
+
size: "medium",
|
|
83
|
+
label: "label",
|
|
84
|
+
step: 10,
|
|
85
|
+
minValue: 0,
|
|
86
|
+
maxValue: 100,
|
|
87
|
+
value: 50,
|
|
88
|
+
showLimitsValues: true,
|
|
89
|
+
showInput: true,
|
|
90
|
+
marks: true,
|
|
91
|
+
disabled: true
|
|
92
|
+
})), container = _render2.container;
|
|
93
|
+
_context2.next = 3;
|
|
94
|
+
return (0, _axeHelper.axe)(container);
|
|
95
|
+
case 3:
|
|
96
|
+
results = _context2.sent;
|
|
97
|
+
expect(results).toHaveNoViolations();
|
|
98
|
+
case 5:
|
|
99
|
+
case "end":
|
|
100
|
+
return _context2.stop();
|
|
101
|
+
}
|
|
102
|
+
}, _callee2);
|
|
103
|
+
})));
|
|
104
|
+
});
|
package/slider/Slider.js
CHANGED
|
@@ -15,12 +15,11 @@ var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
|
|
|
15
15
|
var _variables = require("../common/variables");
|
|
16
16
|
var _utils = require("../common/utils");
|
|
17
17
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
18
|
-
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
19
|
-
var _uuid = require("uuid");
|
|
20
18
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
|
|
21
19
|
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); }
|
|
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 &&
|
|
20
|
+
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; }
|
|
23
21
|
var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
22
|
+
var _navigator;
|
|
24
23
|
var _ref$label = _ref.label,
|
|
25
24
|
label = _ref$label === void 0 ? "" : _ref$label,
|
|
26
25
|
_ref$name = _ref.name,
|
|
@@ -49,6 +48,7 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
49
48
|
margin = _ref.margin,
|
|
50
49
|
_ref$size = _ref.size,
|
|
51
50
|
size = _ref$size === void 0 ? "fillParent" : _ref$size;
|
|
51
|
+
var labelId = "label-".concat((0, _react.useId)());
|
|
52
52
|
var _useState = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : 0),
|
|
53
53
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
54
54
|
innerValue = _useState2[0],
|
|
@@ -58,10 +58,7 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
58
58
|
dragging = _useState4[0],
|
|
59
59
|
setDragging = _useState4[1];
|
|
60
60
|
var colorsTheme = (0, _useTheme["default"])();
|
|
61
|
-
var
|
|
62
|
-
var _useState5 = (0, _react.useState)("label-".concat((0, _uuid.v4)())),
|
|
63
|
-
_useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
|
|
64
|
-
labelId = _useState6[0];
|
|
61
|
+
var isFirefox = ((_navigator = navigator) === null || _navigator === void 0 ? void 0 : _navigator.userAgent.indexOf("Firefox")) !== -1;
|
|
65
62
|
var minLabel = (0, _react.useMemo)(function () {
|
|
66
63
|
return labelFormatCallback ? labelFormatCallback(minValue) : minValue;
|
|
67
64
|
}, [labelFormatCallback, minValue]);
|
|
@@ -69,24 +66,22 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
69
66
|
return labelFormatCallback ? labelFormatCallback(maxValue) : maxValue;
|
|
70
67
|
}, [labelFormatCallback, maxValue]);
|
|
71
68
|
var tickMarks = (0, _react.useMemo)(function () {
|
|
72
|
-
var ticks = [];
|
|
73
69
|
var numberOfMarks = Math.floor(maxValue / step - minValue / step);
|
|
74
|
-
var index = 0;
|
|
75
70
|
var range = maxValue - minValue;
|
|
71
|
+
var ticks = [];
|
|
72
|
+
var index = 0;
|
|
76
73
|
if (marks) {
|
|
77
74
|
while (index <= numberOfMarks) {
|
|
78
75
|
ticks.push( /*#__PURE__*/_react["default"].createElement(TickMark, {
|
|
79
76
|
disabled: disabled,
|
|
80
77
|
stepPosition: step * index / range,
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
stepValue: (value !== null && value !== void 0 ? value : innerValue) / maxValue,
|
|
79
|
+
key: "tickmark-".concat(index, "-").concat(labelId)
|
|
83
80
|
}));
|
|
84
81
|
index++;
|
|
85
82
|
}
|
|
86
83
|
return ticks;
|
|
87
|
-
} else
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
84
|
+
} else return null;
|
|
90
85
|
}, [minValue, maxValue, step, value, innerValue]);
|
|
91
86
|
var handleSliderChange = function handleSliderChange(event) {
|
|
92
87
|
var valueToCheck = event.target.value;
|
|
@@ -96,7 +91,7 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
96
91
|
var handleSliderDragging = function handleSliderDragging() {
|
|
97
92
|
setDragging(true);
|
|
98
93
|
};
|
|
99
|
-
var
|
|
94
|
+
var handleSliderOnChangeCommitted = function handleSliderOnChangeCommitted(event) {
|
|
100
95
|
if (dragging) {
|
|
101
96
|
setDragging(false);
|
|
102
97
|
onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event.target.value);
|
|
@@ -111,7 +106,6 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
111
106
|
onChange === null || onChange === void 0 ? void 0 : onChange(intValue > maxValue ? maxValue : intValue);
|
|
112
107
|
}
|
|
113
108
|
};
|
|
114
|
-
var isFirefox = navigator.userAgent.indexOf("Firefox") !== -1;
|
|
115
109
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
116
110
|
theme: colorsTheme.slider
|
|
117
111
|
}, /*#__PURE__*/_react["default"].createElement(Container, {
|
|
@@ -120,13 +114,10 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
120
114
|
ref: ref
|
|
121
115
|
}, /*#__PURE__*/_react["default"].createElement(Label, {
|
|
122
116
|
id: labelId,
|
|
123
|
-
disabled: disabled
|
|
124
|
-
backgroundType: backgroundType
|
|
117
|
+
disabled: disabled
|
|
125
118
|
}, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
126
|
-
disabled: disabled
|
|
127
|
-
backgroundType: backgroundType
|
|
119
|
+
disabled: disabled
|
|
128
120
|
}, helperText), /*#__PURE__*/_react["default"].createElement(SliderContainer, null, showLimitsValues && /*#__PURE__*/_react["default"].createElement(MinLabelContainer, {
|
|
129
|
-
backgroundType: backgroundType,
|
|
130
121
|
disabled: disabled
|
|
131
122
|
}, minLabel), /*#__PURE__*/_react["default"].createElement(SliderInputContainer, null, /*#__PURE__*/_react["default"].createElement(SliderInput, {
|
|
132
123
|
role: "slider",
|
|
@@ -142,13 +133,11 @@ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
142
133
|
"aria-valuemin": minValue,
|
|
143
134
|
"aria-valuenow": value != null && value >= 0 ? value : innerValue,
|
|
144
135
|
onChange: handleSliderChange,
|
|
145
|
-
onMouseUp:
|
|
146
|
-
onMouseDown: handleSliderDragging
|
|
147
|
-
backgroundType: backgroundType
|
|
136
|
+
onMouseUp: handleSliderOnChangeCommitted,
|
|
137
|
+
onMouseDown: handleSliderDragging
|
|
148
138
|
}), marks && /*#__PURE__*/_react["default"].createElement(MarksContainer, {
|
|
149
139
|
isFirefox: isFirefox
|
|
150
140
|
}, tickMarks)), showLimitsValues && /*#__PURE__*/_react["default"].createElement(MaxLabelContainer, {
|
|
151
|
-
backgroundType: backgroundType,
|
|
152
141
|
disabled: disabled,
|
|
153
142
|
step: step
|
|
154
143
|
}, maxLabel), showInput && /*#__PURE__*/_react["default"].createElement(StyledTextInput, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
@@ -186,8 +175,8 @@ var Container = _styledComponents["default"].div(_templateObject || (_templateOb
|
|
|
186
175
|
}, function (props) {
|
|
187
176
|
return calculateWidth(props.margin, props.size);
|
|
188
177
|
});
|
|
189
|
-
var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n
|
|
190
|
-
return props.disabled ? props.
|
|
178
|
+
var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
179
|
+
return props.disabled ? props.theme.disabledLabelFontColor : props.theme.labelFontColor;
|
|
191
180
|
}, function (props) {
|
|
192
181
|
return props.theme.fontFamily;
|
|
193
182
|
}, function (props) {
|
|
@@ -199,8 +188,8 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
|
|
|
199
188
|
}, function (props) {
|
|
200
189
|
return props.theme.labelLineHeight;
|
|
201
190
|
});
|
|
202
|
-
var HelperText = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n
|
|
203
|
-
return props.disabled ? props.
|
|
191
|
+
var HelperText = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
192
|
+
return props.disabled ? props.theme.disabledHelperTextFontColor : props.theme.helperTextFontColor;
|
|
204
193
|
}, function (props) {
|
|
205
194
|
return props.theme.fontFamily;
|
|
206
195
|
}, function (props) {
|
|
@@ -212,12 +201,12 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
|
|
|
212
201
|
}, function (props) {
|
|
213
202
|
return props.theme.helperTextLineHeight;
|
|
214
203
|
});
|
|
215
|
-
var SliderInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n min-width: 240px;\n height: ", ";\n display: inline-block;\n vertical-align: middle;\n -webkit-appearance: none;\n background-color: ", ";\n background-image: ", ";\n background-repeat: no-repeat;\n background-size: ", ";\n border-radius: 5px;\n cursor: ", ";\n &::-webkit-slider-runnable-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n margin: 0px -8px;\n }\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n ", "\n }\n &:hover {\n ", "\n }\n }\n &::-moz-range-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n }\n &::-moz-range-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n background: ", ";\n transform: scale(1.16667);\n }\n &:hover {\n ", "\n }\n }\n &:focus {\n outline: none;\n &::-webkit-slider-thumb {\n outline: ", "
|
|
204
|
+
var SliderInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n min-width: 240px;\n height: ", ";\n display: inline-block;\n vertical-align: middle;\n -webkit-appearance: none;\n background-color: ", ";\n background-image: ", ";\n background-repeat: no-repeat;\n background-size: ", ";\n border-radius: 5px;\n cursor: ", ";\n &::-webkit-slider-runnable-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n margin: 0px -8px;\n }\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n ", "\n }\n &:hover {\n ", "\n }\n }\n &::-moz-range-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n }\n &::-moz-range-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n background: ", ";\n transform: scale(1.16667);\n }\n &:hover {\n ", "\n }\n }\n &:focus {\n outline: none;\n &::-webkit-slider-thumb {\n outline: ", " auto 1px;\n outline-offset: 2px;\n }\n &::-moz-range-thumb {\n outline: ", " auto 1px;\n outline-offset: 2px;\n }\n }\n"])), function (props) {
|
|
216
205
|
return props.theme.trackLineThickness;
|
|
217
206
|
}, function (props) {
|
|
218
|
-
return props.disabled ? props.
|
|
207
|
+
return props.disabled ? props.theme.disabledTotalLineColor + "61" : props.theme.totalLineColor;
|
|
219
208
|
}, function (props) {
|
|
220
|
-
return props.disabled ?
|
|
209
|
+
return props.disabled ? "linear-gradient(".concat(props.theme.disabledTrackLineColor, ", ").concat(props.theme.disabledTrackLineColor, ")") : "linear-gradient(".concat(props.theme.trackLineColor, ", ").concat(props.theme.trackLineColor, ")");
|
|
221
210
|
}, function (props) {
|
|
222
211
|
return (props.value - props.min) * 100 / (props.max - props.min) + "% 100%";
|
|
223
212
|
}, function (props) {
|
|
@@ -227,35 +216,35 @@ var SliderInput = _styledComponents["default"].input(_templateObject4 || (_templ
|
|
|
227
216
|
}, function (props) {
|
|
228
217
|
return props.theme.thumbWidth;
|
|
229
218
|
}, function (props) {
|
|
230
|
-
return props.disabled ? props.
|
|
219
|
+
return props.disabled ? props.theme.disabledThumbBackgroundColor : props.theme.thumbBackgroundColor;
|
|
231
220
|
}, function (props) {
|
|
232
221
|
if (!props.disabled) {
|
|
233
|
-
return "\n background: ".concat(props.
|
|
222
|
+
return "\n background: ".concat(props.theme.activeThumbBackgroundColor, ";\n transform: scale(1.16667);");
|
|
234
223
|
}
|
|
235
224
|
}, function (props) {
|
|
236
225
|
if (!props.disabled) {
|
|
237
|
-
return "height: ".concat(props.theme.hoverThumbHeight, ";\n width: ").concat(props.theme.hoverThumbWidth, ";\n transform: scale(1.16667);\n transform-origin: center center;\n background: ").concat(props.
|
|
226
|
+
return "height: ".concat(props.theme.hoverThumbHeight, ";\n width: ").concat(props.theme.hoverThumbWidth, ";\n transform: scale(1.16667);\n transform-origin: center center;\n background: ").concat(props.theme.hoverThumbBackgroundColor, ";");
|
|
238
227
|
}
|
|
239
228
|
}, function (props) {
|
|
240
229
|
return props.theme.thumbHeight;
|
|
241
230
|
}, function (props) {
|
|
242
231
|
return props.theme.thumbWidth;
|
|
243
232
|
}, function (props) {
|
|
244
|
-
return props.disabled ? props.
|
|
233
|
+
return props.disabled ? props.theme.disabledThumbBackgroundColor : props.theme.thumbBackgroundColor;
|
|
245
234
|
}, function (props) {
|
|
246
|
-
return props.
|
|
235
|
+
return props.theme.activeThumbBackgroundColor;
|
|
247
236
|
}, function (props) {
|
|
248
237
|
if (!props.disabled) {
|
|
249
|
-
return "height: ".concat(props.theme.hoverThumbHeight, ";\n width: ").concat(props.theme.hoverThumbWidth, ";\n transform: scale(1.16667);\n transform-origin: center center;\n background: ").concat(props.
|
|
238
|
+
return "height: ".concat(props.theme.hoverThumbHeight, ";\n width: ").concat(props.theme.hoverThumbWidth, ";\n transform: scale(1.16667);\n transform-origin: center center;\n background: ").concat(props.theme.hoverThumbBackgroundColor, ";");
|
|
250
239
|
}
|
|
251
240
|
}, function (props) {
|
|
252
|
-
return props.disabled ? props.
|
|
241
|
+
return props.disabled ? props.theme.disabledFocusColor : props.theme.focusColor;
|
|
253
242
|
}, function (props) {
|
|
254
|
-
return props.disabled ? props.
|
|
243
|
+
return props.disabled ? props.theme.disabledFocusColor : props.theme.focusColor;
|
|
255
244
|
});
|
|
256
245
|
var SliderContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 48px;\n align-items: center;\n"])));
|
|
257
246
|
var LimitLabelContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n white-space: nowrap;\n"])), function (props) {
|
|
258
|
-
return props.disabled ? props.theme.disabledLimitValuesFontColor : props.
|
|
247
|
+
return props.disabled ? props.theme.disabledLimitValuesFontColor : props.theme.limitValuesFontColor;
|
|
259
248
|
}, function (props) {
|
|
260
249
|
return props.theme.fontFamily;
|
|
261
250
|
}, function (props) {
|
|
@@ -278,7 +267,7 @@ var MarksContainer = _styledComponents["default"].div(_templateObject10 || (_tem
|
|
|
278
267
|
return props.isFirefox ? getFireFoxStyles() : getChromeStyles();
|
|
279
268
|
});
|
|
280
269
|
var TickMark = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n background: ", ";\n height: ", ";\n width: ", ";\n border-radius: 18px;\n left: ", ";\n z-index: ", ";\n"])), function (props) {
|
|
281
|
-
return props.disabled ? props.
|
|
270
|
+
return props.disabled ? props.theme.disabledTickBackgroundColor : props.theme.tickBackgroundColor;
|
|
282
271
|
}, function (props) {
|
|
283
272
|
return props.theme.tickHeight;
|
|
284
273
|
}, function (props) {
|