@dxc-technology/halstack-react 0.0.0-e1386cf → 0.0.0-e19ca5f
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 +5 -22
- package/HalstackContext.d.ts +1240 -6
- package/HalstackContext.js +122 -106
- package/README.md +47 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +44 -118
- package/accordion/Accordion.stories.tsx +82 -147
- package/accordion/Accordion.test.js +19 -34
- package/accordion/types.d.ts +6 -18
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +2 -2
- package/accordion-group/AccordionGroup.js +29 -77
- package/accordion-group/AccordionGroup.stories.tsx +78 -77
- package/accordion-group/AccordionGroup.test.js +44 -72
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +7 -19
- package/action-icon/ActionIcon.accessibility.test.js +63 -0
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +48 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.accessibility.test.js +95 -0
- package/alert/Alert.js +36 -126
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +142 -42
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/bleed/Bleed.js +13 -21
- package/bleed/Bleed.stories.tsx +1 -0
- package/bleed/types.d.ts +2 -2
- package/box/Box.accessibility.test.js +33 -0
- package/box/Box.d.ts +1 -1
- package/box/Box.js +18 -59
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -15
- 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/bulleted-list/BulletedList.accessibility.test.js +119 -0
- package/bulleted-list/BulletedList.js +22 -53
- package/bulleted-list/BulletedList.stories.tsx +8 -93
- package/bulleted-list/types.d.ts +32 -5
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +71 -106
- package/button/Button.stories.tsx +143 -101
- package/button/Button.test.js +20 -17
- package/button/types.d.ts +9 -5
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.d.ts +1 -1
- package/card/Card.js +49 -89
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -12
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.js +90 -125
- package/checkbox/Checkbox.stories.tsx +68 -54
- package/checkbox/Checkbox.test.js +108 -64
- package/checkbox/types.d.ts +8 -4
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +45 -80
- package/chip/Chip.stories.tsx +107 -27
- package/chip/Chip.test.js +18 -33
- package/chip/types.d.ts +4 -4
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +6 -12
- package/common/variables.d.ts +1392 -0
- package/common/variables.js +969 -1213
- 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/contextual-menu/ContextualMenu.accessibility.test.js +97 -0
- package/contextual-menu/ContextualMenu.d.ts +5 -0
- package/contextual-menu/ContextualMenu.js +88 -0
- package/contextual-menu/ContextualMenu.stories.tsx +232 -0
- package/contextual-menu/ContextualMenu.test.js +205 -0
- package/contextual-menu/GroupItem.d.ts +4 -0
- package/contextual-menu/GroupItem.js +67 -0
- package/contextual-menu/ItemAction.d.ts +4 -0
- package/contextual-menu/ItemAction.js +51 -0
- package/contextual-menu/MenuItem.d.ts +4 -0
- package/contextual-menu/MenuItem.js +29 -0
- package/contextual-menu/SingleItem.d.ts +4 -0
- package/contextual-menu/SingleItem.js +38 -0
- package/contextual-menu/types.d.ts +58 -0
- package/contextual-menu/types.js +5 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.accessibility.test.js +228 -0
- package/date-input/DateInput.js +149 -299
- package/date-input/DateInput.stories.tsx +210 -56
- package/date-input/DateInput.test.js +694 -429
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +121 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +72 -15
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +51 -120
- package/dialog/Dialog.stories.tsx +316 -212
- package/dialog/Dialog.test.js +270 -33
- package/dialog/types.d.ts +18 -26
- package/divider/Divider.accessibility.test.js +33 -0
- package/divider/Divider.d.ts +4 -0
- package/divider/Divider.js +36 -0
- package/divider/Divider.stories.tsx +223 -0
- package/divider/Divider.test.js +38 -0
- package/divider/types.d.ts +21 -0
- package/divider/types.js +5 -0
- package/dropdown/Dropdown.accessibility.test.js +180 -0
- package/dropdown/Dropdown.js +66 -136
- package/dropdown/Dropdown.stories.tsx +209 -94
- package/dropdown/Dropdown.test.js +404 -390
- package/dropdown/DropdownMenu.js +23 -40
- package/dropdown/DropdownMenuItem.js +17 -38
- package/dropdown/types.d.ts +20 -24
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.js +184 -292
- package/file-input/FileInput.stories.tsx +86 -3
- package/file-input/FileInput.test.js +279 -395
- package/file-input/FileItem.js +31 -67
- package/file-input/types.d.ts +10 -10
- package/flex/Flex.js +27 -39
- package/flex/Flex.stories.tsx +35 -26
- package/flex/types.d.ts +74 -9
- package/footer/Footer.accessibility.test.js +125 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +73 -118
- package/footer/Footer.stories.tsx +94 -23
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +53 -22
- package/footer/types.d.ts +26 -28
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/grid/types.js +5 -0
- package/header/Header.accessibility.test.js +93 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +55 -150
- package/header/Header.stories.tsx +130 -35
- package/header/Header.test.js +13 -26
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +3 -13
- package/header/types.d.ts +7 -22
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/icon/Icon.accessibility.test.js +30 -0
- package/icon/Icon.d.ts +4 -0
- package/icon/Icon.js +33 -0
- package/icon/Icon.stories.tsx +28 -0
- package/icon/types.d.ts +4 -0
- package/icon/types.js +5 -0
- package/image/Image.accessibility.test.js +56 -0
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +129 -0
- package/image/types.d.ts +72 -0
- package/image/types.js +5 -0
- package/inset/Inset.js +13 -21
- package/inset/Inset.stories.tsx +2 -1
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +5 -5
- package/layout/ApplicationLayout.js +36 -70
- package/layout/ApplicationLayout.stories.tsx +1 -1
- package/layout/Icons.d.ts +7 -5
- package/layout/Icons.js +41 -59
- package/layout/types.d.ts +5 -6
- package/link/Link.accessibility.test.js +108 -0
- package/link/Link.js +31 -50
- package/link/Link.stories.tsx +64 -4
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +11 -5
- package/main.js +54 -59
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +7 -0
- package/{tabs-nav → nav-tabs}/NavTabs.js +25 -57
- package/nav-tabs/NavTabs.stories.tsx +279 -0
- package/nav-tabs/NavTabs.test.js +77 -0
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- package/nav-tabs/Tab.js +117 -0
- package/{tabs-nav → nav-tabs}/types.d.ts +15 -16
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.accessibility.test.js +228 -0
- package/number-input/NumberInput.js +46 -36
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +860 -413
- package/number-input/NumberInputContext.d.ts +3 -4
- package/number-input/NumberInputContext.js +3 -14
- package/number-input/types.d.ts +17 -5
- package/package.json +43 -46
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +34 -67
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +252 -225
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/paragraph/Paragraph.d.ts +3 -4
- package/paragraph/Paragraph.js +6 -22
- package/paragraph/Paragraph.stories.tsx +0 -17
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +58 -127
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +158 -141
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +28 -58
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
- package/progress-bar/ProgressBar.test.js +36 -53
- package/progress-bar/types.d.ts +4 -3
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.js +4 -27
- package/quick-nav/QuickNav.stories.tsx +15 -1
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +31 -63
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +46 -93
- package/radio-group/RadioGroup.stories.tsx +131 -18
- package/radio-group/RadioGroup.test.js +505 -471
- package/radio-group/types.d.ts +8 -8
- package/resultset-table/Icons.d.ts +7 -0
- package/{text-input → resultset-table}/Icons.js +13 -26
- package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
- package/resultset-table/ResultsetTable.d.ts +7 -0
- package/resultset-table/ResultsetTable.js +171 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +168 -30
- package/resultset-table/ResultsetTable.test.js +381 -0
- package/{resultsetTable → resultset-table}/types.d.ts +44 -11
- package/resultset-table/types.js +5 -0
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +43 -86
- package/select/Option.js +35 -56
- package/select/Select.accessibility.test.js +228 -0
- package/select/Select.js +140 -183
- package/select/Select.stories.tsx +496 -204
- package/select/Select.test.js +1949 -1917
- package/select/types.d.ts +17 -18
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.d.ts +2 -2
- package/sidenav/Sidenav.js +90 -157
- package/sidenav/Sidenav.stories.tsx +160 -63
- package/sidenav/Sidenav.test.js +3 -10
- package/{layout → sidenav}/SidenavContext.d.ts +1 -1
- package/{layout → sidenav}/SidenavContext.js +3 -9
- package/sidenav/types.d.ts +33 -30
- package/slider/Slider.accessibility.test.js +104 -0
- package/slider/Slider.js +75 -132
- package/slider/Slider.test.js +108 -104
- package/slider/types.d.ts +4 -4
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +34 -74
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
- package/spinner/Spinner.test.js +26 -35
- package/spinner/types.d.ts +3 -3
- package/status-light/StatusLight.accessibility.test.js +157 -0
- package/status-light/StatusLight.d.ts +4 -0
- package/status-light/StatusLight.js +51 -0
- package/status-light/StatusLight.stories.tsx +74 -0
- package/status-light/StatusLight.test.js +25 -0
- package/status-light/types.d.ts +17 -0
- package/status-light/types.js +5 -0
- package/switch/Switch.accessibility.test.js +98 -0
- package/switch/Switch.js +52 -100
- package/switch/Switch.stories.tsx +45 -34
- package/switch/Switch.test.js +52 -97
- package/switch/types.d.ts +4 -4
- package/table/DropdownTheme.js +62 -0
- package/table/Table.accessibility.test.js +93 -0
- package/table/Table.d.ts +6 -2
- package/table/Table.js +78 -35
- package/table/Table.stories.tsx +663 -0
- package/table/Table.test.js +94 -7
- package/table/types.d.ts +34 -6
- package/tabs/Tab.js +28 -46
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +69 -163
- package/tabs/Tabs.stories.tsx +50 -6
- package/tabs/Tabs.test.js +61 -136
- package/tabs/types.d.ts +21 -21
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +34 -66
- package/tag/Tag.stories.tsx +18 -8
- package/tag/Tag.test.js +18 -37
- package/tag/types.d.ts +9 -9
- package/text-input/Suggestion.js +35 -25
- package/text-input/Suggestions.d.ts +1 -1
- package/text-input/Suggestions.js +30 -70
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +229 -335
- package/text-input/TextInput.stories.tsx +155 -162
- package/text-input/TextInput.test.js +1289 -1157
- package/text-input/types.d.ts +25 -17
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +71 -113
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +152 -183
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +94 -107
- package/toggle-group/ToggleGroup.stories.tsx +52 -7
- package/toggle-group/ToggleGroup.test.js +69 -88
- package/toggle-group/types.d.ts +28 -19
- package/typography/Typography.accessibility.test.js +339 -0
- package/typography/Typography.d.ts +2 -2
- package/typography/Typography.js +15 -123
- package/typography/Typography.stories.tsx +1 -1
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +1144 -1
- package/useTheme.js +2 -9
- package/useTranslatedLabels.d.ts +84 -1
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +124 -0
- package/wizard/Wizard.accessibility.test.js +55 -0
- package/wizard/Wizard.js +29 -75
- package/wizard/Wizard.stories.tsx +39 -0
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +10 -11
- package/card/ice-cream.jpg +0 -0
- package/common/OpenSans.css +0 -81
- package/common/RequiredComponent.js +0 -32
- 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/number-input/numberInputContextTypes.d.ts +0 -19
- package/paginator/Icons.js +0 -66
- package/resultsetTable/ResultsetTable.d.ts +0 -4
- package/resultsetTable/ResultsetTable.js +0 -252
- package/resultsetTable/ResultsetTable.test.js +0 -348
- package/select/Icons.d.ts +0 -10
- package/select/Icons.js +0 -93
- package/slider/Slider.stories.tsx +0 -183
- package/table/Table.stories.jsx +0 -277
- package/tabs-nav/NavTabs.d.ts +0 -8
- package/tabs-nav/NavTabs.stories.tsx +0 -170
- package/tabs-nav/NavTabs.test.js +0 -82
- package/tabs-nav/Tab.js +0 -130
- package/text-input/Icons.d.ts +0 -8
- package/textarea/Textarea.stories.jsx +0 -157
- /package/{resultsetTable → action-icon}/types.js +0 -0
- /package/{tabs-nav → breadcrumbs}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → container/types.js} +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import DxcSidenav from "./Sidenav";
|
|
3
|
+
import DxcSelect from "../select/Select";
|
|
4
|
+
import DxcInset from "../inset/Inset";
|
|
3
5
|
import Title from "../../.storybook/components/Title";
|
|
4
6
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
7
|
import { userEvent, within } from "@storybook/testing-library";
|
|
8
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
6
9
|
|
|
7
10
|
export default {
|
|
8
11
|
title: "Sidenav",
|
|
@@ -10,9 +13,25 @@ export default {
|
|
|
10
13
|
};
|
|
11
14
|
|
|
12
15
|
const iconSVG = (
|
|
13
|
-
<svg
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
<svg
|
|
17
|
+
version="1.1"
|
|
18
|
+
x="0px"
|
|
19
|
+
y="0px"
|
|
20
|
+
width="438.536px"
|
|
21
|
+
height="438.536px"
|
|
22
|
+
viewBox="0 0 438.536 438.536"
|
|
23
|
+
fill="currentColor"
|
|
24
|
+
>
|
|
25
|
+
<g>
|
|
26
|
+
<path
|
|
27
|
+
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
|
|
28
|
+
C8.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
|
|
29
|
+
h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
|
|
30
|
+
C438.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
|
|
31
|
+
c0-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
|
|
32
|
+
c-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"
|
|
33
|
+
/>
|
|
34
|
+
</g>
|
|
16
35
|
</svg>
|
|
17
36
|
);
|
|
18
37
|
|
|
@@ -20,11 +39,17 @@ const TitleComponent = () => {
|
|
|
20
39
|
return <DxcSidenav.Title>Dxc technology</DxcSidenav.Title>;
|
|
21
40
|
};
|
|
22
41
|
|
|
42
|
+
const opinionatedTheme = {
|
|
43
|
+
sidenav: {
|
|
44
|
+
baseColor: "#f2f2f2",
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
|
|
23
48
|
export const Chromatic = () => (
|
|
24
49
|
<>
|
|
25
50
|
<ExampleContainer>
|
|
26
51
|
<Title title="Default sidenav" theme="light" level={4} />
|
|
27
|
-
<DxcSidenav title={<
|
|
52
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
28
53
|
<DxcSidenav.Section>
|
|
29
54
|
<p>
|
|
30
55
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ullamcorper consectetur mollis. Suspendisse
|
|
@@ -41,12 +66,14 @@ export const Chromatic = () => (
|
|
|
41
66
|
</DxcSidenav.Group>
|
|
42
67
|
</DxcSidenav.Section>
|
|
43
68
|
<DxcSidenav.Section>
|
|
44
|
-
<DxcSidenav.Group collapsable={true} title="Section Group" icon=
|
|
69
|
+
<DxcSidenav.Group collapsable={true} title="Section Group" icon="filled_bottom_app_bar">
|
|
45
70
|
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
46
71
|
<DxcSidenav.Link icon={iconSVG}>Group Link</DxcSidenav.Link>
|
|
47
72
|
</DxcSidenav.Group>
|
|
48
|
-
<DxcSidenav.Link icon=
|
|
49
|
-
|
|
73
|
+
<DxcSidenav.Link icon="filled_bottom_app_bar" newWindow>
|
|
74
|
+
Single Link
|
|
75
|
+
</DxcSidenav.Link>
|
|
76
|
+
<DxcSidenav.Link newWindow>Single Link</DxcSidenav.Link>
|
|
50
77
|
<DxcSidenav.Group collapsable={false} title="Section Group">
|
|
51
78
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
52
79
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
@@ -55,53 +82,78 @@ export const Chromatic = () => (
|
|
|
55
82
|
</DxcSidenav.Section>
|
|
56
83
|
</DxcSidenav>
|
|
57
84
|
</ExampleContainer>
|
|
85
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
86
|
+
<Title title="Focused options sidenav" theme="light" level={4} />
|
|
87
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
88
|
+
<DxcSidenav.Section>
|
|
89
|
+
<p>
|
|
90
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ullamcorper consectetur mollis. Suspendisse
|
|
91
|
+
vitae lacinia libero.
|
|
92
|
+
</p>
|
|
93
|
+
</DxcSidenav.Section>
|
|
94
|
+
<DxcSidenav.Section>
|
|
95
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
96
|
+
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
97
|
+
<DxcSidenav.Link icon="filled_bottom_app_bar">Group Link</DxcSidenav.Link>
|
|
98
|
+
</DxcSidenav.Group>
|
|
99
|
+
</DxcSidenav.Section>
|
|
100
|
+
<DxcSidenav.Section>
|
|
101
|
+
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
102
|
+
<DxcSidenav.Link selected icon={iconSVG}>
|
|
103
|
+
Group Link
|
|
104
|
+
</DxcSidenav.Link>
|
|
105
|
+
</DxcSidenav.Group>
|
|
106
|
+
<DxcSidenav.Group collapsable={false} title="Section Group">
|
|
107
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
108
|
+
</DxcSidenav.Group>
|
|
109
|
+
</DxcSidenav.Section>
|
|
110
|
+
</DxcSidenav>
|
|
111
|
+
</ExampleContainer>
|
|
112
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
113
|
+
<ExampleContainer>
|
|
114
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
115
|
+
<DxcSidenav title={<TitleComponent />}>
|
|
116
|
+
<DxcSidenav.Section>
|
|
117
|
+
<p>
|
|
118
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ullamcorper consectetur mollis. Suspendisse
|
|
119
|
+
vitae lacinia libero.
|
|
120
|
+
</p>
|
|
121
|
+
</DxcSidenav.Section>
|
|
122
|
+
<DxcSidenav.Section>
|
|
123
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
124
|
+
<DxcSidenav.Group collapsable={false} title="Single Group" icon={iconSVG}>
|
|
125
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
126
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
127
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
128
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
129
|
+
</DxcSidenav.Group>
|
|
130
|
+
</DxcSidenav.Section>
|
|
131
|
+
<DxcSidenav.Section>
|
|
132
|
+
<DxcSidenav.Group collapsable={true} title="Section Group" icon={iconSVG}>
|
|
133
|
+
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
134
|
+
<DxcSidenav.Link icon={iconSVG}>Group Link</DxcSidenav.Link>
|
|
135
|
+
</DxcSidenav.Group>
|
|
136
|
+
<DxcSidenav.Link icon={iconSVG}>Single Link</DxcSidenav.Link>
|
|
137
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
138
|
+
<DxcSidenav.Group collapsable={false} title="Section Group">
|
|
139
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
140
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
141
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
142
|
+
</DxcSidenav.Group>
|
|
143
|
+
</DxcSidenav.Section>
|
|
144
|
+
</DxcSidenav>
|
|
145
|
+
</HalstackProvider>
|
|
146
|
+
</ExampleContainer>
|
|
58
147
|
</>
|
|
59
148
|
);
|
|
60
149
|
|
|
61
|
-
|
|
62
|
-
<ExampleContainer pseudoState="pseudo-focus">
|
|
63
|
-
<Title title="Default sidenav" theme="light" level={4} />
|
|
64
|
-
<DxcSidenav title={<TitleComponent />}>
|
|
65
|
-
<DxcSidenav.Section>
|
|
66
|
-
<p>
|
|
67
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ullamcorper consectetur mollis. Suspendisse vitae
|
|
68
|
-
lacinia libero.
|
|
69
|
-
</p>
|
|
70
|
-
</DxcSidenav.Section>
|
|
71
|
-
<DxcSidenav.Section>
|
|
72
|
-
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
73
|
-
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
74
|
-
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
75
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
76
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
77
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
78
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
79
|
-
</DxcSidenav.Group>
|
|
80
|
-
</DxcSidenav.Section>
|
|
81
|
-
<DxcSidenav.Section>
|
|
82
|
-
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
83
|
-
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
84
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
85
|
-
</DxcSidenav.Group>
|
|
86
|
-
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
87
|
-
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
88
|
-
<DxcSidenav.Group collapsable={false} title="Section Group">
|
|
89
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
90
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
91
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
92
|
-
</DxcSidenav.Group>
|
|
93
|
-
</DxcSidenav.Section>
|
|
94
|
-
</DxcSidenav>
|
|
95
|
-
</ExampleContainer>
|
|
96
|
-
);
|
|
97
|
-
|
|
98
|
-
const CollapsedGroup = () => (
|
|
150
|
+
const CollapsedGroupSidenav = () => (
|
|
99
151
|
<>
|
|
100
152
|
<ExampleContainer>
|
|
101
|
-
<Title title="
|
|
102
|
-
<DxcSidenav title={<
|
|
153
|
+
<Title title="Collapsed group with a selected link" theme="light" level={4} />
|
|
154
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
103
155
|
<DxcSidenav.Section>
|
|
104
|
-
<DxcSidenav.Group collapsable={true} title="
|
|
156
|
+
<DxcSidenav.Group collapsable={true} title="Collapsed Group" icon={iconSVG}>
|
|
105
157
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
106
158
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
107
159
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
@@ -109,11 +161,11 @@ const CollapsedGroup = () => (
|
|
|
109
161
|
</DxcSidenav.Group>
|
|
110
162
|
</DxcSidenav.Section>
|
|
111
163
|
<DxcSidenav.Section>
|
|
112
|
-
<DxcSidenav.Group collapsable={true} title="
|
|
113
|
-
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
164
|
+
<DxcSidenav.Group collapsable={true} title="Collapsed Group">
|
|
114
165
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
166
|
+
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
115
167
|
</DxcSidenav.Group>
|
|
116
|
-
<DxcSidenav.Group collapsable={
|
|
168
|
+
<DxcSidenav.Group collapsable={true} title="Section Group">
|
|
117
169
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
118
170
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
119
171
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
@@ -124,14 +176,14 @@ const CollapsedGroup = () => (
|
|
|
124
176
|
</>
|
|
125
177
|
);
|
|
126
178
|
|
|
127
|
-
const
|
|
179
|
+
const HoveredGroupSidenav = () => (
|
|
128
180
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
129
|
-
<Title title="
|
|
130
|
-
<DxcSidenav title={<
|
|
181
|
+
<Title title="Hover state for groups (selected and not)" theme="light" level={4} />
|
|
182
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
131
183
|
<DxcSidenav.Section>
|
|
132
184
|
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
133
185
|
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
134
|
-
<DxcSidenav.Group collapsable={true} title="
|
|
186
|
+
<DxcSidenav.Group collapsable={true} title="Collapsed Group">
|
|
135
187
|
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
136
188
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
137
189
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
@@ -145,36 +197,81 @@ const HoverSidenav = () => (
|
|
|
145
197
|
</DxcSidenav.Group>
|
|
146
198
|
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
147
199
|
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
148
|
-
<DxcSidenav.Group collapsable={true} title="
|
|
200
|
+
<DxcSidenav.Group collapsable={true} title="Collapsed Group">
|
|
201
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
202
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
203
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
204
|
+
</DxcSidenav.Group>
|
|
205
|
+
<DxcSidenav.Group collapsable={true} title="Collapsed Group">
|
|
149
206
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
150
207
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
151
208
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
152
209
|
</DxcSidenav.Group>
|
|
210
|
+
</DxcSidenav.Section>
|
|
211
|
+
</DxcSidenav>
|
|
212
|
+
</ExampleContainer>
|
|
213
|
+
);
|
|
153
214
|
|
|
154
|
-
|
|
215
|
+
const ActiveGroupSidenav = () => (
|
|
216
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
217
|
+
<Title title="Active state for groups (selected and not)" theme="light" level={4} />
|
|
218
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
219
|
+
<DxcSidenav.Section>
|
|
220
|
+
<DxcInset space="1rem">
|
|
221
|
+
<DxcSelect
|
|
222
|
+
defaultValue="1"
|
|
223
|
+
options={[
|
|
224
|
+
{ label: "v1.0.0", value: "1" },
|
|
225
|
+
{ label: "v2.0.0", value: "2" },
|
|
226
|
+
{ label: "v3.0.0", value: "3" },
|
|
227
|
+
{ label: "v4.0.0", value: "4" },
|
|
228
|
+
]}
|
|
229
|
+
size="fillParent"
|
|
230
|
+
/>
|
|
231
|
+
</DxcInset>
|
|
232
|
+
</DxcSidenav.Section>
|
|
233
|
+
<DxcSidenav.Section>
|
|
234
|
+
<DxcSidenav.Group collapsable={true} title="Collapsed Group">
|
|
235
|
+
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
155
236
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
156
237
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
157
238
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
158
239
|
</DxcSidenav.Group>
|
|
159
240
|
</DxcSidenav.Section>
|
|
241
|
+
<DxcSidenav.Section>
|
|
242
|
+
<DxcSidenav.Group collapsable={true} title="Not Collapsed Group">
|
|
243
|
+
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
244
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
245
|
+
</DxcSidenav.Group>
|
|
246
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
247
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
248
|
+
</DxcSidenav.Section>
|
|
160
249
|
</DxcSidenav>
|
|
161
250
|
</ExampleContainer>
|
|
162
251
|
);
|
|
163
252
|
|
|
164
|
-
export const
|
|
165
|
-
|
|
253
|
+
export const CollapsableGroup = CollapsedGroupSidenav.bind({});
|
|
254
|
+
CollapsableGroup.play = async ({ canvasElement }) => {
|
|
166
255
|
const canvas = within(canvasElement);
|
|
167
|
-
const collapsableGroups = canvas.getAllByText("
|
|
256
|
+
const collapsableGroups = canvas.getAllByText("Collapsed Group");
|
|
168
257
|
collapsableGroups.forEach((group) => {
|
|
169
258
|
userEvent.click(group);
|
|
170
259
|
});
|
|
171
260
|
};
|
|
172
261
|
|
|
173
|
-
export const
|
|
174
|
-
|
|
262
|
+
export const CollapsedHoverGroup = HoveredGroupSidenav.bind({});
|
|
263
|
+
CollapsedHoverGroup.play = async ({ canvasElement }) => {
|
|
175
264
|
const canvas = within(canvasElement);
|
|
176
|
-
const collapsableGroups = canvas.getAllByText("
|
|
265
|
+
const collapsableGroups = canvas.getAllByText("Collapsed Group");
|
|
177
266
|
collapsableGroups.forEach((group) => {
|
|
178
267
|
userEvent.click(group);
|
|
179
268
|
});
|
|
269
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
export const CollapsedActiveGroup = ActiveGroupSidenav.bind({});
|
|
273
|
+
CollapsedActiveGroup.play = async ({ canvasElement }) => {
|
|
274
|
+
const canvas = within(canvasElement);
|
|
275
|
+
const collapsableGroups = canvas.getAllByText("Collapsed Group");
|
|
276
|
+
userEvent.click(collapsableGroups[0]);
|
|
180
277
|
};
|
package/sidenav/Sidenav.test.js
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
6
|
var _Sidenav = _interopRequireDefault(require("./Sidenav.tsx"));
|
|
10
|
-
|
|
11
7
|
describe("Sidenav component tests", function () {
|
|
12
8
|
test("Sidenav renders anchors and Section correctly", function () {
|
|
13
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, {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
href: "#"
|
|
11
|
+
}, "Link")))),
|
|
12
|
+
getByText = _render.getByText;
|
|
18
13
|
expect(getByText("nav-content-test")).toBeTruthy();
|
|
19
14
|
var link = getByText("Link");
|
|
20
15
|
expect(link.closest("a").getAttribute("href")).toBe("#");
|
|
@@ -36,9 +31,7 @@ describe("Sidenav component tests", function () {
|
|
|
36
31
|
}, "Lorem ipsum")))));
|
|
37
32
|
expect(sidenav.getByText("Collapsable")).toBeTruthy();
|
|
38
33
|
expect(sidenav.getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("true");
|
|
39
|
-
|
|
40
34
|
_react2.fireEvent.click(sidenav.getByText("Collapsable"));
|
|
41
|
-
|
|
42
35
|
expect(sidenav.getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
|
|
43
36
|
});
|
|
44
37
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
2
|
+
type SidenavContextType = (isSidenavVisible: boolean) => void;
|
|
3
3
|
export declare const SidenavContextProvider: import("react").Provider<SidenavContextType>;
|
|
4
4
|
export declare const useResponsiveSidenavVisibility: () => SidenavContextType;
|
|
5
5
|
export {};
|
|
@@ -4,16 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useResponsiveSidenavVisibility = exports.SidenavContextProvider = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var SidenavContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
11
|
-
var SidenavContextProvider = SidenavContext.Provider;
|
|
12
|
-
exports.
|
|
13
|
-
|
|
14
|
-
var useResponsiveSidenavVisibility = function useResponsiveSidenavVisibility() {
|
|
9
|
+
var SidenavContextProvider = exports.SidenavContextProvider = SidenavContext.Provider;
|
|
10
|
+
var useResponsiveSidenavVisibility = exports.useResponsiveSidenavVisibility = function useResponsiveSidenavVisibility() {
|
|
15
11
|
var changeResponsiveSidenavVisibility = (0, _react.useContext)(SidenavContext);
|
|
16
12
|
return changeResponsiveSidenavVisibility;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
exports.useResponsiveSidenavVisibility = useResponsiveSidenavVisibility;
|
|
13
|
+
};
|
package/sidenav/types.d.ts
CHANGED
|
@@ -1,50 +1,37 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* The area inside the sidenav. This area can be used to render the content inside the sidenav.
|
|
6
|
-
*/
|
|
7
|
-
children: React.ReactNode;
|
|
8
|
-
/**
|
|
9
|
-
* The area assigned to render the sidenav title. It is highly recommended to use the sidenav title.
|
|
10
|
-
*/
|
|
11
|
-
title?: React.ReactNode;
|
|
12
|
-
};
|
|
13
|
-
export declare type SidenavTitlePropsType = {
|
|
2
|
+
type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
3
|
+
export type SidenavTitlePropsType = {
|
|
14
4
|
/**
|
|
15
5
|
* The area inside the sidenav title. This area can be used to render custom content.
|
|
16
6
|
*/
|
|
17
7
|
children: React.ReactNode;
|
|
18
8
|
};
|
|
19
|
-
export
|
|
9
|
+
export type SidenavSectionPropsType = {
|
|
20
10
|
/**
|
|
21
11
|
* The area inside the sidenav section. This area can be used to render sidenav groups, links and custom content.
|
|
22
12
|
*/
|
|
23
13
|
children: React.ReactNode;
|
|
24
14
|
};
|
|
25
|
-
export
|
|
26
|
-
/**
|
|
27
|
-
* The area inside the sidenav group. This area can be used to render sidenav links.
|
|
28
|
-
*/
|
|
29
|
-
children: React.ReactNode;
|
|
15
|
+
export type SidenavGroupPropsType = {
|
|
30
16
|
/**
|
|
31
17
|
* The title of the sidenav group.
|
|
32
18
|
*/
|
|
33
19
|
title?: string;
|
|
34
20
|
/**
|
|
35
|
-
* If true the sidenav group
|
|
21
|
+
* If true, the sidenav group will be a button that will allow you to collapse the links contained within it.
|
|
22
|
+
* In addition, if it's collapsed and contains the currently selected link, the group title will also be marked as selected.
|
|
36
23
|
*/
|
|
37
24
|
collapsable?: boolean;
|
|
38
25
|
/**
|
|
39
|
-
*
|
|
26
|
+
* Material Symbol name or SVG icon to be displayed next to the title of the group.
|
|
40
27
|
*/
|
|
41
28
|
icon?: string | SVG;
|
|
42
|
-
};
|
|
43
|
-
export declare type SidenavLinkPropsType = {
|
|
44
29
|
/**
|
|
45
|
-
*
|
|
30
|
+
* The area inside the sidenav group. This area can be used to render sidenav links.
|
|
46
31
|
*/
|
|
47
|
-
|
|
32
|
+
children: React.ReactNode;
|
|
33
|
+
};
|
|
34
|
+
export type SidenavLinkPropsType = {
|
|
48
35
|
/**
|
|
49
36
|
* Page to be opened when the user clicks on the link.
|
|
50
37
|
*/
|
|
@@ -54,20 +41,36 @@ export declare type SidenavLinkPropsType = {
|
|
|
54
41
|
*/
|
|
55
42
|
newWindow?: boolean;
|
|
56
43
|
/**
|
|
57
|
-
*
|
|
44
|
+
* The Material symbol or SVG element used as the icon that will be placed to the left of the link text.
|
|
58
45
|
*/
|
|
59
46
|
icon?: string | SVG;
|
|
60
47
|
/**
|
|
61
|
-
* If true, the link will be marked as selected.
|
|
48
|
+
* If true, the link will be marked as selected. Moreover, in that same case,
|
|
49
|
+
* if it is contained within a collapsed group, and consequently, the currently selected link is not visible,
|
|
50
|
+
* the group title will appear as selected too.
|
|
62
51
|
*/
|
|
63
52
|
selected?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* This function will be called when the user clicks the link and the event will be passed to this function.
|
|
55
|
+
*/
|
|
56
|
+
onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;
|
|
64
57
|
/**
|
|
65
58
|
* The area inside the sidenav link.
|
|
66
59
|
*/
|
|
67
|
-
children:
|
|
60
|
+
children: React.ReactNode;
|
|
61
|
+
/**
|
|
62
|
+
* Value of the tabindex.
|
|
63
|
+
*/
|
|
64
|
+
tabIndex?: number;
|
|
65
|
+
};
|
|
66
|
+
type Props = {
|
|
67
|
+
/**
|
|
68
|
+
* The area assigned to render the sidenav title. It is highly recommended to use the sidenav title.
|
|
69
|
+
*/
|
|
70
|
+
title?: React.ReactNode;
|
|
68
71
|
/**
|
|
69
|
-
* This
|
|
72
|
+
* The area inside the sidenav. This area can be used to render the content inside the sidenav.
|
|
70
73
|
*/
|
|
71
|
-
|
|
74
|
+
children: React.ReactNode;
|
|
72
75
|
};
|
|
73
|
-
export default
|
|
76
|
+
export default Props;
|
|
@@ -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.tsx"));
|
|
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
|
+
});
|