@dxc-technology/halstack-react 0.0.0-e1386cf → 0.0.0-e19ca5f
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 +1240 -6
- package/HalstackContext.js +122 -106
- package/README.md +47 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +44 -118
- package/accordion/Accordion.stories.tsx +82 -147
- package/accordion/Accordion.test.js +19 -34
- package/accordion/types.d.ts +6 -18
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +2 -2
- package/accordion-group/AccordionGroup.js +29 -77
- package/accordion-group/AccordionGroup.stories.tsx +78 -77
- package/accordion-group/AccordionGroup.test.js +44 -72
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +7 -19
- package/action-icon/ActionIcon.accessibility.test.js +63 -0
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +48 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.accessibility.test.js +95 -0
- package/alert/Alert.js +36 -126
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +142 -42
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/bleed/Bleed.js +13 -21
- package/bleed/Bleed.stories.tsx +1 -0
- package/bleed/types.d.ts +2 -2
- package/box/Box.accessibility.test.js +33 -0
- package/box/Box.d.ts +1 -1
- package/box/Box.js +18 -59
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -15
- package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
- package/breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/breadcrumbs/Breadcrumbs.js +79 -0
- package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
- package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.test.js +169 -0
- package/breadcrumbs/Item.d.ts +4 -0
- package/breadcrumbs/Item.js +52 -0
- package/breadcrumbs/dropdownTheme.d.ts +53 -0
- package/breadcrumbs/dropdownTheme.js +62 -0
- package/breadcrumbs/types.d.ts +16 -0
- package/bulleted-list/BulletedList.accessibility.test.js +119 -0
- package/bulleted-list/BulletedList.js +22 -53
- package/bulleted-list/BulletedList.stories.tsx +8 -93
- package/bulleted-list/types.d.ts +32 -5
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +71 -106
- package/button/Button.stories.tsx +143 -101
- package/button/Button.test.js +20 -17
- package/button/types.d.ts +9 -5
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.d.ts +1 -1
- package/card/Card.js +49 -89
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -12
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.js +90 -125
- package/checkbox/Checkbox.stories.tsx +68 -54
- package/checkbox/Checkbox.test.js +108 -64
- package/checkbox/types.d.ts +8 -4
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +45 -80
- package/chip/Chip.stories.tsx +107 -27
- 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 +1392 -0
- package/common/variables.js +969 -1213
- 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 +97 -0
- package/contextual-menu/ContextualMenu.d.ts +5 -0
- package/contextual-menu/ContextualMenu.js +88 -0
- package/contextual-menu/ContextualMenu.stories.tsx +232 -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 +51 -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/contextual-menu/types.js +5 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.accessibility.test.js +228 -0
- package/date-input/DateInput.js +149 -299
- package/date-input/DateInput.stories.tsx +210 -56
- package/date-input/DateInput.test.js +694 -429
- 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 +51 -120
- package/dialog/Dialog.stories.tsx +316 -212
- package/dialog/Dialog.test.js +270 -33
- package/dialog/types.d.ts +18 -26
- package/divider/Divider.accessibility.test.js +33 -0
- package/divider/Divider.d.ts +4 -0
- package/divider/Divider.js +36 -0
- package/divider/Divider.stories.tsx +223 -0
- package/divider/Divider.test.js +38 -0
- package/divider/types.d.ts +21 -0
- package/divider/types.js +5 -0
- package/dropdown/Dropdown.accessibility.test.js +180 -0
- package/dropdown/Dropdown.js +66 -136
- package/dropdown/Dropdown.stories.tsx +209 -94
- package/dropdown/Dropdown.test.js +404 -390
- package/dropdown/DropdownMenu.js +23 -40
- package/dropdown/DropdownMenuItem.js +17 -38
- package/dropdown/types.d.ts +20 -24
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.js +184 -292
- package/file-input/FileInput.stories.tsx +86 -3
- package/file-input/FileInput.test.js +279 -395
- package/file-input/FileItem.js +31 -67
- package/file-input/types.d.ts +10 -10
- package/flex/Flex.js +27 -39
- package/flex/Flex.stories.tsx +35 -26
- package/flex/types.d.ts +74 -9
- package/footer/Footer.accessibility.test.js +125 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +73 -118
- package/footer/Footer.stories.tsx +94 -23
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +53 -22
- package/footer/types.d.ts +26 -28
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/grid/types.js +5 -0
- package/header/Header.accessibility.test.js +93 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +55 -150
- package/header/Header.stories.tsx +130 -35
- package/header/Header.test.js +13 -26
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +3 -13
- package/header/types.d.ts +7 -22
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/icon/Icon.accessibility.test.js +30 -0
- package/icon/Icon.d.ts +4 -0
- package/icon/Icon.js +33 -0
- package/icon/Icon.stories.tsx +28 -0
- package/icon/types.d.ts +4 -0
- package/icon/types.js +5 -0
- package/image/Image.accessibility.test.js +56 -0
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +129 -0
- package/image/types.d.ts +72 -0
- package/image/types.js +5 -0
- package/inset/Inset.js +13 -21
- package/inset/Inset.stories.tsx +2 -1
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +5 -5
- package/layout/ApplicationLayout.js +36 -70
- package/layout/ApplicationLayout.stories.tsx +1 -1
- package/layout/Icons.d.ts +7 -5
- package/layout/Icons.js +41 -59
- package/layout/types.d.ts +5 -6
- package/link/Link.accessibility.test.js +108 -0
- package/link/Link.js +31 -50
- package/link/Link.stories.tsx +64 -4
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +11 -5
- package/main.js +54 -59
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +7 -0
- package/{tabs-nav → nav-tabs}/NavTabs.js +25 -57
- package/nav-tabs/NavTabs.stories.tsx +279 -0
- package/nav-tabs/NavTabs.test.js +77 -0
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- package/nav-tabs/Tab.js +117 -0
- package/{tabs-nav → nav-tabs}/types.d.ts +15 -16
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.accessibility.test.js +228 -0
- package/number-input/NumberInput.js +46 -36
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +860 -413
- package/number-input/NumberInputContext.d.ts +3 -4
- package/number-input/NumberInputContext.js +3 -14
- package/number-input/types.d.ts +17 -5
- package/package.json +43 -46
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +34 -67
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +252 -225
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/paragraph/Paragraph.d.ts +3 -4
- package/paragraph/Paragraph.js +6 -22
- package/paragraph/Paragraph.stories.tsx +0 -17
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +58 -127
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +158 -141
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +28 -58
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
- package/progress-bar/ProgressBar.test.js +36 -53
- package/progress-bar/types.d.ts +4 -3
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.js +4 -27
- package/quick-nav/QuickNav.stories.tsx +15 -1
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +31 -63
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +46 -93
- package/radio-group/RadioGroup.stories.tsx +131 -18
- package/radio-group/RadioGroup.test.js +505 -471
- package/radio-group/types.d.ts +8 -8
- package/resultset-table/Icons.d.ts +7 -0
- package/{text-input → resultset-table}/Icons.js +13 -26
- package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
- package/resultset-table/ResultsetTable.d.ts +7 -0
- package/resultset-table/ResultsetTable.js +171 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +168 -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 +43 -86
- package/select/Option.js +35 -56
- package/select/Select.accessibility.test.js +228 -0
- package/select/Select.js +140 -183
- package/select/Select.stories.tsx +496 -204
- package/select/Select.test.js +1949 -1917
- package/select/types.d.ts +17 -18
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.d.ts +2 -2
- package/sidenav/Sidenav.js +90 -157
- package/sidenav/Sidenav.stories.tsx +160 -63
- package/sidenav/Sidenav.test.js +3 -10
- package/{layout → sidenav}/SidenavContext.d.ts +1 -1
- package/{layout → sidenav}/SidenavContext.js +3 -9
- package/sidenav/types.d.ts +33 -30
- package/slider/Slider.accessibility.test.js +104 -0
- package/slider/Slider.js +75 -132
- package/slider/Slider.test.js +108 -104
- package/slider/types.d.ts +4 -4
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +34 -74
- 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 +98 -0
- package/switch/Switch.js +52 -100
- package/switch/Switch.stories.tsx +45 -34
- package/switch/Switch.test.js +52 -97
- package/switch/types.d.ts +4 -4
- package/table/DropdownTheme.js +62 -0
- package/table/Table.accessibility.test.js +93 -0
- package/table/Table.d.ts +6 -2
- package/table/Table.js +78 -35
- package/table/Table.stories.tsx +663 -0
- package/table/Table.test.js +94 -7
- package/table/types.d.ts +34 -6
- package/tabs/Tab.js +28 -46
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +69 -163
- package/tabs/Tabs.stories.tsx +50 -6
- package/tabs/Tabs.test.js +61 -136
- package/tabs/types.d.ts +21 -21
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +34 -66
- package/tag/Tag.stories.tsx +18 -8
- package/tag/Tag.test.js +18 -37
- package/tag/types.d.ts +9 -9
- package/text-input/Suggestion.js +35 -25
- package/text-input/Suggestions.d.ts +1 -1
- package/text-input/Suggestions.js +30 -70
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +229 -335
- package/text-input/TextInput.stories.tsx +155 -162
- package/text-input/TextInput.test.js +1289 -1157
- package/text-input/types.d.ts +25 -17
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +71 -113
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +152 -183
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +94 -107
- package/toggle-group/ToggleGroup.stories.tsx +52 -7
- package/toggle-group/ToggleGroup.test.js +69 -88
- package/toggle-group/types.d.ts +28 -19
- package/typography/Typography.accessibility.test.js +339 -0
- package/typography/Typography.d.ts +2 -2
- package/typography/Typography.js +15 -123
- package/typography/Typography.stories.tsx +1 -1
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +1144 -1
- package/useTheme.js +2 -9
- package/useTranslatedLabels.d.ts +84 -1
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +124 -0
- package/wizard/Wizard.accessibility.test.js +55 -0
- package/wizard/Wizard.js +29 -75
- package/wizard/Wizard.stories.tsx +39 -0
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +10 -11
- package/card/ice-cream.jpg +0 -0
- package/common/OpenSans.css +0 -81
- package/common/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/number-input/numberInputContextTypes.d.ts +0 -19
- package/paginator/Icons.js +0 -66
- package/resultsetTable/ResultsetTable.d.ts +0 -4
- package/resultsetTable/ResultsetTable.js +0 -252
- package/resultsetTable/ResultsetTable.test.js +0 -348
- package/select/Icons.d.ts +0 -10
- package/select/Icons.js +0 -93
- package/slider/Slider.stories.tsx +0 -183
- package/table/Table.stories.jsx +0 -277
- package/tabs-nav/NavTabs.d.ts +0 -8
- package/tabs-nav/NavTabs.stories.tsx +0 -170
- package/tabs-nav/NavTabs.test.js +0 -82
- package/tabs-nav/Tab.js +0 -130
- package/text-input/Icons.d.ts +0 -8
- package/textarea/Textarea.stories.jsx +0 -157
- /package/{resultsetTable → action-icon}/types.js +0 -0
- /package/{tabs-nav → breadcrumbs}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → container/types.js} +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
|
@@ -1,24 +1,39 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { userEvent, within
|
|
2
|
+
import { userEvent, within } from "@storybook/testing-library";
|
|
3
3
|
import Title from "../../.storybook/components/Title";
|
|
4
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
5
|
import DxcSelect from "./Select";
|
|
6
6
|
import Listbox from "./Listbox";
|
|
7
|
-
import
|
|
8
|
-
import
|
|
7
|
+
import { ThemeProvider } from "styled-components";
|
|
8
|
+
import useTheme from "../useTheme";
|
|
9
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
10
|
+
import { disabledRules } from "../../test/accessibility/rules/specific/select/disabledRules";
|
|
11
|
+
import preview from "../../.storybook/preview";
|
|
9
12
|
|
|
10
13
|
export default {
|
|
11
14
|
title: "Select",
|
|
12
15
|
component: DxcSelect,
|
|
16
|
+
parameters: {
|
|
17
|
+
a11y: {
|
|
18
|
+
config: {
|
|
19
|
+
rules: [
|
|
20
|
+
...disabledRules.map((ruleId) => ({ id: ruleId, reviewOnFail: true })),
|
|
21
|
+
...preview?.parameters?.a11y?.config?.rules,
|
|
22
|
+
],
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
},
|
|
13
26
|
};
|
|
14
27
|
|
|
15
28
|
const one_option = [{ label: "Option 01", value: "1" }];
|
|
29
|
+
|
|
16
30
|
const single_options = [
|
|
17
31
|
{ label: "Option 01", value: "1" },
|
|
18
32
|
{ label: "Option 02", value: "2" },
|
|
19
33
|
{ label: "Option 03", value: "3" },
|
|
20
34
|
{ label: "Option 04", value: "4" },
|
|
21
35
|
];
|
|
36
|
+
|
|
22
37
|
const group_options = [
|
|
23
38
|
{
|
|
24
39
|
label: "Group 001",
|
|
@@ -61,25 +76,15 @@ const group_options = [
|
|
|
61
76
|
],
|
|
62
77
|
},
|
|
63
78
|
];
|
|
64
|
-
|
|
79
|
+
|
|
80
|
+
const icon_options_grouped_material = [
|
|
65
81
|
{
|
|
66
82
|
label: "Group 001",
|
|
67
83
|
options: [
|
|
68
84
|
{
|
|
69
85
|
label: "3G Mobile",
|
|
70
86
|
value: "1",
|
|
71
|
-
icon:
|
|
72
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
73
|
-
<g>
|
|
74
|
-
<path d="M0,0h24v24H0V0z" fill="none" />
|
|
75
|
-
</g>
|
|
76
|
-
<g>
|
|
77
|
-
<g>
|
|
78
|
-
<path d="M3,7v2h5v2H4v2h4v2H3v2h5c1.1,0,2-0.9,2-2v-1.5c0-0.83-0.67-1.5-1.5-1.5c0.83,0,1.5-0.67,1.5-1.5V9c0-1.1-0.9-2-2-2H3z M21,11v4c0,1.1-0.9,2-2,2h-5c-1.1,0-2-0.9-2-2V9c0-1.1,0.9-2,2-2h5c1.1,0,2,0.9,2,2h-7v6h5v-2h-2.5v-2H21z" />
|
|
79
|
-
</g>
|
|
80
|
-
</g>
|
|
81
|
-
</svg>
|
|
82
|
-
),
|
|
87
|
+
icon: "3g_mobiledata",
|
|
83
88
|
},
|
|
84
89
|
],
|
|
85
90
|
},
|
|
@@ -89,12 +94,7 @@ const icon_options_grouped = [
|
|
|
89
94
|
{
|
|
90
95
|
label: "Ethernet",
|
|
91
96
|
value: "2",
|
|
92
|
-
icon:
|
|
93
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
94
|
-
<path d="M0 0h24v24H0V0z" fill="none" />
|
|
95
|
-
<path d="M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z" />
|
|
96
|
-
</svg>
|
|
97
|
-
),
|
|
97
|
+
icon: "settings_ethernet",
|
|
98
98
|
},
|
|
99
99
|
],
|
|
100
100
|
},
|
|
@@ -104,26 +104,17 @@ const icon_options_grouped = [
|
|
|
104
104
|
{
|
|
105
105
|
label: "Wi-fi",
|
|
106
106
|
value: "3",
|
|
107
|
-
icon:
|
|
108
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
109
|
-
<path d="M0 0h24v24H0V0zm0 0h24v24H0V0z" fill="none" />
|
|
110
|
-
<path d="M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z" />
|
|
111
|
-
</svg>
|
|
112
|
-
),
|
|
107
|
+
icon: "wifi",
|
|
113
108
|
},
|
|
114
109
|
{
|
|
115
110
|
label: "Settings backup restore (just for previous configuration)",
|
|
116
111
|
value: "4",
|
|
117
|
-
icon:
|
|
118
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
119
|
-
<path d="M0 0h24v24H0V0z" fill="none" />
|
|
120
|
-
<path d="M14 12c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-9c-4.97 0-9 4.03-9 9H0l4 4 4-4H5c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.51 0-2.91-.49-4.06-1.3l-1.42 1.44C8.04 20.3 9.94 21 12 21c4.97 0 9-4.03 9-9s-4.03-9-9-9z" />
|
|
121
|
-
</svg>
|
|
122
|
-
),
|
|
112
|
+
icon: "settings_backup_restore",
|
|
123
113
|
},
|
|
124
114
|
],
|
|
125
115
|
},
|
|
126
116
|
];
|
|
117
|
+
|
|
127
118
|
const icon_options = [
|
|
128
119
|
{
|
|
129
120
|
label: "3G Mobile",
|
|
@@ -172,60 +163,70 @@ const icon_options = [
|
|
|
172
163
|
),
|
|
173
164
|
},
|
|
174
165
|
];
|
|
175
|
-
|
|
166
|
+
|
|
167
|
+
const options_material = [
|
|
176
168
|
{
|
|
177
|
-
label: "
|
|
169
|
+
label: "Transport",
|
|
178
170
|
options: [
|
|
179
171
|
{
|
|
180
|
-
label: "
|
|
181
|
-
value: "
|
|
182
|
-
icon: "
|
|
172
|
+
label: "Electric Car",
|
|
173
|
+
value: "car",
|
|
174
|
+
icon: "electric_car",
|
|
183
175
|
},
|
|
184
176
|
{
|
|
185
|
-
label: "
|
|
186
|
-
value: "
|
|
187
|
-
icon: "
|
|
177
|
+
label: "Motorcycle",
|
|
178
|
+
value: "motorcycle",
|
|
179
|
+
icon: "Motorcycle",
|
|
188
180
|
},
|
|
189
181
|
{
|
|
190
|
-
label: "
|
|
191
|
-
value: "
|
|
192
|
-
icon: "
|
|
182
|
+
label: "Train",
|
|
183
|
+
value: "train",
|
|
184
|
+
icon: "train",
|
|
193
185
|
},
|
|
194
186
|
{
|
|
195
|
-
label: "
|
|
196
|
-
value: "
|
|
197
|
-
icon: "
|
|
187
|
+
label: "Bike",
|
|
188
|
+
value: "bike",
|
|
189
|
+
icon: "pedal_bike",
|
|
198
190
|
},
|
|
199
191
|
],
|
|
200
192
|
},
|
|
201
193
|
{
|
|
202
|
-
label: "
|
|
194
|
+
label: "Entertainment",
|
|
203
195
|
options: [
|
|
204
196
|
{
|
|
205
|
-
label: "
|
|
206
|
-
value: "
|
|
207
|
-
icon: "
|
|
197
|
+
label: "Movie",
|
|
198
|
+
value: "movie",
|
|
199
|
+
icon: "movie",
|
|
208
200
|
},
|
|
209
201
|
{
|
|
210
|
-
label: "
|
|
211
|
-
value: "
|
|
212
|
-
icon: "
|
|
202
|
+
label: "Music",
|
|
203
|
+
value: "music",
|
|
204
|
+
icon: "music_note",
|
|
213
205
|
},
|
|
214
206
|
{
|
|
215
|
-
label: "
|
|
216
|
-
value: "
|
|
217
|
-
icon: "
|
|
207
|
+
label: "Games",
|
|
208
|
+
value: "games",
|
|
209
|
+
icon: "joystick",
|
|
218
210
|
},
|
|
219
211
|
],
|
|
220
212
|
},
|
|
221
213
|
];
|
|
214
|
+
|
|
222
215
|
const optionsWithEllipsisMedium = [
|
|
223
216
|
{ label: "Optiond1234567890123456789012345678901234", value: "1" },
|
|
224
217
|
{ label: "Optiond12345678901234567890123456789012345", value: "2" },
|
|
225
218
|
{ label: "Option 031111111111111111111111111111222", value: "3" },
|
|
226
|
-
{ label: "Option 03111111111111111111111111111222", value: "4" },
|
|
227
219
|
];
|
|
228
220
|
|
|
221
|
+
const opinionatedTheme = {
|
|
222
|
+
select: {
|
|
223
|
+
selectedOptionBackgroundColor: "#e6f4ff",
|
|
224
|
+
fontColor: "#000000",
|
|
225
|
+
optionFontColor: "#000000",
|
|
226
|
+
hoverBorderColor: "#a46ede",
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
|
|
229
230
|
const Select = () => (
|
|
230
231
|
<>
|
|
231
232
|
<Title title="States" theme="light" level={2} />
|
|
@@ -338,123 +339,364 @@ const Select = () => (
|
|
|
338
339
|
<Title title="Multiple selection with ellipsis" theme="light" level={4} />
|
|
339
340
|
<DxcSelect label="Label" options={single_options} multiple defaultValue={["1", "2", "3", "4"]} />
|
|
340
341
|
<Title title="Value with ellipsis" theme="light" level={4} />
|
|
341
|
-
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1"
|
|
342
|
+
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1" />
|
|
342
343
|
<Title title="Options with ellipsis" theme="light" level={4} />
|
|
343
344
|
<DxcSelect
|
|
344
345
|
label="Label"
|
|
345
346
|
placeholder="Choose an option"
|
|
346
347
|
defaultValue="1"
|
|
347
348
|
options={optionsWithEllipsisMedium}
|
|
348
|
-
|
|
349
|
+
margin={{ top: "xxlarge" }}
|
|
349
350
|
/>
|
|
350
351
|
</ExampleContainer>
|
|
351
|
-
|
|
352
|
-
);
|
|
353
|
-
const SelectListbox = () => (
|
|
354
|
-
<>
|
|
355
|
-
<Title title="Listbox" theme="light" level={2} />
|
|
356
|
-
<Title title="Default with opened listbox" theme="light" level={3} />
|
|
357
|
-
<ExampleContainer>
|
|
358
|
-
<div style={{ display: "flex", gap: "30px", flexDirection: "column", marginBottom: "80px" }}>
|
|
359
|
-
<DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
|
|
360
|
-
<DxcCheckbox
|
|
361
|
-
label="You understand the selection and give your consent"
|
|
362
|
-
onChange={() => {}}
|
|
363
|
-
labelPosition="after"
|
|
364
|
-
/>
|
|
365
|
-
<DxcButton label="Submit" onClick={() => {}} size="medium" />
|
|
366
|
-
</div>
|
|
367
|
-
</ExampleContainer>
|
|
368
|
-
<Title title="Listbox option states" theme="light" level={3} />
|
|
352
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
369
353
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
370
|
-
<Title title="Hovered
|
|
371
|
-
<
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
options={one_option}
|
|
375
|
-
visualFocusIndex={-1}
|
|
376
|
-
lastOptionIndex={0}
|
|
377
|
-
multiple={false}
|
|
378
|
-
optional={false}
|
|
379
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
380
|
-
searchable={false}
|
|
381
|
-
handleOptionOnClick={() => {}}
|
|
382
|
-
getSelectWidth={() => 360}
|
|
383
|
-
/>
|
|
354
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
355
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
356
|
+
<DxcSelect label="Hovered" options={single_options} />
|
|
357
|
+
</HalstackProvider>
|
|
384
358
|
</ExampleContainer>
|
|
385
|
-
<ExampleContainer pseudoState="pseudo-
|
|
386
|
-
<Title title="
|
|
387
|
-
<
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
options={one_option}
|
|
391
|
-
visualFocusIndex={-1}
|
|
392
|
-
lastOptionIndex={0}
|
|
393
|
-
multiple={false}
|
|
394
|
-
optional={false}
|
|
395
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
396
|
-
searchable={false}
|
|
397
|
-
handleOptionOnClick={() => {}}
|
|
398
|
-
getSelectWidth={() => 360}
|
|
399
|
-
|
|
400
|
-
/>
|
|
359
|
+
<ExampleContainer pseudoState="pseudo-focus-within">
|
|
360
|
+
<Title title="Focused" theme="light" level={4} />
|
|
361
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
362
|
+
<DxcSelect label="Focused" options={single_options} />
|
|
363
|
+
</HalstackProvider>
|
|
401
364
|
</ExampleContainer>
|
|
402
365
|
<ExampleContainer>
|
|
403
|
-
<Title title="
|
|
404
|
-
<
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
options={one_option}
|
|
408
|
-
visualFocusIndex={0}
|
|
409
|
-
lastOptionIndex={0}
|
|
410
|
-
multiple={false}
|
|
411
|
-
optional={false}
|
|
412
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
413
|
-
searchable={false}
|
|
414
|
-
handleOptionOnClick={() => {}}
|
|
415
|
-
getSelectWidth={() => 360}
|
|
416
|
-
/>
|
|
366
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
367
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
368
|
+
<DxcSelect label="Disabled" placeholder="Placeholder" disabled options={single_options} />
|
|
369
|
+
</HalstackProvider>
|
|
417
370
|
</ExampleContainer>
|
|
418
|
-
<ExampleContainer
|
|
419
|
-
<Title title="
|
|
420
|
-
<
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
options={single_options}
|
|
424
|
-
visualFocusIndex={-1}
|
|
425
|
-
lastOptionIndex={3}
|
|
426
|
-
multiple={false}
|
|
427
|
-
optional={false}
|
|
428
|
-
optionalItem={{ label: "Empty", value: "" }}
|
|
429
|
-
searchable={false}
|
|
430
|
-
handleOptionOnClick={() => {}}
|
|
431
|
-
getSelectWidth={() => 360}
|
|
432
|
-
/>
|
|
371
|
+
<ExampleContainer>
|
|
372
|
+
<Title title="Disabled with value" theme="light" level={4} />
|
|
373
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
374
|
+
<DxcSelect label="Disabled with value" disabled options={single_options} defaultValue="1" />
|
|
375
|
+
</HalstackProvider>
|
|
433
376
|
</ExampleContainer>
|
|
434
|
-
<ExampleContainer
|
|
435
|
-
<Title title="
|
|
436
|
-
<
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
377
|
+
<ExampleContainer>
|
|
378
|
+
<Title title="Error" theme="light" level={4} />
|
|
379
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
380
|
+
<DxcSelect
|
|
381
|
+
label="Label"
|
|
382
|
+
options={single_options}
|
|
383
|
+
error="Error message."
|
|
384
|
+
helperText="Helper text"
|
|
385
|
+
placeholder="Placeholder"
|
|
386
|
+
/>
|
|
387
|
+
<ExampleContainer>
|
|
388
|
+
<Title title="Multiple selection" theme="light" level={4} />
|
|
389
|
+
<DxcSelect label="Multiple select" searchable options={single_options} multiple defaultValue={["1", "2"]} />
|
|
390
|
+
</ExampleContainer>
|
|
391
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
392
|
+
<Title title="Multiple clear hovered" theme="light" level={4} />
|
|
393
|
+
<DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
|
|
394
|
+
</ExampleContainer>
|
|
395
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
396
|
+
<Title title="Multiple clear actived" theme="light" level={4} />
|
|
397
|
+
<DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
|
|
398
|
+
</ExampleContainer>
|
|
399
|
+
</HalstackProvider>
|
|
449
400
|
</ExampleContainer>
|
|
450
401
|
</>
|
|
451
402
|
);
|
|
403
|
+
|
|
404
|
+
const SelectListbox = () => {
|
|
405
|
+
const colorsTheme: any = useTheme();
|
|
406
|
+
|
|
407
|
+
return (
|
|
408
|
+
<>
|
|
409
|
+
<ThemeProvider theme={colorsTheme.select}>
|
|
410
|
+
<Title title="Listbox" theme="light" level={2} />
|
|
411
|
+
<ExampleContainer>
|
|
412
|
+
<Title
|
|
413
|
+
title="List dialog uses a Radix Popover to appear over elements with a certain z-index"
|
|
414
|
+
theme="light"
|
|
415
|
+
level={3}
|
|
416
|
+
/>
|
|
417
|
+
<div
|
|
418
|
+
style={{
|
|
419
|
+
position: "relative",
|
|
420
|
+
display: "flex",
|
|
421
|
+
flexDirection: "column",
|
|
422
|
+
gap: "20px",
|
|
423
|
+
height: "150px",
|
|
424
|
+
width: "min-content",
|
|
425
|
+
marginBottom: "100px",
|
|
426
|
+
padding: "20px",
|
|
427
|
+
border: "1px solid black",
|
|
428
|
+
borderRadius: "4px",
|
|
429
|
+
overflow: "auto",
|
|
430
|
+
zIndex: "1300",
|
|
431
|
+
}}
|
|
432
|
+
>
|
|
433
|
+
<DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
|
|
434
|
+
<button style={{ zIndex: "1", width: "100px" }}>Submit</button>
|
|
435
|
+
</div>
|
|
436
|
+
</ExampleContainer>
|
|
437
|
+
<Title title="Listbox option states" theme="light" level={3} />
|
|
438
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
439
|
+
<Title title="Hovered option" theme="light" level={4} />
|
|
440
|
+
<Listbox
|
|
441
|
+
id="x8"
|
|
442
|
+
currentValue=""
|
|
443
|
+
options={one_option}
|
|
444
|
+
visualFocusIndex={-1}
|
|
445
|
+
lastOptionIndex={0}
|
|
446
|
+
multiple={false}
|
|
447
|
+
optional={false}
|
|
448
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
449
|
+
searchable={false}
|
|
450
|
+
handleOptionOnClick={() => {}}
|
|
451
|
+
styles={{ width: 360 }}
|
|
452
|
+
/>
|
|
453
|
+
</ExampleContainer>
|
|
454
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
455
|
+
<Title title="Active option" theme="light" level={4} />
|
|
456
|
+
<Listbox
|
|
457
|
+
id="x9"
|
|
458
|
+
currentValue=""
|
|
459
|
+
options={one_option}
|
|
460
|
+
visualFocusIndex={-1}
|
|
461
|
+
lastOptionIndex={0}
|
|
462
|
+
multiple={false}
|
|
463
|
+
optional={false}
|
|
464
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
465
|
+
searchable={false}
|
|
466
|
+
handleOptionOnClick={() => {}}
|
|
467
|
+
styles={{ width: 360 }}
|
|
468
|
+
/>
|
|
469
|
+
</ExampleContainer>
|
|
470
|
+
<ExampleContainer>
|
|
471
|
+
<Title title="Focused option" theme="light" level={4} />
|
|
472
|
+
<Listbox
|
|
473
|
+
id="x10"
|
|
474
|
+
currentValue=""
|
|
475
|
+
options={one_option}
|
|
476
|
+
visualFocusIndex={0}
|
|
477
|
+
lastOptionIndex={0}
|
|
478
|
+
multiple={false}
|
|
479
|
+
optional={false}
|
|
480
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
481
|
+
searchable={false}
|
|
482
|
+
handleOptionOnClick={() => {}}
|
|
483
|
+
styles={{ width: 360 }}
|
|
484
|
+
/>
|
|
485
|
+
</ExampleContainer>
|
|
486
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
487
|
+
<Title title="Hovered selected option" theme="light" level={4} />
|
|
488
|
+
<Listbox
|
|
489
|
+
id="x11"
|
|
490
|
+
currentValue="1"
|
|
491
|
+
options={single_options}
|
|
492
|
+
visualFocusIndex={-1}
|
|
493
|
+
lastOptionIndex={3}
|
|
494
|
+
multiple={false}
|
|
495
|
+
optional={false}
|
|
496
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
497
|
+
searchable={false}
|
|
498
|
+
handleOptionOnClick={() => {}}
|
|
499
|
+
styles={{ width: 360 }}
|
|
500
|
+
/>
|
|
501
|
+
</ExampleContainer>
|
|
502
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
503
|
+
<Title title="Active selected option" theme="light" level={4} />
|
|
504
|
+
<Listbox
|
|
505
|
+
id="x12"
|
|
506
|
+
currentValue="2"
|
|
507
|
+
options={single_options}
|
|
508
|
+
visualFocusIndex={0}
|
|
509
|
+
lastOptionIndex={3}
|
|
510
|
+
multiple={false}
|
|
511
|
+
optional={false}
|
|
512
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
513
|
+
searchable={false}
|
|
514
|
+
handleOptionOnClick={() => {}}
|
|
515
|
+
styles={{ width: 360 }}
|
|
516
|
+
/>
|
|
517
|
+
</ExampleContainer>
|
|
518
|
+
<Title title="Listbox with icons" theme="light" level={3} />
|
|
519
|
+
<ExampleContainer>
|
|
520
|
+
<Title title="Icons (SVGs)" theme="light" level={4} />
|
|
521
|
+
<Listbox
|
|
522
|
+
id="x13"
|
|
523
|
+
currentValue="3"
|
|
524
|
+
options={icon_options}
|
|
525
|
+
visualFocusIndex={-1}
|
|
526
|
+
lastOptionIndex={3}
|
|
527
|
+
multiple={false}
|
|
528
|
+
optional={false}
|
|
529
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
530
|
+
searchable={false}
|
|
531
|
+
handleOptionOnClick={() => {}}
|
|
532
|
+
styles={{ width: 360 }}
|
|
533
|
+
/>
|
|
534
|
+
</ExampleContainer>
|
|
535
|
+
<ExampleContainer>
|
|
536
|
+
<Title title="Grouped icons (Material Symbols)" theme="light" level={4} />
|
|
537
|
+
<Listbox
|
|
538
|
+
id="x14"
|
|
539
|
+
currentValue={["0", "3"]}
|
|
540
|
+
options={icon_options_grouped_material}
|
|
541
|
+
visualFocusIndex={-1}
|
|
542
|
+
lastOptionIndex={3}
|
|
543
|
+
multiple={false}
|
|
544
|
+
optional={false}
|
|
545
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
546
|
+
searchable={false}
|
|
547
|
+
handleOptionOnClick={() => {}}
|
|
548
|
+
styles={{ width: 360 }}
|
|
549
|
+
/>
|
|
550
|
+
</ExampleContainer>
|
|
551
|
+
<ExampleContainer>
|
|
552
|
+
<Title title="Grouped icons (Material)" theme="light" level={4} />
|
|
553
|
+
<Listbox
|
|
554
|
+
id="x15"
|
|
555
|
+
currentValue={["facebook", "figma"]}
|
|
556
|
+
options={options_material}
|
|
557
|
+
visualFocusIndex={-1}
|
|
558
|
+
lastOptionIndex={6}
|
|
559
|
+
multiple={true}
|
|
560
|
+
optional={false}
|
|
561
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
562
|
+
searchable={false}
|
|
563
|
+
handleOptionOnClick={() => {}}
|
|
564
|
+
styles={{ width: 360 }}
|
|
565
|
+
/>
|
|
566
|
+
</ExampleContainer>
|
|
567
|
+
</ThemeProvider>
|
|
568
|
+
<ThemeProvider theme={colorsTheme.select}>
|
|
569
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
570
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
571
|
+
<Title title="Hovered option" theme="light" level={4} />
|
|
572
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
573
|
+
<Listbox
|
|
574
|
+
id="x16"
|
|
575
|
+
currentValue=""
|
|
576
|
+
options={one_option}
|
|
577
|
+
visualFocusIndex={-1}
|
|
578
|
+
lastOptionIndex={0}
|
|
579
|
+
multiple={false}
|
|
580
|
+
optional={false}
|
|
581
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
582
|
+
searchable={false}
|
|
583
|
+
handleOptionOnClick={() => {}}
|
|
584
|
+
styles={{ width: 360 }}
|
|
585
|
+
/>
|
|
586
|
+
</HalstackProvider>
|
|
587
|
+
</ExampleContainer>
|
|
588
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
589
|
+
<Title title="Active option" theme="light" level={4} />{" "}
|
|
590
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
591
|
+
<Listbox
|
|
592
|
+
id="x17"
|
|
593
|
+
currentValue=""
|
|
594
|
+
options={one_option}
|
|
595
|
+
visualFocusIndex={-1}
|
|
596
|
+
lastOptionIndex={0}
|
|
597
|
+
multiple={false}
|
|
598
|
+
optional={false}
|
|
599
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
600
|
+
searchable={false}
|
|
601
|
+
handleOptionOnClick={() => {}}
|
|
602
|
+
styles={{ width: 360 }}
|
|
603
|
+
/>
|
|
604
|
+
</HalstackProvider>
|
|
605
|
+
</ExampleContainer>
|
|
606
|
+
<ExampleContainer>
|
|
607
|
+
<Title title="Focused option" theme="light" level={4} />{" "}
|
|
608
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
609
|
+
<Listbox
|
|
610
|
+
id="x18"
|
|
611
|
+
currentValue=""
|
|
612
|
+
options={one_option}
|
|
613
|
+
visualFocusIndex={0}
|
|
614
|
+
lastOptionIndex={0}
|
|
615
|
+
multiple={false}
|
|
616
|
+
optional={false}
|
|
617
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
618
|
+
searchable={false}
|
|
619
|
+
handleOptionOnClick={() => {}}
|
|
620
|
+
styles={{ width: 360 }}
|
|
621
|
+
/>
|
|
622
|
+
</HalstackProvider>
|
|
623
|
+
</ExampleContainer>
|
|
624
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
625
|
+
<Title title="Hovered selected option" theme="light" level={4} />{" "}
|
|
626
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
627
|
+
<Listbox
|
|
628
|
+
id="x19"
|
|
629
|
+
currentValue="1"
|
|
630
|
+
options={single_options}
|
|
631
|
+
visualFocusIndex={-1}
|
|
632
|
+
lastOptionIndex={3}
|
|
633
|
+
multiple={false}
|
|
634
|
+
optional={false}
|
|
635
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
636
|
+
searchable={false}
|
|
637
|
+
handleOptionOnClick={() => {}}
|
|
638
|
+
styles={{ width: 360 }}
|
|
639
|
+
/>
|
|
640
|
+
</HalstackProvider>
|
|
641
|
+
</ExampleContainer>
|
|
642
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
643
|
+
<Title title="Active selected option" theme="light" level={4} />{" "}
|
|
644
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
645
|
+
<Listbox
|
|
646
|
+
id="x20"
|
|
647
|
+
currentValue="2"
|
|
648
|
+
options={single_options}
|
|
649
|
+
visualFocusIndex={0}
|
|
650
|
+
lastOptionIndex={3}
|
|
651
|
+
multiple={false}
|
|
652
|
+
optional={false}
|
|
653
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
654
|
+
searchable={false}
|
|
655
|
+
handleOptionOnClick={() => {}}
|
|
656
|
+
styles={{ width: 360 }}
|
|
657
|
+
/>
|
|
658
|
+
</HalstackProvider>
|
|
659
|
+
</ExampleContainer>
|
|
660
|
+
<Title title="Listbox with icons" theme="light" level={3} />
|
|
661
|
+
<ExampleContainer>
|
|
662
|
+
<Title title="Icons (SVGs)" theme="light" level={4} />{" "}
|
|
663
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
664
|
+
<Listbox
|
|
665
|
+
id="x21"
|
|
666
|
+
currentValue="3"
|
|
667
|
+
options={icon_options}
|
|
668
|
+
visualFocusIndex={-1}
|
|
669
|
+
lastOptionIndex={3}
|
|
670
|
+
multiple={false}
|
|
671
|
+
optional={false}
|
|
672
|
+
optionalItem={{ label: "Empty", value: "" }}
|
|
673
|
+
searchable={false}
|
|
674
|
+
handleOptionOnClick={() => {}}
|
|
675
|
+
styles={{ width: 360 }}
|
|
676
|
+
/>
|
|
677
|
+
</HalstackProvider>
|
|
678
|
+
</ExampleContainer>
|
|
679
|
+
</ThemeProvider>
|
|
680
|
+
</>
|
|
681
|
+
);
|
|
682
|
+
};
|
|
683
|
+
|
|
452
684
|
const SearchableSelect = () => (
|
|
453
685
|
<ExampleContainer expanded>
|
|
454
686
|
<Title title="Searchable select" theme="light" level={4} />
|
|
455
687
|
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
456
688
|
</ExampleContainer>
|
|
457
689
|
);
|
|
690
|
+
|
|
691
|
+
const SearchableSelectOpinionated = () => (
|
|
692
|
+
<ExampleContainer expanded>
|
|
693
|
+
<Title title="Searchable select" theme="light" level={4} />
|
|
694
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
695
|
+
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
696
|
+
</HalstackProvider>
|
|
697
|
+
</ExampleContainer>
|
|
698
|
+
);
|
|
699
|
+
|
|
458
700
|
const SearchValue = () => (
|
|
459
701
|
<ExampleContainer expanded>
|
|
460
702
|
<Title title="Searchable select with value" theme="light" level={4} />
|
|
@@ -467,6 +709,22 @@ const SearchValue = () => (
|
|
|
467
709
|
/>
|
|
468
710
|
</ExampleContainer>
|
|
469
711
|
);
|
|
712
|
+
|
|
713
|
+
const SearchValueOpinionated = () => (
|
|
714
|
+
<ExampleContainer expanded>
|
|
715
|
+
<Title title="Searchable select with value" theme="light" level={4} />
|
|
716
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
717
|
+
<DxcSelect
|
|
718
|
+
label="Select Label"
|
|
719
|
+
searchable
|
|
720
|
+
defaultValue="1"
|
|
721
|
+
options={single_options}
|
|
722
|
+
placeholder="Choose an option"
|
|
723
|
+
/>
|
|
724
|
+
</HalstackProvider>
|
|
725
|
+
</ExampleContainer>
|
|
726
|
+
);
|
|
727
|
+
|
|
470
728
|
const MultipleSelect = () => (
|
|
471
729
|
<>
|
|
472
730
|
<ExampleContainer expanded>
|
|
@@ -481,12 +739,38 @@ const MultipleSelect = () => (
|
|
|
481
739
|
</ExampleContainer>
|
|
482
740
|
</>
|
|
483
741
|
);
|
|
742
|
+
|
|
743
|
+
const MultipleSelectOpinioated = () => (
|
|
744
|
+
<ExampleContainer expanded>
|
|
745
|
+
<Title title="Multiple select" theme="light" level={4} />
|
|
746
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
747
|
+
<DxcSelect
|
|
748
|
+
label="Select label"
|
|
749
|
+
options={single_options}
|
|
750
|
+
defaultValue={["1", "4"]}
|
|
751
|
+
multiple
|
|
752
|
+
placeholder="Choose an option"
|
|
753
|
+
/>
|
|
754
|
+
</HalstackProvider>
|
|
755
|
+
</ExampleContainer>
|
|
756
|
+
);
|
|
757
|
+
|
|
484
758
|
const DefaultGroupedOptionsSelect = () => (
|
|
485
759
|
<ExampleContainer expanded>
|
|
486
760
|
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
487
761
|
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
488
762
|
</ExampleContainer>
|
|
489
763
|
);
|
|
764
|
+
|
|
765
|
+
const DefaultGroupedOptionsSelectOpinionated = () => (
|
|
766
|
+
<ExampleContainer expanded>
|
|
767
|
+
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
768
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
769
|
+
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
770
|
+
</HalstackProvider>
|
|
771
|
+
</ExampleContainer>
|
|
772
|
+
);
|
|
773
|
+
|
|
490
774
|
const MultipleGroupedOptionsSelect = () => (
|
|
491
775
|
<ExampleContainer expanded>
|
|
492
776
|
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
@@ -499,34 +783,19 @@ const MultipleGroupedOptionsSelect = () => (
|
|
|
499
783
|
/>
|
|
500
784
|
</ExampleContainer>
|
|
501
785
|
);
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
<Title title="Rescaled icons displayed" theme="light" level={4} />
|
|
505
|
-
<DxcSelect label="Label" options={url_options} defaultValue="facebook" placeholder="Choose an option" />
|
|
506
|
-
</ExampleContainer>
|
|
507
|
-
);
|
|
508
|
-
const SelectWithIcons = () => (
|
|
509
|
-
<ExampleContainer expanded>
|
|
510
|
-
<Title title="Normal icons displayed" theme="light" level={4} />
|
|
511
|
-
<DxcSelect label="Label" options={icon_options} defaultValue="3" placeholder="Choose an option" />
|
|
512
|
-
</ExampleContainer>
|
|
513
|
-
);
|
|
514
|
-
const SelectMultipleWithIcons = () => (
|
|
515
|
-
<ExampleContainer expanded>
|
|
516
|
-
<Title title="Multiple select with icons" theme="light" level={4} />
|
|
517
|
-
<DxcSelect label="Label" options={icon_options} multiple defaultValue={["1", "3"]} placeholder="Choose an option" />
|
|
518
|
-
</ExampleContainer>
|
|
519
|
-
);
|
|
520
|
-
const MultipleGroupedOptionsSelectWithIcons = () => (
|
|
786
|
+
|
|
787
|
+
const MultipleGroupedOptionsSelectOpinionated = () => (
|
|
521
788
|
<ExampleContainer expanded>
|
|
522
|
-
<Title title="
|
|
523
|
-
<
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
789
|
+
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
790
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
791
|
+
<DxcSelect
|
|
792
|
+
label="Label"
|
|
793
|
+
options={group_options}
|
|
794
|
+
defaultValue={["0", "2"]}
|
|
795
|
+
multiple
|
|
796
|
+
placeholder="Choose an option"
|
|
797
|
+
/>
|
|
798
|
+
</HalstackProvider>
|
|
530
799
|
</ExampleContainer>
|
|
531
800
|
);
|
|
532
801
|
|
|
@@ -544,6 +813,22 @@ const MultipleSearchable = () => (
|
|
|
544
813
|
</ExampleContainer>
|
|
545
814
|
);
|
|
546
815
|
|
|
816
|
+
const MultipleSearchableOpinionated = () => (
|
|
817
|
+
<ExampleContainer expanded>
|
|
818
|
+
<Title title="Searchable multiple select with value" theme="light" level={4} />
|
|
819
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
820
|
+
<DxcSelect
|
|
821
|
+
label="Select Label"
|
|
822
|
+
searchable
|
|
823
|
+
multiple
|
|
824
|
+
defaultValue={["1", "4"]}
|
|
825
|
+
options={single_options}
|
|
826
|
+
placeholder="Choose an option"
|
|
827
|
+
/>
|
|
828
|
+
</HalstackProvider>
|
|
829
|
+
</ExampleContainer>
|
|
830
|
+
);
|
|
831
|
+
|
|
547
832
|
export const Chromatic = Select.bind({});
|
|
548
833
|
Chromatic.play = async ({ canvasElement }) => {
|
|
549
834
|
const canvas = within(canvasElement);
|
|
@@ -560,10 +845,13 @@ ListboxStates.play = async ({ canvasElement }) => {
|
|
|
560
845
|
export const Searchable = SearchableSelect.bind({});
|
|
561
846
|
Searchable.play = async ({ canvasElement }) => {
|
|
562
847
|
const canvas = within(canvasElement);
|
|
563
|
-
await userEvent.
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
848
|
+
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
849
|
+
};
|
|
850
|
+
|
|
851
|
+
export const SearchableOpinionated = SearchableSelectOpinionated.bind({});
|
|
852
|
+
SearchableOpinionated.play = async ({ canvasElement }) => {
|
|
853
|
+
const canvas = within(canvasElement);
|
|
854
|
+
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
567
855
|
};
|
|
568
856
|
|
|
569
857
|
export const SearchableWithValue = SearchValue.bind({});
|
|
@@ -572,12 +860,24 @@ SearchableWithValue.play = async ({ canvasElement }) => {
|
|
|
572
860
|
await userEvent.click(canvas.getByRole("combobox"));
|
|
573
861
|
};
|
|
574
862
|
|
|
863
|
+
export const SearchableWithValueOpinionated = SearchValueOpinionated.bind({});
|
|
864
|
+
SearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
865
|
+
const canvas = within(canvasElement);
|
|
866
|
+
await userEvent.click(canvas.getByRole("combobox"));
|
|
867
|
+
};
|
|
868
|
+
|
|
575
869
|
export const MultipleSearchableWithValue = MultipleSearchable.bind({});
|
|
576
870
|
MultipleSearchableWithValue.play = async ({ canvasElement }) => {
|
|
577
871
|
const canvas = within(canvasElement);
|
|
578
872
|
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
579
873
|
};
|
|
580
874
|
|
|
875
|
+
export const MultipleSearchableWithValueOpinionated = MultipleSearchableOpinionated.bind({});
|
|
876
|
+
MultipleSearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
877
|
+
const canvas = within(canvasElement);
|
|
878
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
879
|
+
};
|
|
880
|
+
|
|
581
881
|
export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
|
|
582
882
|
GroupOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
583
883
|
const canvas = within(canvasElement);
|
|
@@ -585,42 +885,34 @@ GroupOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
|
585
885
|
await userEvent.click(select);
|
|
586
886
|
};
|
|
587
887
|
|
|
588
|
-
export const
|
|
589
|
-
|
|
590
|
-
const canvas = within(canvasElement);
|
|
591
|
-
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
592
|
-
};
|
|
593
|
-
|
|
594
|
-
export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
|
|
595
|
-
MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
888
|
+
export const GroupOptionsDisplayedOpinionated = DefaultGroupedOptionsSelectOpinionated.bind({});
|
|
889
|
+
GroupOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
596
890
|
const canvas = within(canvasElement);
|
|
597
891
|
const select = canvas.getByRole("combobox");
|
|
598
892
|
await userEvent.click(select);
|
|
599
893
|
};
|
|
600
894
|
|
|
601
|
-
export const
|
|
602
|
-
|
|
895
|
+
export const MultipleOptionsDisplayed = MultipleSelect.bind({});
|
|
896
|
+
MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
603
897
|
const canvas = within(canvasElement);
|
|
604
|
-
|
|
605
|
-
await userEvent.click(select);
|
|
898
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
606
899
|
};
|
|
607
900
|
|
|
608
|
-
export const
|
|
609
|
-
|
|
901
|
+
export const MultipleOptionsDisplayedOpinionated = MultipleSelectOpinioated.bind({});
|
|
902
|
+
MultipleOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
610
903
|
const canvas = within(canvasElement);
|
|
611
|
-
|
|
612
|
-
await userEvent.click(select);
|
|
904
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
613
905
|
};
|
|
614
906
|
|
|
615
|
-
export const
|
|
616
|
-
|
|
907
|
+
export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
|
|
908
|
+
MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
617
909
|
const canvas = within(canvasElement);
|
|
618
910
|
const select = canvas.getByRole("combobox");
|
|
619
911
|
await userEvent.click(select);
|
|
620
912
|
};
|
|
621
913
|
|
|
622
|
-
export const
|
|
623
|
-
|
|
914
|
+
export const MultipleGroupedOptionsDisplayedOpinionated = MultipleGroupedOptionsSelectOpinionated.bind({});
|
|
915
|
+
MultipleGroupedOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
624
916
|
const canvas = within(canvasElement);
|
|
625
917
|
const select = canvas.getByRole("combobox");
|
|
626
918
|
await userEvent.click(select);
|