@dxc-technology/halstack-react 0.0.0-5aa300b → 0.0.0-5b15506
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 +122 -106
- package/README.md +47 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +41 -109
- package/accordion/Accordion.stories.tsx +53 -148
- package/accordion/Accordion.test.js +19 -34
- package/accordion/types.d.ts +6 -18
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +2 -2
- package/accordion-group/AccordionGroup.js +29 -77
- package/accordion-group/AccordionGroup.stories.tsx +78 -77
- package/accordion-group/AccordionGroup.test.js +44 -72
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +7 -19
- package/action-icon/ActionIcon.accessibility.test.js +63 -0
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +48 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.accessibility.test.js +95 -0
- package/alert/Alert.js +31 -124
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +142 -42
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/bleed/Bleed.js +13 -21
- package/bleed/Bleed.stories.tsx +1 -0
- package/bleed/types.d.ts +2 -2
- package/box/Box.accessibility.test.js +33 -0
- package/box/Box.d.ts +1 -1
- package/box/Box.js +18 -59
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -15
- package/bulleted-list/BulletedList.accessibility.test.js +107 -0
- package/bulleted-list/BulletedList.js +22 -53
- package/bulleted-list/BulletedList.stories.tsx +8 -93
- package/bulleted-list/types.d.ts +32 -5
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +70 -103
- package/button/Button.stories.tsx +105 -114
- package/button/Button.test.js +20 -17
- package/button/types.d.ts +9 -5
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.d.ts +1 -1
- package/card/Card.js +48 -89
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -12
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.js +87 -122
- package/checkbox/Checkbox.stories.tsx +68 -54
- package/checkbox/Checkbox.test.js +108 -64
- package/checkbox/types.d.ts +8 -4
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +42 -67
- package/chip/Chip.stories.tsx +73 -29
- 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 +899 -1144
- 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 +1 -1
- package/date-input/Calendar.js +52 -96
- package/date-input/DateInput.accessibility.test.js +216 -0
- package/date-input/DateInput.js +102 -107
- package/date-input/DateInput.stories.tsx +194 -60
- package/date-input/DateInput.test.js +676 -620
- package/date-input/DatePicker.js +53 -92
- package/date-input/YearPicker.d.ts +1 -1
- package/date-input/YearPicker.js +29 -44
- package/date-input/types.d.ts +32 -28
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +61 -119
- package/dialog/Dialog.stories.tsx +310 -212
- package/dialog/Dialog.test.js +270 -33
- package/dialog/types.d.ts +18 -26
- package/divider/Divider.accessibility.test.js +33 -0
- package/divider/Divider.d.ts +4 -0
- package/divider/Divider.js +36 -0
- package/divider/Divider.stories.tsx +223 -0
- package/divider/Divider.test.js +38 -0
- package/divider/types.d.ts +21 -0
- package/divider/types.js +5 -0
- package/dropdown/Dropdown.accessibility.test.js +180 -0
- package/dropdown/Dropdown.js +61 -131
- package/dropdown/Dropdown.stories.tsx +205 -98
- package/dropdown/Dropdown.test.js +393 -379
- package/dropdown/DropdownMenu.js +20 -37
- package/dropdown/DropdownMenuItem.js +15 -37
- package/dropdown/types.d.ts +20 -24
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.js +184 -292
- package/file-input/FileInput.stories.tsx +86 -3
- package/file-input/FileInput.test.js +279 -395
- package/file-input/FileItem.js +27 -67
- package/file-input/types.d.ts +10 -10
- package/flex/Flex.js +27 -39
- package/flex/Flex.stories.tsx +35 -26
- package/flex/types.d.ts +74 -9
- package/footer/Footer.accessibility.test.js +117 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +73 -118
- package/footer/Footer.stories.tsx +82 -23
- 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 -28
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/grid/types.js +5 -0
- package/header/Header.accessibility.test.js +84 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +53 -149
- package/header/Header.stories.tsx +115 -36
- package/header/Header.test.js +13 -26
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +2 -7
- package/header/types.d.ts +7 -22
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/icon/Icon.accessibility.test.js +30 -0
- package/icon/Icon.d.ts +4 -0
- package/icon/Icon.js +33 -0
- package/icon/Icon.stories.tsx +28 -0
- package/icon/types.d.ts +4 -0
- package/icon/types.js +5 -0
- package/image/Image.accessibility.test.js +56 -0
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +129 -0
- package/image/types.d.ts +72 -0
- package/image/types.js +5 -0
- package/inset/Inset.js +13 -21
- package/inset/Inset.stories.tsx +2 -1
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +5 -5
- package/layout/ApplicationLayout.js +30 -67
- package/layout/ApplicationLayout.stories.tsx +1 -1
- package/layout/Icons.d.ts +8 -5
- package/layout/Icons.js +49 -59
- package/layout/types.d.ts +5 -6
- package/link/Link.accessibility.test.js +112 -0
- package/link/Link.js +31 -50
- package/link/Link.stories.tsx +62 -2
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +10 -5
- package/main.js +47 -59
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +7 -0
- package/{tabs-nav → nav-tabs}/NavTabs.js +25 -57
- package/nav-tabs/NavTabs.stories.tsx +279 -0
- package/{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 -413
- package/number-input/NumberInputContext.d.ts +3 -4
- package/number-input/NumberInputContext.js +3 -14
- package/number-input/types.d.ts +17 -5
- package/package.json +41 -39
- package/paginator/Icons.d.ts +5 -5
- package/paginator/Icons.js +5 -19
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +17 -47
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +252 -225
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/paragraph/Paragraph.d.ts +3 -4
- package/paragraph/Paragraph.js +6 -22
- package/paragraph/Paragraph.stories.tsx +0 -17
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +56 -126
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +158 -141
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +23 -55
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
- package/progress-bar/ProgressBar.test.js +36 -53
- package/progress-bar/types.d.ts +4 -3
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.js +4 -27
- package/quick-nav/QuickNav.stories.tsx +15 -1
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +31 -63
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +45 -93
- package/radio-group/RadioGroup.stories.tsx +131 -18
- package/radio-group/RadioGroup.test.js +505 -471
- package/radio-group/types.d.ts +8 -8
- package/resultset-table/Icons.d.ts +7 -0
- package/{resultsetTable → resultset-table}/Icons.js +1 -5
- package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
- package/resultset-table/ResultsetTable.d.ts +7 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.js +46 -71
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +106 -5
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +165 -114
- package/{resultsetTable → resultset-table}/types.d.ts +44 -11
- package/resultset-table/types.js +5 -0
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +22 -75
- package/select/Option.js +28 -48
- package/select/Select.accessibility.test.js +217 -0
- package/select/Select.js +134 -181
- package/select/Select.stories.tsx +488 -264
- package/select/Select.test.js +1950 -1907
- package/select/types.d.ts +17 -18
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.d.ts +2 -2
- package/sidenav/Sidenav.js +90 -155
- package/sidenav/Sidenav.stories.tsx +113 -25
- package/sidenav/Sidenav.test.js +3 -10
- package/{layout → sidenav}/SidenavContext.d.ts +1 -1
- package/{layout → sidenav}/SidenavContext.js +3 -9
- package/sidenav/types.d.ts +33 -30
- package/slider/Slider.accessibility.test.js +104 -0
- package/slider/Slider.js +70 -128
- package/slider/Slider.test.js +108 -104
- package/slider/types.d.ts +4 -4
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +29 -73
- 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.js +51 -99
- package/switch/Switch.stories.tsx +33 -34
- package/switch/Switch.test.js +52 -97
- package/switch/types.d.ts +4 -4
- package/table/DropdownTheme.js +62 -0
- package/table/Table.accessibility.test.js +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 +94 -7
- package/table/types.d.ts +34 -6
- package/tabs/Tab.js +27 -43
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +69 -163
- package/tabs/Tabs.stories.tsx +40 -4
- package/tabs/Tabs.test.js +61 -136
- package/tabs/types.d.ts +21 -21
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +34 -66
- package/tag/Tag.stories.tsx +18 -8
- package/tag/Tag.test.js +18 -37
- package/tag/types.d.ts +9 -9
- package/text-input/Suggestion.js +11 -28
- package/text-input/Suggestions.d.ts +1 -1
- package/text-input/Suggestions.js +19 -67
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +223 -329
- package/text-input/TextInput.stories.tsx +118 -153
- package/text-input/TextInput.test.js +1228 -1196
- package/text-input/types.d.ts +25 -17
- 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 +2 -2
- package/typography/Typography.js +15 -123
- package/typography/Typography.stories.tsx +1 -1
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +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 +29 -67
- package/wizard/Wizard.stories.tsx +39 -0
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +10 -11
- package/card/ice-cream.jpg +0 -0
- package/common/OpenSans.css +0 -81
- package/common/fonts/OpenSans-Bold.ttf +0 -0
- package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-Italic.ttf +0 -0
- package/common/fonts/OpenSans-Light.ttf +0 -0
- package/common/fonts/OpenSans-LightItalic.ttf +0 -0
- package/common/fonts/OpenSans-Regular.ttf +0 -0
- package/common/fonts/OpenSans-SemiBold.ttf +0 -0
- package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/resultsetTable/Icons.d.ts +0 -7
- package/resultsetTable/ResultsetTable.d.ts +0 -4
- package/select/Icons.d.ts +0 -10
- package/select/Icons.js +0 -93
- package/slider/Slider.stories.tsx +0 -183
- package/table/Table.stories.jsx +0 -277
- package/tabs-nav/NavTabs.d.ts +0 -8
- package/tabs-nav/NavTabs.stories.tsx +0 -172
- package/tabs-nav/Tab.js +0 -128
- package/text-input/Icons.d.ts +0 -8
- package/text-input/Icons.js +0 -60
- package/textarea/Textarea.stories.jsx +0 -157
- /package/{resultsetTable → action-icon}/types.js +0 -0
- /package/{tabs-nav → container}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
|
@@ -4,8 +4,9 @@ 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,82 +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:
|
|
193
|
-
<svg
|
|
194
|
-
version="1.1"
|
|
195
|
-
id="Capa_1"
|
|
196
|
-
x="0px"
|
|
197
|
-
y="0px"
|
|
198
|
-
width="438.536px"
|
|
199
|
-
height="438.536px"
|
|
200
|
-
viewBox="0 0 438.536 438.536"
|
|
201
|
-
fill="#4267B2"
|
|
202
|
-
>
|
|
203
|
-
<g>
|
|
204
|
-
<path
|
|
205
|
-
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
|
|
206
|
-
C8.045,40.207,0.003,59.576,0.003,82.225v274.084c0,22.647,8.042,42.018,24.123,58.102c16.084,16.084,35.454,24.126,58.102,24.126
|
|
207
|
-
h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
|
|
208
|
-
C438.532,59.576,430.49,40.204,414.41,24.123z M373.155,225.548h-49.963V406.84h-74.802V225.548H210.99V163.02h37.401v-37.402
|
|
209
|
-
c0-26.838,6.283-47.107,18.843-60.813c12.559-13.706,33.304-20.555,62.242-20.555h49.963v62.526h-31.401
|
|
210
|
-
c-10.663,0-17.467,1.853-20.417,5.568c-2.949,3.711-4.428,10.23-4.428,19.558v31.119h56.534L373.155,225.548z"
|
|
211
|
-
/>
|
|
212
|
-
</g>
|
|
213
|
-
</svg>
|
|
214
|
-
),
|
|
170
|
+
label: "Train",
|
|
171
|
+
value: "train",
|
|
172
|
+
icon: "train",
|
|
215
173
|
},
|
|
216
174
|
{
|
|
217
|
-
label: "
|
|
218
|
-
value: "
|
|
219
|
-
icon: "
|
|
175
|
+
label: "Bike",
|
|
176
|
+
value: "bike",
|
|
177
|
+
icon: "pedal_bike",
|
|
220
178
|
},
|
|
221
179
|
],
|
|
222
180
|
},
|
|
223
181
|
{
|
|
224
|
-
label: "
|
|
182
|
+
label: "Entertainment",
|
|
225
183
|
options: [
|
|
226
184
|
{
|
|
227
|
-
label: "
|
|
228
|
-
value: "
|
|
229
|
-
icon: "
|
|
185
|
+
label: "Movie",
|
|
186
|
+
value: "movie",
|
|
187
|
+
icon: "movie",
|
|
230
188
|
},
|
|
231
189
|
{
|
|
232
|
-
label: "
|
|
233
|
-
value: "
|
|
234
|
-
icon: "
|
|
190
|
+
label: "Music",
|
|
191
|
+
value: "music",
|
|
192
|
+
icon: "music_note",
|
|
235
193
|
},
|
|
236
194
|
{
|
|
237
|
-
label: "
|
|
238
|
-
value: "
|
|
239
|
-
icon: "
|
|
195
|
+
label: "Games",
|
|
196
|
+
value: "games",
|
|
197
|
+
icon: "joystick",
|
|
240
198
|
},
|
|
241
199
|
],
|
|
242
200
|
},
|
|
243
201
|
];
|
|
202
|
+
|
|
244
203
|
const optionsWithEllipsisMedium = [
|
|
245
204
|
{ label: "Optiond1234567890123456789012345678901234", value: "1" },
|
|
246
205
|
{ label: "Optiond12345678901234567890123456789012345", value: "2" },
|
|
247
206
|
{ label: "Option 031111111111111111111111111111222", value: "3" },
|
|
248
|
-
{ label: "Option 03111111111111111111111111111222", value: "4" },
|
|
249
207
|
];
|
|
250
208
|
|
|
209
|
+
const opinionatedTheme = {
|
|
210
|
+
select: {
|
|
211
|
+
selectedOptionBackgroundColor: "#e6f4ff",
|
|
212
|
+
fontColor: "#000000",
|
|
213
|
+
optionFontColor: "#000000",
|
|
214
|
+
hoverBorderColor: "#a46ede",
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
|
|
251
218
|
const Select = () => (
|
|
252
219
|
<>
|
|
253
220
|
<Title title="States" theme="light" level={2} />
|
|
@@ -360,200 +327,364 @@ const Select = () => (
|
|
|
360
327
|
<Title title="Multiple selection with ellipsis" theme="light" level={4} />
|
|
361
328
|
<DxcSelect label="Label" options={single_options} multiple defaultValue={["1", "2", "3", "4"]} />
|
|
362
329
|
<Title title="Value with ellipsis" theme="light" level={4} />
|
|
363
|
-
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1"
|
|
330
|
+
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1" />
|
|
364
331
|
<Title title="Options with ellipsis" theme="light" level={4} />
|
|
365
332
|
<DxcSelect
|
|
366
333
|
label="Label"
|
|
367
334
|
placeholder="Choose an option"
|
|
368
335
|
defaultValue="1"
|
|
369
336
|
options={optionsWithEllipsisMedium}
|
|
370
|
-
|
|
371
|
-
/>
|
|
372
|
-
</ExampleContainer>
|
|
373
|
-
</>
|
|
374
|
-
);
|
|
375
|
-
const SelectListbox = () => (
|
|
376
|
-
<>
|
|
377
|
-
<Title title="Listbox" theme="light" level={2} />
|
|
378
|
-
<ExampleContainer>
|
|
379
|
-
<Title
|
|
380
|
-
title="List dialog uses a Radix Popover to appear over elements with a certain z-index"
|
|
381
|
-
theme="light"
|
|
382
|
-
level={3}
|
|
383
|
-
/>
|
|
384
|
-
<div
|
|
385
|
-
style={{
|
|
386
|
-
display: "flex",
|
|
387
|
-
flexDirection: "column",
|
|
388
|
-
gap: "20px",
|
|
389
|
-
height: "150px",
|
|
390
|
-
width: "min-content",
|
|
391
|
-
marginBottom: "100px",
|
|
392
|
-
padding: "20px",
|
|
393
|
-
border: "1px solid black",
|
|
394
|
-
borderRadius: "4px",
|
|
395
|
-
overflow: "auto",
|
|
396
|
-
zIndex: "1300",
|
|
397
|
-
}}
|
|
398
|
-
>
|
|
399
|
-
<DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
|
|
400
|
-
<button style={{ zIndex: "1", width: "100px" }}>Submit</button>
|
|
401
|
-
</div>
|
|
402
|
-
</ExampleContainer>
|
|
403
|
-
<Title title="Listbox option states" theme="light" level={3} />
|
|
404
|
-
<ExampleContainer pseudoState="pseudo-hover">
|
|
405
|
-
<Title title="Hovered option" theme="light" level={4} />
|
|
406
|
-
<Listbox
|
|
407
|
-
id="x"
|
|
408
|
-
currentValue=""
|
|
409
|
-
options={one_option}
|
|
410
|
-
visualFocusIndex={-1}
|
|
411
|
-
lastOptionIndex={0}
|
|
412
|
-
multiple={false}
|
|
413
|
-
optional={false}
|
|
414
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
415
|
-
searchable={false}
|
|
416
|
-
handleOptionOnClick={() => {}}
|
|
417
|
-
getSelectWidth={() => 360}
|
|
418
|
-
/>
|
|
419
|
-
</ExampleContainer>
|
|
420
|
-
<ExampleContainer pseudoState="pseudo-active">
|
|
421
|
-
<Title title="Active option" theme="light" level={4} />
|
|
422
|
-
<Listbox
|
|
423
|
-
id="x"
|
|
424
|
-
currentValue=""
|
|
425
|
-
options={one_option}
|
|
426
|
-
visualFocusIndex={-1}
|
|
427
|
-
lastOptionIndex={0}
|
|
428
|
-
multiple={false}
|
|
429
|
-
optional={false}
|
|
430
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
431
|
-
searchable={false}
|
|
432
|
-
handleOptionOnClick={() => {}}
|
|
433
|
-
getSelectWidth={() => 360}
|
|
434
|
-
/>
|
|
435
|
-
</ExampleContainer>
|
|
436
|
-
<ExampleContainer>
|
|
437
|
-
<Title title="Focused option" theme="light" level={4} />
|
|
438
|
-
<Listbox
|
|
439
|
-
id="x"
|
|
440
|
-
currentValue=""
|
|
441
|
-
options={one_option}
|
|
442
|
-
visualFocusIndex={0}
|
|
443
|
-
lastOptionIndex={0}
|
|
444
|
-
multiple={false}
|
|
445
|
-
optional={false}
|
|
446
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
447
|
-
searchable={false}
|
|
448
|
-
handleOptionOnClick={() => {}}
|
|
449
|
-
getSelectWidth={() => 360}
|
|
337
|
+
margin={{ top: "xxlarge" }}
|
|
450
338
|
/>
|
|
451
339
|
</ExampleContainer>
|
|
340
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
452
341
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
453
|
-
<Title title="Hovered
|
|
454
|
-
<
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
options={single_options}
|
|
458
|
-
visualFocusIndex={-1}
|
|
459
|
-
lastOptionIndex={3}
|
|
460
|
-
multiple={false}
|
|
461
|
-
optional={false}
|
|
462
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
463
|
-
searchable={false}
|
|
464
|
-
handleOptionOnClick={() => {}}
|
|
465
|
-
getSelectWidth={() => 360}
|
|
466
|
-
/>
|
|
467
|
-
</ExampleContainer>
|
|
468
|
-
<ExampleContainer pseudoState="pseudo-active">
|
|
469
|
-
<Title title="Active selected option" theme="light" level={4} />
|
|
470
|
-
<Listbox
|
|
471
|
-
id="x"
|
|
472
|
-
currentValue="2"
|
|
473
|
-
options={single_options}
|
|
474
|
-
visualFocusIndex={0}
|
|
475
|
-
lastOptionIndex={3}
|
|
476
|
-
multiple={false}
|
|
477
|
-
optional={false}
|
|
478
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
479
|
-
searchable={false}
|
|
480
|
-
handleOptionOnClick={() => {}}
|
|
481
|
-
getSelectWidth={() => 360}
|
|
482
|
-
/>
|
|
342
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
343
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
344
|
+
<DxcSelect label="Hovered" options={single_options} />
|
|
345
|
+
</HalstackProvider>
|
|
483
346
|
</ExampleContainer>
|
|
484
|
-
<
|
|
485
|
-
|
|
486
|
-
<
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
currentValue="3"
|
|
490
|
-
options={icon_options}
|
|
491
|
-
visualFocusIndex={-1}
|
|
492
|
-
lastOptionIndex={3}
|
|
493
|
-
multiple={false}
|
|
494
|
-
optional={false}
|
|
495
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
496
|
-
searchable={false}
|
|
497
|
-
handleOptionOnClick={() => {}}
|
|
498
|
-
getSelectWidth={() => 360}
|
|
499
|
-
/>
|
|
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>
|
|
500
352
|
</ExampleContainer>
|
|
501
353
|
<ExampleContainer>
|
|
502
|
-
<Title title="
|
|
503
|
-
<
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
options={url_options}
|
|
507
|
-
visualFocusIndex={-1}
|
|
508
|
-
lastOptionIndex={6}
|
|
509
|
-
multiple={false}
|
|
510
|
-
optional={false}
|
|
511
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
512
|
-
searchable={false}
|
|
513
|
-
handleOptionOnClick={() => {}}
|
|
514
|
-
getSelectWidth={() => 360}
|
|
515
|
-
/>
|
|
354
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
355
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
356
|
+
<DxcSelect label="Disabled" placeholder="Placeholder" disabled options={single_options} />
|
|
357
|
+
</HalstackProvider>
|
|
516
358
|
</ExampleContainer>
|
|
517
359
|
<ExampleContainer>
|
|
518
|
-
<Title title="
|
|
519
|
-
<
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
options={icon_options_grouped}
|
|
523
|
-
visualFocusIndex={-1}
|
|
524
|
-
lastOptionIndex={3}
|
|
525
|
-
multiple={false}
|
|
526
|
-
optional={false}
|
|
527
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
528
|
-
searchable={false}
|
|
529
|
-
handleOptionOnClick={() => {}}
|
|
530
|
-
getSelectWidth={() => 360}
|
|
531
|
-
/>
|
|
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>
|
|
532
364
|
</ExampleContainer>
|
|
533
365
|
<ExampleContainer>
|
|
534
|
-
<Title title="
|
|
535
|
-
<
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
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>
|
|
548
388
|
</ExampleContainer>
|
|
549
389
|
</>
|
|
550
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
|
+
|
|
551
672
|
const SearchableSelect = () => (
|
|
552
673
|
<ExampleContainer expanded>
|
|
553
674
|
<Title title="Searchable select" theme="light" level={4} />
|
|
554
675
|
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
555
676
|
</ExampleContainer>
|
|
556
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
|
+
|
|
557
688
|
const SearchValue = () => (
|
|
558
689
|
<ExampleContainer expanded>
|
|
559
690
|
<Title title="Searchable select with value" theme="light" level={4} />
|
|
@@ -566,6 +697,22 @@ const SearchValue = () => (
|
|
|
566
697
|
/>
|
|
567
698
|
</ExampleContainer>
|
|
568
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
|
+
|
|
569
716
|
const MultipleSelect = () => (
|
|
570
717
|
<>
|
|
571
718
|
<ExampleContainer expanded>
|
|
@@ -580,12 +727,38 @@ const MultipleSelect = () => (
|
|
|
580
727
|
</ExampleContainer>
|
|
581
728
|
</>
|
|
582
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
|
+
|
|
583
746
|
const DefaultGroupedOptionsSelect = () => (
|
|
584
747
|
<ExampleContainer expanded>
|
|
585
748
|
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
586
749
|
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
587
750
|
</ExampleContainer>
|
|
588
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
|
+
|
|
589
762
|
const MultipleGroupedOptionsSelect = () => (
|
|
590
763
|
<ExampleContainer expanded>
|
|
591
764
|
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
@@ -598,22 +771,19 @@ const MultipleGroupedOptionsSelect = () => (
|
|
|
598
771
|
/>
|
|
599
772
|
</ExampleContainer>
|
|
600
773
|
);
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
<Title title="Multiple select with icons" theme="light" level={4} />
|
|
604
|
-
<DxcSelect label="Label" options={icon_options} multiple defaultValue={["1", "3"]} placeholder="Choose an option" />
|
|
605
|
-
</ExampleContainer>
|
|
606
|
-
);
|
|
607
|
-
const MultipleGroupedOptionsSelectWithIcons = () => (
|
|
774
|
+
|
|
775
|
+
const MultipleGroupedOptionsSelectOpinionated = () => (
|
|
608
776
|
<ExampleContainer expanded>
|
|
609
|
-
<Title title="
|
|
610
|
-
<
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
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>
|
|
617
787
|
</ExampleContainer>
|
|
618
788
|
);
|
|
619
789
|
|
|
@@ -631,6 +801,22 @@ const MultipleSearchable = () => (
|
|
|
631
801
|
</ExampleContainer>
|
|
632
802
|
);
|
|
633
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
|
+
|
|
634
820
|
export const Chromatic = Select.bind({});
|
|
635
821
|
Chromatic.play = async ({ canvasElement }) => {
|
|
636
822
|
const canvas = within(canvasElement);
|
|
@@ -650,18 +836,36 @@ Searchable.play = async ({ canvasElement }) => {
|
|
|
650
836
|
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
651
837
|
};
|
|
652
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");
|
|
843
|
+
};
|
|
844
|
+
|
|
653
845
|
export const SearchableWithValue = SearchValue.bind({});
|
|
654
846
|
SearchableWithValue.play = async ({ canvasElement }) => {
|
|
655
847
|
const canvas = within(canvasElement);
|
|
656
848
|
await userEvent.click(canvas.getByRole("combobox"));
|
|
657
849
|
};
|
|
658
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
|
+
|
|
659
857
|
export const MultipleSearchableWithValue = MultipleSearchable.bind({});
|
|
660
858
|
MultipleSearchableWithValue.play = async ({ canvasElement }) => {
|
|
661
859
|
const canvas = within(canvasElement);
|
|
662
860
|
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
663
861
|
};
|
|
664
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
|
+
|
|
665
869
|
export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
|
|
666
870
|
GroupOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
667
871
|
const canvas = within(canvasElement);
|
|
@@ -669,15 +873,35 @@ GroupOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
|
669
873
|
await userEvent.click(select);
|
|
670
874
|
};
|
|
671
875
|
|
|
876
|
+
export const GroupOptionsDisplayedOpinionated = DefaultGroupedOptionsSelectOpinionated.bind({});
|
|
877
|
+
GroupOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
878
|
+
const canvas = within(canvasElement);
|
|
879
|
+
const select = canvas.getByRole("combobox");
|
|
880
|
+
await userEvent.click(select);
|
|
881
|
+
};
|
|
882
|
+
|
|
672
883
|
export const MultipleOptionsDisplayed = MultipleSelect.bind({});
|
|
673
884
|
MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
674
885
|
const canvas = within(canvasElement);
|
|
675
886
|
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
676
887
|
};
|
|
677
888
|
|
|
889
|
+
export const MultipleOptionsDisplayedOpinionated = MultipleSelectOpinioated.bind({});
|
|
890
|
+
MultipleOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
891
|
+
const canvas = within(canvasElement);
|
|
892
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
893
|
+
};
|
|
894
|
+
|
|
678
895
|
export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
|
|
679
896
|
MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
680
897
|
const canvas = within(canvasElement);
|
|
681
898
|
const select = canvas.getByRole("combobox");
|
|
682
899
|
await userEvent.click(select);
|
|
683
900
|
};
|
|
901
|
+
|
|
902
|
+
export const MultipleGroupedOptionsDisplayedOpinionated = MultipleGroupedOptionsSelectOpinionated.bind({});
|
|
903
|
+
MultipleGroupedOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
904
|
+
const canvas = within(canvasElement);
|
|
905
|
+
const select = canvas.getByRole("combobox");
|
|
906
|
+
await userEvent.click(select);
|
|
907
|
+
};
|