@dxc-technology/halstack-react 0.0.0-c9b5c13 → 0.0.0-c9efd3e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BackgroundColorContext.d.ts +1 -10
- package/BackgroundColorContext.js +5 -22
- package/HalstackContext.d.ts +1243 -6
- package/HalstackContext.js +126 -111
- package/README.md +47 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +104 -161
- package/accordion/Accordion.stories.tsx +84 -140
- package/accordion/Accordion.test.js +25 -41
- package/accordion/types.d.ts +6 -17
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +2 -2
- package/accordion-group/AccordionGroup.js +31 -98
- package/accordion-group/AccordionGroup.stories.tsx +94 -67
- package/accordion-group/AccordionGroup.test.js +52 -105
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +12 -17
- package/action-icon/ActionIcon.accessibility.test.js +63 -0
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +48 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.accessibility.test.js +95 -0
- package/alert/Alert.js +32 -125
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +142 -42
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/bleed/Bleed.js +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 +19 -60
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -14
- package/bulleted-list/BulletedList.accessibility.test.js +107 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +92 -0
- package/bulleted-list/BulletedList.stories.tsx +115 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +64 -117
- package/button/Button.stories.tsx +151 -100
- package/button/Button.test.js +20 -17
- package/button/types.d.ts +12 -8
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.d.ts +1 -1
- package/card/Card.js +48 -89
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +140 -182
- package/checkbox/Checkbox.stories.tsx +128 -94
- package/checkbox/Checkbox.test.js +160 -39
- package/checkbox/types.d.ts +11 -3
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +43 -80
- package/chip/Chip.stories.tsx +102 -26
- package/chip/Chip.test.js +18 -33
- package/chip/types.d.ts +4 -4
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +6 -12
- package/common/variables.d.ts +1395 -0
- package/common/variables.js +942 -1145
- package/container/Container.d.ts +4 -0
- package/container/Container.js +194 -0
- package/container/Container.stories.tsx +214 -0
- package/container/types.d.ts +74 -0
- package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
- package/contextual-menu/ContextualMenu.d.ts +7 -0
- package/contextual-menu/ContextualMenu.js +71 -0
- package/contextual-menu/ContextualMenu.stories.tsx +182 -0
- package/contextual-menu/ContextualMenu.test.js +71 -0
- package/contextual-menu/MenuItemAction.d.ts +4 -0
- package/contextual-menu/MenuItemAction.js +46 -0
- package/contextual-menu/types.d.ts +22 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.accessibility.test.js +216 -0
- package/date-input/DateInput.js +150 -299
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +700 -371
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +115 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +58 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +72 -15
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +73 -107
- package/dialog/Dialog.stories.tsx +320 -167
- package/dialog/Dialog.test.js +287 -20
- package/dialog/types.d.ts +18 -25
- package/divider/Divider.accessibility.test.js +33 -0
- package/divider/Divider.d.ts +4 -0
- package/divider/Divider.js +36 -0
- package/divider/Divider.stories.tsx +223 -0
- package/divider/Divider.test.js +38 -0
- package/divider/types.d.ts +21 -0
- package/dropdown/Dropdown.accessibility.test.js +180 -0
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +231 -303
- package/dropdown/Dropdown.stories.tsx +235 -57
- package/dropdown/Dropdown.test.js +575 -165
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +70 -0
- package/dropdown/types.d.ts +35 -19
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +241 -391
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +292 -367
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +52 -117
- package/file-input/types.d.ts +25 -8
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/footer/Footer.accessibility.test.js +117 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +73 -118
- package/footer/Footer.stories.tsx +87 -21
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +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 +88 -182
- package/header/Header.stories.tsx +118 -39
- package/header/Header.test.js +13 -26
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +4 -9
- package/header/types.d.ts +7 -21
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/icon/Icon.accessibility.test.js +30 -0
- package/icon/Icon.d.ts +4 -0
- package/icon/Icon.js +33 -0
- package/icon/Icon.stories.tsx +28 -0
- package/icon/types.d.ts +4 -0
- package/icon/types.js +5 -0
- package/image/Image.accessibility.test.js +56 -0
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +129 -0
- package/image/types.d.ts +72 -0
- package/image/types.js +5 -0
- package/inset/Inset.js +14 -55
- package/inset/Inset.stories.tsx +37 -36
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +52 -117
- package/layout/ApplicationLayout.stories.tsx +81 -45
- package/layout/Icons.d.ts +8 -5
- package/layout/Icons.js +49 -59
- package/layout/types.d.ts +21 -32
- package/link/Link.accessibility.test.js +112 -0
- package/link/Link.js +32 -51
- package/link/Link.stories.tsx +74 -7
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +14 -12
- package/main.js +63 -99
- package/nav-tabs/NavTabs.accessibility.test.js +52 -0
- package/nav-tabs/NavTabs.d.ts +7 -0
- package/{tabs-nav → nav-tabs}/NavTabs.js +30 -62
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
- package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- 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.accessibility.test.js +228 -0
- package/number-input/NumberInput.js +46 -36
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +860 -377
- package/number-input/NumberInputContext.d.ts +3 -4
- package/number-input/NumberInputContext.js +3 -14
- package/number-input/types.d.ts +17 -5
- package/package.json +49 -51
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +23 -59
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +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/Icons.d.ts +6 -0
- package/password-input/Icons.js +35 -0
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +57 -126
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +160 -142
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +65 -91
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.js +29 -47
- package/quick-nav/QuickNav.stories.tsx +146 -27
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +59 -76
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +67 -114
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +518 -457
- package/radio-group/types.d.ts +10 -10
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
- package/resultset-table/ResultsetTable.d.ts +7 -0
- package/resultset-table/ResultsetTable.js +170 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +156 -30
- package/resultset-table/ResultsetTable.test.js +381 -0
- package/{resultsetTable → resultset-table}/types.d.ts +44 -11
- package/resultset-table/types.js +5 -0
- package/select/Icons.d.ts +7 -7
- package/select/Icons.js +1 -5
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +42 -51
- package/select/Option.js +27 -50
- package/select/Select.accessibility.test.js +217 -0
- package/select/Select.js +152 -207
- package/select/Select.stories.tsx +515 -139
- package/select/Select.test.js +2001 -1751
- package/select/types.d.ts +16 -20
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +132 -78
- package/sidenav/Sidenav.stories.tsx +246 -151
- package/sidenav/Sidenav.test.js +26 -45
- package/{layout → sidenav}/SidenavContext.d.ts +1 -1
- package/{layout → sidenav}/SidenavContext.js +3 -9
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.accessibility.test.js +104 -0
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +148 -181
- package/slider/Slider.test.js +185 -81
- package/slider/types.d.ts +7 -3
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +31 -75
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
- package/spinner/Spinner.test.js +26 -35
- package/spinner/types.d.ts +3 -3
- package/status-light/StatusLight.accessibility.test.js +157 -0
- package/status-light/StatusLight.d.ts +4 -0
- package/status-light/StatusLight.js +51 -0
- package/status-light/StatusLight.stories.tsx +74 -0
- package/status-light/StatusLight.test.js +25 -0
- package/status-light/types.d.ts +17 -0
- package/status-light/types.js +5 -0
- package/switch/Switch.accessibility.test.js +89 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +145 -126
- package/switch/Switch.stories.tsx +37 -60
- package/switch/Switch.test.js +138 -56
- package/switch/types.d.ts +7 -3
- package/table/DropdownTheme.js +62 -0
- package/table/Table.accessibility.test.js +82 -0
- package/table/Table.d.ts +6 -2
- package/table/Table.js +78 -35
- package/table/Table.stories.tsx +651 -0
- package/table/Table.test.js +95 -8
- package/table/types.d.ts +34 -6
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +116 -0
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +314 -141
- package/tabs/Tabs.stories.tsx +120 -6
- package/tabs/Tabs.test.js +223 -69
- package/tabs/types.d.ts +28 -18
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +35 -67
- package/tag/Tag.stories.tsx +18 -8
- package/tag/Tag.test.js +18 -37
- package/tag/types.d.ts +9 -9
- package/text-input/Suggestion.js +40 -28
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +86 -0
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +311 -514
- package/text-input/TextInput.stories.tsx +266 -275
- package/text-input/TextInput.test.js +1419 -1375
- package/text-input/types.d.ts +43 -16
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +70 -113
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +152 -183
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +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.accessibility.test.js +339 -0
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +23 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1147 -1
- package/useTheme.js +2 -9
- package/useTranslatedLabels.d.ts +84 -1
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +124 -0
- package/wizard/Wizard.accessibility.test.js +55 -0
- package/wizard/Wizard.js +24 -66
- package/wizard/Wizard.stories.tsx +40 -1
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +8 -8
- 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/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/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/tabs-nav/NavTabs.d.ts +0 -8
- package/tabs-nav/Tab.js +0 -132
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/textarea/Textarea.stories.jsx +0 -157
- /package/{list → action-icon}/types.js +0 -0
- /package/{resultsetTable → bulleted-list}/types.js +0 -0
- /package/{row → container}/types.js +0 -0
- /package/{stack → contextual-menu}/types.js +0 -0
- /package/{tabs-nav → divider}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → flex/types.js} +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +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,6 +64,7 @@ const group_options = [
|
|
|
62
64
|
],
|
|
63
65
|
},
|
|
64
66
|
];
|
|
67
|
+
|
|
65
68
|
const icon_options_grouped = [
|
|
66
69
|
{
|
|
67
70
|
label: "Group 001",
|
|
@@ -125,6 +128,7 @@ const icon_options_grouped = [
|
|
|
125
128
|
],
|
|
126
129
|
},
|
|
127
130
|
];
|
|
131
|
+
|
|
128
132
|
const icon_options = [
|
|
129
133
|
{
|
|
130
134
|
label: "3G Mobile",
|
|
@@ -173,6 +177,7 @@ const icon_options = [
|
|
|
173
177
|
),
|
|
174
178
|
},
|
|
175
179
|
];
|
|
180
|
+
|
|
176
181
|
const url_options = [
|
|
177
182
|
{
|
|
178
183
|
label: "Social Media",
|
|
@@ -183,14 +188,35 @@ const url_options = [
|
|
|
183
188
|
icon: "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Instagram_logo_2016.svg/800px-Instagram_logo_2016.svg.png",
|
|
184
189
|
},
|
|
185
190
|
{
|
|
186
|
-
label: "
|
|
187
|
-
value: "
|
|
188
|
-
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",
|
|
189
194
|
},
|
|
190
195
|
{
|
|
191
196
|
label: "Facebook",
|
|
192
197
|
value: "facebook",
|
|
193
|
-
icon:
|
|
198
|
+
icon: (
|
|
199
|
+
<svg
|
|
200
|
+
version="1.1"
|
|
201
|
+
x="0px"
|
|
202
|
+
y="0px"
|
|
203
|
+
width="438.536px"
|
|
204
|
+
height="438.536px"
|
|
205
|
+
viewBox="0 0 438.536 438.536"
|
|
206
|
+
fill="#4267B2"
|
|
207
|
+
>
|
|
208
|
+
<g>
|
|
209
|
+
<path
|
|
210
|
+
d="M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123
|
|
211
|
+
C8.045,40.207,0.003,59.576,0.003,82.225v274.084c0,22.647,8.042,42.018,24.123,58.102c16.084,16.084,35.454,24.126,58.102,24.126
|
|
212
|
+
h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
|
|
213
|
+
C438.532,59.576,430.49,40.204,414.41,24.123z M373.155,225.548h-49.963V406.84h-74.802V225.548H210.99V163.02h37.401v-37.402
|
|
214
|
+
c0-26.838,6.283-47.107,18.843-60.813c12.559-13.706,33.304-20.555,62.242-20.555h49.963v62.526h-31.401
|
|
215
|
+
c-10.663,0-17.467,1.853-20.417,5.568c-2.949,3.711-4.428,10.23-4.428,19.558v31.119h56.534L373.155,225.548z"
|
|
216
|
+
/>
|
|
217
|
+
</g>
|
|
218
|
+
</svg>
|
|
219
|
+
),
|
|
194
220
|
},
|
|
195
221
|
{
|
|
196
222
|
label: "Pinterest",
|
|
@@ -220,13 +246,22 @@ const url_options = [
|
|
|
220
246
|
],
|
|
221
247
|
},
|
|
222
248
|
];
|
|
249
|
+
|
|
223
250
|
const optionsWithEllipsisMedium = [
|
|
224
251
|
{ label: "Optiond1234567890123456789012345678901234", value: "1" },
|
|
225
252
|
{ label: "Optiond12345678901234567890123456789012345", value: "2" },
|
|
226
253
|
{ label: "Option 031111111111111111111111111111222", value: "3" },
|
|
227
|
-
{ label: "Option 03111111111111111111111111111222", value: "4" },
|
|
228
254
|
];
|
|
229
255
|
|
|
256
|
+
const opinionatedTheme = {
|
|
257
|
+
select: {
|
|
258
|
+
selectedOptionBackgroundColor: "#e6f4ff",
|
|
259
|
+
fontColor: "#000000",
|
|
260
|
+
optionFontColor: "#000000",
|
|
261
|
+
hoverBorderColor: "#a46ede",
|
|
262
|
+
},
|
|
263
|
+
};
|
|
264
|
+
|
|
230
265
|
const Select = () => (
|
|
231
266
|
<>
|
|
232
267
|
<Title title="States" theme="light" level={2} />
|
|
@@ -339,36 +374,381 @@ const Select = () => (
|
|
|
339
374
|
<Title title="Multiple selection with ellipsis" theme="light" level={4} />
|
|
340
375
|
<DxcSelect label="Label" options={single_options} multiple defaultValue={["1", "2", "3", "4"]} />
|
|
341
376
|
<Title title="Value with ellipsis" theme="light" level={4} />
|
|
342
|
-
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1"
|
|
343
|
-
<Title title="
|
|
377
|
+
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1" />
|
|
378
|
+
<Title title="Options with ellipsis" theme="light" level={4} />
|
|
344
379
|
<DxcSelect
|
|
345
380
|
label="Label"
|
|
346
381
|
placeholder="Choose an option"
|
|
347
382
|
defaultValue="1"
|
|
348
383
|
options={optionsWithEllipsisMedium}
|
|
349
|
-
|
|
384
|
+
margin={{ top: "xxlarge" }}
|
|
350
385
|
/>
|
|
351
386
|
</ExampleContainer>
|
|
387
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
388
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
389
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
390
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
391
|
+
<DxcSelect label="Hovered" options={single_options} />
|
|
392
|
+
</HalstackProvider>
|
|
393
|
+
</ExampleContainer>
|
|
394
|
+
<ExampleContainer pseudoState="pseudo-focus-within">
|
|
395
|
+
<Title title="Focused" theme="light" level={4} />
|
|
396
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
397
|
+
<DxcSelect label="Focused" options={single_options} />
|
|
398
|
+
</HalstackProvider>
|
|
399
|
+
</ExampleContainer>
|
|
400
|
+
<ExampleContainer>
|
|
401
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
402
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
403
|
+
<DxcSelect label="Disabled" placeholder="Placeholder" disabled options={single_options} />
|
|
404
|
+
</HalstackProvider>
|
|
405
|
+
</ExampleContainer>
|
|
406
|
+
<ExampleContainer>
|
|
407
|
+
<Title title="Disabled with value" theme="light" level={4} />
|
|
408
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
409
|
+
<DxcSelect label="Disabled with value" disabled options={single_options} defaultValue="1" />
|
|
410
|
+
</HalstackProvider>
|
|
411
|
+
</ExampleContainer>
|
|
412
|
+
<ExampleContainer>
|
|
413
|
+
<Title title="Error" theme="light" level={4} />
|
|
414
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
415
|
+
<DxcSelect
|
|
416
|
+
label="Label"
|
|
417
|
+
options={single_options}
|
|
418
|
+
error="Error message."
|
|
419
|
+
helperText="Helper text"
|
|
420
|
+
placeholder="Placeholder"
|
|
421
|
+
/>
|
|
422
|
+
<ExampleContainer>
|
|
423
|
+
<Title title="Multiple selection" theme="light" level={4} />
|
|
424
|
+
<DxcSelect label="Multiple select" searchable options={single_options} multiple defaultValue={["1", "2"]} />
|
|
425
|
+
</ExampleContainer>
|
|
426
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
427
|
+
<Title title="Multiple clear hovered" theme="light" level={4} />
|
|
428
|
+
<DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
|
|
429
|
+
</ExampleContainer>
|
|
430
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
431
|
+
<Title title="Multiple clear actived" theme="light" level={4} />
|
|
432
|
+
<DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
|
|
433
|
+
</ExampleContainer>
|
|
434
|
+
</HalstackProvider>
|
|
435
|
+
</ExampleContainer>
|
|
352
436
|
</>
|
|
353
437
|
);
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
const
|
|
357
|
-
|
|
438
|
+
|
|
439
|
+
const SelectListbox = () => {
|
|
440
|
+
const colorsTheme: any = useTheme();
|
|
441
|
+
|
|
442
|
+
return (
|
|
443
|
+
<>
|
|
444
|
+
<ThemeProvider theme={colorsTheme.select}>
|
|
445
|
+
<Title title="Listbox" theme="light" level={2} />
|
|
446
|
+
<ExampleContainer>
|
|
447
|
+
<Title
|
|
448
|
+
title="List dialog uses a Radix Popover to appear over elements with a certain z-index"
|
|
449
|
+
theme="light"
|
|
450
|
+
level={3}
|
|
451
|
+
/>
|
|
452
|
+
<div
|
|
453
|
+
style={{
|
|
454
|
+
position: "relative",
|
|
455
|
+
display: "flex",
|
|
456
|
+
flexDirection: "column",
|
|
457
|
+
gap: "20px",
|
|
458
|
+
height: "150px",
|
|
459
|
+
width: "min-content",
|
|
460
|
+
marginBottom: "100px",
|
|
461
|
+
padding: "20px",
|
|
462
|
+
border: "1px solid black",
|
|
463
|
+
borderRadius: "4px",
|
|
464
|
+
overflow: "auto",
|
|
465
|
+
zIndex: "1300",
|
|
466
|
+
}}
|
|
467
|
+
>
|
|
468
|
+
<DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
|
|
469
|
+
<button style={{ zIndex: "1", width: "100px" }}>Submit</button>
|
|
470
|
+
</div>
|
|
471
|
+
</ExampleContainer>
|
|
472
|
+
<Title title="Listbox option states" theme="light" level={3} />
|
|
473
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
474
|
+
<Title title="Hovered option" theme="light" level={4} />
|
|
475
|
+
<Listbox
|
|
476
|
+
id="x"
|
|
477
|
+
currentValue=""
|
|
478
|
+
options={one_option}
|
|
479
|
+
visualFocusIndex={-1}
|
|
480
|
+
lastOptionIndex={0}
|
|
481
|
+
multiple={false}
|
|
482
|
+
optional={false}
|
|
483
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
484
|
+
searchable={false}
|
|
485
|
+
handleOptionOnClick={() => {}}
|
|
486
|
+
styles={{ width: 360 }}
|
|
487
|
+
/>
|
|
488
|
+
</ExampleContainer>
|
|
489
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
490
|
+
<Title title="Active option" theme="light" level={4} />
|
|
491
|
+
<Listbox
|
|
492
|
+
id="x"
|
|
493
|
+
currentValue=""
|
|
494
|
+
options={one_option}
|
|
495
|
+
visualFocusIndex={-1}
|
|
496
|
+
lastOptionIndex={0}
|
|
497
|
+
multiple={false}
|
|
498
|
+
optional={false}
|
|
499
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
500
|
+
searchable={false}
|
|
501
|
+
handleOptionOnClick={() => {}}
|
|
502
|
+
styles={{ width: 360 }}
|
|
503
|
+
/>
|
|
504
|
+
</ExampleContainer>
|
|
505
|
+
<ExampleContainer>
|
|
506
|
+
<Title title="Focused option" theme="light" level={4} />
|
|
507
|
+
<Listbox
|
|
508
|
+
id="x"
|
|
509
|
+
currentValue=""
|
|
510
|
+
options={one_option}
|
|
511
|
+
visualFocusIndex={0}
|
|
512
|
+
lastOptionIndex={0}
|
|
513
|
+
multiple={false}
|
|
514
|
+
optional={false}
|
|
515
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
516
|
+
searchable={false}
|
|
517
|
+
handleOptionOnClick={() => {}}
|
|
518
|
+
styles={{ width: 360 }}
|
|
519
|
+
/>
|
|
520
|
+
</ExampleContainer>
|
|
521
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
522
|
+
<Title title="Hovered selected option" theme="light" level={4} />
|
|
523
|
+
<Listbox
|
|
524
|
+
id="x"
|
|
525
|
+
currentValue="1"
|
|
526
|
+
options={single_options}
|
|
527
|
+
visualFocusIndex={-1}
|
|
528
|
+
lastOptionIndex={3}
|
|
529
|
+
multiple={false}
|
|
530
|
+
optional={false}
|
|
531
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
532
|
+
searchable={false}
|
|
533
|
+
handleOptionOnClick={() => {}}
|
|
534
|
+
styles={{ width: 360 }}
|
|
535
|
+
/>
|
|
536
|
+
</ExampleContainer>
|
|
537
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
538
|
+
<Title title="Active selected option" theme="light" level={4} />
|
|
539
|
+
<Listbox
|
|
540
|
+
id="x"
|
|
541
|
+
currentValue="2"
|
|
542
|
+
options={single_options}
|
|
543
|
+
visualFocusIndex={0}
|
|
544
|
+
lastOptionIndex={3}
|
|
545
|
+
multiple={false}
|
|
546
|
+
optional={false}
|
|
547
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
548
|
+
searchable={false}
|
|
549
|
+
handleOptionOnClick={() => {}}
|
|
550
|
+
styles={{ width: 360 }}
|
|
551
|
+
/>
|
|
552
|
+
</ExampleContainer>
|
|
553
|
+
<Title title="Listbox with icons" theme="light" level={3} />
|
|
554
|
+
<ExampleContainer>
|
|
555
|
+
<Title title="Icons (SVGs)" theme="light" level={4} />
|
|
556
|
+
<Listbox
|
|
557
|
+
id="x"
|
|
558
|
+
currentValue="3"
|
|
559
|
+
options={icon_options}
|
|
560
|
+
visualFocusIndex={-1}
|
|
561
|
+
lastOptionIndex={3}
|
|
562
|
+
multiple={false}
|
|
563
|
+
optional={false}
|
|
564
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
565
|
+
searchable={false}
|
|
566
|
+
handleOptionOnClick={() => {}}
|
|
567
|
+
styles={{ width: 360 }}
|
|
568
|
+
/>
|
|
569
|
+
</ExampleContainer>
|
|
570
|
+
<ExampleContainer>
|
|
571
|
+
<Title title="Icons (Images)" theme="light" level={4} />
|
|
572
|
+
<Listbox
|
|
573
|
+
id="x"
|
|
574
|
+
currentValue="facebook"
|
|
575
|
+
options={url_options}
|
|
576
|
+
visualFocusIndex={-1}
|
|
577
|
+
lastOptionIndex={6}
|
|
578
|
+
multiple={false}
|
|
579
|
+
optional={false}
|
|
580
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
581
|
+
searchable={false}
|
|
582
|
+
handleOptionOnClick={() => {}}
|
|
583
|
+
styles={{ width: 360 }}
|
|
584
|
+
/>
|
|
585
|
+
</ExampleContainer>
|
|
586
|
+
<ExampleContainer>
|
|
587
|
+
<Title title="Grouped icons (SVGs)" theme="light" level={4} />
|
|
588
|
+
<Listbox
|
|
589
|
+
id="x"
|
|
590
|
+
currentValue={["0", "3"]}
|
|
591
|
+
options={icon_options_grouped}
|
|
592
|
+
visualFocusIndex={-1}
|
|
593
|
+
lastOptionIndex={3}
|
|
594
|
+
multiple={false}
|
|
595
|
+
optional={false}
|
|
596
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
597
|
+
searchable={false}
|
|
598
|
+
handleOptionOnClick={() => {}}
|
|
599
|
+
styles={{ width: 360 }}
|
|
600
|
+
/>
|
|
601
|
+
</ExampleContainer>
|
|
602
|
+
<ExampleContainer>
|
|
603
|
+
<Title title="Grouped icons (Images)" theme="light" level={4} />
|
|
604
|
+
<Listbox
|
|
605
|
+
id="x"
|
|
606
|
+
currentValue={["facebook", "figma"]}
|
|
607
|
+
options={url_options}
|
|
608
|
+
visualFocusIndex={-1}
|
|
609
|
+
lastOptionIndex={6}
|
|
610
|
+
multiple={true}
|
|
611
|
+
optional={false}
|
|
612
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
613
|
+
searchable={false}
|
|
614
|
+
handleOptionOnClick={() => {}}
|
|
615
|
+
styles={{ width: 360 }}
|
|
616
|
+
/>
|
|
617
|
+
</ExampleContainer>
|
|
618
|
+
</ThemeProvider>
|
|
619
|
+
<ThemeProvider theme={colorsTheme.select}>
|
|
620
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
621
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
622
|
+
<Title title="Hovered option" theme="light" level={4} />
|
|
623
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
624
|
+
<Listbox
|
|
625
|
+
id="x"
|
|
626
|
+
currentValue=""
|
|
627
|
+
options={one_option}
|
|
628
|
+
visualFocusIndex={-1}
|
|
629
|
+
lastOptionIndex={0}
|
|
630
|
+
multiple={false}
|
|
631
|
+
optional={false}
|
|
632
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
633
|
+
searchable={false}
|
|
634
|
+
handleOptionOnClick={() => {}}
|
|
635
|
+
styles={{ width: 360 }}
|
|
636
|
+
/>
|
|
637
|
+
</HalstackProvider>
|
|
638
|
+
</ExampleContainer>
|
|
639
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
640
|
+
<Title title="Active option" theme="light" level={4} />{" "}
|
|
641
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
642
|
+
<Listbox
|
|
643
|
+
id="x"
|
|
644
|
+
currentValue=""
|
|
645
|
+
options={one_option}
|
|
646
|
+
visualFocusIndex={-1}
|
|
647
|
+
lastOptionIndex={0}
|
|
648
|
+
multiple={false}
|
|
649
|
+
optional={false}
|
|
650
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
651
|
+
searchable={false}
|
|
652
|
+
handleOptionOnClick={() => {}}
|
|
653
|
+
styles={{ width: 360 }}
|
|
654
|
+
/>
|
|
655
|
+
</HalstackProvider>
|
|
656
|
+
</ExampleContainer>
|
|
657
|
+
<ExampleContainer>
|
|
658
|
+
<Title title="Focused option" theme="light" level={4} />{" "}
|
|
659
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
660
|
+
<Listbox
|
|
661
|
+
id="x"
|
|
662
|
+
currentValue=""
|
|
663
|
+
options={one_option}
|
|
664
|
+
visualFocusIndex={0}
|
|
665
|
+
lastOptionIndex={0}
|
|
666
|
+
multiple={false}
|
|
667
|
+
optional={false}
|
|
668
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
669
|
+
searchable={false}
|
|
670
|
+
handleOptionOnClick={() => {}}
|
|
671
|
+
styles={{ width: 360 }}
|
|
672
|
+
/>
|
|
673
|
+
</HalstackProvider>
|
|
674
|
+
</ExampleContainer>
|
|
675
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
676
|
+
<Title title="Hovered selected option" theme="light" level={4} />{" "}
|
|
677
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
678
|
+
<Listbox
|
|
679
|
+
id="x"
|
|
680
|
+
currentValue="1"
|
|
681
|
+
options={single_options}
|
|
682
|
+
visualFocusIndex={-1}
|
|
683
|
+
lastOptionIndex={3}
|
|
684
|
+
multiple={false}
|
|
685
|
+
optional={false}
|
|
686
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
687
|
+
searchable={false}
|
|
688
|
+
handleOptionOnClick={() => {}}
|
|
689
|
+
styles={{ width: 360 }}
|
|
690
|
+
/>
|
|
691
|
+
</HalstackProvider>
|
|
692
|
+
</ExampleContainer>
|
|
693
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
694
|
+
<Title title="Active selected option" theme="light" level={4} />{" "}
|
|
695
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
696
|
+
<Listbox
|
|
697
|
+
id="x"
|
|
698
|
+
currentValue="2"
|
|
699
|
+
options={single_options}
|
|
700
|
+
visualFocusIndex={0}
|
|
701
|
+
lastOptionIndex={3}
|
|
702
|
+
multiple={false}
|
|
703
|
+
optional={false}
|
|
704
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
705
|
+
searchable={false}
|
|
706
|
+
handleOptionOnClick={() => {}}
|
|
707
|
+
styles={{ width: 360 }}
|
|
708
|
+
/>
|
|
709
|
+
</HalstackProvider>
|
|
710
|
+
</ExampleContainer>
|
|
711
|
+
<Title title="Listbox with icons" theme="light" level={3} />
|
|
712
|
+
<ExampleContainer>
|
|
713
|
+
<Title title="Icons (SVGs)" theme="light" level={4} />{" "}
|
|
714
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
715
|
+
<Listbox
|
|
716
|
+
id="x"
|
|
717
|
+
currentValue="3"
|
|
718
|
+
options={icon_options}
|
|
719
|
+
visualFocusIndex={-1}
|
|
720
|
+
lastOptionIndex={3}
|
|
721
|
+
multiple={false}
|
|
722
|
+
optional={false}
|
|
723
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
724
|
+
searchable={false}
|
|
725
|
+
handleOptionOnClick={() => {}}
|
|
726
|
+
styles={{ width: 360 }}
|
|
727
|
+
/>
|
|
728
|
+
</HalstackProvider>
|
|
729
|
+
</ExampleContainer>
|
|
730
|
+
</ThemeProvider>
|
|
731
|
+
</>
|
|
732
|
+
);
|
|
358
733
|
};
|
|
359
|
-
|
|
734
|
+
|
|
735
|
+
const SearchableSelect = () => (
|
|
360
736
|
<ExampleContainer expanded>
|
|
361
|
-
<Title title="
|
|
362
|
-
<DxcSelect label="Select
|
|
737
|
+
<Title title="Searchable select" theme="light" level={4} />
|
|
738
|
+
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
363
739
|
</ExampleContainer>
|
|
364
740
|
);
|
|
365
|
-
|
|
741
|
+
|
|
742
|
+
const SearchableSelectOpinionated = () => (
|
|
366
743
|
<ExampleContainer expanded>
|
|
367
744
|
<Title title="Searchable select" theme="light" level={4} />
|
|
368
|
-
<
|
|
745
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
746
|
+
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
747
|
+
</HalstackProvider>
|
|
369
748
|
</ExampleContainer>
|
|
370
749
|
);
|
|
371
|
-
|
|
750
|
+
|
|
751
|
+
const SearchValue = () => (
|
|
372
752
|
<ExampleContainer expanded>
|
|
373
753
|
<Title title="Searchable select with value" theme="light" level={4} />
|
|
374
754
|
<DxcSelect
|
|
@@ -381,6 +761,21 @@ const SearchableWithValue = () => (
|
|
|
381
761
|
</ExampleContainer>
|
|
382
762
|
);
|
|
383
763
|
|
|
764
|
+
const SearchValueOpinionated = () => (
|
|
765
|
+
<ExampleContainer expanded>
|
|
766
|
+
<Title title="Searchable select with value" theme="light" level={4} />
|
|
767
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
768
|
+
<DxcSelect
|
|
769
|
+
label="Select Label"
|
|
770
|
+
searchable
|
|
771
|
+
defaultValue="1"
|
|
772
|
+
options={single_options}
|
|
773
|
+
placeholder="Choose an option"
|
|
774
|
+
/>
|
|
775
|
+
</HalstackProvider>
|
|
776
|
+
</ExampleContainer>
|
|
777
|
+
);
|
|
778
|
+
|
|
384
779
|
const MultipleSelect = () => (
|
|
385
780
|
<>
|
|
386
781
|
<ExampleContainer expanded>
|
|
@@ -395,12 +790,38 @@ const MultipleSelect = () => (
|
|
|
395
790
|
</ExampleContainer>
|
|
396
791
|
</>
|
|
397
792
|
);
|
|
793
|
+
|
|
794
|
+
const MultipleSelectOpinioated = () => (
|
|
795
|
+
<ExampleContainer expanded>
|
|
796
|
+
<Title title="Multiple select" theme="light" level={4} />
|
|
797
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
798
|
+
<DxcSelect
|
|
799
|
+
label="Select label"
|
|
800
|
+
options={single_options}
|
|
801
|
+
defaultValue={["1", "4"]}
|
|
802
|
+
multiple
|
|
803
|
+
placeholder="Choose an option"
|
|
804
|
+
/>
|
|
805
|
+
</HalstackProvider>
|
|
806
|
+
</ExampleContainer>
|
|
807
|
+
);
|
|
808
|
+
|
|
398
809
|
const DefaultGroupedOptionsSelect = () => (
|
|
399
810
|
<ExampleContainer expanded>
|
|
400
811
|
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
401
812
|
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
402
813
|
</ExampleContainer>
|
|
403
814
|
);
|
|
815
|
+
|
|
816
|
+
const DefaultGroupedOptionsSelectOpinionated = () => (
|
|
817
|
+
<ExampleContainer expanded>
|
|
818
|
+
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
819
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
820
|
+
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
821
|
+
</HalstackProvider>
|
|
822
|
+
</ExampleContainer>
|
|
823
|
+
);
|
|
824
|
+
|
|
404
825
|
const MultipleGroupedOptionsSelect = () => (
|
|
405
826
|
<ExampleContainer expanded>
|
|
406
827
|
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
@@ -413,66 +834,22 @@ const MultipleGroupedOptionsSelect = () => (
|
|
|
413
834
|
/>
|
|
414
835
|
</ExampleContainer>
|
|
415
836
|
);
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
<Title title="Rescaled icons displayed" theme="light" level={4} />
|
|
419
|
-
<DxcSelect label="Label" options={url_options} defaultValue="facebook" placeholder="Choose an option" />
|
|
420
|
-
</ExampleContainer>
|
|
421
|
-
);
|
|
422
|
-
const SelectWithIcons = () => (
|
|
423
|
-
<ExampleContainer expanded>
|
|
424
|
-
<Title title="Normal icons displayed" theme="light" level={4} />
|
|
425
|
-
<DxcSelect label="Label" options={icon_options} defaultValue="3" placeholder="Choose an option" />
|
|
426
|
-
</ExampleContainer>
|
|
427
|
-
);
|
|
428
|
-
const SelectMultipleWithIcons = () => (
|
|
429
|
-
<ExampleContainer expanded>
|
|
430
|
-
<Title title="Multiple select with icons" theme="light" level={4} />
|
|
431
|
-
<DxcSelect label="Label" options={icon_options} multiple defaultValue={["1", "3"]} placeholder="Choose an option" />
|
|
432
|
-
</ExampleContainer>
|
|
433
|
-
);
|
|
434
|
-
const MultipleGroupedOptionsSelectWithIcons = () => (
|
|
837
|
+
|
|
838
|
+
const MultipleGroupedOptionsSelectOpinionated = () => (
|
|
435
839
|
<ExampleContainer expanded>
|
|
436
|
-
<Title title="
|
|
437
|
-
<
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
const OnlyOneOptionHovered = () => (
|
|
447
|
-
<ExampleContainer pseudoState="pseudo-hover" expanded>
|
|
448
|
-
<Title title="Hovered Option" theme="light" level={4} />
|
|
449
|
-
<DxcSelect label="Hovered" options={one_option} placeholder="Choose an option" />
|
|
450
|
-
</ExampleContainer>
|
|
451
|
-
);
|
|
452
|
-
const OnlyOneOptionFocused = () => (
|
|
453
|
-
<ExampleContainer pseudoState="pseudo-focus" expanded>
|
|
454
|
-
<Title title="Focused Option" theme="light" level={4} />
|
|
455
|
-
<DxcSelect label="Focused" options={one_option} placeholder="Choose an option" />
|
|
456
|
-
</ExampleContainer>
|
|
457
|
-
);
|
|
458
|
-
const OnlyOneOptionActived = () => (
|
|
459
|
-
<ExampleContainer pseudoState="pseudo-active" expanded>
|
|
460
|
-
<Title title="Actived Option" theme="light" level={4} />
|
|
461
|
-
<DxcSelect label="Actived" options={one_option} placeholder="Choose an option" />
|
|
462
|
-
</ExampleContainer>
|
|
463
|
-
);
|
|
464
|
-
const SelectedOptionHovered = () => (
|
|
465
|
-
<ExampleContainer pseudoState="pseudo-hover" expanded>
|
|
466
|
-
<Title title="Hovered Selected Option" theme="light" level={4} />
|
|
467
|
-
<DxcSelect label="Hovered" defaultValue="1" options={one_option} placeholder="Choose an option" />
|
|
468
|
-
</ExampleContainer>
|
|
469
|
-
);
|
|
470
|
-
const SelectedOptionActived = () => (
|
|
471
|
-
<ExampleContainer pseudoState="pseudo-active" expanded>
|
|
472
|
-
<Title title="Actived Selected Option" theme="light" level={4} />
|
|
473
|
-
<DxcSelect label="Actived" defaultValue="1" options={one_option} placeholder="Choose an option" />
|
|
840
|
+
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
841
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
842
|
+
<DxcSelect
|
|
843
|
+
label="Label"
|
|
844
|
+
options={group_options}
|
|
845
|
+
defaultValue={["0", "2"]}
|
|
846
|
+
multiple
|
|
847
|
+
placeholder="Choose an option"
|
|
848
|
+
/>
|
|
849
|
+
</HalstackProvider>
|
|
474
850
|
</ExampleContainer>
|
|
475
851
|
);
|
|
852
|
+
|
|
476
853
|
const MultipleSearchable = () => (
|
|
477
854
|
<ExampleContainer expanded>
|
|
478
855
|
<Title title="Searchable multiple select with value" theme="light" level={4} />
|
|
@@ -486,108 +863,107 @@ const MultipleSearchable = () => (
|
|
|
486
863
|
/>
|
|
487
864
|
</ExampleContainer>
|
|
488
865
|
);
|
|
489
|
-
|
|
490
|
-
|
|
866
|
+
|
|
867
|
+
const MultipleSearchableOpinionated = () => (
|
|
868
|
+
<ExampleContainer expanded>
|
|
869
|
+
<Title title="Searchable multiple select with value" theme="light" level={4} />
|
|
870
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
871
|
+
<DxcSelect
|
|
872
|
+
label="Select Label"
|
|
873
|
+
searchable
|
|
874
|
+
multiple
|
|
875
|
+
defaultValue={["1", "4"]}
|
|
876
|
+
options={single_options}
|
|
877
|
+
placeholder="Choose an option"
|
|
878
|
+
/>
|
|
879
|
+
</HalstackProvider>
|
|
880
|
+
</ExampleContainer>
|
|
881
|
+
);
|
|
882
|
+
|
|
883
|
+
export const Chromatic = Select.bind({});
|
|
884
|
+
Chromatic.play = async ({ canvasElement }) => {
|
|
885
|
+
const canvas = within(canvasElement);
|
|
886
|
+
await userEvent.click(canvas.getAllByRole("combobox")[24]);
|
|
887
|
+
};
|
|
888
|
+
|
|
889
|
+
export const ListboxStates = SelectListbox.bind({});
|
|
890
|
+
ListboxStates.play = async ({ canvasElement }) => {
|
|
491
891
|
const canvas = within(canvasElement);
|
|
492
892
|
const select = canvas.getByRole("combobox");
|
|
493
893
|
await userEvent.click(select);
|
|
494
894
|
};
|
|
895
|
+
|
|
495
896
|
export const Searchable = SearchableSelect.bind({});
|
|
496
897
|
Searchable.play = async ({ canvasElement }) => {
|
|
497
898
|
const canvas = within(canvasElement);
|
|
498
|
-
await userEvent.
|
|
499
|
-
await waitFor(async () => {
|
|
500
|
-
userEvent.type(canvas.getByRole("combobox"), "r");
|
|
501
|
-
});
|
|
899
|
+
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
502
900
|
};
|
|
503
|
-
|
|
504
|
-
|
|
901
|
+
|
|
902
|
+
export const SearchableOpinionated = SearchableSelectOpinionated.bind({});
|
|
903
|
+
SearchableOpinionated.play = async ({ canvasElement }) => {
|
|
505
904
|
const canvas = within(canvasElement);
|
|
506
|
-
await userEvent.
|
|
905
|
+
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
507
906
|
};
|
|
508
907
|
|
|
509
|
-
export const
|
|
510
|
-
|
|
908
|
+
export const SearchableWithValue = SearchValue.bind({});
|
|
909
|
+
SearchableWithValue.play = async ({ canvasElement }) => {
|
|
511
910
|
const canvas = within(canvasElement);
|
|
512
|
-
await userEvent.click(canvas.
|
|
911
|
+
await userEvent.click(canvas.getByRole("combobox"));
|
|
513
912
|
};
|
|
514
913
|
|
|
515
|
-
export const
|
|
516
|
-
|
|
914
|
+
export const SearchableWithValueOpinionated = SearchValueOpinionated.bind({});
|
|
915
|
+
SearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
517
916
|
const canvas = within(canvasElement);
|
|
518
|
-
|
|
519
|
-
await userEvent.click(select);
|
|
917
|
+
await userEvent.click(canvas.getByRole("combobox"));
|
|
520
918
|
};
|
|
521
919
|
|
|
522
|
-
export const
|
|
523
|
-
|
|
920
|
+
export const MultipleSearchableWithValue = MultipleSearchable.bind({});
|
|
921
|
+
MultipleSearchableWithValue.play = async ({ canvasElement }) => {
|
|
524
922
|
const canvas = within(canvasElement);
|
|
525
923
|
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
526
924
|
};
|
|
527
925
|
|
|
528
|
-
export const
|
|
529
|
-
|
|
926
|
+
export const MultipleSearchableWithValueOpinionated = MultipleSearchableOpinionated.bind({});
|
|
927
|
+
MultipleSearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
530
928
|
const canvas = within(canvasElement);
|
|
531
|
-
|
|
532
|
-
await userEvent.click(select);
|
|
533
|
-
};
|
|
534
|
-
export const SelectWithIconsDisplayed = SelectWithIcons.bind({});
|
|
535
|
-
SelectWithIconsDisplayed.play = async ({ canvasElement }) => {
|
|
536
|
-
const canvas = within(canvasElement);
|
|
537
|
-
const select = canvas.getByRole("combobox");
|
|
538
|
-
await userEvent.click(select);
|
|
929
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
539
930
|
};
|
|
540
931
|
|
|
541
|
-
export const
|
|
542
|
-
|
|
543
|
-
const canvas = within(canvasElement);
|
|
544
|
-
const select = canvas.getByRole("combobox");
|
|
545
|
-
await userEvent.click(select);
|
|
546
|
-
};
|
|
547
|
-
export const SelectMultipleWithIconsDisplayed = SelectMultipleWithIcons.bind({});
|
|
548
|
-
SelectMultipleWithIconsDisplayed.play = async ({ canvasElement }) => {
|
|
932
|
+
export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
|
|
933
|
+
GroupOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
549
934
|
const canvas = within(canvasElement);
|
|
550
935
|
const select = canvas.getByRole("combobox");
|
|
551
936
|
await userEvent.click(select);
|
|
552
937
|
};
|
|
553
938
|
|
|
554
|
-
export const
|
|
555
|
-
|
|
939
|
+
export const GroupOptionsDisplayedOpinionated = DefaultGroupedOptionsSelectOpinionated.bind({});
|
|
940
|
+
GroupOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
556
941
|
const canvas = within(canvasElement);
|
|
557
942
|
const select = canvas.getByRole("combobox");
|
|
558
943
|
await userEvent.click(select);
|
|
559
944
|
};
|
|
560
945
|
|
|
561
|
-
export const
|
|
562
|
-
|
|
946
|
+
export const MultipleOptionsDisplayed = MultipleSelect.bind({});
|
|
947
|
+
MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
563
948
|
const canvas = within(canvasElement);
|
|
564
|
-
|
|
565
|
-
await userEvent.click(select);
|
|
949
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
566
950
|
};
|
|
567
951
|
|
|
568
|
-
export const
|
|
569
|
-
|
|
570
|
-
const canvas = within(canvasElement);
|
|
571
|
-
const select = canvas.getByRole("combobox");
|
|
572
|
-
await userEvent.click(select);
|
|
573
|
-
await waitFor(async () => {
|
|
574
|
-
fireEvent.keyDown(select, { key: "ArrowDown", code: "ArrowDown", keyCode: 40, charCode: 40 });
|
|
575
|
-
});
|
|
576
|
-
};
|
|
577
|
-
export const OptionActived = OnlyOneOptionActived.bind({});
|
|
578
|
-
OptionActived.play = async ({ canvasElement }) => {
|
|
952
|
+
export const MultipleOptionsDisplayedOpinionated = MultipleSelectOpinioated.bind({});
|
|
953
|
+
MultipleOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
579
954
|
const canvas = within(canvasElement);
|
|
580
|
-
|
|
581
|
-
await userEvent.click(select);
|
|
955
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
582
956
|
};
|
|
583
|
-
|
|
584
|
-
|
|
957
|
+
|
|
958
|
+
export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
|
|
959
|
+
MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
585
960
|
const canvas = within(canvasElement);
|
|
586
961
|
const select = canvas.getByRole("combobox");
|
|
587
962
|
await userEvent.click(select);
|
|
588
963
|
};
|
|
589
|
-
|
|
590
|
-
|
|
964
|
+
|
|
965
|
+
export const MultipleGroupedOptionsDisplayedOpinionated = MultipleGroupedOptionsSelectOpinionated.bind({});
|
|
966
|
+
MultipleGroupedOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
591
967
|
const canvas = within(canvasElement);
|
|
592
968
|
const select = canvas.getByRole("combobox");
|
|
593
969
|
await userEvent.click(select);
|