@dxc-technology/halstack-react 0.0.0-5aa300b → 0.0.0-5b32837
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 +1231 -6
- package/HalstackContext.js +121 -105
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +30 -87
- package/accordion/Accordion.stories.tsx +52 -115
- package/accordion/Accordion.test.js +19 -34
- package/accordion/types.d.ts +5 -17
- package/accordion-group/AccordionGroup.d.ts +4 -3
- 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/types.d.ts +6 -18
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +47 -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.js +19 -58
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +141 -43
- 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.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.js +19 -53
- package/bulleted-list/BulletedList.stories.tsx +8 -93
- package/bulleted-list/types.d.ts +32 -5
- package/button/Button.d.ts +1 -1
- package/button/Button.js +68 -102
- package/button/Button.stories.tsx +104 -94
- package/button/Button.test.js +20 -17
- package/button/types.d.ts +8 -4
- 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.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.js +36 -64
- package/chip/Chip.stories.tsx +80 -17
- package/chip/Chip.test.js +16 -31
- package/chip/types.d.ts +4 -4
- package/common/OpenSans.css +68 -80
- 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 +1383 -0
- package/common/variables.js +886 -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/date-input/Calendar.d.ts +1 -1
- package/date-input/Calendar.js +52 -96
- package/date-input/DateInput.js +103 -107
- package/date-input/DateInput.stories.tsx +194 -60
- package/date-input/DateInput.test.js +676 -620
- package/date-input/DatePicker.js +47 -92
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +58 -0
- package/date-input/YearPicker.d.ts +1 -1
- package/date-input/YearPicker.js +29 -44
- package/date-input/types.d.ts +31 -27
- 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 +269 -32
- package/dialog/types.d.ts +18 -26
- package/dropdown/Dropdown.js +50 -103
- package/dropdown/Dropdown.stories.tsx +200 -82
- package/dropdown/Dropdown.test.js +393 -379
- package/dropdown/DropdownMenu.js +20 -37
- package/dropdown/DropdownMenuItem.js +9 -34
- package/dropdown/types.d.ts +17 -19
- package/file-input/FileInput.js +184 -256
- package/file-input/FileInput.stories.tsx +86 -3
- package/file-input/FileInput.test.js +356 -395
- package/file-input/FileItem.js +15 -41
- 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.d.ts +1 -1
- package/footer/Footer.js +70 -117
- package/footer/Footer.stories.tsx +55 -21
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +66 -7
- package/footer/types.d.ts +25 -27
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +48 -133
- 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 +5 -20
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +127 -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 +29 -66
- package/layout/ApplicationLayout.stories.tsx +1 -1
- package/layout/Icons.d.ts +8 -5
- package/layout/Icons.js +51 -59
- package/layout/SidenavContext.d.ts +1 -1
- package/layout/SidenavContext.js +3 -9
- package/layout/types.d.ts +5 -6
- package/link/Link.js +24 -45
- package/link/Link.stories.tsx +60 -0
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +8 -5
- package/main.js +33 -59
- package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
- package/{tabs-nav → nav-tabs}/NavTabs.js +23 -55
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +109 -5
- package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
- package/nav-tabs/Tab.js +118 -0
- package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +26 -35
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +701 -413
- package/number-input/types.d.ts +11 -5
- package/package.json +31 -29
- package/paginator/Icons.d.ts +5 -5
- package/paginator/Icons.js +5 -19
- 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.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.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.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.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.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.d.ts +7 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.js +38 -66
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +86 -5
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +155 -114
- package/{resultsetTable → resultset-table}/types.d.ts +13 -7
- package/resultset-table/types.js +5 -0
- package/select/Icons.d.ts +7 -7
- package/select/Icons.js +1 -5
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +17 -72
- package/select/Option.js +19 -40
- package/select/Select.js +120 -175
- package/select/Select.stories.tsx +478 -190
- package/select/Select.test.js +1974 -1837
- package/select/types.d.ts +16 -17
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +2 -2
- package/sidenav/Sidenav.js +81 -151
- package/sidenav/Sidenav.stories.tsx +110 -17
- package/sidenav/Sidenav.test.js +3 -10
- package/sidenav/types.d.ts +31 -28
- package/slider/Slider.js +70 -128
- package/slider/Slider.test.js +108 -104
- package/slider/types.d.ts +4 -4
- 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.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.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/ActionsCell.d.ts +4 -0
- package/table/ActionsCell.js +54 -0
- package/table/DropdownTheme.js +57 -0
- package/table/Table.d.ts +4 -1
- package/table/Table.js +27 -32
- package/table/Table.stories.tsx +615 -0
- package/table/Table.test.js +94 -7
- package/table/types.d.ts +45 -6
- package/tabs/Tab.js +23 -40
- 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.js +28 -60
- package/tag/Tag.stories.tsx +14 -1
- package/tag/Tag.test.js +20 -31
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.d.ts +5 -5
- package/text-input/Icons.js +1 -5
- package/text-input/Suggestion.js +11 -28
- package/text-input/Suggestions.d.ts +1 -1
- package/text-input/Suggestions.js +15 -65
- package/text-input/TextInput.js +219 -320
- package/text-input/TextInput.stories.tsx +117 -152
- package/text-input/TextInput.test.js +1211 -1196
- package/text-input/types.d.ts +25 -17
- 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.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +92 -106
- package/toggle-group/ToggleGroup.stories.tsx +49 -4
- package/toggle-group/ToggleGroup.test.js +69 -88
- package/toggle-group/types.d.ts +26 -17
- 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 +1135 -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.js +16 -51
- package/wizard/Wizard.stories.tsx +20 -0
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +8 -9
- package/card/ice-cream.jpg +0 -0
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- 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/Tab.js +0 -128
- 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 → grid/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,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",
|
|
@@ -241,13 +247,22 @@ const url_options = [
|
|
|
241
247
|
],
|
|
242
248
|
},
|
|
243
249
|
];
|
|
250
|
+
|
|
244
251
|
const optionsWithEllipsisMedium = [
|
|
245
252
|
{ label: "Optiond1234567890123456789012345678901234", value: "1" },
|
|
246
253
|
{ label: "Optiond12345678901234567890123456789012345", value: "2" },
|
|
247
254
|
{ label: "Option 031111111111111111111111111111222", value: "3" },
|
|
248
|
-
{ label: "Option 03111111111111111111111111111222", value: "4" },
|
|
249
255
|
];
|
|
250
256
|
|
|
257
|
+
const opinionatedTheme = {
|
|
258
|
+
select: {
|
|
259
|
+
selectedOptionBackgroundColor: "#e6f4ff",
|
|
260
|
+
fontColor: "#000000",
|
|
261
|
+
optionFontColor: "#000000",
|
|
262
|
+
hoverBorderColor: "#a46ede",
|
|
263
|
+
},
|
|
264
|
+
};
|
|
265
|
+
|
|
251
266
|
const Select = () => (
|
|
252
267
|
<>
|
|
253
268
|
<Title title="States" theme="light" level={2} />
|
|
@@ -360,200 +375,380 @@ const Select = () => (
|
|
|
360
375
|
<Title title="Multiple selection with ellipsis" theme="light" level={4} />
|
|
361
376
|
<DxcSelect label="Label" options={single_options} multiple defaultValue={["1", "2", "3", "4"]} />
|
|
362
377
|
<Title title="Value with ellipsis" theme="light" level={4} />
|
|
363
|
-
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1"
|
|
378
|
+
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1" />
|
|
364
379
|
<Title title="Options with ellipsis" theme="light" level={4} />
|
|
365
380
|
<DxcSelect
|
|
366
381
|
label="Label"
|
|
367
382
|
placeholder="Choose an option"
|
|
368
383
|
defaultValue="1"
|
|
369
384
|
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}
|
|
385
|
+
margin={{ top: "xxlarge" }}
|
|
450
386
|
/>
|
|
451
387
|
</ExampleContainer>
|
|
388
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
452
389
|
<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
|
-
/>
|
|
390
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
391
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
392
|
+
<DxcSelect label="Hovered" options={single_options} />
|
|
393
|
+
</HalstackProvider>
|
|
483
394
|
</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
|
-
/>
|
|
395
|
+
<ExampleContainer pseudoState="pseudo-focus-within">
|
|
396
|
+
<Title title="Focused" theme="light" level={4} />
|
|
397
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
398
|
+
<DxcSelect label="Focused" options={single_options} />
|
|
399
|
+
</HalstackProvider>
|
|
500
400
|
</ExampleContainer>
|
|
501
401
|
<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
|
-
/>
|
|
402
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
403
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
404
|
+
<DxcSelect label="Disabled" placeholder="Placeholder" disabled options={single_options} />
|
|
405
|
+
</HalstackProvider>
|
|
516
406
|
</ExampleContainer>
|
|
517
407
|
<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
|
-
/>
|
|
408
|
+
<Title title="Disabled with value" theme="light" level={4} />
|
|
409
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
410
|
+
<DxcSelect label="Disabled with value" disabled options={single_options} defaultValue="1" />
|
|
411
|
+
</HalstackProvider>
|
|
532
412
|
</ExampleContainer>
|
|
533
413
|
<ExampleContainer>
|
|
534
|
-
<Title title="
|
|
535
|
-
<
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
414
|
+
<Title title="Error" theme="light" level={4} />
|
|
415
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
416
|
+
<DxcSelect
|
|
417
|
+
label="Label"
|
|
418
|
+
options={single_options}
|
|
419
|
+
error="Error message."
|
|
420
|
+
helperText="Helper text"
|
|
421
|
+
placeholder="Placeholder"
|
|
422
|
+
/>
|
|
423
|
+
<ExampleContainer>
|
|
424
|
+
<Title title="Multiple selection" theme="light" level={4} />
|
|
425
|
+
<DxcSelect label="Multiple select" searchable options={single_options} multiple defaultValue={["1", "2"]} />
|
|
426
|
+
</ExampleContainer>
|
|
427
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
428
|
+
<Title title="Multiple clear hovered" theme="light" level={4} />
|
|
429
|
+
<DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
|
|
430
|
+
</ExampleContainer>
|
|
431
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
432
|
+
<Title title="Multiple clear actived" theme="light" level={4} />
|
|
433
|
+
<DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
|
|
434
|
+
</ExampleContainer>
|
|
435
|
+
</HalstackProvider>
|
|
548
436
|
</ExampleContainer>
|
|
549
437
|
</>
|
|
550
438
|
);
|
|
439
|
+
|
|
440
|
+
const SelectListbox = () => {
|
|
441
|
+
const colorsTheme: any = useTheme();
|
|
442
|
+
|
|
443
|
+
return (
|
|
444
|
+
<>
|
|
445
|
+
<ThemeProvider theme={colorsTheme.select}>
|
|
446
|
+
<Title title="Listbox" theme="light" level={2} />
|
|
447
|
+
<ExampleContainer>
|
|
448
|
+
<Title
|
|
449
|
+
title="List dialog uses a Radix Popover to appear over elements with a certain z-index"
|
|
450
|
+
theme="light"
|
|
451
|
+
level={3}
|
|
452
|
+
/>
|
|
453
|
+
<div
|
|
454
|
+
style={{
|
|
455
|
+
position: "relative",
|
|
456
|
+
display: "flex",
|
|
457
|
+
flexDirection: "column",
|
|
458
|
+
gap: "20px",
|
|
459
|
+
height: "150px",
|
|
460
|
+
width: "min-content",
|
|
461
|
+
marginBottom: "100px",
|
|
462
|
+
padding: "20px",
|
|
463
|
+
border: "1px solid black",
|
|
464
|
+
borderRadius: "4px",
|
|
465
|
+
overflow: "auto",
|
|
466
|
+
zIndex: "1300",
|
|
467
|
+
}}
|
|
468
|
+
>
|
|
469
|
+
<DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
|
|
470
|
+
<button style={{ zIndex: "1", width: "100px" }}>Submit</button>
|
|
471
|
+
</div>
|
|
472
|
+
</ExampleContainer>
|
|
473
|
+
<Title title="Listbox option states" theme="light" level={3} />
|
|
474
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
475
|
+
<Title title="Hovered option" theme="light" level={4} />
|
|
476
|
+
<Listbox
|
|
477
|
+
id="x"
|
|
478
|
+
currentValue=""
|
|
479
|
+
options={one_option}
|
|
480
|
+
visualFocusIndex={-1}
|
|
481
|
+
lastOptionIndex={0}
|
|
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 option" theme="light" level={4} />
|
|
492
|
+
<Listbox
|
|
493
|
+
id="x"
|
|
494
|
+
currentValue=""
|
|
495
|
+
options={one_option}
|
|
496
|
+
visualFocusIndex={-1}
|
|
497
|
+
lastOptionIndex={0}
|
|
498
|
+
multiple={false}
|
|
499
|
+
optional={false}
|
|
500
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
501
|
+
searchable={false}
|
|
502
|
+
handleOptionOnClick={() => {}}
|
|
503
|
+
styles={{ width: 360 }}
|
|
504
|
+
/>
|
|
505
|
+
</ExampleContainer>
|
|
506
|
+
<ExampleContainer>
|
|
507
|
+
<Title title="Focused option" theme="light" level={4} />
|
|
508
|
+
<Listbox
|
|
509
|
+
id="x"
|
|
510
|
+
currentValue=""
|
|
511
|
+
options={one_option}
|
|
512
|
+
visualFocusIndex={0}
|
|
513
|
+
lastOptionIndex={0}
|
|
514
|
+
multiple={false}
|
|
515
|
+
optional={false}
|
|
516
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
517
|
+
searchable={false}
|
|
518
|
+
handleOptionOnClick={() => {}}
|
|
519
|
+
styles={{ width: 360 }}
|
|
520
|
+
/>
|
|
521
|
+
</ExampleContainer>
|
|
522
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
523
|
+
<Title title="Hovered selected option" theme="light" level={4} />
|
|
524
|
+
<Listbox
|
|
525
|
+
id="x"
|
|
526
|
+
currentValue="1"
|
|
527
|
+
options={single_options}
|
|
528
|
+
visualFocusIndex={-1}
|
|
529
|
+
lastOptionIndex={3}
|
|
530
|
+
multiple={false}
|
|
531
|
+
optional={false}
|
|
532
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
533
|
+
searchable={false}
|
|
534
|
+
handleOptionOnClick={() => {}}
|
|
535
|
+
styles={{ width: 360 }}
|
|
536
|
+
/>
|
|
537
|
+
</ExampleContainer>
|
|
538
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
539
|
+
<Title title="Active selected option" theme="light" level={4} />
|
|
540
|
+
<Listbox
|
|
541
|
+
id="x"
|
|
542
|
+
currentValue="2"
|
|
543
|
+
options={single_options}
|
|
544
|
+
visualFocusIndex={0}
|
|
545
|
+
lastOptionIndex={3}
|
|
546
|
+
multiple={false}
|
|
547
|
+
optional={false}
|
|
548
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
549
|
+
searchable={false}
|
|
550
|
+
handleOptionOnClick={() => {}}
|
|
551
|
+
styles={{ width: 360 }}
|
|
552
|
+
/>
|
|
553
|
+
</ExampleContainer>
|
|
554
|
+
<Title title="Listbox with icons" theme="light" level={3} />
|
|
555
|
+
<ExampleContainer>
|
|
556
|
+
<Title title="Icons (SVGs)" theme="light" level={4} />
|
|
557
|
+
<Listbox
|
|
558
|
+
id="x"
|
|
559
|
+
currentValue="3"
|
|
560
|
+
options={icon_options}
|
|
561
|
+
visualFocusIndex={-1}
|
|
562
|
+
lastOptionIndex={3}
|
|
563
|
+
multiple={false}
|
|
564
|
+
optional={false}
|
|
565
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
566
|
+
searchable={false}
|
|
567
|
+
handleOptionOnClick={() => {}}
|
|
568
|
+
styles={{ width: 360 }}
|
|
569
|
+
/>
|
|
570
|
+
</ExampleContainer>
|
|
571
|
+
<ExampleContainer>
|
|
572
|
+
<Title title="Icons (Images)" theme="light" level={4} />
|
|
573
|
+
<Listbox
|
|
574
|
+
id="x"
|
|
575
|
+
currentValue="facebook"
|
|
576
|
+
options={url_options}
|
|
577
|
+
visualFocusIndex={-1}
|
|
578
|
+
lastOptionIndex={6}
|
|
579
|
+
multiple={false}
|
|
580
|
+
optional={false}
|
|
581
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
582
|
+
searchable={false}
|
|
583
|
+
handleOptionOnClick={() => {}}
|
|
584
|
+
styles={{ width: 360 }}
|
|
585
|
+
/>
|
|
586
|
+
</ExampleContainer>
|
|
587
|
+
<ExampleContainer>
|
|
588
|
+
<Title title="Grouped icons (SVGs)" theme="light" level={4} />
|
|
589
|
+
<Listbox
|
|
590
|
+
id="x"
|
|
591
|
+
currentValue={["0", "3"]}
|
|
592
|
+
options={icon_options_grouped}
|
|
593
|
+
visualFocusIndex={-1}
|
|
594
|
+
lastOptionIndex={3}
|
|
595
|
+
multiple={false}
|
|
596
|
+
optional={false}
|
|
597
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
598
|
+
searchable={false}
|
|
599
|
+
handleOptionOnClick={() => {}}
|
|
600
|
+
styles={{ width: 360 }}
|
|
601
|
+
/>
|
|
602
|
+
</ExampleContainer>
|
|
603
|
+
<ExampleContainer>
|
|
604
|
+
<Title title="Grouped icons (Images)" theme="light" level={4} />
|
|
605
|
+
<Listbox
|
|
606
|
+
id="x"
|
|
607
|
+
currentValue={["facebook", "figma"]}
|
|
608
|
+
options={url_options}
|
|
609
|
+
visualFocusIndex={-1}
|
|
610
|
+
lastOptionIndex={6}
|
|
611
|
+
multiple={true}
|
|
612
|
+
optional={false}
|
|
613
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
614
|
+
searchable={false}
|
|
615
|
+
handleOptionOnClick={() => {}}
|
|
616
|
+
styles={{ width: 360 }}
|
|
617
|
+
/>
|
|
618
|
+
</ExampleContainer>
|
|
619
|
+
</ThemeProvider>
|
|
620
|
+
<ThemeProvider theme={colorsTheme.select}>
|
|
621
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
622
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
623
|
+
<Title title="Hovered option" theme="light" level={4} />
|
|
624
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
625
|
+
<Listbox
|
|
626
|
+
id="x"
|
|
627
|
+
currentValue=""
|
|
628
|
+
options={one_option}
|
|
629
|
+
visualFocusIndex={-1}
|
|
630
|
+
lastOptionIndex={0}
|
|
631
|
+
multiple={false}
|
|
632
|
+
optional={false}
|
|
633
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
634
|
+
searchable={false}
|
|
635
|
+
handleOptionOnClick={() => {}}
|
|
636
|
+
styles={{ width: 360 }}
|
|
637
|
+
/>
|
|
638
|
+
</HalstackProvider>
|
|
639
|
+
</ExampleContainer>
|
|
640
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
641
|
+
<Title title="Active option" theme="light" level={4} />{" "}
|
|
642
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
643
|
+
<Listbox
|
|
644
|
+
id="x"
|
|
645
|
+
currentValue=""
|
|
646
|
+
options={one_option}
|
|
647
|
+
visualFocusIndex={-1}
|
|
648
|
+
lastOptionIndex={0}
|
|
649
|
+
multiple={false}
|
|
650
|
+
optional={false}
|
|
651
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
652
|
+
searchable={false}
|
|
653
|
+
handleOptionOnClick={() => {}}
|
|
654
|
+
styles={{ width: 360 }}
|
|
655
|
+
/>
|
|
656
|
+
</HalstackProvider>
|
|
657
|
+
</ExampleContainer>
|
|
658
|
+
<ExampleContainer>
|
|
659
|
+
<Title title="Focused option" theme="light" level={4} />{" "}
|
|
660
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
661
|
+
<Listbox
|
|
662
|
+
id="x"
|
|
663
|
+
currentValue=""
|
|
664
|
+
options={one_option}
|
|
665
|
+
visualFocusIndex={0}
|
|
666
|
+
lastOptionIndex={0}
|
|
667
|
+
multiple={false}
|
|
668
|
+
optional={false}
|
|
669
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
670
|
+
searchable={false}
|
|
671
|
+
handleOptionOnClick={() => {}}
|
|
672
|
+
styles={{ width: 360 }}
|
|
673
|
+
/>
|
|
674
|
+
</HalstackProvider>
|
|
675
|
+
</ExampleContainer>
|
|
676
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
677
|
+
<Title title="Hovered selected option" theme="light" level={4} />{" "}
|
|
678
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
679
|
+
<Listbox
|
|
680
|
+
id="x"
|
|
681
|
+
currentValue="1"
|
|
682
|
+
options={single_options}
|
|
683
|
+
visualFocusIndex={-1}
|
|
684
|
+
lastOptionIndex={3}
|
|
685
|
+
multiple={false}
|
|
686
|
+
optional={false}
|
|
687
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
688
|
+
searchable={false}
|
|
689
|
+
handleOptionOnClick={() => {}}
|
|
690
|
+
styles={{ width: 360 }}
|
|
691
|
+
/>
|
|
692
|
+
</HalstackProvider>
|
|
693
|
+
</ExampleContainer>
|
|
694
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
695
|
+
<Title title="Active selected option" theme="light" level={4} />{" "}
|
|
696
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
697
|
+
<Listbox
|
|
698
|
+
id="x"
|
|
699
|
+
currentValue="2"
|
|
700
|
+
options={single_options}
|
|
701
|
+
visualFocusIndex={0}
|
|
702
|
+
lastOptionIndex={3}
|
|
703
|
+
multiple={false}
|
|
704
|
+
optional={false}
|
|
705
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
706
|
+
searchable={false}
|
|
707
|
+
handleOptionOnClick={() => {}}
|
|
708
|
+
styles={{ width: 360 }}
|
|
709
|
+
/>
|
|
710
|
+
</HalstackProvider>
|
|
711
|
+
</ExampleContainer>
|
|
712
|
+
<Title title="Listbox with icons" theme="light" level={3} />
|
|
713
|
+
<ExampleContainer>
|
|
714
|
+
<Title title="Icons (SVGs)" theme="light" level={4} />{" "}
|
|
715
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
716
|
+
<Listbox
|
|
717
|
+
id="x"
|
|
718
|
+
currentValue="3"
|
|
719
|
+
options={icon_options}
|
|
720
|
+
visualFocusIndex={-1}
|
|
721
|
+
lastOptionIndex={3}
|
|
722
|
+
multiple={false}
|
|
723
|
+
optional={false}
|
|
724
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
725
|
+
searchable={false}
|
|
726
|
+
handleOptionOnClick={() => {}}
|
|
727
|
+
styles={{ width: 360 }}
|
|
728
|
+
/>
|
|
729
|
+
</HalstackProvider>
|
|
730
|
+
</ExampleContainer>
|
|
731
|
+
</ThemeProvider>
|
|
732
|
+
</>
|
|
733
|
+
);
|
|
734
|
+
};
|
|
735
|
+
|
|
551
736
|
const SearchableSelect = () => (
|
|
552
737
|
<ExampleContainer expanded>
|
|
553
738
|
<Title title="Searchable select" theme="light" level={4} />
|
|
554
739
|
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
555
740
|
</ExampleContainer>
|
|
556
741
|
);
|
|
742
|
+
|
|
743
|
+
const SearchableSelectOpinionated = () => (
|
|
744
|
+
<ExampleContainer expanded>
|
|
745
|
+
<Title title="Searchable select" theme="light" level={4} />
|
|
746
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
747
|
+
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
748
|
+
</HalstackProvider>
|
|
749
|
+
</ExampleContainer>
|
|
750
|
+
);
|
|
751
|
+
|
|
557
752
|
const SearchValue = () => (
|
|
558
753
|
<ExampleContainer expanded>
|
|
559
754
|
<Title title="Searchable select with value" theme="light" level={4} />
|
|
@@ -566,6 +761,22 @@ const SearchValue = () => (
|
|
|
566
761
|
/>
|
|
567
762
|
</ExampleContainer>
|
|
568
763
|
);
|
|
764
|
+
|
|
765
|
+
const SearchValueOpinionated = () => (
|
|
766
|
+
<ExampleContainer expanded>
|
|
767
|
+
<Title title="Searchable select with value" theme="light" level={4} />
|
|
768
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
769
|
+
<DxcSelect
|
|
770
|
+
label="Select Label"
|
|
771
|
+
searchable
|
|
772
|
+
defaultValue="1"
|
|
773
|
+
options={single_options}
|
|
774
|
+
placeholder="Choose an option"
|
|
775
|
+
/>
|
|
776
|
+
</HalstackProvider>
|
|
777
|
+
</ExampleContainer>
|
|
778
|
+
);
|
|
779
|
+
|
|
569
780
|
const MultipleSelect = () => (
|
|
570
781
|
<>
|
|
571
782
|
<ExampleContainer expanded>
|
|
@@ -580,12 +791,38 @@ const MultipleSelect = () => (
|
|
|
580
791
|
</ExampleContainer>
|
|
581
792
|
</>
|
|
582
793
|
);
|
|
794
|
+
|
|
795
|
+
const MultipleSelectOpinioated = () => (
|
|
796
|
+
<ExampleContainer expanded>
|
|
797
|
+
<Title title="Multiple select" theme="light" level={4} />
|
|
798
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
799
|
+
<DxcSelect
|
|
800
|
+
label="Select label"
|
|
801
|
+
options={single_options}
|
|
802
|
+
defaultValue={["1", "4"]}
|
|
803
|
+
multiple
|
|
804
|
+
placeholder="Choose an option"
|
|
805
|
+
/>
|
|
806
|
+
</HalstackProvider>
|
|
807
|
+
</ExampleContainer>
|
|
808
|
+
);
|
|
809
|
+
|
|
583
810
|
const DefaultGroupedOptionsSelect = () => (
|
|
584
811
|
<ExampleContainer expanded>
|
|
585
812
|
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
586
813
|
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
587
814
|
</ExampleContainer>
|
|
588
815
|
);
|
|
816
|
+
|
|
817
|
+
const DefaultGroupedOptionsSelectOpinionated = () => (
|
|
818
|
+
<ExampleContainer expanded>
|
|
819
|
+
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
820
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
821
|
+
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
822
|
+
</HalstackProvider>
|
|
823
|
+
</ExampleContainer>
|
|
824
|
+
);
|
|
825
|
+
|
|
589
826
|
const MultipleGroupedOptionsSelect = () => (
|
|
590
827
|
<ExampleContainer expanded>
|
|
591
828
|
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
@@ -598,22 +835,19 @@ const MultipleGroupedOptionsSelect = () => (
|
|
|
598
835
|
/>
|
|
599
836
|
</ExampleContainer>
|
|
600
837
|
);
|
|
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 = () => (
|
|
838
|
+
|
|
839
|
+
const MultipleGroupedOptionsSelectOpinionated = () => (
|
|
608
840
|
<ExampleContainer expanded>
|
|
609
|
-
<Title title="
|
|
610
|
-
<
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
841
|
+
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
842
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
843
|
+
<DxcSelect
|
|
844
|
+
label="Label"
|
|
845
|
+
options={group_options}
|
|
846
|
+
defaultValue={["0", "2"]}
|
|
847
|
+
multiple
|
|
848
|
+
placeholder="Choose an option"
|
|
849
|
+
/>
|
|
850
|
+
</HalstackProvider>
|
|
617
851
|
</ExampleContainer>
|
|
618
852
|
);
|
|
619
853
|
|
|
@@ -631,6 +865,22 @@ const MultipleSearchable = () => (
|
|
|
631
865
|
</ExampleContainer>
|
|
632
866
|
);
|
|
633
867
|
|
|
868
|
+
const MultipleSearchableOpinionated = () => (
|
|
869
|
+
<ExampleContainer expanded>
|
|
870
|
+
<Title title="Searchable multiple select with value" theme="light" level={4} />
|
|
871
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
872
|
+
<DxcSelect
|
|
873
|
+
label="Select Label"
|
|
874
|
+
searchable
|
|
875
|
+
multiple
|
|
876
|
+
defaultValue={["1", "4"]}
|
|
877
|
+
options={single_options}
|
|
878
|
+
placeholder="Choose an option"
|
|
879
|
+
/>
|
|
880
|
+
</HalstackProvider>
|
|
881
|
+
</ExampleContainer>
|
|
882
|
+
);
|
|
883
|
+
|
|
634
884
|
export const Chromatic = Select.bind({});
|
|
635
885
|
Chromatic.play = async ({ canvasElement }) => {
|
|
636
886
|
const canvas = within(canvasElement);
|
|
@@ -650,18 +900,36 @@ Searchable.play = async ({ canvasElement }) => {
|
|
|
650
900
|
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
651
901
|
};
|
|
652
902
|
|
|
903
|
+
export const SearchableOpinionated = SearchableSelectOpinionated.bind({});
|
|
904
|
+
SearchableOpinionated.play = async ({ canvasElement }) => {
|
|
905
|
+
const canvas = within(canvasElement);
|
|
906
|
+
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
907
|
+
};
|
|
908
|
+
|
|
653
909
|
export const SearchableWithValue = SearchValue.bind({});
|
|
654
910
|
SearchableWithValue.play = async ({ canvasElement }) => {
|
|
655
911
|
const canvas = within(canvasElement);
|
|
656
912
|
await userEvent.click(canvas.getByRole("combobox"));
|
|
657
913
|
};
|
|
658
914
|
|
|
915
|
+
export const SearchableWithValueOpinionated = SearchValueOpinionated.bind({});
|
|
916
|
+
SearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
917
|
+
const canvas = within(canvasElement);
|
|
918
|
+
await userEvent.click(canvas.getByRole("combobox"));
|
|
919
|
+
};
|
|
920
|
+
|
|
659
921
|
export const MultipleSearchableWithValue = MultipleSearchable.bind({});
|
|
660
922
|
MultipleSearchableWithValue.play = async ({ canvasElement }) => {
|
|
661
923
|
const canvas = within(canvasElement);
|
|
662
924
|
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
663
925
|
};
|
|
664
926
|
|
|
927
|
+
export const MultipleSearchableWithValueOpinionated = MultipleSearchableOpinionated.bind({});
|
|
928
|
+
MultipleSearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
929
|
+
const canvas = within(canvasElement);
|
|
930
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
931
|
+
};
|
|
932
|
+
|
|
665
933
|
export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
|
|
666
934
|
GroupOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
667
935
|
const canvas = within(canvasElement);
|
|
@@ -669,15 +937,35 @@ GroupOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
|
669
937
|
await userEvent.click(select);
|
|
670
938
|
};
|
|
671
939
|
|
|
940
|
+
export const GroupOptionsDisplayedOpinionated = DefaultGroupedOptionsSelectOpinionated.bind({});
|
|
941
|
+
GroupOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
942
|
+
const canvas = within(canvasElement);
|
|
943
|
+
const select = canvas.getByRole("combobox");
|
|
944
|
+
await userEvent.click(select);
|
|
945
|
+
};
|
|
946
|
+
|
|
672
947
|
export const MultipleOptionsDisplayed = MultipleSelect.bind({});
|
|
673
948
|
MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
674
949
|
const canvas = within(canvasElement);
|
|
675
950
|
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
676
951
|
};
|
|
677
952
|
|
|
953
|
+
export const MultipleOptionsDisplayedOpinionated = MultipleSelectOpinioated.bind({});
|
|
954
|
+
MultipleOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
955
|
+
const canvas = within(canvasElement);
|
|
956
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
957
|
+
};
|
|
958
|
+
|
|
678
959
|
export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
|
|
679
960
|
MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
680
961
|
const canvas = within(canvasElement);
|
|
681
962
|
const select = canvas.getByRole("combobox");
|
|
682
963
|
await userEvent.click(select);
|
|
683
964
|
};
|
|
965
|
+
|
|
966
|
+
export const MultipleGroupedOptionsDisplayedOpinionated = MultipleGroupedOptionsSelectOpinionated.bind({});
|
|
967
|
+
MultipleGroupedOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
968
|
+
const canvas = within(canvasElement);
|
|
969
|
+
const select = canvas.getByRole("combobox");
|
|
970
|
+
await userEvent.click(select);
|
|
971
|
+
};
|