@dxc-technology/halstack-react 0.0.0-335f028 → 0.0.0-33c1fd8
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 +1244 -6
- package/HalstackContext.js +182 -115
- package/README.md +47 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +105 -160
- package/accordion/Accordion.stories.tsx +84 -140
- package/accordion/Accordion.test.js +25 -41
- package/accordion/types.d.ts +6 -17
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +2 -2
- package/accordion-group/AccordionGroup.js +31 -98
- package/accordion-group/AccordionGroup.stories.tsx +94 -67
- package/accordion-group/AccordionGroup.test.js +52 -105
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +12 -17
- package/action-icon/ActionIcon.accessibility.test.js +63 -0
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +48 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.accessibility.test.js +95 -0
- package/alert/Alert.js +35 -125
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +142 -40
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -2
- package/bleed/Bleed.js +14 -55
- package/bleed/Bleed.stories.tsx +95 -95
- 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 +30 -81
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -14
- package/bulleted-list/BulletedList.accessibility.test.js +107 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +92 -0
- package/bulleted-list/BulletedList.stories.tsx +115 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +64 -117
- package/button/Button.stories.tsx +151 -100
- package/button/Button.test.js +20 -17
- package/button/types.d.ts +12 -8
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.d.ts +1 -1
- package/card/Card.js +64 -107
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +142 -181
- package/checkbox/Checkbox.stories.tsx +128 -94
- package/checkbox/Checkbox.test.js +160 -39
- package/checkbox/types.d.ts +11 -3
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +43 -80
- package/chip/Chip.stories.tsx +102 -26
- package/chip/Chip.test.js +18 -33
- package/chip/types.d.ts +4 -4
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +6 -12
- package/common/variables.d.ts +1394 -0
- package/common/variables.js +1027 -1133
- 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 +5 -0
- package/contextual-menu/ContextualMenu.js +88 -0
- package/contextual-menu/ContextualMenu.stories.tsx +219 -0
- package/contextual-menu/ContextualMenu.test.js +205 -0
- package/contextual-menu/GroupItem.d.ts +4 -0
- package/contextual-menu/GroupItem.js +67 -0
- package/contextual-menu/ItemAction.d.ts +4 -0
- package/contextual-menu/ItemAction.js +52 -0
- package/contextual-menu/MenuItem.d.ts +4 -0
- package/contextual-menu/MenuItem.js +29 -0
- package/contextual-menu/SingleItem.d.ts +4 -0
- package/contextual-menu/SingleItem.js +38 -0
- package/contextual-menu/types.d.ts +58 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.accessibility.test.js +216 -0
- package/date-input/DateInput.js +151 -298
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +700 -371
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +121 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +72 -15
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +61 -107
- package/dialog/Dialog.stories.tsx +320 -167
- package/dialog/Dialog.test.js +287 -20
- package/dialog/types.d.ts +18 -25
- package/divider/Divider.accessibility.test.js +33 -0
- package/divider/Divider.d.ts +4 -0
- package/divider/Divider.js +36 -0
- package/divider/Divider.stories.tsx +223 -0
- package/divider/Divider.test.js +38 -0
- package/divider/types.d.ts +21 -0
- package/dropdown/Dropdown.accessibility.test.js +180 -0
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +231 -303
- package/dropdown/Dropdown.stories.tsx +235 -57
- package/dropdown/Dropdown.test.js +575 -165
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +70 -0
- package/dropdown/types.d.ts +35 -19
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +246 -393
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +292 -367
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +57 -120
- package/file-input/types.d.ts +25 -8
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/footer/Footer.accessibility.test.js +117 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +75 -118
- package/footer/Footer.stories.tsx +87 -21
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +67 -8
- package/footer/types.d.ts +26 -27
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/grid/types.js +5 -0
- package/header/Header.accessibility.test.js +84 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +93 -184
- package/header/Header.stories.tsx +118 -39
- package/header/Header.test.js +13 -26
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +4 -9
- package/header/types.d.ts +7 -21
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/icon/Icon.accessibility.test.js +30 -0
- package/icon/Icon.d.ts +4 -0
- package/icon/Icon.js +33 -0
- package/icon/Icon.stories.tsx +28 -0
- package/icon/types.d.ts +4 -0
- package/icon/types.js +5 -0
- package/image/Image.accessibility.test.js +56 -0
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +129 -0
- package/image/types.d.ts +72 -0
- package/image/types.js +5 -0
- package/inset/Inset.js +14 -55
- package/inset/Inset.stories.tsx +37 -36
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +85 -166
- package/layout/ApplicationLayout.stories.tsx +85 -94
- package/layout/Icons.d.ts +7 -0
- package/layout/Icons.js +41 -48
- package/layout/types.d.ts +19 -35
- package/link/Link.accessibility.test.js +112 -0
- package/link/Link.d.ts +2 -2
- package/link/Link.js +46 -91
- package/link/Link.stories.tsx +74 -7
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -15
- package/main.d.ts +15 -13
- package/main.js +71 -101
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +7 -0
- package/nav-tabs/NavTabs.js +93 -0
- package/nav-tabs/NavTabs.stories.tsx +279 -0
- package/nav-tabs/NavTabs.test.js +75 -0
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +117 -0
- package/nav-tabs/types.d.ts +52 -0
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.accessibility.test.js +228 -0
- package/number-input/NumberInput.js +46 -36
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +860 -377
- package/number-input/NumberInputContext.d.ts +3 -4
- package/number-input/NumberInputContext.js +3 -14
- package/number-input/types.d.ts +18 -6
- package/package.json +49 -51
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +38 -96
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +280 -211
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +22 -0
- package/paragraph/Paragraph.stories.tsx +27 -0
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +56 -123
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +160 -143
- package/password-input/types.d.ts +9 -8
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +65 -91
- package/progress-bar/ProgressBar.stories.tsx +93 -0
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.js +71 -41
- package/quick-nav/QuickNav.stories.tsx +146 -27
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +59 -76
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +71 -116
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +518 -457
- package/radio-group/types.d.ts +10 -10
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
- package/resultset-table/ResultsetTable.d.ts +7 -0
- package/resultset-table/ResultsetTable.js +170 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +156 -30
- package/resultset-table/ResultsetTable.test.js +381 -0
- package/{resultsetTable → resultset-table}/types.d.ts +44 -11
- package/resultset-table/types.js +5 -0
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +50 -53
- package/select/Option.js +33 -55
- package/select/Select.accessibility.test.js +217 -0
- package/select/Select.js +194 -251
- package/select/Select.stories.tsx +512 -187
- package/select/Select.test.js +1962 -1743
- package/select/types.d.ts +17 -21
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +136 -71
- package/sidenav/Sidenav.stories.tsx +246 -151
- package/sidenav/Sidenav.test.js +26 -45
- package/sidenav/SidenavContext.d.ts +5 -0
- package/sidenav/SidenavContext.js +13 -0
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.accessibility.test.js +104 -0
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +148 -181
- package/slider/Slider.test.js +185 -81
- package/slider/types.d.ts +7 -3
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +31 -75
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
- package/spinner/Spinner.test.js +26 -35
- package/spinner/types.d.ts +3 -3
- package/status-light/StatusLight.accessibility.test.js +157 -0
- package/status-light/StatusLight.d.ts +4 -0
- package/status-light/StatusLight.js +51 -0
- package/status-light/StatusLight.stories.tsx +74 -0
- package/status-light/StatusLight.test.js +25 -0
- package/status-light/types.d.ts +17 -0
- package/status-light/types.js +5 -0
- package/switch/Switch.accessibility.test.js +89 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +147 -125
- package/switch/Switch.stories.tsx +37 -60
- package/switch/Switch.test.js +138 -56
- package/switch/types.d.ts +7 -3
- package/table/DropdownTheme.js +62 -0
- package/table/Table.accessibility.test.js +82 -0
- package/table/Table.d.ts +6 -2
- package/table/Table.js +78 -35
- package/table/Table.stories.tsx +651 -0
- package/table/Table.test.js +95 -8
- package/table/types.d.ts +34 -6
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +117 -0
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +303 -141
- package/tabs/Tabs.stories.tsx +118 -6
- package/tabs/Tabs.test.js +213 -77
- package/tabs/types.d.ts +30 -20
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +35 -67
- package/tag/Tag.stories.tsx +18 -8
- package/tag/Tag.test.js +18 -37
- package/tag/types.d.ts +9 -9
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +67 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +86 -0
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +326 -555
- package/text-input/TextInput.stories.tsx +266 -275
- package/text-input/TextInput.test.js +1420 -1376
- package/text-input/types.d.ts +53 -14
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +79 -131
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +152 -183
- package/textarea/types.d.ts +10 -6
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +94 -107
- package/toggle-group/ToggleGroup.stories.tsx +52 -7
- package/toggle-group/ToggleGroup.test.js +69 -88
- package/toggle-group/types.d.ts +28 -19
- package/typography/Typography.accessibility.test.js +339 -0
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +23 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1146 -1
- package/useTheme.js +2 -9
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +14 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +124 -0
- package/wizard/Wizard.accessibility.test.js +55 -0
- package/wizard/Wizard.js +59 -102
- package/wizard/Wizard.stories.tsx +59 -1
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +9 -9
- package/card/ice-cream.jpg +0 -0
- package/common/OpenSans.css +0 -81
- package/common/RequiredComponent.js +0 -32
- package/common/fonts/OpenSans-Bold.ttf +0 -0
- package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-Italic.ttf +0 -0
- package/common/fonts/OpenSans-Light.ttf +0 -0
- package/common/fonts/OpenSans-LightItalic.ttf +0 -0
- package/common/fonts/OpenSans-Regular.ttf +0 -0
- package/common/fonts/OpenSans-SemiBold.ttf +0 -0
- package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/paginator/Icons.js +0 -66
- package/progress-bar/ProgressBar.stories.jsx +0 -58
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -173
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- package/resultsetTable/ResultsetTable.d.ts +0 -4
- package/resultsetTable/ResultsetTable.js +0 -254
- package/resultsetTable/ResultsetTable.test.js +0 -306
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -28
- package/select/Icons.d.ts +0 -10
- package/select/Icons.js +0 -93
- package/slider/Slider.stories.tsx +0 -177
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -24
- package/table/Table.stories.jsx +0 -277
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/textarea/Textarea.stories.jsx +0 -157
- /package/{list → action-icon}/types.js +0 -0
- /package/{radio → bulleted-list}/types.js +0 -0
- /package/{resultsetTable → container}/types.js +0 -0
- /package/{row → contextual-menu}/types.js +0 -0
- /package/{stack → divider}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → flex/types.js} +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
|
|
3
|
-
import { userEvent, within, waitFor } from "@storybook/testing-library";
|
|
4
|
-
import { fireEvent } from "@testing-library/react";
|
|
5
|
-
|
|
2
|
+
import { userEvent, within } from "@storybook/testing-library";
|
|
6
3
|
import Title from "../../.storybook/components/Title";
|
|
7
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
8
|
-
|
|
9
5
|
import DxcSelect from "./Select";
|
|
6
|
+
import Listbox from "./Listbox";
|
|
7
|
+
import { ThemeProvider } from "styled-components";
|
|
8
|
+
import useTheme from "../useTheme";
|
|
9
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
10
10
|
|
|
11
11
|
export default {
|
|
12
12
|
title: "Select",
|
|
@@ -14,12 +14,14 @@ export default {
|
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
const one_option = [{ label: "Option 01", value: "1" }];
|
|
17
|
+
|
|
17
18
|
const single_options = [
|
|
18
19
|
{ label: "Option 01", value: "1" },
|
|
19
20
|
{ label: "Option 02", value: "2" },
|
|
20
21
|
{ label: "Option 03", value: "3" },
|
|
21
22
|
{ label: "Option 04", value: "4" },
|
|
22
23
|
];
|
|
24
|
+
|
|
23
25
|
const group_options = [
|
|
24
26
|
{
|
|
25
27
|
label: "Group 001",
|
|
@@ -62,25 +64,15 @@ const group_options = [
|
|
|
62
64
|
],
|
|
63
65
|
},
|
|
64
66
|
];
|
|
65
|
-
|
|
67
|
+
|
|
68
|
+
const icon_options_grouped_material = [
|
|
66
69
|
{
|
|
67
70
|
label: "Group 001",
|
|
68
71
|
options: [
|
|
69
72
|
{
|
|
70
73
|
label: "3G Mobile",
|
|
71
74
|
value: "1",
|
|
72
|
-
icon:
|
|
73
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
74
|
-
<g>
|
|
75
|
-
<path d="M0,0h24v24H0V0z" fill="none" />
|
|
76
|
-
</g>
|
|
77
|
-
<g>
|
|
78
|
-
<g>
|
|
79
|
-
<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" />
|
|
80
|
-
</g>
|
|
81
|
-
</g>
|
|
82
|
-
</svg>
|
|
83
|
-
),
|
|
75
|
+
icon: "3g_mobiledata",
|
|
84
76
|
},
|
|
85
77
|
],
|
|
86
78
|
},
|
|
@@ -90,12 +82,7 @@ const icon_options_grouped = [
|
|
|
90
82
|
{
|
|
91
83
|
label: "Ethernet",
|
|
92
84
|
value: "2",
|
|
93
|
-
icon:
|
|
94
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
95
|
-
<path d="M0 0h24v24H0V0z" fill="none" />
|
|
96
|
-
<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" />
|
|
97
|
-
</svg>
|
|
98
|
-
),
|
|
85
|
+
icon: "settings_ethernet",
|
|
99
86
|
},
|
|
100
87
|
],
|
|
101
88
|
},
|
|
@@ -105,26 +92,17 @@ const icon_options_grouped = [
|
|
|
105
92
|
{
|
|
106
93
|
label: "Wi-fi",
|
|
107
94
|
value: "3",
|
|
108
|
-
icon:
|
|
109
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
110
|
-
<path d="M0 0h24v24H0V0zm0 0h24v24H0V0z" fill="none" />
|
|
111
|
-
<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" />
|
|
112
|
-
</svg>
|
|
113
|
-
),
|
|
95
|
+
icon: "wifi",
|
|
114
96
|
},
|
|
115
97
|
{
|
|
116
98
|
label: "Settings backup restore (just for previous configuration)",
|
|
117
99
|
value: "4",
|
|
118
|
-
icon:
|
|
119
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
120
|
-
<path d="M0 0h24v24H0V0z" fill="none" />
|
|
121
|
-
<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" />
|
|
122
|
-
</svg>
|
|
123
|
-
),
|
|
100
|
+
icon: "settings_backup_restore",
|
|
124
101
|
},
|
|
125
102
|
],
|
|
126
103
|
},
|
|
127
104
|
];
|
|
105
|
+
|
|
128
106
|
const icon_options = [
|
|
129
107
|
{
|
|
130
108
|
label: "3G Mobile",
|
|
@@ -173,60 +151,70 @@ const icon_options = [
|
|
|
173
151
|
),
|
|
174
152
|
},
|
|
175
153
|
];
|
|
176
|
-
|
|
154
|
+
|
|
155
|
+
const options_material = [
|
|
177
156
|
{
|
|
178
|
-
label: "
|
|
157
|
+
label: "Transport",
|
|
179
158
|
options: [
|
|
180
159
|
{
|
|
181
|
-
label: "
|
|
182
|
-
value: "
|
|
183
|
-
icon: "
|
|
160
|
+
label: "Electric Car",
|
|
161
|
+
value: "car",
|
|
162
|
+
icon: "electric_car",
|
|
184
163
|
},
|
|
185
164
|
{
|
|
186
|
-
label: "
|
|
187
|
-
value: "
|
|
188
|
-
icon: "
|
|
165
|
+
label: "Motorcycle",
|
|
166
|
+
value: "motorcycle",
|
|
167
|
+
icon: "Motorcycle",
|
|
189
168
|
},
|
|
190
169
|
{
|
|
191
|
-
label: "
|
|
192
|
-
value: "
|
|
193
|
-
icon: "
|
|
170
|
+
label: "Train",
|
|
171
|
+
value: "train",
|
|
172
|
+
icon: "train",
|
|
194
173
|
},
|
|
195
174
|
{
|
|
196
|
-
label: "
|
|
197
|
-
value: "
|
|
198
|
-
icon: "
|
|
175
|
+
label: "Bike",
|
|
176
|
+
value: "bike",
|
|
177
|
+
icon: "pedal_bike",
|
|
199
178
|
},
|
|
200
179
|
],
|
|
201
180
|
},
|
|
202
181
|
{
|
|
203
|
-
label: "
|
|
182
|
+
label: "Entertainment",
|
|
204
183
|
options: [
|
|
205
184
|
{
|
|
206
|
-
label: "
|
|
207
|
-
value: "
|
|
208
|
-
icon: "
|
|
185
|
+
label: "Movie",
|
|
186
|
+
value: "movie",
|
|
187
|
+
icon: "movie",
|
|
209
188
|
},
|
|
210
189
|
{
|
|
211
|
-
label: "
|
|
212
|
-
value: "
|
|
213
|
-
icon: "
|
|
190
|
+
label: "Music",
|
|
191
|
+
value: "music",
|
|
192
|
+
icon: "music_note",
|
|
214
193
|
},
|
|
215
194
|
{
|
|
216
|
-
label: "
|
|
217
|
-
value: "
|
|
218
|
-
icon: "
|
|
195
|
+
label: "Games",
|
|
196
|
+
value: "games",
|
|
197
|
+
icon: "joystick",
|
|
219
198
|
},
|
|
220
199
|
],
|
|
221
200
|
},
|
|
222
201
|
];
|
|
202
|
+
|
|
223
203
|
const optionsWithEllipsisMedium = [
|
|
224
204
|
{ label: "Optiond1234567890123456789012345678901234", value: "1" },
|
|
225
205
|
{ label: "Optiond12345678901234567890123456789012345", value: "2" },
|
|
226
206
|
{ label: "Option 031111111111111111111111111111222", value: "3" },
|
|
227
|
-
{ label: "Option 03111111111111111111111111111222", value: "4" },
|
|
228
207
|
];
|
|
229
208
|
|
|
209
|
+
const opinionatedTheme = {
|
|
210
|
+
select: {
|
|
211
|
+
selectedOptionBackgroundColor: "#e6f4ff",
|
|
212
|
+
fontColor: "#000000",
|
|
213
|
+
optionFontColor: "#000000",
|
|
214
|
+
hoverBorderColor: "#a46ede",
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
|
|
230
218
|
const Select = () => (
|
|
231
219
|
<>
|
|
232
220
|
<Title title="States" theme="light" level={2} />
|
|
@@ -339,39 +327,389 @@ const Select = () => (
|
|
|
339
327
|
<Title title="Multiple selection with ellipsis" theme="light" level={4} />
|
|
340
328
|
<DxcSelect label="Label" options={single_options} multiple defaultValue={["1", "2", "3", "4"]} />
|
|
341
329
|
<Title title="Value with ellipsis" theme="light" level={4} />
|
|
342
|
-
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1"
|
|
343
|
-
<Title title="
|
|
330
|
+
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1" />
|
|
331
|
+
<Title title="Options with ellipsis" theme="light" level={4} />
|
|
344
332
|
<DxcSelect
|
|
345
333
|
label="Label"
|
|
346
334
|
placeholder="Choose an option"
|
|
347
335
|
defaultValue="1"
|
|
348
336
|
options={optionsWithEllipsisMedium}
|
|
349
|
-
|
|
337
|
+
margin={{ top: "xxlarge" }}
|
|
350
338
|
/>
|
|
351
339
|
</ExampleContainer>
|
|
340
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
341
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
342
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
343
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
344
|
+
<DxcSelect label="Hovered" options={single_options} />
|
|
345
|
+
</HalstackProvider>
|
|
346
|
+
</ExampleContainer>
|
|
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>
|
|
352
|
+
</ExampleContainer>
|
|
353
|
+
<ExampleContainer>
|
|
354
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
355
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
356
|
+
<DxcSelect label="Disabled" placeholder="Placeholder" disabled options={single_options} />
|
|
357
|
+
</HalstackProvider>
|
|
358
|
+
</ExampleContainer>
|
|
359
|
+
<ExampleContainer>
|
|
360
|
+
<Title title="Disabled with value" theme="light" level={4} />
|
|
361
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
362
|
+
<DxcSelect label="Disabled with value" disabled options={single_options} defaultValue="1" />
|
|
363
|
+
</HalstackProvider>
|
|
364
|
+
</ExampleContainer>
|
|
365
|
+
<ExampleContainer>
|
|
366
|
+
<Title title="Error" theme="light" level={4} />
|
|
367
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
368
|
+
<DxcSelect
|
|
369
|
+
label="Label"
|
|
370
|
+
options={single_options}
|
|
371
|
+
error="Error message."
|
|
372
|
+
helperText="Helper text"
|
|
373
|
+
placeholder="Placeholder"
|
|
374
|
+
/>
|
|
375
|
+
<ExampleContainer>
|
|
376
|
+
<Title title="Multiple selection" theme="light" level={4} />
|
|
377
|
+
<DxcSelect label="Multiple select" searchable options={single_options} multiple defaultValue={["1", "2"]} />
|
|
378
|
+
</ExampleContainer>
|
|
379
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
380
|
+
<Title title="Multiple clear hovered" theme="light" level={4} />
|
|
381
|
+
<DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
|
|
382
|
+
</ExampleContainer>
|
|
383
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
384
|
+
<Title title="Multiple clear actived" theme="light" level={4} />
|
|
385
|
+
<DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
|
|
386
|
+
</ExampleContainer>
|
|
387
|
+
</HalstackProvider>
|
|
388
|
+
</ExampleContainer>
|
|
352
389
|
</>
|
|
353
390
|
);
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
const
|
|
357
|
-
|
|
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
|
+
);
|
|
358
670
|
};
|
|
359
|
-
|
|
671
|
+
|
|
672
|
+
const SearchableSelect = () => (
|
|
360
673
|
<ExampleContainer expanded>
|
|
361
|
-
<Title title="
|
|
362
|
-
<DxcSelect label="Select
|
|
674
|
+
<Title title="Searchable select" theme="light" level={4} />
|
|
675
|
+
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
363
676
|
</ExampleContainer>
|
|
364
677
|
);
|
|
365
|
-
|
|
678
|
+
|
|
679
|
+
const SearchableSelectOpinionated = () => (
|
|
366
680
|
<ExampleContainer expanded>
|
|
367
681
|
<Title title="Searchable select" theme="light" level={4} />
|
|
368
|
-
<
|
|
682
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
683
|
+
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
684
|
+
</HalstackProvider>
|
|
685
|
+
</ExampleContainer>
|
|
686
|
+
);
|
|
687
|
+
|
|
688
|
+
const SearchValue = () => (
|
|
689
|
+
<ExampleContainer expanded>
|
|
690
|
+
<Title title="Searchable select with value" theme="light" level={4} />
|
|
691
|
+
<DxcSelect
|
|
692
|
+
label="Select Label"
|
|
693
|
+
searchable
|
|
694
|
+
defaultValue="1"
|
|
695
|
+
options={single_options}
|
|
696
|
+
placeholder="Choose an option"
|
|
697
|
+
/>
|
|
369
698
|
</ExampleContainer>
|
|
370
699
|
);
|
|
371
|
-
|
|
700
|
+
|
|
701
|
+
const SearchValueOpinionated = () => (
|
|
372
702
|
<ExampleContainer expanded>
|
|
373
703
|
<Title title="Searchable select with value" theme="light" level={4} />
|
|
374
|
-
<
|
|
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>
|
|
375
713
|
</ExampleContainer>
|
|
376
714
|
);
|
|
377
715
|
|
|
@@ -389,78 +727,66 @@ const MultipleSelect = () => (
|
|
|
389
727
|
</ExampleContainer>
|
|
390
728
|
</>
|
|
391
729
|
);
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
395
|
-
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
396
|
-
</ExampleContainer>
|
|
397
|
-
);
|
|
398
|
-
const MultipleGroupedOptionsSelect = () => (
|
|
399
|
-
<ExampleContainer expanded>
|
|
400
|
-
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
401
|
-
<DxcSelect label="Label" options={group_options} defaultValue={["0", "2"]} multiple placeholder="Choose an option" />
|
|
402
|
-
</ExampleContainer>
|
|
403
|
-
);
|
|
404
|
-
const RescaledIcons = () => (
|
|
730
|
+
|
|
731
|
+
const MultipleSelectOpinioated = () => (
|
|
405
732
|
<ExampleContainer expanded>
|
|
406
|
-
<Title title="
|
|
407
|
-
<
|
|
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>
|
|
408
743
|
</ExampleContainer>
|
|
409
744
|
);
|
|
410
|
-
|
|
745
|
+
|
|
746
|
+
const DefaultGroupedOptionsSelect = () => (
|
|
411
747
|
<ExampleContainer expanded>
|
|
412
|
-
<Title title="
|
|
413
|
-
<DxcSelect label="Label" options={
|
|
748
|
+
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
749
|
+
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
414
750
|
</ExampleContainer>
|
|
415
751
|
);
|
|
416
|
-
|
|
752
|
+
|
|
753
|
+
const DefaultGroupedOptionsSelectOpinionated = () => (
|
|
417
754
|
<ExampleContainer expanded>
|
|
418
|
-
<Title title="
|
|
419
|
-
<
|
|
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>
|
|
420
759
|
</ExampleContainer>
|
|
421
760
|
);
|
|
422
|
-
|
|
761
|
+
|
|
762
|
+
const MultipleGroupedOptionsSelect = () => (
|
|
423
763
|
<ExampleContainer expanded>
|
|
424
|
-
<Title title="
|
|
764
|
+
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
425
765
|
<DxcSelect
|
|
426
766
|
label="Label"
|
|
427
|
-
options={
|
|
767
|
+
options={group_options}
|
|
768
|
+
defaultValue={["0", "2"]}
|
|
428
769
|
multiple
|
|
429
|
-
defaultValue={["3", "2"]}
|
|
430
770
|
placeholder="Choose an option"
|
|
431
771
|
/>
|
|
432
772
|
</ExampleContainer>
|
|
433
773
|
);
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
<
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
<ExampleContainer pseudoState="pseudo-active" expanded>
|
|
448
|
-
<Title title="Actived Option" theme="light" level={4} />
|
|
449
|
-
<DxcSelect label="Actived" options={one_option} placeholder="Choose an option" />
|
|
450
|
-
</ExampleContainer>
|
|
451
|
-
);
|
|
452
|
-
const SelectedOptionHovered = () => (
|
|
453
|
-
<ExampleContainer pseudoState="pseudo-hover" expanded>
|
|
454
|
-
<Title title="Hovered Selected Option" theme="light" level={4} />
|
|
455
|
-
<DxcSelect label="Hovered" defaultValue="1" options={one_option} placeholder="Choose an option" />
|
|
456
|
-
</ExampleContainer>
|
|
457
|
-
);
|
|
458
|
-
const SelectedOptionActived = () => (
|
|
459
|
-
<ExampleContainer pseudoState="pseudo-active" expanded>
|
|
460
|
-
<Title title="Actived Selected Option" theme="light" level={4} />
|
|
461
|
-
<DxcSelect label="Actived" defaultValue="1" options={one_option} placeholder="Choose an option" />
|
|
774
|
+
|
|
775
|
+
const MultipleGroupedOptionsSelectOpinionated = () => (
|
|
776
|
+
<ExampleContainer expanded>
|
|
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>
|
|
462
787
|
</ExampleContainer>
|
|
463
788
|
);
|
|
789
|
+
|
|
464
790
|
const MultipleSearchable = () => (
|
|
465
791
|
<ExampleContainer expanded>
|
|
466
792
|
<Title title="Searchable multiple select with value" theme="light" level={4} />
|
|
@@ -474,108 +800,107 @@ const MultipleSearchable = () => (
|
|
|
474
800
|
/>
|
|
475
801
|
</ExampleContainer>
|
|
476
802
|
);
|
|
477
|
-
|
|
478
|
-
|
|
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
|
+
|
|
820
|
+
export const Chromatic = Select.bind({});
|
|
821
|
+
Chromatic.play = async ({ canvasElement }) => {
|
|
822
|
+
const canvas = within(canvasElement);
|
|
823
|
+
await userEvent.click(canvas.getAllByRole("combobox")[24]);
|
|
824
|
+
};
|
|
825
|
+
|
|
826
|
+
export const ListboxStates = SelectListbox.bind({});
|
|
827
|
+
ListboxStates.play = async ({ canvasElement }) => {
|
|
479
828
|
const canvas = within(canvasElement);
|
|
480
829
|
const select = canvas.getByRole("combobox");
|
|
481
830
|
await userEvent.click(select);
|
|
482
831
|
};
|
|
832
|
+
|
|
483
833
|
export const Searchable = SearchableSelect.bind({});
|
|
484
834
|
Searchable.play = async ({ canvasElement }) => {
|
|
485
835
|
const canvas = within(canvasElement);
|
|
486
|
-
await userEvent.
|
|
487
|
-
await waitFor(async () => {
|
|
488
|
-
userEvent.type(canvas.getByRole("combobox"), "r");
|
|
489
|
-
});
|
|
836
|
+
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
490
837
|
};
|
|
491
|
-
|
|
492
|
-
|
|
838
|
+
|
|
839
|
+
export const SearchableOpinionated = SearchableSelectOpinionated.bind({});
|
|
840
|
+
SearchableOpinionated.play = async ({ canvasElement }) => {
|
|
493
841
|
const canvas = within(canvasElement);
|
|
494
|
-
await userEvent.
|
|
842
|
+
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
495
843
|
};
|
|
496
844
|
|
|
497
|
-
export const
|
|
498
|
-
|
|
845
|
+
export const SearchableWithValue = SearchValue.bind({});
|
|
846
|
+
SearchableWithValue.play = async ({ canvasElement }) => {
|
|
499
847
|
const canvas = within(canvasElement);
|
|
500
|
-
await userEvent.click(canvas.
|
|
848
|
+
await userEvent.click(canvas.getByRole("combobox"));
|
|
501
849
|
};
|
|
502
850
|
|
|
503
|
-
export const
|
|
504
|
-
|
|
851
|
+
export const SearchableWithValueOpinionated = SearchValueOpinionated.bind({});
|
|
852
|
+
SearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
505
853
|
const canvas = within(canvasElement);
|
|
506
|
-
|
|
507
|
-
await userEvent.click(select);
|
|
854
|
+
await userEvent.click(canvas.getByRole("combobox"));
|
|
508
855
|
};
|
|
509
856
|
|
|
510
|
-
export const
|
|
511
|
-
|
|
857
|
+
export const MultipleSearchableWithValue = MultipleSearchable.bind({});
|
|
858
|
+
MultipleSearchableWithValue.play = async ({ canvasElement }) => {
|
|
512
859
|
const canvas = within(canvasElement);
|
|
513
860
|
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
514
861
|
};
|
|
515
862
|
|
|
516
|
-
export const
|
|
517
|
-
|
|
518
|
-
const canvas = within(canvasElement);
|
|
519
|
-
const select = canvas.getByRole("combobox");
|
|
520
|
-
await userEvent.click(select);
|
|
521
|
-
};
|
|
522
|
-
export const SelectWithIconsDisplayed = SelectWithIcons.bind({});
|
|
523
|
-
SelectWithIconsDisplayed.play = async ({ canvasElement }) => {
|
|
863
|
+
export const MultipleSearchableWithValueOpinionated = MultipleSearchableOpinionated.bind({});
|
|
864
|
+
MultipleSearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
524
865
|
const canvas = within(canvasElement);
|
|
525
|
-
|
|
526
|
-
await userEvent.click(select);
|
|
866
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
527
867
|
};
|
|
528
868
|
|
|
529
|
-
export const
|
|
530
|
-
|
|
531
|
-
const canvas = within(canvasElement);
|
|
532
|
-
const select = canvas.getByRole("combobox");
|
|
533
|
-
await userEvent.click(select);
|
|
534
|
-
};
|
|
535
|
-
export const SelectMultipleWithIconsDisplayed = SelectMultipleWithIcons.bind({});
|
|
536
|
-
SelectMultipleWithIconsDisplayed.play = async ({ canvasElement }) => {
|
|
869
|
+
export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
|
|
870
|
+
GroupOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
537
871
|
const canvas = within(canvasElement);
|
|
538
872
|
const select = canvas.getByRole("combobox");
|
|
539
873
|
await userEvent.click(select);
|
|
540
874
|
};
|
|
541
875
|
|
|
542
|
-
export const
|
|
543
|
-
|
|
876
|
+
export const GroupOptionsDisplayedOpinionated = DefaultGroupedOptionsSelectOpinionated.bind({});
|
|
877
|
+
GroupOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
544
878
|
const canvas = within(canvasElement);
|
|
545
879
|
const select = canvas.getByRole("combobox");
|
|
546
880
|
await userEvent.click(select);
|
|
547
881
|
};
|
|
548
882
|
|
|
549
|
-
export const
|
|
550
|
-
|
|
883
|
+
export const MultipleOptionsDisplayed = MultipleSelect.bind({});
|
|
884
|
+
MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
551
885
|
const canvas = within(canvasElement);
|
|
552
|
-
|
|
553
|
-
await userEvent.click(select);
|
|
886
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
554
887
|
};
|
|
555
888
|
|
|
556
|
-
export const
|
|
557
|
-
|
|
889
|
+
export const MultipleOptionsDisplayedOpinionated = MultipleSelectOpinioated.bind({});
|
|
890
|
+
MultipleOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
558
891
|
const canvas = within(canvasElement);
|
|
559
|
-
|
|
560
|
-
await userEvent.click(select);
|
|
561
|
-
await waitFor(async () => {
|
|
562
|
-
fireEvent.keyDown(select, { key: "ArrowDown", code: "ArrowDown", keyCode: 40, charCode: 40 });
|
|
563
|
-
});
|
|
564
|
-
};
|
|
565
|
-
export const OptionActived = OnlyOneOptionActived.bind({});
|
|
566
|
-
OptionActived.play = async ({ canvasElement }) => {
|
|
567
|
-
const canvas = within(canvasElement);
|
|
568
|
-
const select = canvas.getByRole("combobox");
|
|
569
|
-
await userEvent.click(select);
|
|
892
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
570
893
|
};
|
|
571
|
-
|
|
572
|
-
|
|
894
|
+
|
|
895
|
+
export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
|
|
896
|
+
MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
573
897
|
const canvas = within(canvasElement);
|
|
574
898
|
const select = canvas.getByRole("combobox");
|
|
575
899
|
await userEvent.click(select);
|
|
576
900
|
};
|
|
577
|
-
|
|
578
|
-
|
|
901
|
+
|
|
902
|
+
export const MultipleGroupedOptionsDisplayedOpinionated = MultipleGroupedOptionsSelectOpinionated.bind({});
|
|
903
|
+
MultipleGroupedOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
579
904
|
const canvas = within(canvasElement);
|
|
580
905
|
const select = canvas.getByRole("combobox");
|
|
581
906
|
await userEvent.click(select);
|