@dxc-technology/halstack-react 0.0.0-c291a0c → 0.0.0-c293b72
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 +1243 -6
- package/HalstackContext.js +126 -111
- package/README.md +47 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +104 -161
- package/accordion/Accordion.stories.tsx +84 -140
- package/accordion/Accordion.test.js +25 -41
- package/accordion/types.d.ts +6 -17
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +2 -2
- package/accordion-group/AccordionGroup.js +31 -98
- package/accordion-group/AccordionGroup.stories.tsx +94 -67
- package/accordion-group/AccordionGroup.test.js +52 -105
- 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 +12 -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 +32 -125
- 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 +64 -63
- 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 +19 -60
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -14
- package/bulleted-list/BulletedList.accessibility.test.js +107 -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 +64 -117
- package/button/Button.stories.tsx +151 -100
- package/button/Button.test.js +20 -17
- 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 +48 -89
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- 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 +140 -182
- package/checkbox/Checkbox.stories.tsx +128 -94
- package/checkbox/Checkbox.test.js +160 -39
- package/checkbox/types.d.ts +11 -3
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +43 -80
- package/chip/Chip.stories.tsx +102 -26
- 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 +1395 -0
- package/common/variables.js +942 -1145
- 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 +86 -0
- package/contextual-menu/ContextualMenu.d.ts +7 -0
- package/contextual-menu/ContextualMenu.js +71 -0
- package/contextual-menu/ContextualMenu.stories.tsx +182 -0
- package/contextual-menu/ContextualMenu.test.js +71 -0
- package/contextual-menu/MenuItemAction.d.ts +4 -0
- package/contextual-menu/MenuItemAction.js +46 -0
- package/contextual-menu/types.d.ts +22 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.accessibility.test.js +216 -0
- package/date-input/DateInput.js +149 -299
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +700 -371
- 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 +73 -107
- package/dialog/Dialog.stories.tsx +320 -167
- package/dialog/Dialog.test.js +287 -20
- 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/dropdown/Dropdown.accessibility.test.js +180 -0
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +231 -303
- package/dropdown/Dropdown.stories.tsx +235 -57
- package/dropdown/Dropdown.test.js +575 -165
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +70 -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 +241 -391
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +292 -367
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +52 -117
- 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/footer/Footer.accessibility.test.js +117 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +73 -118
- package/footer/Footer.stories.tsx +87 -21
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +66 -7
- 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/header/Header.accessibility.test.js +84 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +88 -182
- package/header/Header.stories.tsx +118 -39
- package/header/Header.test.js +13 -26
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +4 -9
- 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 +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 +5 -4
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +51 -116
- package/layout/ApplicationLayout.stories.tsx +81 -45
- package/layout/Icons.d.ts +8 -5
- package/layout/Icons.js +49 -59
- package/layout/types.d.ts +21 -32
- package/link/Link.accessibility.test.js +112 -0
- package/link/Link.js +32 -51
- package/link/Link.stories.tsx +74 -7
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +14 -13
- package/main.js +59 -103
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +7 -0
- package/{tabs-nav → nav-tabs}/NavTabs.js +30 -62
- package/nav-tabs/NavTabs.stories.tsx +279 -0
- package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -46
- 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 -377
- 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 +49 -52
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +23 -59
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +253 -226
- 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 +56 -126
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +160 -142
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +65 -91
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.js +27 -45
- package/quick-nav/QuickNav.stories.tsx +146 -27
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +59 -76
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +67 -114
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +518 -457
- package/radio-group/types.d.ts +10 -10
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
- package/resultset-table/ResultsetTable.d.ts +7 -0
- package/resultset-table/ResultsetTable.js +170 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +156 -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.js +22 -52
- package/select/Option.js +33 -55
- package/select/Select.accessibility.test.js +217 -0
- package/select/Select.js +146 -208
- package/select/Select.stories.tsx +484 -203
- package/select/Select.test.js +1928 -1814
- package/select/types.d.ts +17 -20
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +132 -78
- package/sidenav/Sidenav.stories.tsx +246 -151
- package/sidenav/Sidenav.test.js +26 -45
- package/{layout → sidenav}/SidenavContext.d.ts +1 -1
- package/{layout → sidenav}/SidenavContext.js +3 -9
- 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 +148 -181
- package/slider/Slider.test.js +185 -81
- package/slider/types.d.ts +7 -3
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +31 -75
- 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 +89 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +145 -126
- package/switch/Switch.stories.tsx +37 -60
- package/switch/Switch.test.js +138 -56
- package/switch/types.d.ts +7 -3
- package/table/DropdownTheme.js +62 -0
- package/table/Table.accessibility.test.js +82 -0
- package/table/Table.d.ts +6 -2
- package/table/Table.js +78 -35
- package/table/Table.stories.tsx +651 -0
- package/table/Table.test.js +95 -8
- 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.js +303 -141
- package/tabs/Tabs.stories.tsx +118 -6
- package/tabs/Tabs.test.js +213 -77
- package/tabs/types.d.ts +30 -20
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +35 -67
- 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 +40 -28
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +86 -0
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +311 -514
- package/text-input/TextInput.stories.tsx +266 -275
- package/text-input/TextInput.test.js +1419 -1375
- package/text-input/types.d.ts +43 -16
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +70 -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 +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 +1147 -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 +34 -79
- package/wizard/Wizard.stories.tsx +59 -1
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +9 -9
- 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/inline/Inline.d.ts +0 -4
- package/inline/Inline.js +0 -54
- package/inline/Inline.stories.tsx +0 -264
- package/inline/types.d.ts +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -89
- package/list/types.d.ts +0 -7
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/resultsetTable/ResultsetTable.d.ts +0 -4
- package/resultsetTable/ResultsetTable.js +0 -254
- package/resultsetTable/ResultsetTable.test.js +0 -348
- 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 -28
- package/select/Icons.d.ts +0 -10
- package/select/Icons.js +0 -93
- package/slider/Slider.stories.tsx +0 -177
- package/stack/Stack.d.ts +0 -4
- package/stack/Stack.js +0 -50
- package/stack/Stack.stories.tsx +0 -225
- package/stack/types.d.ts +0 -28
- 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/Tab.js +0 -132
- 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 -157
- /package/{inline → action-icon}/types.js +0 -0
- /package/{list → bulleted-list}/types.js +0 -0
- /package/{resultsetTable → container}/types.js +0 -0
- /package/{row → contextual-menu}/types.js +0 -0
- /package/{stack → divider}/types.js +0 -0
- /package/{tabs-nav → flex}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → grid/types.js} +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { userEvent, within
|
|
2
|
+
import { userEvent, within } from "@storybook/testing-library";
|
|
3
3
|
import Title from "../../.storybook/components/Title";
|
|
4
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
5
|
import DxcSelect from "./Select";
|
|
6
6
|
import Listbox from "./Listbox";
|
|
7
|
-
import
|
|
8
|
-
import
|
|
7
|
+
import { ThemeProvider } from "styled-components";
|
|
8
|
+
import useTheme from "../useTheme";
|
|
9
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
9
10
|
|
|
10
11
|
export default {
|
|
11
12
|
title: "Select",
|
|
@@ -13,12 +14,14 @@ export default {
|
|
|
13
14
|
};
|
|
14
15
|
|
|
15
16
|
const one_option = [{ label: "Option 01", value: "1" }];
|
|
17
|
+
|
|
16
18
|
const single_options = [
|
|
17
19
|
{ label: "Option 01", value: "1" },
|
|
18
20
|
{ label: "Option 02", value: "2" },
|
|
19
21
|
{ label: "Option 03", value: "3" },
|
|
20
22
|
{ label: "Option 04", value: "4" },
|
|
21
23
|
];
|
|
24
|
+
|
|
22
25
|
const group_options = [
|
|
23
26
|
{
|
|
24
27
|
label: "Group 001",
|
|
@@ -61,25 +64,15 @@ const group_options = [
|
|
|
61
64
|
],
|
|
62
65
|
},
|
|
63
66
|
];
|
|
64
|
-
|
|
67
|
+
|
|
68
|
+
const icon_options_grouped_material = [
|
|
65
69
|
{
|
|
66
70
|
label: "Group 001",
|
|
67
71
|
options: [
|
|
68
72
|
{
|
|
69
73
|
label: "3G Mobile",
|
|
70
74
|
value: "1",
|
|
71
|
-
icon:
|
|
72
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
73
|
-
<g>
|
|
74
|
-
<path d="M0,0h24v24H0V0z" fill="none" />
|
|
75
|
-
</g>
|
|
76
|
-
<g>
|
|
77
|
-
<g>
|
|
78
|
-
<path d="M3,7v2h5v2H4v2h4v2H3v2h5c1.1,0,2-0.9,2-2v-1.5c0-0.83-0.67-1.5-1.5-1.5c0.83,0,1.5-0.67,1.5-1.5V9c0-1.1-0.9-2-2-2H3z M21,11v4c0,1.1-0.9,2-2,2h-5c-1.1,0-2-0.9-2-2V9c0-1.1,0.9-2,2-2h5c1.1,0,2,0.9,2,2h-7v6h5v-2h-2.5v-2H21z" />
|
|
79
|
-
</g>
|
|
80
|
-
</g>
|
|
81
|
-
</svg>
|
|
82
|
-
),
|
|
75
|
+
icon: "3g_mobiledata",
|
|
83
76
|
},
|
|
84
77
|
],
|
|
85
78
|
},
|
|
@@ -89,12 +82,7 @@ const icon_options_grouped = [
|
|
|
89
82
|
{
|
|
90
83
|
label: "Ethernet",
|
|
91
84
|
value: "2",
|
|
92
|
-
icon:
|
|
93
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
94
|
-
<path d="M0 0h24v24H0V0z" fill="none" />
|
|
95
|
-
<path d="M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z" />
|
|
96
|
-
</svg>
|
|
97
|
-
),
|
|
85
|
+
icon: "settings_ethernet",
|
|
98
86
|
},
|
|
99
87
|
],
|
|
100
88
|
},
|
|
@@ -104,26 +92,17 @@ const icon_options_grouped = [
|
|
|
104
92
|
{
|
|
105
93
|
label: "Wi-fi",
|
|
106
94
|
value: "3",
|
|
107
|
-
icon:
|
|
108
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
109
|
-
<path d="M0 0h24v24H0V0zm0 0h24v24H0V0z" fill="none" />
|
|
110
|
-
<path d="M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z" />
|
|
111
|
-
</svg>
|
|
112
|
-
),
|
|
95
|
+
icon: "wifi",
|
|
113
96
|
},
|
|
114
97
|
{
|
|
115
98
|
label: "Settings backup restore (just for previous configuration)",
|
|
116
99
|
value: "4",
|
|
117
|
-
icon:
|
|
118
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
119
|
-
<path d="M0 0h24v24H0V0z" fill="none" />
|
|
120
|
-
<path d="M14 12c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-9c-4.97 0-9 4.03-9 9H0l4 4 4-4H5c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.51 0-2.91-.49-4.06-1.3l-1.42 1.44C8.04 20.3 9.94 21 12 21c4.97 0 9-4.03 9-9s-4.03-9-9-9z" />
|
|
121
|
-
</svg>
|
|
122
|
-
),
|
|
100
|
+
icon: "settings_backup_restore",
|
|
123
101
|
},
|
|
124
102
|
],
|
|
125
103
|
},
|
|
126
104
|
];
|
|
105
|
+
|
|
127
106
|
const icon_options = [
|
|
128
107
|
{
|
|
129
108
|
label: "3G Mobile",
|
|
@@ -172,60 +151,70 @@ const icon_options = [
|
|
|
172
151
|
),
|
|
173
152
|
},
|
|
174
153
|
];
|
|
175
|
-
|
|
154
|
+
|
|
155
|
+
const options_material = [
|
|
176
156
|
{
|
|
177
|
-
label: "
|
|
157
|
+
label: "Transport",
|
|
178
158
|
options: [
|
|
179
159
|
{
|
|
180
|
-
label: "
|
|
181
|
-
value: "
|
|
182
|
-
icon: "
|
|
160
|
+
label: "Electric Car",
|
|
161
|
+
value: "car",
|
|
162
|
+
icon: "electric_car",
|
|
183
163
|
},
|
|
184
164
|
{
|
|
185
|
-
label: "
|
|
186
|
-
value: "
|
|
187
|
-
icon: "
|
|
165
|
+
label: "Motorcycle",
|
|
166
|
+
value: "motorcycle",
|
|
167
|
+
icon: "Motorcycle",
|
|
188
168
|
},
|
|
189
169
|
{
|
|
190
|
-
label: "
|
|
191
|
-
value: "
|
|
192
|
-
icon: "
|
|
170
|
+
label: "Train",
|
|
171
|
+
value: "train",
|
|
172
|
+
icon: "train",
|
|
193
173
|
},
|
|
194
174
|
{
|
|
195
|
-
label: "
|
|
196
|
-
value: "
|
|
197
|
-
icon: "
|
|
175
|
+
label: "Bike",
|
|
176
|
+
value: "bike",
|
|
177
|
+
icon: "pedal_bike",
|
|
198
178
|
},
|
|
199
179
|
],
|
|
200
180
|
},
|
|
201
181
|
{
|
|
202
|
-
label: "
|
|
182
|
+
label: "Entertainment",
|
|
203
183
|
options: [
|
|
204
184
|
{
|
|
205
|
-
label: "
|
|
206
|
-
value: "
|
|
207
|
-
icon: "
|
|
185
|
+
label: "Movie",
|
|
186
|
+
value: "movie",
|
|
187
|
+
icon: "movie",
|
|
208
188
|
},
|
|
209
189
|
{
|
|
210
|
-
label: "
|
|
211
|
-
value: "
|
|
212
|
-
icon: "
|
|
190
|
+
label: "Music",
|
|
191
|
+
value: "music",
|
|
192
|
+
icon: "music_note",
|
|
213
193
|
},
|
|
214
194
|
{
|
|
215
|
-
label: "
|
|
216
|
-
value: "
|
|
217
|
-
icon: "
|
|
195
|
+
label: "Games",
|
|
196
|
+
value: "games",
|
|
197
|
+
icon: "joystick",
|
|
218
198
|
},
|
|
219
199
|
],
|
|
220
200
|
},
|
|
221
201
|
];
|
|
202
|
+
|
|
222
203
|
const optionsWithEllipsisMedium = [
|
|
223
204
|
{ label: "Optiond1234567890123456789012345678901234", value: "1" },
|
|
224
205
|
{ label: "Optiond12345678901234567890123456789012345", value: "2" },
|
|
225
206
|
{ label: "Option 031111111111111111111111111111222", value: "3" },
|
|
226
|
-
{ label: "Option 03111111111111111111111111111222", value: "4" },
|
|
227
207
|
];
|
|
228
208
|
|
|
209
|
+
const opinionatedTheme = {
|
|
210
|
+
select: {
|
|
211
|
+
selectedOptionBackgroundColor: "#e6f4ff",
|
|
212
|
+
fontColor: "#000000",
|
|
213
|
+
optionFontColor: "#000000",
|
|
214
|
+
hoverBorderColor: "#a46ede",
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
|
|
229
218
|
const Select = () => (
|
|
230
219
|
<>
|
|
231
220
|
<Title title="States" theme="light" level={2} />
|
|
@@ -338,122 +327,364 @@ const Select = () => (
|
|
|
338
327
|
<Title title="Multiple selection with ellipsis" theme="light" level={4} />
|
|
339
328
|
<DxcSelect label="Label" options={single_options} multiple defaultValue={["1", "2", "3", "4"]} />
|
|
340
329
|
<Title title="Value with ellipsis" theme="light" level={4} />
|
|
341
|
-
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1"
|
|
330
|
+
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1" />
|
|
342
331
|
<Title title="Options with ellipsis" theme="light" level={4} />
|
|
343
332
|
<DxcSelect
|
|
344
333
|
label="Label"
|
|
345
334
|
placeholder="Choose an option"
|
|
346
335
|
defaultValue="1"
|
|
347
336
|
options={optionsWithEllipsisMedium}
|
|
348
|
-
|
|
337
|
+
margin={{ top: "xxlarge" }}
|
|
349
338
|
/>
|
|
350
339
|
</ExampleContainer>
|
|
351
|
-
|
|
352
|
-
);
|
|
353
|
-
const SelectListbox = () => (
|
|
354
|
-
<>
|
|
355
|
-
<Title title="Listbox" theme="light" level={2} />
|
|
356
|
-
<Title title="Default with opened listbox" theme="light" level={3} />
|
|
357
|
-
<ExampleContainer>
|
|
358
|
-
<div style={{ display: "flex", gap: "30px", flexDirection: "column", marginBottom: "80px" }}>
|
|
359
|
-
<DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
|
|
360
|
-
<DxcCheckbox
|
|
361
|
-
label="You understand the selection and give your consent"
|
|
362
|
-
onChange={() => {}}
|
|
363
|
-
labelPosition="after"
|
|
364
|
-
/>
|
|
365
|
-
<DxcButton label="Submit" onClick={() => {}} size="medium" />
|
|
366
|
-
</div>
|
|
367
|
-
</ExampleContainer>
|
|
368
|
-
<Title title="Listbox option states" theme="light" level={3} />
|
|
340
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
369
341
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
370
|
-
<Title title="Hovered
|
|
371
|
-
<
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
options={one_option}
|
|
375
|
-
visualFocusIndex={-1}
|
|
376
|
-
lastOptionIndex={0}
|
|
377
|
-
multiple={false}
|
|
378
|
-
optional={false}
|
|
379
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
380
|
-
searchable={false}
|
|
381
|
-
handleOptionOnClick={() => {}}
|
|
382
|
-
styles={{ width: 360 }}
|
|
383
|
-
/>
|
|
342
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
343
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
344
|
+
<DxcSelect label="Hovered" options={single_options} />
|
|
345
|
+
</HalstackProvider>
|
|
384
346
|
</ExampleContainer>
|
|
385
|
-
<ExampleContainer pseudoState="pseudo-
|
|
386
|
-
<Title title="
|
|
387
|
-
<
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
options={one_option}
|
|
391
|
-
visualFocusIndex={-1}
|
|
392
|
-
lastOptionIndex={0}
|
|
393
|
-
multiple={false}
|
|
394
|
-
optional={false}
|
|
395
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
396
|
-
searchable={false}
|
|
397
|
-
handleOptionOnClick={() => {}}
|
|
398
|
-
styles={{ width: 360 }}
|
|
399
|
-
/>
|
|
347
|
+
<ExampleContainer pseudoState="pseudo-focus-within">
|
|
348
|
+
<Title title="Focused" theme="light" level={4} />
|
|
349
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
350
|
+
<DxcSelect label="Focused" options={single_options} />
|
|
351
|
+
</HalstackProvider>
|
|
400
352
|
</ExampleContainer>
|
|
401
353
|
<ExampleContainer>
|
|
402
|
-
<Title title="
|
|
403
|
-
<
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
options={one_option}
|
|
407
|
-
visualFocusIndex={0}
|
|
408
|
-
lastOptionIndex={0}
|
|
409
|
-
multiple={false}
|
|
410
|
-
optional={false}
|
|
411
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
412
|
-
searchable={false}
|
|
413
|
-
handleOptionOnClick={() => {}}
|
|
414
|
-
styles={{ width: 360 }}
|
|
415
|
-
/>
|
|
354
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
355
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
356
|
+
<DxcSelect label="Disabled" placeholder="Placeholder" disabled options={single_options} />
|
|
357
|
+
</HalstackProvider>
|
|
416
358
|
</ExampleContainer>
|
|
417
|
-
<ExampleContainer
|
|
418
|
-
<Title title="
|
|
419
|
-
<
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
options={single_options}
|
|
423
|
-
visualFocusIndex={-1}
|
|
424
|
-
lastOptionIndex={3}
|
|
425
|
-
multiple={false}
|
|
426
|
-
optional={false}
|
|
427
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
428
|
-
searchable={false}
|
|
429
|
-
handleOptionOnClick={() => {}}
|
|
430
|
-
styles={{ width: 360 }}
|
|
431
|
-
/>
|
|
359
|
+
<ExampleContainer>
|
|
360
|
+
<Title title="Disabled with value" theme="light" level={4} />
|
|
361
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
362
|
+
<DxcSelect label="Disabled with value" disabled options={single_options} defaultValue="1" />
|
|
363
|
+
</HalstackProvider>
|
|
432
364
|
</ExampleContainer>
|
|
433
|
-
<ExampleContainer
|
|
434
|
-
<Title title="
|
|
435
|
-
<
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
365
|
+
<ExampleContainer>
|
|
366
|
+
<Title title="Error" theme="light" level={4} />
|
|
367
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
368
|
+
<DxcSelect
|
|
369
|
+
label="Label"
|
|
370
|
+
options={single_options}
|
|
371
|
+
error="Error message."
|
|
372
|
+
helperText="Helper text"
|
|
373
|
+
placeholder="Placeholder"
|
|
374
|
+
/>
|
|
375
|
+
<ExampleContainer>
|
|
376
|
+
<Title title="Multiple selection" theme="light" level={4} />
|
|
377
|
+
<DxcSelect label="Multiple select" searchable options={single_options} multiple defaultValue={["1", "2"]} />
|
|
378
|
+
</ExampleContainer>
|
|
379
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
380
|
+
<Title title="Multiple clear hovered" theme="light" level={4} />
|
|
381
|
+
<DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
|
|
382
|
+
</ExampleContainer>
|
|
383
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
384
|
+
<Title title="Multiple clear actived" theme="light" level={4} />
|
|
385
|
+
<DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
|
|
386
|
+
</ExampleContainer>
|
|
387
|
+
</HalstackProvider>
|
|
448
388
|
</ExampleContainer>
|
|
449
389
|
</>
|
|
450
390
|
);
|
|
391
|
+
|
|
392
|
+
const SelectListbox = () => {
|
|
393
|
+
const colorsTheme: any = useTheme();
|
|
394
|
+
|
|
395
|
+
return (
|
|
396
|
+
<>
|
|
397
|
+
<ThemeProvider theme={colorsTheme.select}>
|
|
398
|
+
<Title title="Listbox" theme="light" level={2} />
|
|
399
|
+
<ExampleContainer>
|
|
400
|
+
<Title
|
|
401
|
+
title="List dialog uses a Radix Popover to appear over elements with a certain z-index"
|
|
402
|
+
theme="light"
|
|
403
|
+
level={3}
|
|
404
|
+
/>
|
|
405
|
+
<div
|
|
406
|
+
style={{
|
|
407
|
+
position: "relative",
|
|
408
|
+
display: "flex",
|
|
409
|
+
flexDirection: "column",
|
|
410
|
+
gap: "20px",
|
|
411
|
+
height: "150px",
|
|
412
|
+
width: "min-content",
|
|
413
|
+
marginBottom: "100px",
|
|
414
|
+
padding: "20px",
|
|
415
|
+
border: "1px solid black",
|
|
416
|
+
borderRadius: "4px",
|
|
417
|
+
overflow: "auto",
|
|
418
|
+
zIndex: "1300",
|
|
419
|
+
}}
|
|
420
|
+
>
|
|
421
|
+
<DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
|
|
422
|
+
<button style={{ zIndex: "1", width: "100px" }}>Submit</button>
|
|
423
|
+
</div>
|
|
424
|
+
</ExampleContainer>
|
|
425
|
+
<Title title="Listbox option states" theme="light" level={3} />
|
|
426
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
427
|
+
<Title title="Hovered option" theme="light" level={4} />
|
|
428
|
+
<Listbox
|
|
429
|
+
id="x"
|
|
430
|
+
currentValue=""
|
|
431
|
+
options={one_option}
|
|
432
|
+
visualFocusIndex={-1}
|
|
433
|
+
lastOptionIndex={0}
|
|
434
|
+
multiple={false}
|
|
435
|
+
optional={false}
|
|
436
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
437
|
+
searchable={false}
|
|
438
|
+
handleOptionOnClick={() => {}}
|
|
439
|
+
styles={{ width: 360 }}
|
|
440
|
+
/>
|
|
441
|
+
</ExampleContainer>
|
|
442
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
443
|
+
<Title title="Active option" theme="light" level={4} />
|
|
444
|
+
<Listbox
|
|
445
|
+
id="x"
|
|
446
|
+
currentValue=""
|
|
447
|
+
options={one_option}
|
|
448
|
+
visualFocusIndex={-1}
|
|
449
|
+
lastOptionIndex={0}
|
|
450
|
+
multiple={false}
|
|
451
|
+
optional={false}
|
|
452
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
453
|
+
searchable={false}
|
|
454
|
+
handleOptionOnClick={() => {}}
|
|
455
|
+
styles={{ width: 360 }}
|
|
456
|
+
/>
|
|
457
|
+
</ExampleContainer>
|
|
458
|
+
<ExampleContainer>
|
|
459
|
+
<Title title="Focused option" theme="light" level={4} />
|
|
460
|
+
<Listbox
|
|
461
|
+
id="x"
|
|
462
|
+
currentValue=""
|
|
463
|
+
options={one_option}
|
|
464
|
+
visualFocusIndex={0}
|
|
465
|
+
lastOptionIndex={0}
|
|
466
|
+
multiple={false}
|
|
467
|
+
optional={false}
|
|
468
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
469
|
+
searchable={false}
|
|
470
|
+
handleOptionOnClick={() => {}}
|
|
471
|
+
styles={{ width: 360 }}
|
|
472
|
+
/>
|
|
473
|
+
</ExampleContainer>
|
|
474
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
475
|
+
<Title title="Hovered selected option" theme="light" level={4} />
|
|
476
|
+
<Listbox
|
|
477
|
+
id="x"
|
|
478
|
+
currentValue="1"
|
|
479
|
+
options={single_options}
|
|
480
|
+
visualFocusIndex={-1}
|
|
481
|
+
lastOptionIndex={3}
|
|
482
|
+
multiple={false}
|
|
483
|
+
optional={false}
|
|
484
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
485
|
+
searchable={false}
|
|
486
|
+
handleOptionOnClick={() => {}}
|
|
487
|
+
styles={{ width: 360 }}
|
|
488
|
+
/>
|
|
489
|
+
</ExampleContainer>
|
|
490
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
491
|
+
<Title title="Active selected option" theme="light" level={4} />
|
|
492
|
+
<Listbox
|
|
493
|
+
id="x"
|
|
494
|
+
currentValue="2"
|
|
495
|
+
options={single_options}
|
|
496
|
+
visualFocusIndex={0}
|
|
497
|
+
lastOptionIndex={3}
|
|
498
|
+
multiple={false}
|
|
499
|
+
optional={false}
|
|
500
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
501
|
+
searchable={false}
|
|
502
|
+
handleOptionOnClick={() => {}}
|
|
503
|
+
styles={{ width: 360 }}
|
|
504
|
+
/>
|
|
505
|
+
</ExampleContainer>
|
|
506
|
+
<Title title="Listbox with icons" theme="light" level={3} />
|
|
507
|
+
<ExampleContainer>
|
|
508
|
+
<Title title="Icons (SVGs)" theme="light" level={4} />
|
|
509
|
+
<Listbox
|
|
510
|
+
id="x"
|
|
511
|
+
currentValue="3"
|
|
512
|
+
options={icon_options}
|
|
513
|
+
visualFocusIndex={-1}
|
|
514
|
+
lastOptionIndex={3}
|
|
515
|
+
multiple={false}
|
|
516
|
+
optional={false}
|
|
517
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
518
|
+
searchable={false}
|
|
519
|
+
handleOptionOnClick={() => {}}
|
|
520
|
+
styles={{ width: 360 }}
|
|
521
|
+
/>
|
|
522
|
+
</ExampleContainer>
|
|
523
|
+
<ExampleContainer>
|
|
524
|
+
<Title title="Grouped icons (Material Symbols)" theme="light" level={4} />
|
|
525
|
+
<Listbox
|
|
526
|
+
id="x"
|
|
527
|
+
currentValue={["0", "3"]}
|
|
528
|
+
options={icon_options_grouped_material}
|
|
529
|
+
visualFocusIndex={-1}
|
|
530
|
+
lastOptionIndex={3}
|
|
531
|
+
multiple={false}
|
|
532
|
+
optional={false}
|
|
533
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
534
|
+
searchable={false}
|
|
535
|
+
handleOptionOnClick={() => {}}
|
|
536
|
+
styles={{ width: 360 }}
|
|
537
|
+
/>
|
|
538
|
+
</ExampleContainer>
|
|
539
|
+
<ExampleContainer>
|
|
540
|
+
<Title title="Grouped icons (Material)" theme="light" level={4} />
|
|
541
|
+
<Listbox
|
|
542
|
+
id="x"
|
|
543
|
+
currentValue={["facebook", "figma"]}
|
|
544
|
+
options={options_material}
|
|
545
|
+
visualFocusIndex={-1}
|
|
546
|
+
lastOptionIndex={6}
|
|
547
|
+
multiple={true}
|
|
548
|
+
optional={false}
|
|
549
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
550
|
+
searchable={false}
|
|
551
|
+
handleOptionOnClick={() => {}}
|
|
552
|
+
styles={{ width: 360 }}
|
|
553
|
+
/>
|
|
554
|
+
</ExampleContainer>
|
|
555
|
+
</ThemeProvider>
|
|
556
|
+
<ThemeProvider theme={colorsTheme.select}>
|
|
557
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
558
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
559
|
+
<Title title="Hovered option" theme="light" level={4} />
|
|
560
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
561
|
+
<Listbox
|
|
562
|
+
id="x"
|
|
563
|
+
currentValue=""
|
|
564
|
+
options={one_option}
|
|
565
|
+
visualFocusIndex={-1}
|
|
566
|
+
lastOptionIndex={0}
|
|
567
|
+
multiple={false}
|
|
568
|
+
optional={false}
|
|
569
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
570
|
+
searchable={false}
|
|
571
|
+
handleOptionOnClick={() => {}}
|
|
572
|
+
styles={{ width: 360 }}
|
|
573
|
+
/>
|
|
574
|
+
</HalstackProvider>
|
|
575
|
+
</ExampleContainer>
|
|
576
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
577
|
+
<Title title="Active option" theme="light" level={4} />{" "}
|
|
578
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
579
|
+
<Listbox
|
|
580
|
+
id="x"
|
|
581
|
+
currentValue=""
|
|
582
|
+
options={one_option}
|
|
583
|
+
visualFocusIndex={-1}
|
|
584
|
+
lastOptionIndex={0}
|
|
585
|
+
multiple={false}
|
|
586
|
+
optional={false}
|
|
587
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
588
|
+
searchable={false}
|
|
589
|
+
handleOptionOnClick={() => {}}
|
|
590
|
+
styles={{ width: 360 }}
|
|
591
|
+
/>
|
|
592
|
+
</HalstackProvider>
|
|
593
|
+
</ExampleContainer>
|
|
594
|
+
<ExampleContainer>
|
|
595
|
+
<Title title="Focused option" theme="light" level={4} />{" "}
|
|
596
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
597
|
+
<Listbox
|
|
598
|
+
id="x"
|
|
599
|
+
currentValue=""
|
|
600
|
+
options={one_option}
|
|
601
|
+
visualFocusIndex={0}
|
|
602
|
+
lastOptionIndex={0}
|
|
603
|
+
multiple={false}
|
|
604
|
+
optional={false}
|
|
605
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
606
|
+
searchable={false}
|
|
607
|
+
handleOptionOnClick={() => {}}
|
|
608
|
+
styles={{ width: 360 }}
|
|
609
|
+
/>
|
|
610
|
+
</HalstackProvider>
|
|
611
|
+
</ExampleContainer>
|
|
612
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
613
|
+
<Title title="Hovered selected option" theme="light" level={4} />{" "}
|
|
614
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
615
|
+
<Listbox
|
|
616
|
+
id="x"
|
|
617
|
+
currentValue="1"
|
|
618
|
+
options={single_options}
|
|
619
|
+
visualFocusIndex={-1}
|
|
620
|
+
lastOptionIndex={3}
|
|
621
|
+
multiple={false}
|
|
622
|
+
optional={false}
|
|
623
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
624
|
+
searchable={false}
|
|
625
|
+
handleOptionOnClick={() => {}}
|
|
626
|
+
styles={{ width: 360 }}
|
|
627
|
+
/>
|
|
628
|
+
</HalstackProvider>
|
|
629
|
+
</ExampleContainer>
|
|
630
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
631
|
+
<Title title="Active selected option" theme="light" level={4} />{" "}
|
|
632
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
633
|
+
<Listbox
|
|
634
|
+
id="x"
|
|
635
|
+
currentValue="2"
|
|
636
|
+
options={single_options}
|
|
637
|
+
visualFocusIndex={0}
|
|
638
|
+
lastOptionIndex={3}
|
|
639
|
+
multiple={false}
|
|
640
|
+
optional={false}
|
|
641
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
642
|
+
searchable={false}
|
|
643
|
+
handleOptionOnClick={() => {}}
|
|
644
|
+
styles={{ width: 360 }}
|
|
645
|
+
/>
|
|
646
|
+
</HalstackProvider>
|
|
647
|
+
</ExampleContainer>
|
|
648
|
+
<Title title="Listbox with icons" theme="light" level={3} />
|
|
649
|
+
<ExampleContainer>
|
|
650
|
+
<Title title="Icons (SVGs)" theme="light" level={4} />{" "}
|
|
651
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
652
|
+
<Listbox
|
|
653
|
+
id="x"
|
|
654
|
+
currentValue="3"
|
|
655
|
+
options={icon_options}
|
|
656
|
+
visualFocusIndex={-1}
|
|
657
|
+
lastOptionIndex={3}
|
|
658
|
+
multiple={false}
|
|
659
|
+
optional={false}
|
|
660
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
661
|
+
searchable={false}
|
|
662
|
+
handleOptionOnClick={() => {}}
|
|
663
|
+
styles={{ width: 360 }}
|
|
664
|
+
/>
|
|
665
|
+
</HalstackProvider>
|
|
666
|
+
</ExampleContainer>
|
|
667
|
+
</ThemeProvider>
|
|
668
|
+
</>
|
|
669
|
+
);
|
|
670
|
+
};
|
|
671
|
+
|
|
451
672
|
const SearchableSelect = () => (
|
|
452
673
|
<ExampleContainer expanded>
|
|
453
674
|
<Title title="Searchable select" theme="light" level={4} />
|
|
454
675
|
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
455
676
|
</ExampleContainer>
|
|
456
677
|
);
|
|
678
|
+
|
|
679
|
+
const SearchableSelectOpinionated = () => (
|
|
680
|
+
<ExampleContainer expanded>
|
|
681
|
+
<Title title="Searchable select" theme="light" level={4} />
|
|
682
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
683
|
+
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
684
|
+
</HalstackProvider>
|
|
685
|
+
</ExampleContainer>
|
|
686
|
+
);
|
|
687
|
+
|
|
457
688
|
const SearchValue = () => (
|
|
458
689
|
<ExampleContainer expanded>
|
|
459
690
|
<Title title="Searchable select with value" theme="light" level={4} />
|
|
@@ -466,6 +697,22 @@ const SearchValue = () => (
|
|
|
466
697
|
/>
|
|
467
698
|
</ExampleContainer>
|
|
468
699
|
);
|
|
700
|
+
|
|
701
|
+
const SearchValueOpinionated = () => (
|
|
702
|
+
<ExampleContainer expanded>
|
|
703
|
+
<Title title="Searchable select with value" theme="light" level={4} />
|
|
704
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
705
|
+
<DxcSelect
|
|
706
|
+
label="Select Label"
|
|
707
|
+
searchable
|
|
708
|
+
defaultValue="1"
|
|
709
|
+
options={single_options}
|
|
710
|
+
placeholder="Choose an option"
|
|
711
|
+
/>
|
|
712
|
+
</HalstackProvider>
|
|
713
|
+
</ExampleContainer>
|
|
714
|
+
);
|
|
715
|
+
|
|
469
716
|
const MultipleSelect = () => (
|
|
470
717
|
<>
|
|
471
718
|
<ExampleContainer expanded>
|
|
@@ -480,12 +727,38 @@ const MultipleSelect = () => (
|
|
|
480
727
|
</ExampleContainer>
|
|
481
728
|
</>
|
|
482
729
|
);
|
|
730
|
+
|
|
731
|
+
const MultipleSelectOpinioated = () => (
|
|
732
|
+
<ExampleContainer expanded>
|
|
733
|
+
<Title title="Multiple select" theme="light" level={4} />
|
|
734
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
735
|
+
<DxcSelect
|
|
736
|
+
label="Select label"
|
|
737
|
+
options={single_options}
|
|
738
|
+
defaultValue={["1", "4"]}
|
|
739
|
+
multiple
|
|
740
|
+
placeholder="Choose an option"
|
|
741
|
+
/>
|
|
742
|
+
</HalstackProvider>
|
|
743
|
+
</ExampleContainer>
|
|
744
|
+
);
|
|
745
|
+
|
|
483
746
|
const DefaultGroupedOptionsSelect = () => (
|
|
484
747
|
<ExampleContainer expanded>
|
|
485
748
|
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
486
749
|
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
487
750
|
</ExampleContainer>
|
|
488
751
|
);
|
|
752
|
+
|
|
753
|
+
const DefaultGroupedOptionsSelectOpinionated = () => (
|
|
754
|
+
<ExampleContainer expanded>
|
|
755
|
+
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
756
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
757
|
+
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
758
|
+
</HalstackProvider>
|
|
759
|
+
</ExampleContainer>
|
|
760
|
+
);
|
|
761
|
+
|
|
489
762
|
const MultipleGroupedOptionsSelect = () => (
|
|
490
763
|
<ExampleContainer expanded>
|
|
491
764
|
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
@@ -498,34 +771,19 @@ const MultipleGroupedOptionsSelect = () => (
|
|
|
498
771
|
/>
|
|
499
772
|
</ExampleContainer>
|
|
500
773
|
);
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
<Title title="Rescaled icons displayed" theme="light" level={4} />
|
|
504
|
-
<DxcSelect label="Label" options={url_options} defaultValue="facebook" placeholder="Choose an option" />
|
|
505
|
-
</ExampleContainer>
|
|
506
|
-
);
|
|
507
|
-
const SelectWithIcons = () => (
|
|
508
|
-
<ExampleContainer expanded>
|
|
509
|
-
<Title title="Normal icons displayed" theme="light" level={4} />
|
|
510
|
-
<DxcSelect label="Label" options={icon_options} defaultValue="3" placeholder="Choose an option" />
|
|
511
|
-
</ExampleContainer>
|
|
512
|
-
);
|
|
513
|
-
const SelectMultipleWithIcons = () => (
|
|
514
|
-
<ExampleContainer expanded>
|
|
515
|
-
<Title title="Multiple select with icons" theme="light" level={4} />
|
|
516
|
-
<DxcSelect label="Label" options={icon_options} multiple defaultValue={["1", "3"]} placeholder="Choose an option" />
|
|
517
|
-
</ExampleContainer>
|
|
518
|
-
);
|
|
519
|
-
const MultipleGroupedOptionsSelectWithIcons = () => (
|
|
774
|
+
|
|
775
|
+
const MultipleGroupedOptionsSelectOpinionated = () => (
|
|
520
776
|
<ExampleContainer expanded>
|
|
521
|
-
<Title title="
|
|
522
|
-
<
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
777
|
+
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
778
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
779
|
+
<DxcSelect
|
|
780
|
+
label="Label"
|
|
781
|
+
options={group_options}
|
|
782
|
+
defaultValue={["0", "2"]}
|
|
783
|
+
multiple
|
|
784
|
+
placeholder="Choose an option"
|
|
785
|
+
/>
|
|
786
|
+
</HalstackProvider>
|
|
529
787
|
</ExampleContainer>
|
|
530
788
|
);
|
|
531
789
|
|
|
@@ -543,6 +801,22 @@ const MultipleSearchable = () => (
|
|
|
543
801
|
</ExampleContainer>
|
|
544
802
|
);
|
|
545
803
|
|
|
804
|
+
const MultipleSearchableOpinionated = () => (
|
|
805
|
+
<ExampleContainer expanded>
|
|
806
|
+
<Title title="Searchable multiple select with value" theme="light" level={4} />
|
|
807
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
808
|
+
<DxcSelect
|
|
809
|
+
label="Select Label"
|
|
810
|
+
searchable
|
|
811
|
+
multiple
|
|
812
|
+
defaultValue={["1", "4"]}
|
|
813
|
+
options={single_options}
|
|
814
|
+
placeholder="Choose an option"
|
|
815
|
+
/>
|
|
816
|
+
</HalstackProvider>
|
|
817
|
+
</ExampleContainer>
|
|
818
|
+
);
|
|
819
|
+
|
|
546
820
|
export const Chromatic = Select.bind({});
|
|
547
821
|
Chromatic.play = async ({ canvasElement }) => {
|
|
548
822
|
const canvas = within(canvasElement);
|
|
@@ -559,10 +833,13 @@ ListboxStates.play = async ({ canvasElement }) => {
|
|
|
559
833
|
export const Searchable = SearchableSelect.bind({});
|
|
560
834
|
Searchable.play = async ({ canvasElement }) => {
|
|
561
835
|
const canvas = within(canvasElement);
|
|
562
|
-
await userEvent.
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
836
|
+
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
837
|
+
};
|
|
838
|
+
|
|
839
|
+
export const SearchableOpinionated = SearchableSelectOpinionated.bind({});
|
|
840
|
+
SearchableOpinionated.play = async ({ canvasElement }) => {
|
|
841
|
+
const canvas = within(canvasElement);
|
|
842
|
+
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
566
843
|
};
|
|
567
844
|
|
|
568
845
|
export const SearchableWithValue = SearchValue.bind({});
|
|
@@ -571,12 +848,24 @@ SearchableWithValue.play = async ({ canvasElement }) => {
|
|
|
571
848
|
await userEvent.click(canvas.getByRole("combobox"));
|
|
572
849
|
};
|
|
573
850
|
|
|
851
|
+
export const SearchableWithValueOpinionated = SearchValueOpinionated.bind({});
|
|
852
|
+
SearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
853
|
+
const canvas = within(canvasElement);
|
|
854
|
+
await userEvent.click(canvas.getByRole("combobox"));
|
|
855
|
+
};
|
|
856
|
+
|
|
574
857
|
export const MultipleSearchableWithValue = MultipleSearchable.bind({});
|
|
575
858
|
MultipleSearchableWithValue.play = async ({ canvasElement }) => {
|
|
576
859
|
const canvas = within(canvasElement);
|
|
577
860
|
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
578
861
|
};
|
|
579
862
|
|
|
863
|
+
export const MultipleSearchableWithValueOpinionated = MultipleSearchableOpinionated.bind({});
|
|
864
|
+
MultipleSearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
865
|
+
const canvas = within(canvasElement);
|
|
866
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
867
|
+
};
|
|
868
|
+
|
|
580
869
|
export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
|
|
581
870
|
GroupOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
582
871
|
const canvas = within(canvasElement);
|
|
@@ -584,42 +873,34 @@ GroupOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
|
584
873
|
await userEvent.click(select);
|
|
585
874
|
};
|
|
586
875
|
|
|
587
|
-
export const
|
|
588
|
-
|
|
589
|
-
const canvas = within(canvasElement);
|
|
590
|
-
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
591
|
-
};
|
|
592
|
-
|
|
593
|
-
export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
|
|
594
|
-
MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
876
|
+
export const GroupOptionsDisplayedOpinionated = DefaultGroupedOptionsSelectOpinionated.bind({});
|
|
877
|
+
GroupOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
595
878
|
const canvas = within(canvasElement);
|
|
596
879
|
const select = canvas.getByRole("combobox");
|
|
597
880
|
await userEvent.click(select);
|
|
598
881
|
};
|
|
599
882
|
|
|
600
|
-
export const
|
|
601
|
-
|
|
883
|
+
export const MultipleOptionsDisplayed = MultipleSelect.bind({});
|
|
884
|
+
MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
602
885
|
const canvas = within(canvasElement);
|
|
603
|
-
|
|
604
|
-
await userEvent.click(select);
|
|
886
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
605
887
|
};
|
|
606
888
|
|
|
607
|
-
export const
|
|
608
|
-
|
|
889
|
+
export const MultipleOptionsDisplayedOpinionated = MultipleSelectOpinioated.bind({});
|
|
890
|
+
MultipleOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
609
891
|
const canvas = within(canvasElement);
|
|
610
|
-
|
|
611
|
-
await userEvent.click(select);
|
|
892
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
612
893
|
};
|
|
613
894
|
|
|
614
|
-
export const
|
|
615
|
-
|
|
895
|
+
export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
|
|
896
|
+
MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
616
897
|
const canvas = within(canvasElement);
|
|
617
898
|
const select = canvas.getByRole("combobox");
|
|
618
899
|
await userEvent.click(select);
|
|
619
900
|
};
|
|
620
901
|
|
|
621
|
-
export const
|
|
622
|
-
|
|
902
|
+
export const MultipleGroupedOptionsDisplayedOpinionated = MultipleGroupedOptionsSelectOpinionated.bind({});
|
|
903
|
+
MultipleGroupedOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
623
904
|
const canvas = within(canvasElement);
|
|
624
905
|
const select = canvas.getByRole("combobox");
|
|
625
906
|
await userEvent.click(select);
|