@dxc-technology/halstack-react 0.0.0-0a9608a → 0.0.0-0ab346a
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 +39 -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 +104 -119
- 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 +898 -1143
- 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.js +38 -70
- package/date-input/DateInput.accessibility.test.js +216 -0
- package/date-input/DateInput.js +50 -96
- package/date-input/DateInput.stories.tsx +78 -30
- package/date-input/DateInput.test.js +674 -701
- package/date-input/DatePicker.js +36 -53
- package/date-input/Icons.d.ts +6 -6
- package/date-input/Icons.js +6 -23
- package/date-input/YearPicker.js +28 -44
- package/date-input/types.d.ts +28 -22
- 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 -130
- package/dropdown/Dropdown.stories.tsx +51 -17
- package/dropdown/Dropdown.test.js +393 -379
- package/dropdown/DropdownMenu.js +13 -20
- package/dropdown/DropdownMenuItem.js +11 -22
- 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 +42 -136
- package/header/Header.stories.tsx +81 -35
- 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 +235 -215
- 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/Icons.d.ts +6 -0
- package/password-input/Icons.js +35 -0
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +57 -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 +149 -93
- package/{resultsetTable → resultset-table}/types.d.ts +44 -11
- package/resultset-table/types.js +5 -0
- package/select/Icons.d.ts +7 -7
- package/select/Icons.js +1 -5
- package/select/Listbox.js +13 -39
- package/select/Option.js +17 -27
- package/select/Select.accessibility.test.js +217 -0
- package/select/Select.js +94 -168
- package/select/Select.stories.tsx +480 -179
- package/select/Select.test.js +1952 -1810
- package/select/types.d.ts +14 -15
- 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 +23 -40
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +62 -145
- package/tabs/Tabs.stories.tsx +39 -1
- package/tabs/Tabs.test.js +66 -123
- package/tabs/types.d.ts +19 -19
- 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 +117 -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 +16 -51
- package/wizard/Wizard.stories.tsx +20 -0
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +9 -10
- 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/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
|
@@ -6,6 +6,7 @@ import DxcSelect from "./Select";
|
|
|
6
6
|
import Listbox from "./Listbox";
|
|
7
7
|
import { ThemeProvider } from "styled-components";
|
|
8
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,6 +64,7 @@ const group_options = [
|
|
|
61
64
|
],
|
|
62
65
|
},
|
|
63
66
|
];
|
|
67
|
+
|
|
64
68
|
const icon_options_grouped = [
|
|
65
69
|
{
|
|
66
70
|
label: "Group 001",
|
|
@@ -124,6 +128,7 @@ const icon_options_grouped = [
|
|
|
124
128
|
],
|
|
125
129
|
},
|
|
126
130
|
];
|
|
131
|
+
|
|
127
132
|
const icon_options = [
|
|
128
133
|
{
|
|
129
134
|
label: "3G Mobile",
|
|
@@ -172,6 +177,7 @@ const icon_options = [
|
|
|
172
177
|
),
|
|
173
178
|
},
|
|
174
179
|
];
|
|
180
|
+
|
|
175
181
|
const url_options = [
|
|
176
182
|
{
|
|
177
183
|
label: "Social Media",
|
|
@@ -182,9 +188,9 @@ const url_options = [
|
|
|
182
188
|
icon: "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Instagram_logo_2016.svg/800px-Instagram_logo_2016.svg.png",
|
|
183
189
|
},
|
|
184
190
|
{
|
|
185
|
-
label: "
|
|
186
|
-
value: "
|
|
187
|
-
icon: "https://
|
|
191
|
+
label: "X",
|
|
192
|
+
value: "x",
|
|
193
|
+
icon: "https://static.dezeen.com/uploads/2023/07/x-logo-twitter-elon-musk_dezeen_2364_col_0.jpg",
|
|
188
194
|
},
|
|
189
195
|
{
|
|
190
196
|
label: "Facebook",
|
|
@@ -192,7 +198,6 @@ const url_options = [
|
|
|
192
198
|
icon: (
|
|
193
199
|
<svg
|
|
194
200
|
version="1.1"
|
|
195
|
-
id="Capa_1"
|
|
196
201
|
x="0px"
|
|
197
202
|
y="0px"
|
|
198
203
|
width="438.536px"
|
|
@@ -241,12 +246,22 @@ const url_options = [
|
|
|
241
246
|
],
|
|
242
247
|
},
|
|
243
248
|
];
|
|
249
|
+
|
|
244
250
|
const optionsWithEllipsisMedium = [
|
|
245
251
|
{ label: "Optiond1234567890123456789012345678901234", value: "1" },
|
|
246
252
|
{ label: "Optiond12345678901234567890123456789012345", value: "2" },
|
|
247
253
|
{ label: "Option 031111111111111111111111111111222", value: "3" },
|
|
248
254
|
];
|
|
249
255
|
|
|
256
|
+
const opinionatedTheme = {
|
|
257
|
+
select: {
|
|
258
|
+
selectedOptionBackgroundColor: "#e6f4ff",
|
|
259
|
+
fontColor: "#000000",
|
|
260
|
+
optionFontColor: "#000000",
|
|
261
|
+
hoverBorderColor: "#a46ede",
|
|
262
|
+
},
|
|
263
|
+
};
|
|
264
|
+
|
|
250
265
|
const Select = () => (
|
|
251
266
|
<>
|
|
252
267
|
<Title title="States" theme="light" level={2} />
|
|
@@ -369,187 +384,351 @@ const Select = () => (
|
|
|
369
384
|
margin={{ top: "xxlarge" }}
|
|
370
385
|
/>
|
|
371
386
|
</ExampleContainer>
|
|
387
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
388
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
389
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
390
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
391
|
+
<DxcSelect label="Hovered" options={single_options} />
|
|
392
|
+
</HalstackProvider>
|
|
393
|
+
</ExampleContainer>
|
|
394
|
+
<ExampleContainer pseudoState="pseudo-focus-within">
|
|
395
|
+
<Title title="Focused" theme="light" level={4} />
|
|
396
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
397
|
+
<DxcSelect label="Focused" options={single_options} />
|
|
398
|
+
</HalstackProvider>
|
|
399
|
+
</ExampleContainer>
|
|
400
|
+
<ExampleContainer>
|
|
401
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
402
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
403
|
+
<DxcSelect label="Disabled" placeholder="Placeholder" disabled options={single_options} />
|
|
404
|
+
</HalstackProvider>
|
|
405
|
+
</ExampleContainer>
|
|
406
|
+
<ExampleContainer>
|
|
407
|
+
<Title title="Disabled with value" theme="light" level={4} />
|
|
408
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
409
|
+
<DxcSelect label="Disabled with value" disabled options={single_options} defaultValue="1" />
|
|
410
|
+
</HalstackProvider>
|
|
411
|
+
</ExampleContainer>
|
|
412
|
+
<ExampleContainer>
|
|
413
|
+
<Title title="Error" theme="light" level={4} />
|
|
414
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
415
|
+
<DxcSelect
|
|
416
|
+
label="Label"
|
|
417
|
+
options={single_options}
|
|
418
|
+
error="Error message."
|
|
419
|
+
helperText="Helper text"
|
|
420
|
+
placeholder="Placeholder"
|
|
421
|
+
/>
|
|
422
|
+
<ExampleContainer>
|
|
423
|
+
<Title title="Multiple selection" theme="light" level={4} />
|
|
424
|
+
<DxcSelect label="Multiple select" searchable options={single_options} multiple defaultValue={["1", "2"]} />
|
|
425
|
+
</ExampleContainer>
|
|
426
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
427
|
+
<Title title="Multiple clear hovered" theme="light" level={4} />
|
|
428
|
+
<DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
|
|
429
|
+
</ExampleContainer>
|
|
430
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
431
|
+
<Title title="Multiple clear actived" theme="light" level={4} />
|
|
432
|
+
<DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
|
|
433
|
+
</ExampleContainer>
|
|
434
|
+
</HalstackProvider>
|
|
435
|
+
</ExampleContainer>
|
|
372
436
|
</>
|
|
373
437
|
);
|
|
438
|
+
|
|
374
439
|
const SelectListbox = () => {
|
|
375
440
|
const colorsTheme: any = useTheme();
|
|
376
441
|
|
|
377
442
|
return (
|
|
378
|
-
|
|
379
|
-
<
|
|
380
|
-
|
|
381
|
-
<
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
<
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
<
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
<
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
<
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
<
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
<
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
<
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
<
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
<
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
443
|
+
<>
|
|
444
|
+
<ThemeProvider theme={colorsTheme.select}>
|
|
445
|
+
<Title title="Listbox" theme="light" level={2} />
|
|
446
|
+
<ExampleContainer>
|
|
447
|
+
<Title
|
|
448
|
+
title="List dialog uses a Radix Popover to appear over elements with a certain z-index"
|
|
449
|
+
theme="light"
|
|
450
|
+
level={3}
|
|
451
|
+
/>
|
|
452
|
+
<div
|
|
453
|
+
style={{
|
|
454
|
+
position: "relative",
|
|
455
|
+
display: "flex",
|
|
456
|
+
flexDirection: "column",
|
|
457
|
+
gap: "20px",
|
|
458
|
+
height: "150px",
|
|
459
|
+
width: "min-content",
|
|
460
|
+
marginBottom: "100px",
|
|
461
|
+
padding: "20px",
|
|
462
|
+
border: "1px solid black",
|
|
463
|
+
borderRadius: "4px",
|
|
464
|
+
overflow: "auto",
|
|
465
|
+
zIndex: "1300",
|
|
466
|
+
}}
|
|
467
|
+
>
|
|
468
|
+
<DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
|
|
469
|
+
<button style={{ zIndex: "1", width: "100px" }}>Submit</button>
|
|
470
|
+
</div>
|
|
471
|
+
</ExampleContainer>
|
|
472
|
+
<Title title="Listbox option states" theme="light" level={3} />
|
|
473
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
474
|
+
<Title title="Hovered option" theme="light" level={4} />
|
|
475
|
+
<Listbox
|
|
476
|
+
id="x"
|
|
477
|
+
currentValue=""
|
|
478
|
+
options={one_option}
|
|
479
|
+
visualFocusIndex={-1}
|
|
480
|
+
lastOptionIndex={0}
|
|
481
|
+
multiple={false}
|
|
482
|
+
optional={false}
|
|
483
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
484
|
+
searchable={false}
|
|
485
|
+
handleOptionOnClick={() => {}}
|
|
486
|
+
styles={{ width: 360 }}
|
|
487
|
+
/>
|
|
488
|
+
</ExampleContainer>
|
|
489
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
490
|
+
<Title title="Active option" theme="light" level={4} />
|
|
491
|
+
<Listbox
|
|
492
|
+
id="x"
|
|
493
|
+
currentValue=""
|
|
494
|
+
options={one_option}
|
|
495
|
+
visualFocusIndex={-1}
|
|
496
|
+
lastOptionIndex={0}
|
|
497
|
+
multiple={false}
|
|
498
|
+
optional={false}
|
|
499
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
500
|
+
searchable={false}
|
|
501
|
+
handleOptionOnClick={() => {}}
|
|
502
|
+
styles={{ width: 360 }}
|
|
503
|
+
/>
|
|
504
|
+
</ExampleContainer>
|
|
505
|
+
<ExampleContainer>
|
|
506
|
+
<Title title="Focused option" theme="light" level={4} />
|
|
507
|
+
<Listbox
|
|
508
|
+
id="x"
|
|
509
|
+
currentValue=""
|
|
510
|
+
options={one_option}
|
|
511
|
+
visualFocusIndex={0}
|
|
512
|
+
lastOptionIndex={0}
|
|
513
|
+
multiple={false}
|
|
514
|
+
optional={false}
|
|
515
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
516
|
+
searchable={false}
|
|
517
|
+
handleOptionOnClick={() => {}}
|
|
518
|
+
styles={{ width: 360 }}
|
|
519
|
+
/>
|
|
520
|
+
</ExampleContainer>
|
|
521
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
522
|
+
<Title title="Hovered selected option" theme="light" level={4} />
|
|
523
|
+
<Listbox
|
|
524
|
+
id="x"
|
|
525
|
+
currentValue="1"
|
|
526
|
+
options={single_options}
|
|
527
|
+
visualFocusIndex={-1}
|
|
528
|
+
lastOptionIndex={3}
|
|
529
|
+
multiple={false}
|
|
530
|
+
optional={false}
|
|
531
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
532
|
+
searchable={false}
|
|
533
|
+
handleOptionOnClick={() => {}}
|
|
534
|
+
styles={{ width: 360 }}
|
|
535
|
+
/>
|
|
536
|
+
</ExampleContainer>
|
|
537
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
538
|
+
<Title title="Active selected option" theme="light" level={4} />
|
|
539
|
+
<Listbox
|
|
540
|
+
id="x"
|
|
541
|
+
currentValue="2"
|
|
542
|
+
options={single_options}
|
|
543
|
+
visualFocusIndex={0}
|
|
544
|
+
lastOptionIndex={3}
|
|
545
|
+
multiple={false}
|
|
546
|
+
optional={false}
|
|
547
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
548
|
+
searchable={false}
|
|
549
|
+
handleOptionOnClick={() => {}}
|
|
550
|
+
styles={{ width: 360 }}
|
|
551
|
+
/>
|
|
552
|
+
</ExampleContainer>
|
|
553
|
+
<Title title="Listbox with icons" theme="light" level={3} />
|
|
554
|
+
<ExampleContainer>
|
|
555
|
+
<Title title="Icons (SVGs)" theme="light" level={4} />
|
|
556
|
+
<Listbox
|
|
557
|
+
id="x"
|
|
558
|
+
currentValue="3"
|
|
559
|
+
options={icon_options}
|
|
560
|
+
visualFocusIndex={-1}
|
|
561
|
+
lastOptionIndex={3}
|
|
562
|
+
multiple={false}
|
|
563
|
+
optional={false}
|
|
564
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
565
|
+
searchable={false}
|
|
566
|
+
handleOptionOnClick={() => {}}
|
|
567
|
+
styles={{ width: 360 }}
|
|
568
|
+
/>
|
|
569
|
+
</ExampleContainer>
|
|
570
|
+
<ExampleContainer>
|
|
571
|
+
<Title title="Icons (Images)" theme="light" level={4} />
|
|
572
|
+
<Listbox
|
|
573
|
+
id="x"
|
|
574
|
+
currentValue="facebook"
|
|
575
|
+
options={url_options}
|
|
576
|
+
visualFocusIndex={-1}
|
|
577
|
+
lastOptionIndex={6}
|
|
578
|
+
multiple={false}
|
|
579
|
+
optional={false}
|
|
580
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
581
|
+
searchable={false}
|
|
582
|
+
handleOptionOnClick={() => {}}
|
|
583
|
+
styles={{ width: 360 }}
|
|
584
|
+
/>
|
|
585
|
+
</ExampleContainer>
|
|
586
|
+
<ExampleContainer>
|
|
587
|
+
<Title title="Grouped icons (SVGs)" theme="light" level={4} />
|
|
588
|
+
<Listbox
|
|
589
|
+
id="x"
|
|
590
|
+
currentValue={["0", "3"]}
|
|
591
|
+
options={icon_options_grouped}
|
|
592
|
+
visualFocusIndex={-1}
|
|
593
|
+
lastOptionIndex={3}
|
|
594
|
+
multiple={false}
|
|
595
|
+
optional={false}
|
|
596
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
597
|
+
searchable={false}
|
|
598
|
+
handleOptionOnClick={() => {}}
|
|
599
|
+
styles={{ width: 360 }}
|
|
600
|
+
/>
|
|
601
|
+
</ExampleContainer>
|
|
602
|
+
<ExampleContainer>
|
|
603
|
+
<Title title="Grouped icons (Images)" theme="light" level={4} />
|
|
604
|
+
<Listbox
|
|
605
|
+
id="x"
|
|
606
|
+
currentValue={["facebook", "figma"]}
|
|
607
|
+
options={url_options}
|
|
608
|
+
visualFocusIndex={-1}
|
|
609
|
+
lastOptionIndex={6}
|
|
610
|
+
multiple={true}
|
|
611
|
+
optional={false}
|
|
612
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
613
|
+
searchable={false}
|
|
614
|
+
handleOptionOnClick={() => {}}
|
|
615
|
+
styles={{ width: 360 }}
|
|
616
|
+
/>
|
|
617
|
+
</ExampleContainer>
|
|
618
|
+
</ThemeProvider>
|
|
619
|
+
<ThemeProvider theme={colorsTheme.select}>
|
|
620
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
621
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
622
|
+
<Title title="Hovered option" theme="light" level={4} />
|
|
623
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
624
|
+
<Listbox
|
|
625
|
+
id="x"
|
|
626
|
+
currentValue=""
|
|
627
|
+
options={one_option}
|
|
628
|
+
visualFocusIndex={-1}
|
|
629
|
+
lastOptionIndex={0}
|
|
630
|
+
multiple={false}
|
|
631
|
+
optional={false}
|
|
632
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
633
|
+
searchable={false}
|
|
634
|
+
handleOptionOnClick={() => {}}
|
|
635
|
+
styles={{ width: 360 }}
|
|
636
|
+
/>
|
|
637
|
+
</HalstackProvider>
|
|
638
|
+
</ExampleContainer>
|
|
639
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
640
|
+
<Title title="Active option" theme="light" level={4} />{" "}
|
|
641
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
642
|
+
<Listbox
|
|
643
|
+
id="x"
|
|
644
|
+
currentValue=""
|
|
645
|
+
options={one_option}
|
|
646
|
+
visualFocusIndex={-1}
|
|
647
|
+
lastOptionIndex={0}
|
|
648
|
+
multiple={false}
|
|
649
|
+
optional={false}
|
|
650
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
651
|
+
searchable={false}
|
|
652
|
+
handleOptionOnClick={() => {}}
|
|
653
|
+
styles={{ width: 360 }}
|
|
654
|
+
/>
|
|
655
|
+
</HalstackProvider>
|
|
656
|
+
</ExampleContainer>
|
|
657
|
+
<ExampleContainer>
|
|
658
|
+
<Title title="Focused option" theme="light" level={4} />{" "}
|
|
659
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
660
|
+
<Listbox
|
|
661
|
+
id="x"
|
|
662
|
+
currentValue=""
|
|
663
|
+
options={one_option}
|
|
664
|
+
visualFocusIndex={0}
|
|
665
|
+
lastOptionIndex={0}
|
|
666
|
+
multiple={false}
|
|
667
|
+
optional={false}
|
|
668
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
669
|
+
searchable={false}
|
|
670
|
+
handleOptionOnClick={() => {}}
|
|
671
|
+
styles={{ width: 360 }}
|
|
672
|
+
/>
|
|
673
|
+
</HalstackProvider>
|
|
674
|
+
</ExampleContainer>
|
|
675
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
676
|
+
<Title title="Hovered selected option" theme="light" level={4} />{" "}
|
|
677
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
678
|
+
<Listbox
|
|
679
|
+
id="x"
|
|
680
|
+
currentValue="1"
|
|
681
|
+
options={single_options}
|
|
682
|
+
visualFocusIndex={-1}
|
|
683
|
+
lastOptionIndex={3}
|
|
684
|
+
multiple={false}
|
|
685
|
+
optional={false}
|
|
686
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
687
|
+
searchable={false}
|
|
688
|
+
handleOptionOnClick={() => {}}
|
|
689
|
+
styles={{ width: 360 }}
|
|
690
|
+
/>
|
|
691
|
+
</HalstackProvider>
|
|
692
|
+
</ExampleContainer>
|
|
693
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
694
|
+
<Title title="Active selected option" theme="light" level={4} />{" "}
|
|
695
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
696
|
+
<Listbox
|
|
697
|
+
id="x"
|
|
698
|
+
currentValue="2"
|
|
699
|
+
options={single_options}
|
|
700
|
+
visualFocusIndex={0}
|
|
701
|
+
lastOptionIndex={3}
|
|
702
|
+
multiple={false}
|
|
703
|
+
optional={false}
|
|
704
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
705
|
+
searchable={false}
|
|
706
|
+
handleOptionOnClick={() => {}}
|
|
707
|
+
styles={{ width: 360 }}
|
|
708
|
+
/>
|
|
709
|
+
</HalstackProvider>
|
|
710
|
+
</ExampleContainer>
|
|
711
|
+
<Title title="Listbox with icons" theme="light" level={3} />
|
|
712
|
+
<ExampleContainer>
|
|
713
|
+
<Title title="Icons (SVGs)" theme="light" level={4} />{" "}
|
|
714
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
715
|
+
<Listbox
|
|
716
|
+
id="x"
|
|
717
|
+
currentValue="3"
|
|
718
|
+
options={icon_options}
|
|
719
|
+
visualFocusIndex={-1}
|
|
720
|
+
lastOptionIndex={3}
|
|
721
|
+
multiple={false}
|
|
722
|
+
optional={false}
|
|
723
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
724
|
+
searchable={false}
|
|
725
|
+
handleOptionOnClick={() => {}}
|
|
726
|
+
styles={{ width: 360 }}
|
|
727
|
+
/>
|
|
728
|
+
</HalstackProvider>
|
|
729
|
+
</ExampleContainer>
|
|
730
|
+
</ThemeProvider>
|
|
731
|
+
</>
|
|
553
732
|
);
|
|
554
733
|
};
|
|
555
734
|
|
|
@@ -559,6 +738,16 @@ const SearchableSelect = () => (
|
|
|
559
738
|
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
560
739
|
</ExampleContainer>
|
|
561
740
|
);
|
|
741
|
+
|
|
742
|
+
const SearchableSelectOpinionated = () => (
|
|
743
|
+
<ExampleContainer expanded>
|
|
744
|
+
<Title title="Searchable select" theme="light" level={4} />
|
|
745
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
746
|
+
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
747
|
+
</HalstackProvider>
|
|
748
|
+
</ExampleContainer>
|
|
749
|
+
);
|
|
750
|
+
|
|
562
751
|
const SearchValue = () => (
|
|
563
752
|
<ExampleContainer expanded>
|
|
564
753
|
<Title title="Searchable select with value" theme="light" level={4} />
|
|
@@ -571,6 +760,22 @@ const SearchValue = () => (
|
|
|
571
760
|
/>
|
|
572
761
|
</ExampleContainer>
|
|
573
762
|
);
|
|
763
|
+
|
|
764
|
+
const SearchValueOpinionated = () => (
|
|
765
|
+
<ExampleContainer expanded>
|
|
766
|
+
<Title title="Searchable select with value" theme="light" level={4} />
|
|
767
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
768
|
+
<DxcSelect
|
|
769
|
+
label="Select Label"
|
|
770
|
+
searchable
|
|
771
|
+
defaultValue="1"
|
|
772
|
+
options={single_options}
|
|
773
|
+
placeholder="Choose an option"
|
|
774
|
+
/>
|
|
775
|
+
</HalstackProvider>
|
|
776
|
+
</ExampleContainer>
|
|
777
|
+
);
|
|
778
|
+
|
|
574
779
|
const MultipleSelect = () => (
|
|
575
780
|
<>
|
|
576
781
|
<ExampleContainer expanded>
|
|
@@ -585,12 +790,38 @@ const MultipleSelect = () => (
|
|
|
585
790
|
</ExampleContainer>
|
|
586
791
|
</>
|
|
587
792
|
);
|
|
793
|
+
|
|
794
|
+
const MultipleSelectOpinioated = () => (
|
|
795
|
+
<ExampleContainer expanded>
|
|
796
|
+
<Title title="Multiple select" theme="light" level={4} />
|
|
797
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
798
|
+
<DxcSelect
|
|
799
|
+
label="Select label"
|
|
800
|
+
options={single_options}
|
|
801
|
+
defaultValue={["1", "4"]}
|
|
802
|
+
multiple
|
|
803
|
+
placeholder="Choose an option"
|
|
804
|
+
/>
|
|
805
|
+
</HalstackProvider>
|
|
806
|
+
</ExampleContainer>
|
|
807
|
+
);
|
|
808
|
+
|
|
588
809
|
const DefaultGroupedOptionsSelect = () => (
|
|
589
810
|
<ExampleContainer expanded>
|
|
590
811
|
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
591
812
|
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
592
813
|
</ExampleContainer>
|
|
593
814
|
);
|
|
815
|
+
|
|
816
|
+
const DefaultGroupedOptionsSelectOpinionated = () => (
|
|
817
|
+
<ExampleContainer expanded>
|
|
818
|
+
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
819
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
820
|
+
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
821
|
+
</HalstackProvider>
|
|
822
|
+
</ExampleContainer>
|
|
823
|
+
);
|
|
824
|
+
|
|
594
825
|
const MultipleGroupedOptionsSelect = () => (
|
|
595
826
|
<ExampleContainer expanded>
|
|
596
827
|
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
@@ -603,6 +834,22 @@ const MultipleGroupedOptionsSelect = () => (
|
|
|
603
834
|
/>
|
|
604
835
|
</ExampleContainer>
|
|
605
836
|
);
|
|
837
|
+
|
|
838
|
+
const MultipleGroupedOptionsSelectOpinionated = () => (
|
|
839
|
+
<ExampleContainer expanded>
|
|
840
|
+
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
841
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
842
|
+
<DxcSelect
|
|
843
|
+
label="Label"
|
|
844
|
+
options={group_options}
|
|
845
|
+
defaultValue={["0", "2"]}
|
|
846
|
+
multiple
|
|
847
|
+
placeholder="Choose an option"
|
|
848
|
+
/>
|
|
849
|
+
</HalstackProvider>
|
|
850
|
+
</ExampleContainer>
|
|
851
|
+
);
|
|
852
|
+
|
|
606
853
|
const MultipleSearchable = () => (
|
|
607
854
|
<ExampleContainer expanded>
|
|
608
855
|
<Title title="Searchable multiple select with value" theme="light" level={4} />
|
|
@@ -617,6 +864,22 @@ const MultipleSearchable = () => (
|
|
|
617
864
|
</ExampleContainer>
|
|
618
865
|
);
|
|
619
866
|
|
|
867
|
+
const MultipleSearchableOpinionated = () => (
|
|
868
|
+
<ExampleContainer expanded>
|
|
869
|
+
<Title title="Searchable multiple select with value" theme="light" level={4} />
|
|
870
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
871
|
+
<DxcSelect
|
|
872
|
+
label="Select Label"
|
|
873
|
+
searchable
|
|
874
|
+
multiple
|
|
875
|
+
defaultValue={["1", "4"]}
|
|
876
|
+
options={single_options}
|
|
877
|
+
placeholder="Choose an option"
|
|
878
|
+
/>
|
|
879
|
+
</HalstackProvider>
|
|
880
|
+
</ExampleContainer>
|
|
881
|
+
);
|
|
882
|
+
|
|
620
883
|
export const Chromatic = Select.bind({});
|
|
621
884
|
Chromatic.play = async ({ canvasElement }) => {
|
|
622
885
|
const canvas = within(canvasElement);
|
|
@@ -636,18 +899,36 @@ Searchable.play = async ({ canvasElement }) => {
|
|
|
636
899
|
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
637
900
|
};
|
|
638
901
|
|
|
902
|
+
export const SearchableOpinionated = SearchableSelectOpinionated.bind({});
|
|
903
|
+
SearchableOpinionated.play = async ({ canvasElement }) => {
|
|
904
|
+
const canvas = within(canvasElement);
|
|
905
|
+
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
906
|
+
};
|
|
907
|
+
|
|
639
908
|
export const SearchableWithValue = SearchValue.bind({});
|
|
640
909
|
SearchableWithValue.play = async ({ canvasElement }) => {
|
|
641
910
|
const canvas = within(canvasElement);
|
|
642
911
|
await userEvent.click(canvas.getByRole("combobox"));
|
|
643
912
|
};
|
|
644
913
|
|
|
914
|
+
export const SearchableWithValueOpinionated = SearchValueOpinionated.bind({});
|
|
915
|
+
SearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
916
|
+
const canvas = within(canvasElement);
|
|
917
|
+
await userEvent.click(canvas.getByRole("combobox"));
|
|
918
|
+
};
|
|
919
|
+
|
|
645
920
|
export const MultipleSearchableWithValue = MultipleSearchable.bind({});
|
|
646
921
|
MultipleSearchableWithValue.play = async ({ canvasElement }) => {
|
|
647
922
|
const canvas = within(canvasElement);
|
|
648
923
|
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
649
924
|
};
|
|
650
925
|
|
|
926
|
+
export const MultipleSearchableWithValueOpinionated = MultipleSearchableOpinionated.bind({});
|
|
927
|
+
MultipleSearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
928
|
+
const canvas = within(canvasElement);
|
|
929
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
930
|
+
};
|
|
931
|
+
|
|
651
932
|
export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
|
|
652
933
|
GroupOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
653
934
|
const canvas = within(canvasElement);
|
|
@@ -655,15 +936,35 @@ GroupOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
|
655
936
|
await userEvent.click(select);
|
|
656
937
|
};
|
|
657
938
|
|
|
939
|
+
export const GroupOptionsDisplayedOpinionated = DefaultGroupedOptionsSelectOpinionated.bind({});
|
|
940
|
+
GroupOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
941
|
+
const canvas = within(canvasElement);
|
|
942
|
+
const select = canvas.getByRole("combobox");
|
|
943
|
+
await userEvent.click(select);
|
|
944
|
+
};
|
|
945
|
+
|
|
658
946
|
export const MultipleOptionsDisplayed = MultipleSelect.bind({});
|
|
659
947
|
MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
660
948
|
const canvas = within(canvasElement);
|
|
661
949
|
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
662
950
|
};
|
|
663
951
|
|
|
952
|
+
export const MultipleOptionsDisplayedOpinionated = MultipleSelectOpinioated.bind({});
|
|
953
|
+
MultipleOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
954
|
+
const canvas = within(canvasElement);
|
|
955
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
956
|
+
};
|
|
957
|
+
|
|
664
958
|
export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
|
|
665
959
|
MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
666
960
|
const canvas = within(canvasElement);
|
|
667
961
|
const select = canvas.getByRole("combobox");
|
|
668
962
|
await userEvent.click(select);
|
|
669
963
|
};
|
|
964
|
+
|
|
965
|
+
export const MultipleGroupedOptionsDisplayedOpinionated = MultipleGroupedOptionsSelectOpinionated.bind({});
|
|
966
|
+
MultipleGroupedOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
967
|
+
const canvas = within(canvasElement);
|
|
968
|
+
const select = canvas.getByRole("combobox");
|
|
969
|
+
await userEvent.click(select);
|
|
970
|
+
};
|