@dxc-technology/halstack-react 0.0.0-ff5083e → 0.0.0-ff6c8bf
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 +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 +105 -160
- package/accordion/Accordion.stories.tsx +82 -148
- 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 +37 -127
- 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 +64 -63
- 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/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 +35 -63
- package/bulleted-list/BulletedList.stories.tsx +18 -106
- 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 +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 +49 -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 +139 -181
- package/checkbox/Checkbox.stories.tsx +128 -94
- package/checkbox/Checkbox.test.js +160 -39
- package/checkbox/types.d.ts +11 -3
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +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 +984 -1206
- 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/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 +700 -371
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +121 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +72 -15
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +61 -106
- package/dialog/Dialog.stories.tsx +326 -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 +233 -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 +71 -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 +306 -367
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +56 -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 +125 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +73 -118
- package/footer/Footer.stories.tsx +99 -21
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +54 -23
- 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 +93 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +90 -183
- package/header/Header.stories.tsx +133 -38
- package/header/Header.test.js +13 -26
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +5 -15
- 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 +13 -21
- package/inset/Inset.stories.tsx +5 -4
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +57 -119
- package/layout/ApplicationLayout.stories.tsx +81 -45
- package/layout/Icons.d.ts +7 -5
- package/layout/Icons.js +41 -59
- package/layout/types.d.ts +21 -32
- package/link/Link.accessibility.test.js +108 -0
- package/link/Link.js +32 -51
- package/link/Link.stories.tsx +76 -9
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +14 -12
- package/main.js +51 -88
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +7 -0
- package/{tabs-nav → nav-tabs}/NavTabs.js +30 -62
- 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 -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 +51 -51
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +35 -68
- 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 +3 -4
- package/paragraph/Paragraph.js +7 -23
- package/paragraph/Paragraph.stories.tsx +1 -18
- 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 +160 -142
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +68 -92
- 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 +24 -42
- 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 +68 -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 +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 +68 -65
- package/select/Option.js +35 -56
- package/select/Select.accessibility.test.js +228 -0
- package/select/Select.js +171 -214
- package/select/Select.stories.tsx +515 -190
- package/select/Select.test.js +1934 -1789
- package/select/types.d.ts +17 -21
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +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 +149 -181
- package/slider/Slider.stories.tsx +64 -61
- 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 +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.d.ts +2 -2
- package/switch/Switch.js +145 -126
- package/switch/Switch.stories.tsx +49 -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 +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 +95 -8
- package/table/types.d.ts +34 -6
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +117 -0
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +303 -141
- package/tabs/Tabs.stories.tsx +124 -6
- package/tabs/Tabs.test.js +213 -77
- package/tabs/types.d.ts +30 -20
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +35 -67
- package/tag/Tag.stories.tsx +18 -8
- package/tag/Tag.test.js +18 -37
- package/tag/types.d.ts +9 -9
- package/text-input/Suggestion.js +40 -28
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +94 -0
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +316 -515
- package/text-input/TextInput.stories.tsx +276 -276
- 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 +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 +16 -124
- package/typography/Typography.stories.tsx +185 -162
- 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 +34 -87
- package/wizard/Wizard.stories.tsx +59 -1
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +9 -9
- package/card/ice-cream.jpg +0 -0
- package/common/OpenSans.css +0 -81
- package/common/RequiredComponent.js +0 -32
- package/common/fonts/OpenSans-Bold.ttf +0 -0
- package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-Italic.ttf +0 -0
- package/common/fonts/OpenSans-Light.ttf +0 -0
- package/common/fonts/OpenSans-LightItalic.ttf +0 -0
- package/common/fonts/OpenSans-Regular.ttf +0 -0
- package/common/fonts/OpenSans-SemiBold.ttf +0 -0
- package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
- package/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 -254
- package/resultsetTable/ResultsetTable.test.js +0 -306
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -28
- package/select/Icons.d.ts +0 -10
- package/select/Icons.js +0 -93
- package/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/NavTabs.stories.tsx +0 -170
- package/tabs-nav/NavTabs.test.js +0 -82
- package/tabs-nav/Tab.js +0 -132
- package/textarea/Textarea.stories.jsx +0 -157
- package/typography/typographyContextTypes.d.ts +0 -16
- /package/{resultsetTable → action-icon}/types.js +0 -0
- /package/{row → breadcrumbs}/types.js +0 -0
- /package/{stack → container}/types.js +0 -0
- /package/{tabs-nav → contextual-menu}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → divider/types.js} +0 -0
- /package/{typography/typographyContextTypes.js → flex/types.js} +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
|
@@ -1,25 +1,39 @@
|
|
|
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
|
+
import { disabledRules } from "../../test/accessibility/rules/specific/select/disabledRules";
|
|
11
|
+
import preview from "../../.storybook/preview";
|
|
10
12
|
|
|
11
13
|
export default {
|
|
12
14
|
title: "Select",
|
|
13
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
|
+
},
|
|
14
26
|
};
|
|
15
27
|
|
|
16
28
|
const one_option = [{ label: "Option 01", value: "1" }];
|
|
29
|
+
|
|
17
30
|
const single_options = [
|
|
18
31
|
{ label: "Option 01", value: "1" },
|
|
19
32
|
{ label: "Option 02", value: "2" },
|
|
20
33
|
{ label: "Option 03", value: "3" },
|
|
21
34
|
{ label: "Option 04", value: "4" },
|
|
22
35
|
];
|
|
36
|
+
|
|
23
37
|
const group_options = [
|
|
24
38
|
{
|
|
25
39
|
label: "Group 001",
|
|
@@ -62,25 +76,15 @@ const group_options = [
|
|
|
62
76
|
],
|
|
63
77
|
},
|
|
64
78
|
];
|
|
65
|
-
|
|
79
|
+
|
|
80
|
+
const icon_options_grouped_material = [
|
|
66
81
|
{
|
|
67
82
|
label: "Group 001",
|
|
68
83
|
options: [
|
|
69
84
|
{
|
|
70
85
|
label: "3G Mobile",
|
|
71
86
|
value: "1",
|
|
72
|
-
icon:
|
|
73
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
74
|
-
<g>
|
|
75
|
-
<path d="M0,0h24v24H0V0z" fill="none" />
|
|
76
|
-
</g>
|
|
77
|
-
<g>
|
|
78
|
-
<g>
|
|
79
|
-
<path d="M3,7v2h5v2H4v2h4v2H3v2h5c1.1,0,2-0.9,2-2v-1.5c0-0.83-0.67-1.5-1.5-1.5c0.83,0,1.5-0.67,1.5-1.5V9c0-1.1-0.9-2-2-2H3z M21,11v4c0,1.1-0.9,2-2,2h-5c-1.1,0-2-0.9-2-2V9c0-1.1,0.9-2,2-2h5c1.1,0,2,0.9,2,2h-7v6h5v-2h-2.5v-2H21z" />
|
|
80
|
-
</g>
|
|
81
|
-
</g>
|
|
82
|
-
</svg>
|
|
83
|
-
),
|
|
87
|
+
icon: "3g_mobiledata",
|
|
84
88
|
},
|
|
85
89
|
],
|
|
86
90
|
},
|
|
@@ -90,12 +94,7 @@ const icon_options_grouped = [
|
|
|
90
94
|
{
|
|
91
95
|
label: "Ethernet",
|
|
92
96
|
value: "2",
|
|
93
|
-
icon:
|
|
94
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
95
|
-
<path d="M0 0h24v24H0V0z" fill="none" />
|
|
96
|
-
<path d="M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z" />
|
|
97
|
-
</svg>
|
|
98
|
-
),
|
|
97
|
+
icon: "settings_ethernet",
|
|
99
98
|
},
|
|
100
99
|
],
|
|
101
100
|
},
|
|
@@ -105,26 +104,17 @@ const icon_options_grouped = [
|
|
|
105
104
|
{
|
|
106
105
|
label: "Wi-fi",
|
|
107
106
|
value: "3",
|
|
108
|
-
icon:
|
|
109
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
110
|
-
<path d="M0 0h24v24H0V0zm0 0h24v24H0V0z" fill="none" />
|
|
111
|
-
<path d="M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z" />
|
|
112
|
-
</svg>
|
|
113
|
-
),
|
|
107
|
+
icon: "wifi",
|
|
114
108
|
},
|
|
115
109
|
{
|
|
116
110
|
label: "Settings backup restore (just for previous configuration)",
|
|
117
111
|
value: "4",
|
|
118
|
-
icon:
|
|
119
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
120
|
-
<path d="M0 0h24v24H0V0z" fill="none" />
|
|
121
|
-
<path d="M14 12c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-9c-4.97 0-9 4.03-9 9H0l4 4 4-4H5c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.51 0-2.91-.49-4.06-1.3l-1.42 1.44C8.04 20.3 9.94 21 12 21c4.97 0 9-4.03 9-9s-4.03-9-9-9z" />
|
|
122
|
-
</svg>
|
|
123
|
-
),
|
|
112
|
+
icon: "settings_backup_restore",
|
|
124
113
|
},
|
|
125
114
|
],
|
|
126
115
|
},
|
|
127
116
|
];
|
|
117
|
+
|
|
128
118
|
const icon_options = [
|
|
129
119
|
{
|
|
130
120
|
label: "3G Mobile",
|
|
@@ -173,60 +163,70 @@ const icon_options = [
|
|
|
173
163
|
),
|
|
174
164
|
},
|
|
175
165
|
];
|
|
176
|
-
|
|
166
|
+
|
|
167
|
+
const options_material = [
|
|
177
168
|
{
|
|
178
|
-
label: "
|
|
169
|
+
label: "Transport",
|
|
179
170
|
options: [
|
|
180
171
|
{
|
|
181
|
-
label: "
|
|
182
|
-
value: "
|
|
183
|
-
icon: "
|
|
172
|
+
label: "Electric Car",
|
|
173
|
+
value: "car",
|
|
174
|
+
icon: "electric_car",
|
|
184
175
|
},
|
|
185
176
|
{
|
|
186
|
-
label: "
|
|
187
|
-
value: "
|
|
188
|
-
icon: "
|
|
177
|
+
label: "Motorcycle",
|
|
178
|
+
value: "motorcycle",
|
|
179
|
+
icon: "Motorcycle",
|
|
189
180
|
},
|
|
190
181
|
{
|
|
191
|
-
label: "
|
|
192
|
-
value: "
|
|
193
|
-
icon: "
|
|
182
|
+
label: "Train",
|
|
183
|
+
value: "train",
|
|
184
|
+
icon: "train",
|
|
194
185
|
},
|
|
195
186
|
{
|
|
196
|
-
label: "
|
|
197
|
-
value: "
|
|
198
|
-
icon: "
|
|
187
|
+
label: "Bike",
|
|
188
|
+
value: "bike",
|
|
189
|
+
icon: "pedal_bike",
|
|
199
190
|
},
|
|
200
191
|
],
|
|
201
192
|
},
|
|
202
193
|
{
|
|
203
|
-
label: "
|
|
194
|
+
label: "Entertainment",
|
|
204
195
|
options: [
|
|
205
196
|
{
|
|
206
|
-
label: "
|
|
207
|
-
value: "
|
|
208
|
-
icon: "
|
|
197
|
+
label: "Movie",
|
|
198
|
+
value: "movie",
|
|
199
|
+
icon: "movie",
|
|
209
200
|
},
|
|
210
201
|
{
|
|
211
|
-
label: "
|
|
212
|
-
value: "
|
|
213
|
-
icon: "
|
|
202
|
+
label: "Music",
|
|
203
|
+
value: "music",
|
|
204
|
+
icon: "music_note",
|
|
214
205
|
},
|
|
215
206
|
{
|
|
216
|
-
label: "
|
|
217
|
-
value: "
|
|
218
|
-
icon: "
|
|
207
|
+
label: "Games",
|
|
208
|
+
value: "games",
|
|
209
|
+
icon: "joystick",
|
|
219
210
|
},
|
|
220
211
|
],
|
|
221
212
|
},
|
|
222
213
|
];
|
|
214
|
+
|
|
223
215
|
const optionsWithEllipsisMedium = [
|
|
224
216
|
{ label: "Optiond1234567890123456789012345678901234", value: "1" },
|
|
225
217
|
{ label: "Optiond12345678901234567890123456789012345", value: "2" },
|
|
226
218
|
{ label: "Option 031111111111111111111111111111222", value: "3" },
|
|
227
|
-
{ label: "Option 03111111111111111111111111111222", value: "4" },
|
|
228
219
|
];
|
|
229
220
|
|
|
221
|
+
const opinionatedTheme = {
|
|
222
|
+
select: {
|
|
223
|
+
selectedOptionBackgroundColor: "#e6f4ff",
|
|
224
|
+
fontColor: "#000000",
|
|
225
|
+
optionFontColor: "#000000",
|
|
226
|
+
hoverBorderColor: "#a46ede",
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
|
|
230
230
|
const Select = () => (
|
|
231
231
|
<>
|
|
232
232
|
<Title title="States" theme="light" level={2} />
|
|
@@ -339,36 +339,365 @@ const Select = () => (
|
|
|
339
339
|
<Title title="Multiple selection with ellipsis" theme="light" level={4} />
|
|
340
340
|
<DxcSelect label="Label" options={single_options} multiple defaultValue={["1", "2", "3", "4"]} />
|
|
341
341
|
<Title title="Value with ellipsis" theme="light" level={4} />
|
|
342
|
-
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1"
|
|
343
|
-
<Title title="
|
|
342
|
+
<DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1" />
|
|
343
|
+
<Title title="Options with ellipsis" theme="light" level={4} />
|
|
344
344
|
<DxcSelect
|
|
345
345
|
label="Label"
|
|
346
346
|
placeholder="Choose an option"
|
|
347
347
|
defaultValue="1"
|
|
348
348
|
options={optionsWithEllipsisMedium}
|
|
349
|
-
|
|
349
|
+
margin={{ top: "xxlarge" }}
|
|
350
350
|
/>
|
|
351
351
|
</ExampleContainer>
|
|
352
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
353
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
354
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
355
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
356
|
+
<DxcSelect label="Hovered" options={single_options} />
|
|
357
|
+
</HalstackProvider>
|
|
358
|
+
</ExampleContainer>
|
|
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>
|
|
364
|
+
</ExampleContainer>
|
|
365
|
+
<ExampleContainer>
|
|
366
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
367
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
368
|
+
<DxcSelect label="Disabled" placeholder="Placeholder" disabled options={single_options} />
|
|
369
|
+
</HalstackProvider>
|
|
370
|
+
</ExampleContainer>
|
|
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>
|
|
376
|
+
</ExampleContainer>
|
|
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>
|
|
400
|
+
</ExampleContainer>
|
|
352
401
|
</>
|
|
353
402
|
);
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
const
|
|
357
|
-
|
|
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
|
+
);
|
|
358
682
|
};
|
|
359
|
-
|
|
683
|
+
|
|
684
|
+
const SearchableSelect = () => (
|
|
360
685
|
<ExampleContainer expanded>
|
|
361
|
-
<Title title="
|
|
362
|
-
<DxcSelect label="Select
|
|
686
|
+
<Title title="Searchable select" theme="light" level={4} />
|
|
687
|
+
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
363
688
|
</ExampleContainer>
|
|
364
689
|
);
|
|
365
|
-
|
|
690
|
+
|
|
691
|
+
const SearchableSelectOpinionated = () => (
|
|
366
692
|
<ExampleContainer expanded>
|
|
367
693
|
<Title title="Searchable select" theme="light" level={4} />
|
|
368
|
-
<
|
|
694
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
695
|
+
<DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
|
|
696
|
+
</HalstackProvider>
|
|
369
697
|
</ExampleContainer>
|
|
370
698
|
);
|
|
371
|
-
|
|
699
|
+
|
|
700
|
+
const SearchValue = () => (
|
|
372
701
|
<ExampleContainer expanded>
|
|
373
702
|
<Title title="Searchable select with value" theme="light" level={4} />
|
|
374
703
|
<DxcSelect
|
|
@@ -381,6 +710,21 @@ const SearchableWithValue = () => (
|
|
|
381
710
|
</ExampleContainer>
|
|
382
711
|
);
|
|
383
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
|
+
|
|
384
728
|
const MultipleSelect = () => (
|
|
385
729
|
<>
|
|
386
730
|
<ExampleContainer expanded>
|
|
@@ -395,12 +739,38 @@ const MultipleSelect = () => (
|
|
|
395
739
|
</ExampleContainer>
|
|
396
740
|
</>
|
|
397
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
|
+
|
|
398
758
|
const DefaultGroupedOptionsSelect = () => (
|
|
399
759
|
<ExampleContainer expanded>
|
|
400
760
|
<Title title="Grouped options simple select" theme="light" level={4} />
|
|
401
761
|
<DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
|
|
402
762
|
</ExampleContainer>
|
|
403
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
|
+
|
|
404
774
|
const MultipleGroupedOptionsSelect = () => (
|
|
405
775
|
<ExampleContainer expanded>
|
|
406
776
|
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
@@ -413,66 +783,22 @@ const MultipleGroupedOptionsSelect = () => (
|
|
|
413
783
|
/>
|
|
414
784
|
</ExampleContainer>
|
|
415
785
|
);
|
|
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 = () => (
|
|
786
|
+
|
|
787
|
+
const MultipleGroupedOptionsSelectOpinionated = () => (
|
|
435
788
|
<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" />
|
|
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>
|
|
474
799
|
</ExampleContainer>
|
|
475
800
|
);
|
|
801
|
+
|
|
476
802
|
const MultipleSearchable = () => (
|
|
477
803
|
<ExampleContainer expanded>
|
|
478
804
|
<Title title="Searchable multiple select with value" theme="light" level={4} />
|
|
@@ -486,108 +812,107 @@ const MultipleSearchable = () => (
|
|
|
486
812
|
/>
|
|
487
813
|
</ExampleContainer>
|
|
488
814
|
);
|
|
489
|
-
|
|
490
|
-
|
|
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
|
+
|
|
832
|
+
export const Chromatic = Select.bind({});
|
|
833
|
+
Chromatic.play = async ({ canvasElement }) => {
|
|
834
|
+
const canvas = within(canvasElement);
|
|
835
|
+
await userEvent.click(canvas.getAllByRole("combobox")[24]);
|
|
836
|
+
};
|
|
837
|
+
|
|
838
|
+
export const ListboxStates = SelectListbox.bind({});
|
|
839
|
+
ListboxStates.play = async ({ canvasElement }) => {
|
|
491
840
|
const canvas = within(canvasElement);
|
|
492
841
|
const select = canvas.getByRole("combobox");
|
|
493
842
|
await userEvent.click(select);
|
|
494
843
|
};
|
|
844
|
+
|
|
495
845
|
export const Searchable = SearchableSelect.bind({});
|
|
496
846
|
Searchable.play = async ({ canvasElement }) => {
|
|
497
847
|
const canvas = within(canvasElement);
|
|
498
|
-
await userEvent.
|
|
499
|
-
await waitFor(async () => {
|
|
500
|
-
userEvent.type(canvas.getByRole("combobox"), "r");
|
|
501
|
-
});
|
|
848
|
+
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
502
849
|
};
|
|
503
|
-
|
|
504
|
-
|
|
850
|
+
|
|
851
|
+
export const SearchableOpinionated = SearchableSelectOpinionated.bind({});
|
|
852
|
+
SearchableOpinionated.play = async ({ canvasElement }) => {
|
|
505
853
|
const canvas = within(canvasElement);
|
|
506
|
-
await userEvent.
|
|
854
|
+
await userEvent.type(canvas.getByRole("combobox"), "r");
|
|
507
855
|
};
|
|
508
856
|
|
|
509
|
-
export const
|
|
510
|
-
|
|
857
|
+
export const SearchableWithValue = SearchValue.bind({});
|
|
858
|
+
SearchableWithValue.play = async ({ canvasElement }) => {
|
|
511
859
|
const canvas = within(canvasElement);
|
|
512
|
-
await userEvent.click(canvas.
|
|
860
|
+
await userEvent.click(canvas.getByRole("combobox"));
|
|
513
861
|
};
|
|
514
862
|
|
|
515
|
-
export const
|
|
516
|
-
|
|
863
|
+
export const SearchableWithValueOpinionated = SearchValueOpinionated.bind({});
|
|
864
|
+
SearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
517
865
|
const canvas = within(canvasElement);
|
|
518
|
-
|
|
519
|
-
await userEvent.click(select);
|
|
866
|
+
await userEvent.click(canvas.getByRole("combobox"));
|
|
520
867
|
};
|
|
521
868
|
|
|
522
|
-
export const
|
|
523
|
-
|
|
869
|
+
export const MultipleSearchableWithValue = MultipleSearchable.bind({});
|
|
870
|
+
MultipleSearchableWithValue.play = async ({ canvasElement }) => {
|
|
524
871
|
const canvas = within(canvasElement);
|
|
525
872
|
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
526
873
|
};
|
|
527
874
|
|
|
528
|
-
export const
|
|
529
|
-
|
|
530
|
-
const canvas = within(canvasElement);
|
|
531
|
-
const select = canvas.getByRole("combobox");
|
|
532
|
-
await userEvent.click(select);
|
|
533
|
-
};
|
|
534
|
-
export const SelectWithIconsDisplayed = SelectWithIcons.bind({});
|
|
535
|
-
SelectWithIconsDisplayed.play = async ({ canvasElement }) => {
|
|
875
|
+
export const MultipleSearchableWithValueOpinionated = MultipleSearchableOpinionated.bind({});
|
|
876
|
+
MultipleSearchableWithValueOpinionated.play = async ({ canvasElement }) => {
|
|
536
877
|
const canvas = within(canvasElement);
|
|
537
|
-
|
|
538
|
-
await userEvent.click(select);
|
|
878
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
539
879
|
};
|
|
540
880
|
|
|
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 }) => {
|
|
881
|
+
export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
|
|
882
|
+
GroupOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
549
883
|
const canvas = within(canvasElement);
|
|
550
884
|
const select = canvas.getByRole("combobox");
|
|
551
885
|
await userEvent.click(select);
|
|
552
886
|
};
|
|
553
887
|
|
|
554
|
-
export const
|
|
555
|
-
|
|
888
|
+
export const GroupOptionsDisplayedOpinionated = DefaultGroupedOptionsSelectOpinionated.bind({});
|
|
889
|
+
GroupOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
556
890
|
const canvas = within(canvasElement);
|
|
557
891
|
const select = canvas.getByRole("combobox");
|
|
558
892
|
await userEvent.click(select);
|
|
559
893
|
};
|
|
560
894
|
|
|
561
|
-
export const
|
|
562
|
-
|
|
895
|
+
export const MultipleOptionsDisplayed = MultipleSelect.bind({});
|
|
896
|
+
MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
563
897
|
const canvas = within(canvasElement);
|
|
564
|
-
|
|
565
|
-
await userEvent.click(select);
|
|
898
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
566
899
|
};
|
|
567
900
|
|
|
568
|
-
export const
|
|
569
|
-
|
|
901
|
+
export const MultipleOptionsDisplayedOpinionated = MultipleSelectOpinioated.bind({});
|
|
902
|
+
MultipleOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
570
903
|
const canvas = within(canvasElement);
|
|
571
|
-
|
|
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 }) => {
|
|
579
|
-
const canvas = within(canvasElement);
|
|
580
|
-
const select = canvas.getByRole("combobox");
|
|
581
|
-
await userEvent.click(select);
|
|
904
|
+
await userEvent.click(canvas.getAllByRole("combobox")[0]);
|
|
582
905
|
};
|
|
583
|
-
|
|
584
|
-
|
|
906
|
+
|
|
907
|
+
export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
|
|
908
|
+
MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
|
|
585
909
|
const canvas = within(canvasElement);
|
|
586
910
|
const select = canvas.getByRole("combobox");
|
|
587
911
|
await userEvent.click(select);
|
|
588
912
|
};
|
|
589
|
-
|
|
590
|
-
|
|
913
|
+
|
|
914
|
+
export const MultipleGroupedOptionsDisplayedOpinionated = MultipleGroupedOptionsSelectOpinionated.bind({});
|
|
915
|
+
MultipleGroupedOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
|
|
591
916
|
const canvas = within(canvasElement);
|
|
592
917
|
const select = canvas.getByRole("combobox");
|
|
593
918
|
await userEvent.click(select);
|