@dxc-technology/halstack-react 0.0.0-d30020b → 0.0.0-d3624d0
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 +1246 -0
- package/HalstackContext.js +310 -0
- package/README.md +47 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +105 -181
- package/accordion/Accordion.stories.tsx +83 -149
- package/accordion/Accordion.test.js +56 -0
- package/accordion/types.d.ts +10 -17
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +3 -3
- package/accordion-group/AccordionGroup.js +38 -107
- package/accordion-group/AccordionGroup.stories.tsx +95 -68
- package/accordion-group/AccordionGroup.test.js +98 -0
- 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 +16 -17
- 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 +40 -127
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +75 -0
- package/alert/types.d.ts +5 -5
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +142 -40
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +54 -0
- package/bleed/Bleed.js +14 -55
- package/bleed/Bleed.stories.tsx +95 -95
- package/bleed/types.d.ts +26 -2
- package/box/Box.accessibility.test.js +33 -0
- package/box/Box.d.ts +1 -1
- package/box/Box.js +30 -81
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +13 -0
- package/box/types.d.ts +3 -14
- 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.d.ts +7 -0
- package/bulleted-list/BulletedList.js +92 -0
- package/bulleted-list/BulletedList.stories.tsx +115 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +63 -113
- package/button/Button.stories.tsx +151 -100
- package/button/Button.test.js +38 -0
- package/button/types.d.ts +12 -8
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.d.ts +1 -1
- package/card/Card.js +59 -102
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +39 -0
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +143 -181
- package/checkbox/Checkbox.stories.tsx +166 -136
- package/checkbox/Checkbox.test.js +199 -0
- package/checkbox/types.d.ts +18 -6
- 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 +41 -0
- 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 +1080 -1427
- 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/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 +170 -306
- package/date-input/DateInput.stories.tsx +210 -56
- package/date-input/DateInput.test.js +808 -0
- 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 +86 -22
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +56 -129
- package/dialog/Dialog.stories.tsx +326 -167
- package/dialog/Dialog.test.js +307 -0
- package/dialog/types.d.ts +18 -25
- 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.d.ts +1 -1
- package/dropdown/Dropdown.js +233 -307
- package/dropdown/Dropdown.stories.tsx +235 -57
- package/dropdown/Dropdown.test.js +599 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +71 -0
- package/dropdown/types.d.ts +35 -19
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +246 -393
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +382 -0
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +61 -120
- package/file-input/types.d.ts +25 -8
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/flex/types.js +5 -0
- package/footer/Footer.accessibility.test.js +125 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +73 -191
- package/footer/Footer.stories.tsx +99 -21
- package/footer/Footer.test.js +85 -0
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +54 -23
- package/footer/types.d.ts +26 -27
- 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 +104 -218
- package/header/Header.stories.tsx +168 -63
- package/header/Header.test.js +66 -0
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +5 -15
- package/header/types.d.ts +7 -21
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +169 -0
- 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 +14 -55
- package/inset/Inset.stories.tsx +37 -36
- package/inset/types.d.ts +26 -2
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +88 -182
- package/layout/ApplicationLayout.stories.tsx +85 -94
- package/layout/Icons.d.ts +7 -0
- package/layout/Icons.js +41 -48
- package/layout/types.d.ts +19 -35
- package/link/Link.accessibility.test.js +108 -0
- package/link/Link.d.ts +3 -2
- package/link/Link.js +65 -101
- package/link/Link.stories.tsx +157 -55
- package/link/Link.test.js +63 -0
- package/link/types.d.ts +15 -31
- package/main.d.ts +19 -18
- package/main.js +84 -123
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +7 -0
- package/nav-tabs/NavTabs.js +93 -0
- 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.d.ts +4 -0
- package/nav-tabs/Tab.js +117 -0
- package/nav-tabs/types.d.ts +52 -0
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.accessibility.test.js +228 -0
- package/number-input/NumberInput.js +47 -44
- package/number-input/NumberInput.stories.tsx +44 -28
- package/number-input/NumberInput.test.js +989 -0
- package/number-input/NumberInputContext.d.ts +3 -4
- package/number-input/NumberInputContext.js +3 -14
- package/number-input/types.d.ts +34 -15
- package/package.json +54 -53
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +46 -100
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +335 -0
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +22 -0
- package/paragraph/Paragraph.stories.tsx +27 -0
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +58 -124
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +198 -0
- package/password-input/types.d.ts +21 -17
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +68 -92
- package/progress-bar/ProgressBar.stories.tsx +93 -0
- package/progress-bar/ProgressBar.test.js +93 -0
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +94 -0
- package/quick-nav/QuickNav.stories.tsx +356 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +64 -80
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +102 -139
- package/radio-group/RadioGroup.stories.tsx +171 -36
- package/radio-group/RadioGroup.test.js +691 -183
- package/radio-group/types.d.ts +89 -11
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- 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 +4 -0
- package/select/Listbox.js +155 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +89 -0
- package/select/Select.accessibility.test.js +228 -0
- package/select/Select.js +243 -504
- package/select/Select.stories.tsx +602 -255
- package/select/Select.test.js +2265 -0
- package/select/types.d.ts +65 -26
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +136 -71
- package/sidenav/Sidenav.stories.tsx +246 -151
- package/sidenav/Sidenav.test.js +37 -0
- package/sidenav/SidenavContext.d.ts +5 -0
- package/sidenav/SidenavContext.js +13 -0
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.accessibility.test.js +104 -0
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +149 -180
- package/slider/Slider.test.js +254 -0
- package/slider/types.d.ts +11 -3
- 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 +55 -0
- 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.d.ts +2 -2
- package/switch/Switch.js +149 -114
- package/switch/Switch.stories.tsx +56 -67
- package/switch/Switch.test.js +180 -0
- package/switch/types.d.ts +13 -5
- 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 +113 -0
- package/table/types.d.ts +34 -6
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +117 -0
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +305 -145
- package/tabs/Tabs.stories.tsx +124 -14
- package/tabs/Tabs.test.js +276 -0
- package/tabs/types.d.ts +31 -17
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +42 -79
- package/tag/Tag.stories.tsx +24 -10
- package/tag/Tag.test.js +41 -0
- package/tag/types.d.ts +9 -9
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +67 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +94 -0
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +334 -557
- package/text-input/TextInput.stories.tsx +291 -273
- package/text-input/TextInput.test.js +1756 -0
- package/text-input/types.d.ts +70 -24
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +86 -135
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +406 -0
- package/textarea/types.d.ts +27 -16
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +94 -106
- package/toggle-group/ToggleGroup.stories.tsx +56 -11
- package/toggle-group/ToggleGroup.test.js +137 -0
- package/toggle-group/types.d.ts +36 -19
- package/typography/Typography.accessibility.test.js +339 -0
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +23 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1144 -1
- package/useTheme.js +4 -11
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +14 -0
- 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.d.ts +1 -1
- package/wizard/Wizard.js +78 -120
- package/wizard/Wizard.stories.tsx +67 -19
- package/wizard/Wizard.test.js +114 -0
- package/wizard/types.d.ts +14 -10
- package/ThemeContext.d.ts +0 -15
- package/ThemeContext.js +0 -243
- package/V3Select/V3Select.js +0 -455
- package/V3Select/index.d.ts +0 -27
- package/V3Textarea/V3Textarea.js +0 -260
- package/V3Textarea/index.d.ts +0 -27
- 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/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/paginator/Icons.js +0 -66
- package/progress-bar/ProgressBar.stories.jsx +0 -58
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/types.d.ts +0 -54
- package/resultsetTable/ResultsetTable.d.ts +0 -4
- package/resultsetTable/ResultsetTable.js +0 -254
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -10
- package/slider/Slider.stories.tsx +0 -177
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -9
- package/table/Table.stories.jsx +0 -277
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/textarea/Textarea.stories.jsx +0 -136
- package/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- package/upload/Upload.js +0 -201
- package/upload/buttons-upload/ButtonsUpload.js +0 -111
- package/upload/buttons-upload/Icons.js +0 -40
- package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
- package/upload/dragAndDropArea/Icons.js +0 -39
- package/upload/file-upload/FileToUpload.js +0 -115
- package/upload/file-upload/Icons.js +0 -66
- package/upload/files-upload/FilesToUpload.js +0 -109
- package/upload/index.d.ts +0 -15
- package/upload/transaction/Icons.js +0 -160
- package/upload/transaction/Transaction.js +0 -104
- package/upload/transactions/Transactions.js +0 -94
- /package/{list → action-icon}/types.js +0 -0
- /package/{radio → badge}/types.js +0 -0
- /package/{resultsetTable → breadcrumbs}/types.js +0 -0
- /package/{row → bulleted-list}/types.js +0 -0
- /package/{stack → container}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
package/select/types.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import React from "react";
|
|
2
|
+
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
type Margin = {
|
|
4
4
|
top?: Space;
|
|
5
5
|
bottom?: Space;
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
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 @@ declare type OptionGroup = {
|
|
|
17
17
|
*/
|
|
18
18
|
options: Option[];
|
|
19
19
|
};
|
|
20
|
-
|
|
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
|
*/
|
|
@@ -36,7 +36,7 @@ declare type Option = {
|
|
|
36
36
|
*/
|
|
37
37
|
value: string;
|
|
38
38
|
};
|
|
39
|
-
|
|
39
|
+
type CommonProps = {
|
|
40
40
|
/**
|
|
41
41
|
* Text to be placed above the select.
|
|
42
42
|
*/
|
|
@@ -45,15 +45,14 @@ declare type CommonProps = {
|
|
|
45
45
|
* Name attribute of the input element. This attribute will allow users
|
|
46
46
|
* to find the component's value during the submit event. In this event,
|
|
47
47
|
* the component's value will always be a regular string, for both single
|
|
48
|
-
* and multiple selection modes,
|
|
49
|
-
*
|
|
50
|
-
* separated by commas.
|
|
48
|
+
* and multiple selection modes, being a single option value in the first case
|
|
49
|
+
* and more than one value when multiple selection is available, separated by commas.
|
|
51
50
|
*/
|
|
52
51
|
name?: string;
|
|
53
52
|
/**
|
|
54
53
|
* An array of objects representing the selectable options.
|
|
55
54
|
*/
|
|
56
|
-
options
|
|
55
|
+
options: Option[] | OptionGroup[];
|
|
57
56
|
/**
|
|
58
57
|
* Helper text to be placed above the select.
|
|
59
58
|
*/
|
|
@@ -79,9 +78,12 @@ declare type CommonProps = {
|
|
|
79
78
|
*/
|
|
80
79
|
searchable?: boolean;
|
|
81
80
|
/**
|
|
82
|
-
* If it is defined
|
|
83
|
-
* the error below the select component.
|
|
84
|
-
*
|
|
81
|
+
* If it is a defined value and also a truthy string, the component will
|
|
82
|
+
* change its appearance, showing the error below the select component.
|
|
83
|
+
* If the defined value is an empty string, it will reserve a space below
|
|
84
|
+
* the component for a future error, but it would not change its look. In
|
|
85
|
+
* case of being undefined or null, both the appearance and the space for
|
|
86
|
+
* the error message would not be modified.
|
|
85
87
|
*/
|
|
86
88
|
error?: string;
|
|
87
89
|
/**
|
|
@@ -98,13 +100,17 @@ declare type CommonProps = {
|
|
|
98
100
|
*/
|
|
99
101
|
tabIndex?: number;
|
|
100
102
|
};
|
|
101
|
-
|
|
103
|
+
type SingleSelect = CommonProps & {
|
|
102
104
|
/**
|
|
103
105
|
* If true, the select component will support multiple selected options.
|
|
104
106
|
* In that case, value will be an array of strings with each selected
|
|
105
107
|
* option value.
|
|
106
108
|
*/
|
|
107
109
|
multiple?: false;
|
|
110
|
+
/**
|
|
111
|
+
* Initial value of the select, only when it is uncontrolled.
|
|
112
|
+
*/
|
|
113
|
+
defaultValue?: string;
|
|
108
114
|
/**
|
|
109
115
|
* Value of the select. If undefined, the component will be uncontrolled
|
|
110
116
|
* and the value will be managed internally by the component.
|
|
@@ -113,30 +119,34 @@ declare type SingleSelect = CommonProps & {
|
|
|
113
119
|
/**
|
|
114
120
|
* This function will be called when the user selects an option.
|
|
115
121
|
* An object including the current value and the error (if the value entered is not valid)
|
|
116
|
-
* will be passed to this function. If there is no error, error will be
|
|
122
|
+
* will be passed to this function. If there is no error, error will not be defined.
|
|
117
123
|
*/
|
|
118
124
|
onChange?: (val: {
|
|
119
125
|
value: string;
|
|
120
|
-
error
|
|
126
|
+
error?: string;
|
|
121
127
|
}) => void;
|
|
122
128
|
/**
|
|
123
129
|
* This function will be called when the select loses the focus. An
|
|
124
130
|
* object including the value and the error (if the value
|
|
125
131
|
* selected is not valid) will be passed to this function. If there is no error,
|
|
126
|
-
* error will be
|
|
132
|
+
* error will not be defined.
|
|
127
133
|
*/
|
|
128
134
|
onBlur?: (val: {
|
|
129
135
|
value: string;
|
|
130
|
-
error
|
|
136
|
+
error?: string;
|
|
131
137
|
}) => void;
|
|
132
138
|
};
|
|
133
|
-
|
|
139
|
+
type MultipleSelect = CommonProps & {
|
|
134
140
|
/**
|
|
135
141
|
* If true, the select component will support multiple selected options.
|
|
136
142
|
* In that case, value will be an array of strings with each selected
|
|
137
143
|
* option value.
|
|
138
144
|
*/
|
|
139
145
|
multiple: true;
|
|
146
|
+
/**
|
|
147
|
+
* Initial value of the select, only when it is uncontrolled.
|
|
148
|
+
*/
|
|
149
|
+
defaultValue?: string[];
|
|
140
150
|
/**
|
|
141
151
|
* Value of the select. If undefined, the component will be uncontrolled
|
|
142
152
|
* and the value will be managed internally by the component.
|
|
@@ -149,7 +159,7 @@ declare type MultipleSelect = CommonProps & {
|
|
|
149
159
|
*/
|
|
150
160
|
onChange?: (val: {
|
|
151
161
|
value: string[];
|
|
152
|
-
error
|
|
162
|
+
error?: string;
|
|
153
163
|
}) => void;
|
|
154
164
|
/**
|
|
155
165
|
* This function will be called when the select loses the focus. An
|
|
@@ -159,12 +169,41 @@ declare type MultipleSelect = CommonProps & {
|
|
|
159
169
|
*/
|
|
160
170
|
onBlur?: (val: {
|
|
161
171
|
value: string[];
|
|
162
|
-
error
|
|
172
|
+
error?: string;
|
|
163
173
|
}) => void;
|
|
164
174
|
};
|
|
165
|
-
|
|
175
|
+
type Props = SingleSelect | MultipleSelect;
|
|
176
|
+
/**
|
|
177
|
+
* Single option of the select component.
|
|
178
|
+
*/
|
|
179
|
+
export type OptionProps = {
|
|
180
|
+
id: string;
|
|
181
|
+
option: Option;
|
|
182
|
+
onClick: (option: Option) => void;
|
|
183
|
+
multiple: boolean;
|
|
184
|
+
visualFocused: boolean;
|
|
185
|
+
isGroupedOption?: boolean;
|
|
186
|
+
isLastOption: boolean;
|
|
187
|
+
isSelected: boolean;
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* Listbox from the select component.
|
|
191
|
+
*/
|
|
192
|
+
export type ListboxProps = {
|
|
193
|
+
id: string;
|
|
194
|
+
currentValue: string | string[];
|
|
195
|
+
options: Option[] | OptionGroup[];
|
|
196
|
+
visualFocusIndex: number;
|
|
197
|
+
lastOptionIndex: number;
|
|
198
|
+
multiple: boolean;
|
|
199
|
+
optional: boolean;
|
|
200
|
+
optionalItem: Option;
|
|
201
|
+
searchable: boolean;
|
|
202
|
+
handleOptionOnClick: (option: Option) => void;
|
|
203
|
+
styles: React.CSSProperties;
|
|
204
|
+
};
|
|
166
205
|
/**
|
|
167
|
-
* Reference to the component.
|
|
206
|
+
* Reference to the select component.
|
|
168
207
|
*/
|
|
169
|
-
export
|
|
208
|
+
export type RefType = HTMLDivElement;
|
|
170
209
|
export default Props;
|
|
@@ -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.tsx"));
|
|
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.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import SidenavPropsType, {
|
|
1
|
+
import React from "react";
|
|
2
|
+
import SidenavPropsType, { SidenavGroupPropsType, SidenavLinkPropsType, SidenavSectionPropsType, SidenavTitlePropsType } from "./types.js";
|
|
3
3
|
declare const DxcSidenav: {
|
|
4
|
-
({
|
|
4
|
+
({ title, children }: SidenavPropsType): JSX.Element;
|
|
5
|
+
Section: ({ children }: SidenavSectionPropsType) => JSX.Element;
|
|
6
|
+
Group: ({ title, collapsable, icon, children }: SidenavGroupPropsType) => JSX.Element;
|
|
7
|
+
Link: React.ForwardRefExoticComponent<SidenavLinkPropsType & React.RefAttributes<HTMLAnchorElement>>;
|
|
5
8
|
Title: ({ children }: SidenavTitlePropsType) => JSX.Element;
|
|
6
|
-
Subtitle: ({ children }: SidenavSubtitlePropsType) => JSX.Element;
|
|
7
|
-
Link: ({ tabIndex, href, onClick, children }: SidenavLinkPropsType) => JSX.Element;
|
|
8
9
|
};
|
|
9
10
|
export default DxcSidenav;
|
package/sidenav/Sidenav.js
CHANGED
|
@@ -1,88 +1,141 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
12
9
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
-
|
|
14
|
-
var
|
|
15
|
-
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
16
14
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
17
|
-
|
|
18
|
-
var
|
|
19
|
-
|
|
15
|
+
var _variables = require("../common/variables");
|
|
16
|
+
var _SidenavContext = require("./SidenavContext");
|
|
20
17
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
21
|
-
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
function _interopRequireWildcard(
|
|
29
|
-
|
|
18
|
+
var _Flex = _interopRequireDefault(require("../flex/Flex"));
|
|
19
|
+
var _Bleed = _interopRequireDefault(require("../bleed/Bleed"));
|
|
20
|
+
var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
|
|
21
|
+
var _Icon = _interopRequireDefault(require("../icon/Icon"));
|
|
22
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
23
|
+
var _excluded = ["href", "newWindow", "selected", "icon", "onClick", "tabIndex", "children"];
|
|
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 && {}.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; }
|
|
30
26
|
var DxcSidenav = function DxcSidenav(_ref) {
|
|
31
|
-
var
|
|
32
|
-
|
|
27
|
+
var title = _ref.title,
|
|
28
|
+
children = _ref.children;
|
|
33
29
|
var colorsTheme = (0, _useTheme["default"])();
|
|
34
30
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
35
31
|
theme: colorsTheme.sidenav
|
|
36
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
color: colorsTheme.sidenav.backgroundColor
|
|
32
|
+
}, /*#__PURE__*/_react["default"].createElement(SidenavContainer, null, title, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
33
|
+
direction: "column",
|
|
34
|
+
gap: "1rem"
|
|
40
35
|
}, children)));
|
|
41
36
|
};
|
|
42
|
-
|
|
43
37
|
var Title = function Title(_ref2) {
|
|
44
38
|
var children = _ref2.children;
|
|
45
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
39
|
+
return /*#__PURE__*/_react["default"].createElement(_Bleed["default"], {
|
|
40
|
+
horizontal: "1rem"
|
|
41
|
+
}, /*#__PURE__*/_react["default"].createElement(SidenavTitle, null, children));
|
|
46
42
|
};
|
|
47
|
-
|
|
48
|
-
var Subtitle = function Subtitle(_ref3) {
|
|
43
|
+
var Section = function Section(_ref3) {
|
|
49
44
|
var children = _ref3.children;
|
|
50
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
45
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Bleed["default"], {
|
|
46
|
+
horizontal: "1rem"
|
|
47
|
+
}, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
48
|
+
direction: "column"
|
|
49
|
+
}, children)), /*#__PURE__*/_react["default"].createElement(Divider, null));
|
|
51
50
|
};
|
|
52
|
-
|
|
53
|
-
var
|
|
54
|
-
var
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
51
|
+
var GroupContext = /*#__PURE__*/_react["default"].createContext(null);
|
|
52
|
+
var Group = function Group(_ref4) {
|
|
53
|
+
var title = _ref4.title,
|
|
54
|
+
_ref4$collapsable = _ref4.collapsable,
|
|
55
|
+
collapsable = _ref4$collapsable === void 0 ? false : _ref4$collapsable,
|
|
56
|
+
icon = _ref4.icon,
|
|
57
|
+
children = _ref4.children;
|
|
58
|
+
var _useState = (0, _react.useState)(false),
|
|
59
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
60
|
+
collapsed = _useState2[0],
|
|
61
|
+
setCollapsed = _useState2[1];
|
|
62
|
+
var _useState3 = (0, _react.useState)(false),
|
|
63
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
64
|
+
isSelected = _useState4[0],
|
|
65
|
+
changeIsSelected = _useState4[1];
|
|
66
|
+
return /*#__PURE__*/_react["default"].createElement(GroupContext.Provider, {
|
|
67
|
+
value: changeIsSelected
|
|
68
|
+
}, /*#__PURE__*/_react["default"].createElement(SidenavGroup, null, collapsable && title ? /*#__PURE__*/_react["default"].createElement(SidenavGroupTitleButton, {
|
|
69
|
+
"aria-expanded": !collapsed,
|
|
70
|
+
onClick: function onClick() {
|
|
71
|
+
return setCollapsed(!collapsed);
|
|
72
|
+
},
|
|
73
|
+
selectedGroup: collapsed && isSelected
|
|
74
|
+
}, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
75
|
+
alignItems: "center",
|
|
76
|
+
gap: "0.5rem"
|
|
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
|
+
}) : icon, title), !collapsed && children));
|
|
64
84
|
};
|
|
65
|
-
|
|
66
|
-
var
|
|
85
|
+
var Link = /*#__PURE__*/(0, _react.forwardRef)(function (_ref5, ref) {
|
|
86
|
+
var href = _ref5.href,
|
|
87
|
+
_ref5$newWindow = _ref5.newWindow,
|
|
88
|
+
newWindow = _ref5$newWindow === void 0 ? false : _ref5$newWindow,
|
|
89
|
+
_ref5$selected = _ref5.selected,
|
|
90
|
+
selected = _ref5$selected === void 0 ? false : _ref5$selected,
|
|
91
|
+
icon = _ref5.icon,
|
|
92
|
+
onClick = _ref5.onClick,
|
|
93
|
+
_ref5$tabIndex = _ref5.tabIndex,
|
|
94
|
+
tabIndex = _ref5$tabIndex === void 0 ? 0 : _ref5$tabIndex,
|
|
95
|
+
children = _ref5.children,
|
|
96
|
+
otherProps = (0, _objectWithoutProperties2["default"])(_ref5, _excluded);
|
|
97
|
+
var changeIsGroupSelected = (0, _react.useContext)(GroupContext);
|
|
98
|
+
var setIsSidenavVisibleResponsive = (0, _SidenavContext.useResponsiveSidenavVisibility)();
|
|
99
|
+
var handleClick = function handleClick($event) {
|
|
100
|
+
onClick === null || onClick === void 0 ? void 0 : onClick($event);
|
|
101
|
+
setIsSidenavVisibleResponsive === null || setIsSidenavVisibleResponsive === void 0 ? void 0 : setIsSidenavVisibleResponsive(false);
|
|
102
|
+
};
|
|
103
|
+
(0, _react.useEffect)(function () {
|
|
104
|
+
changeIsGroupSelected === null || changeIsGroupSelected === void 0 ? void 0 : changeIsGroupSelected(function (isGroupSelected) {
|
|
105
|
+
return !isGroupSelected ? selected : isGroupSelected;
|
|
106
|
+
});
|
|
107
|
+
}, [selected, changeIsGroupSelected]);
|
|
108
|
+
return /*#__PURE__*/_react["default"].createElement(SidenavLink, (0, _extends2["default"])({
|
|
109
|
+
selected: selected,
|
|
110
|
+
href: href ? href : undefined,
|
|
111
|
+
target: href ? newWindow ? "_blank" : "_self" : undefined,
|
|
112
|
+
ref: ref,
|
|
113
|
+
tabIndex: tabIndex,
|
|
114
|
+
onClick: handleClick
|
|
115
|
+
}, otherProps), /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
116
|
+
alignItems: "center",
|
|
117
|
+
gap: "0.5rem"
|
|
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
|
+
}));
|
|
123
|
+
});
|
|
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) {
|
|
67
125
|
return props.theme.backgroundColor;
|
|
68
|
-
}, function (props) {
|
|
69
|
-
return props.padding ? "calc(300px - ".concat(_variables.spaces[props.padding], " - ").concat(_variables.spaces[props.padding], ")") : "300px";
|
|
70
|
-
}, function (props) {
|
|
71
|
-
return props.padding ? _variables.spaces[props.padding] : "";
|
|
72
126
|
}, function (props) {
|
|
73
127
|
return props.theme.scrollBarTrackColor;
|
|
74
128
|
}, function (props) {
|
|
75
129
|
return props.theme.scrollBarThumbColor;
|
|
76
130
|
});
|
|
77
|
-
|
|
78
|
-
var SideNavMenuTitle = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n margin-bottom: 16px;\n"])), function (props) {
|
|
131
|
+
var SidenavTitle = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n padding: 0.5rem 1.2rem;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n color: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n"])), function (props) {
|
|
79
132
|
return props.theme.titleFontFamily;
|
|
80
|
-
}, function (props) {
|
|
81
|
-
return props.theme.titleFontSize;
|
|
82
133
|
}, function (props) {
|
|
83
134
|
return props.theme.titleFontStyle;
|
|
84
135
|
}, function (props) {
|
|
85
136
|
return props.theme.titleFontWeight;
|
|
137
|
+
}, function (props) {
|
|
138
|
+
return props.theme.titleFontSize;
|
|
86
139
|
}, function (props) {
|
|
87
140
|
return props.theme.titleFontColor;
|
|
88
141
|
}, function (props) {
|
|
@@ -90,33 +143,42 @@ var SideNavMenuTitle = _styledComponents["default"].div(_templateObject2 || (_te
|
|
|
90
143
|
}, function (props) {
|
|
91
144
|
return props.theme.titleFontTextTransform;
|
|
92
145
|
});
|
|
93
|
-
|
|
94
|
-
var
|
|
95
|
-
|
|
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);
|
|
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"])));
|
|
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) {
|
|
149
|
+
return props.theme.groupTitleFontFamily;
|
|
96
150
|
}, function (props) {
|
|
97
|
-
return props.theme.
|
|
151
|
+
return props.theme.groupTitleFontStyle;
|
|
98
152
|
}, function (props) {
|
|
99
|
-
return props.theme.
|
|
153
|
+
return props.theme.groupTitleFontWeight;
|
|
100
154
|
}, function (props) {
|
|
101
|
-
return props.theme.
|
|
155
|
+
return props.theme.groupTitleFontSize;
|
|
156
|
+
});
|
|
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) {
|
|
158
|
+
return props.theme.groupTitleFontFamily;
|
|
159
|
+
}, function (props) {
|
|
160
|
+
return props.theme.groupTitleFontStyle;
|
|
161
|
+
}, function (props) {
|
|
162
|
+
return props.theme.groupTitleFontWeight;
|
|
102
163
|
}, function (props) {
|
|
103
|
-
return props.theme.
|
|
164
|
+
return props.theme.groupTitleFontSize;
|
|
104
165
|
}, function (props) {
|
|
105
|
-
return props.theme.
|
|
166
|
+
return props.selectedGroup ? "color: ".concat(props.theme.groupTitleSelectedFontColor, "; background-color: ").concat(props.theme.groupTitleSelectedBackgroundColor, ";") : "color: ".concat(props.theme.groupTitleFontColor, "; background-color: transparent;");
|
|
167
|
+
}, function (props) {
|
|
168
|
+
return props.theme.linkFocusColor;
|
|
106
169
|
}, function (props) {
|
|
107
|
-
return props.theme.
|
|
170
|
+
return props.selectedGroup ? "color: ".concat(props.theme.groupTitleSelectedHoverFontColor, "; background-color: ").concat(props.theme.groupTitleSelectedHoverBackgroundColor, ";") : "color: ".concat(props.theme.groupTitleFontColor, "; background-color: ").concat(props.theme.groupTitleHoverBackgroundColor, ";");
|
|
171
|
+
}, function (props) {
|
|
172
|
+
return props.selectedGroup ? "#333" : props.theme.groupTitleActiveBackgroundColor;
|
|
108
173
|
});
|
|
109
|
-
|
|
110
|
-
var SideNavMenuLink = _styledComponents["default"].a(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n text-decoration: ", ";\n margin: ", ";\n cursor: pointer;\n\n :focus-visible {\n outline: 2px solid ", ";\n outline-offset: 1px;\n }\n"])), function (props) {
|
|
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) {
|
|
111
175
|
return props.theme.linkFontFamily;
|
|
112
|
-
}, function (props) {
|
|
113
|
-
return props.theme.linkFontSize;
|
|
114
176
|
}, function (props) {
|
|
115
177
|
return props.theme.linkFontStyle;
|
|
116
178
|
}, function (props) {
|
|
117
179
|
return props.theme.linkFontWeight;
|
|
118
180
|
}, function (props) {
|
|
119
|
-
return props.theme.
|
|
181
|
+
return props.theme.linkFontSize;
|
|
120
182
|
}, function (props) {
|
|
121
183
|
return props.theme.linkFontLetterSpacing;
|
|
122
184
|
}, function (props) {
|
|
@@ -124,13 +186,16 @@ var SideNavMenuLink = _styledComponents["default"].a(_templateObject4 || (_templ
|
|
|
124
186
|
}, function (props) {
|
|
125
187
|
return props.theme.linkTextDecoration;
|
|
126
188
|
}, function (props) {
|
|
127
|
-
return "".concat(props.theme.
|
|
189
|
+
return props.selected ? "color: ".concat(props.theme.linkSelectedFontColor, "; background-color: ").concat(props.theme.linkSelectedBackgroundColor, ";") : "color: ".concat(props.theme.linkFontColor, "; background-color: transparent;");
|
|
128
190
|
}, function (props) {
|
|
129
191
|
return props.theme.linkFocusColor;
|
|
192
|
+
}, function (props) {
|
|
193
|
+
return props.selected ? "color: ".concat(props.theme.linkSelectedHoverFontColor, "; background-color: ").concat(props.theme.linkSelectedHoverBackgroundColor, ";") : "color: ".concat(props.theme.linkFontColor, "; background-color: ").concat(props.theme.linkHoverBackgroundColor, ";");
|
|
194
|
+
}, function (props) {
|
|
195
|
+
return props.selected ? "#333" : "#4d4d4d";
|
|
130
196
|
});
|
|
131
|
-
|
|
132
|
-
DxcSidenav.
|
|
133
|
-
DxcSidenav.Subtitle = Subtitle;
|
|
197
|
+
DxcSidenav.Section = Section;
|
|
198
|
+
DxcSidenav.Group = Group;
|
|
134
199
|
DxcSidenav.Link = Link;
|
|
135
|
-
|
|
136
|
-
exports["default"] =
|
|
200
|
+
DxcSidenav.Title = Title;
|
|
201
|
+
var _default = exports["default"] = DxcSidenav;
|