@dxc-technology/halstack-react 0.0.0-d3554d7 → 0.0.0-d3df47e
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 +1221 -0
- package/HalstackContext.js +310 -0
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +116 -181
- package/accordion/Accordion.stories.tsx +103 -127
- package/accordion/Accordion.test.js +32 -33
- package/accordion/types.d.ts +9 -16
- package/accordion-group/AccordionGroup.d.ts +5 -4
- package/accordion-group/AccordionGroup.js +38 -107
- package/accordion-group/AccordionGroup.stories.tsx +95 -68
- package/accordion-group/AccordionGroup.test.js +55 -90
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/types.d.ts +15 -16
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +47 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.js +23 -59
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +142 -40
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -2
- package/bleed/Bleed.js +14 -55
- package/bleed/Bleed.stories.tsx +95 -95
- package/bleed/types.d.ts +26 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +30 -81
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -14
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +89 -0
- package/bulleted-list/BulletedList.stories.tsx +115 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +62 -113
- package/button/Button.stories.tsx +160 -90
- package/button/Button.test.js +20 -17
- package/button/types.d.ts +12 -8
- package/card/Card.d.ts +1 -1
- package/card/Card.js +58 -102
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +144 -182
- package/checkbox/Checkbox.stories.tsx +166 -136
- package/checkbox/Checkbox.test.js +163 -29
- package/checkbox/types.d.ts +18 -6
- package/chip/Chip.js +39 -79
- package/chip/Chip.stories.tsx +121 -26
- package/chip/Chip.test.js +16 -31
- package/chip/types.d.ts +4 -4
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +6 -12
- package/common/variables.d.ts +1367 -0
- package/common/variables.js +1002 -1136
- package/container/Container.d.ts +4 -0
- package/container/Container.js +194 -0
- package/container/Container.stories.tsx +214 -0
- package/container/types.d.ts +74 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.js +171 -306
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +708 -369
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +115 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +58 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +86 -22
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +68 -130
- package/dialog/Dialog.stories.tsx +320 -167
- package/dialog/Dialog.test.js +287 -20
- package/dialog/types.d.ts +18 -25
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +243 -304
- package/dropdown/Dropdown.stories.tsx +245 -56
- 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 +67 -0
- package/dropdown/types.d.ts +32 -14
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +246 -357
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +369 -367
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +50 -99
- 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.d.ts +1 -1
- package/footer/Footer.js +70 -190
- package/footer/Footer.stories.tsx +60 -19
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +67 -8
- package/footer/types.d.ts +25 -26
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +99 -203
- package/header/Header.stories.tsx +152 -63
- package/header/Header.test.js +31 -28
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +4 -9
- package/header/types.d.ts +5 -19
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +127 -0
- package/image/types.d.ts +72 -0
- package/inset/Inset.js +14 -55
- package/inset/Inset.stories.tsx +37 -36
- package/inset/types.d.ts +26 -2
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +84 -181
- package/layout/ApplicationLayout.stories.tsx +85 -94
- package/layout/Icons.d.ts +8 -0
- package/layout/Icons.js +51 -48
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +13 -0
- package/layout/types.d.ts +19 -35
- package/link/Link.d.ts +3 -2
- package/link/Link.js +61 -99
- package/link/Link.stories.tsx +155 -53
- package/link/Link.test.js +25 -53
- package/link/types.d.ts +15 -31
- package/main.d.ts +14 -13
- package/main.js +65 -101
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +93 -0
- package/nav-tabs/NavTabs.stories.tsx +276 -0
- package/nav-tabs/NavTabs.test.js +76 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +118 -0
- package/nav-tabs/types.d.ts +52 -0
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +27 -43
- package/number-input/NumberInput.stories.tsx +44 -28
- package/number-input/NumberInput.test.js +703 -381
- package/number-input/types.d.ts +28 -15
- package/package.json +46 -47
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.js +34 -91
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +280 -211
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +22 -0
- package/paragraph/Paragraph.stories.tsx +27 -0
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +35 -0
- package/password-input/PasswordInput.js +57 -123
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +162 -147
- package/password-input/types.d.ts +21 -17
- package/progress-bar/ProgressBar.js +65 -91
- package/progress-bar/ProgressBar.stories.tsx +93 -0
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +94 -0
- package/quick-nav/QuickNav.stories.tsx +356 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +59 -76
- package/radio-group/RadioGroup.js +72 -116
- package/radio-group/RadioGroup.stories.tsx +135 -17
- package/radio-group/RadioGroup.test.js +529 -467
- package/radio-group/types.d.ts +86 -9
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +1 -1
- package/resultset-table/ResultsetTable.js +165 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +69 -25
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +117 -118
- package/{resultsetTable → resultset-table}/types.d.ts +13 -7
- package/resultset-table/types.js +5 -0
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +89 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +143 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +87 -0
- package/select/Select.js +223 -502
- package/select/Select.stories.tsx +534 -145
- package/select/Select.test.js +2009 -1539
- package/select/types.d.ts +64 -25
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +131 -71
- package/sidenav/Sidenav.stories.tsx +251 -151
- package/sidenav/Sidenav.test.js +26 -45
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +148 -180
- package/slider/Slider.test.js +198 -73
- package/slider/types.d.ts +11 -3
- package/spinner/Spinner.js +31 -75
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
- package/spinner/Spinner.test.js +26 -35
- package/spinner/types.d.ts +3 -3
- package/status-light/StatusLight.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.d.ts +2 -2
- package/switch/Switch.js +149 -114
- package/switch/Switch.stories.tsx +44 -67
- package/switch/Switch.test.js +146 -39
- package/switch/types.d.ts +13 -5
- package/table/Table.d.ts +1 -1
- package/table/Table.js +25 -32
- package/table/{Table.stories.jsx → Table.stories.tsx} +178 -1
- package/table/Table.test.js +3 -8
- package/table/types.d.ts +12 -6
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +116 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +316 -145
- package/tabs/Tabs.stories.tsx +120 -14
- package/tabs/Tabs.test.js +238 -67
- package/tabs/types.d.ts +29 -15
- package/tag/Tag.js +41 -78
- package/tag/Tag.stories.tsx +25 -8
- package/tag/Tag.test.js +20 -31
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +56 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +67 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +84 -0
- package/text-input/TextInput.js +324 -548
- package/text-input/TextInput.stories.tsx +272 -281
- package/text-input/TextInput.test.js +1425 -1377
- package/text-input/types.d.ts +70 -24
- package/textarea/Textarea.js +82 -134
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +168 -198
- package/textarea/types.d.ts +27 -16
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +92 -105
- package/toggle-group/ToggleGroup.stories.tsx +53 -8
- package/toggle-group/ToggleGroup.test.js +78 -66
- package/toggle-group/types.d.ts +34 -17
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +23 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1119 -1
- package/useTheme.js +4 -11
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +14 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +124 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +70 -101
- package/wizard/Wizard.stories.tsx +48 -19
- package/wizard/Wizard.test.js +73 -87
- package/wizard/types.d.ts +12 -8
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- package/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/progress-bar/ProgressBar.stories.jsx +0 -58
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- package/resultsetTable/ResultsetTable.js +0 -254
- 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 -10
- package/slider/Slider.stories.tsx +0 -177
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -9
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/textarea/Textarea.stories.jsx +0 -157
- /package/{list → action-icon}/types.js +0 -0
- /package/{radio → bulleted-list}/types.js +0 -0
- /package/{resultsetTable → container}/types.js +0 -0
- /package/{row → flex}/types.js +0 -0
- /package/{stack → grid}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → image/types.js} +0 -0
package/textarea/types.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
+
type Margin = {
|
|
3
3
|
top?: Space;
|
|
4
4
|
bottom?: Space;
|
|
5
5
|
left?: Space;
|
|
6
6
|
right?: Space;
|
|
7
7
|
};
|
|
8
|
-
|
|
8
|
+
type Props = {
|
|
9
9
|
/**
|
|
10
10
|
* Text to be placed above the textarea.
|
|
11
11
|
*/
|
|
@@ -14,6 +14,10 @@ declare type Props = {
|
|
|
14
14
|
* Name attribute of the textarea element.
|
|
15
15
|
*/
|
|
16
16
|
name?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Initial value of the textarea, only when it is uncontrolled.
|
|
19
|
+
*/
|
|
20
|
+
defaultValue?: string;
|
|
17
21
|
/**
|
|
18
22
|
* Value of the textarea. If undefined, the component will be uncontrolled and the value will be managed internally.
|
|
19
23
|
*/
|
|
@@ -30,6 +34,10 @@ declare type Props = {
|
|
|
30
34
|
* If true, the component will be disabled.
|
|
31
35
|
*/
|
|
32
36
|
disabled?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* If true, the component will not be mutable, meaning the user can not edit the control.
|
|
39
|
+
*/
|
|
40
|
+
readOnly?: boolean;
|
|
33
41
|
/**
|
|
34
42
|
* If true, the textarea will be optional, showing '(Optional)'
|
|
35
43
|
* next to the label. Otherwise, the field will be considered required
|
|
@@ -52,26 +60,29 @@ declare type Props = {
|
|
|
52
60
|
* This function will be called when the user types within the textarea.
|
|
53
61
|
* An object including the current value and the error (if the value
|
|
54
62
|
* entered is not valid) will be passed to this function.
|
|
55
|
-
* If there is no error, error will be
|
|
63
|
+
* If there is no error, error will not be defined.
|
|
56
64
|
*/
|
|
57
65
|
onChange?: (val: {
|
|
58
66
|
value: string;
|
|
59
|
-
error
|
|
67
|
+
error?: string;
|
|
60
68
|
}) => void;
|
|
61
69
|
/**
|
|
62
70
|
* This function will be called when the textarea loses the focus. An
|
|
63
71
|
* object including the textarea value and the error (if the value entered
|
|
64
72
|
* is not valid) will be passed to this function. If there is no error,
|
|
65
|
-
* error will be
|
|
73
|
+
* error will not be defined.
|
|
66
74
|
*/
|
|
67
75
|
onBlur?: (val: {
|
|
68
76
|
value: string;
|
|
69
|
-
error
|
|
77
|
+
error?: string;
|
|
70
78
|
}) => void;
|
|
71
79
|
/**
|
|
72
|
-
* If it is defined
|
|
73
|
-
* the error below the textarea. If
|
|
74
|
-
*
|
|
80
|
+
* If it is a defined value and also a truthy string, the component will
|
|
81
|
+
* change its appearance, showing the error below the textarea. If the
|
|
82
|
+
* defined value is an empty string, it will reserve a space below the
|
|
83
|
+
* component for a future error, but it would not change its look. In
|
|
84
|
+
* case of being undefined or null, both the appearance and the space for
|
|
85
|
+
* the error message would not be modified.
|
|
75
86
|
*/
|
|
76
87
|
error?: string;
|
|
77
88
|
/**
|
|
@@ -81,17 +92,17 @@ declare type Props = {
|
|
|
81
92
|
* pattern, the onBlur and onChange functions will be called with the
|
|
82
93
|
* current value and an internal error informing that this value does not
|
|
83
94
|
* match the pattern. If the pattern is met, the error parameter of both
|
|
84
|
-
* events will be
|
|
95
|
+
* events will not be defined.
|
|
85
96
|
*/
|
|
86
97
|
pattern?: string;
|
|
87
98
|
/**
|
|
88
|
-
* Specifies the
|
|
99
|
+
* Specifies the minimum length allowed by the textarea.
|
|
89
100
|
* This will be checked both when the textarea loses the
|
|
90
101
|
* focus and while typing within it. If the string entered does not
|
|
91
102
|
* comply the minimum length, the onBlur and onChange functions will be called
|
|
92
103
|
* with the current value and an internal error informing that the value
|
|
93
104
|
* length does not comply the specified range. If a valid length is
|
|
94
|
-
* reached, the error parameter of both events will be
|
|
105
|
+
* reached, the error parameter of both events will not be defined.
|
|
95
106
|
*/
|
|
96
107
|
minLength?: number;
|
|
97
108
|
/**
|
|
@@ -101,7 +112,7 @@ declare type Props = {
|
|
|
101
112
|
* comply the maximum length, the onBlur and onChange functions will be called
|
|
102
113
|
* with the current value and an internal error informing that the value
|
|
103
114
|
* length does not comply the specified range. If a valid length is
|
|
104
|
-
* reached, the error parameter of both events will be
|
|
115
|
+
* reached, the error parameter of both events will not be defined.
|
|
105
116
|
*/
|
|
106
117
|
maxLength?: number;
|
|
107
118
|
/**
|
|
@@ -115,7 +126,7 @@ declare type Props = {
|
|
|
115
126
|
*/
|
|
116
127
|
margin?: Space | Margin;
|
|
117
128
|
/**
|
|
118
|
-
* Size of the component
|
|
129
|
+
* Size of the component.
|
|
119
130
|
*/
|
|
120
131
|
size?: "small" | "medium" | "large" | "fillParent";
|
|
121
132
|
/**
|
|
@@ -126,5 +137,5 @@ declare type Props = {
|
|
|
126
137
|
/**
|
|
127
138
|
* Reference to the component.
|
|
128
139
|
*/
|
|
129
|
-
export
|
|
140
|
+
export type RefType = HTMLDivElement;
|
|
130
141
|
export default Props;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import
|
|
3
|
-
declare const DxcToggleGroup: ({ label, helperText, value, onChange, disabled, options, margin, multiple, tabIndex, }:
|
|
2
|
+
import ToggleGroupPropsType from "./types";
|
|
3
|
+
declare const DxcToggleGroup: ({ label, helperText, defaultValue, value, onChange, disabled, options, margin, multiple, tabIndex, }: ToggleGroupPropsType) => JSX.Element;
|
|
4
4
|
export default DxcToggleGroup;
|
|
@@ -1,138 +1,128 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
12
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
-
|
|
14
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
|
-
|
|
16
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
|
|
18
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
-
|
|
20
13
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
|
-
|
|
22
14
|
var _uuid = require("uuid");
|
|
23
|
-
|
|
24
|
-
var _variables = require("../common/variables.js");
|
|
25
|
-
|
|
15
|
+
var _variables = require("../common/variables");
|
|
26
16
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
27
|
-
|
|
28
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7
|
|
29
|
-
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
|
-
|
|
17
|
+
var _Flex = _interopRequireDefault(require("../flex/Flex"));
|
|
18
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
19
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
20
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
34
21
|
var DxcToggleGroup = function DxcToggleGroup(_ref) {
|
|
35
22
|
var label = _ref.label,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
23
|
+
helperText = _ref.helperText,
|
|
24
|
+
defaultValue = _ref.defaultValue,
|
|
25
|
+
value = _ref.value,
|
|
26
|
+
onChange = _ref.onChange,
|
|
27
|
+
_ref$disabled = _ref.disabled,
|
|
28
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
29
|
+
options = _ref.options,
|
|
30
|
+
margin = _ref.margin,
|
|
31
|
+
_ref$multiple = _ref.multiple,
|
|
32
|
+
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
|
|
33
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
34
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
35
|
+
var _useState = (0, _react.useState)("label-toggle-group-".concat((0, _uuid.v4)())),
|
|
36
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
37
|
+
toggleGroupLabelId = _useState2[0];
|
|
38
|
+
var _useState3 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : -1),
|
|
39
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
40
|
+
selectedValue = _useState4[0],
|
|
41
|
+
setSelectedValue = _useState4[1];
|
|
47
42
|
var colorsTheme = (0, _useTheme["default"])();
|
|
48
|
-
|
|
49
|
-
var _useState = (0, _react.useState)(multiple ? [] : -1),
|
|
50
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
51
|
-
selectedValue = _useState2[0],
|
|
52
|
-
setSelectedValue = _useState2[1];
|
|
53
|
-
|
|
54
|
-
var _useState3 = (0, _react.useState)("toggle-group-".concat((0, _uuid.v4)())),
|
|
55
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
|
|
56
|
-
toggleGroupId = _useState4[0];
|
|
57
|
-
|
|
58
43
|
var handleToggleChange = function handleToggleChange(selectedOption) {
|
|
59
44
|
var newSelectedOptions;
|
|
60
|
-
|
|
61
45
|
if (value == null) {
|
|
62
46
|
if (multiple && Array.isArray(selectedValue)) {
|
|
63
47
|
newSelectedOptions = selectedValue.map(function (value) {
|
|
64
48
|
return value;
|
|
65
49
|
});
|
|
66
|
-
|
|
67
50
|
if (newSelectedOptions.includes(selectedOption)) {
|
|
68
51
|
var index = newSelectedOptions.indexOf(selectedOption);
|
|
69
52
|
newSelectedOptions.splice(index, 1);
|
|
70
53
|
} else {
|
|
71
54
|
newSelectedOptions.push(selectedOption);
|
|
72
55
|
}
|
|
73
|
-
|
|
74
56
|
setSelectedValue(newSelectedOptions);
|
|
75
57
|
} else setSelectedValue(selectedOption === selectedValue ? null : selectedOption);
|
|
76
58
|
} else if (multiple) {
|
|
77
59
|
newSelectedOptions = Array.isArray(value) ? value.map(function (v) {
|
|
78
60
|
return v;
|
|
79
61
|
}) : value;
|
|
80
|
-
|
|
81
62
|
if (newSelectedOptions.includes(selectedOption)) {
|
|
82
63
|
var _index = newSelectedOptions.indexOf(selectedOption);
|
|
83
|
-
|
|
84
64
|
newSelectedOptions.splice(_index, 1);
|
|
85
65
|
} else newSelectedOptions.push(selectedOption);
|
|
86
66
|
}
|
|
87
|
-
|
|
88
67
|
onChange === null || onChange === void 0 ? void 0 : onChange(multiple ? newSelectedOptions : selectedOption);
|
|
89
68
|
};
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
69
|
+
var handleOnKeyDown = function handleOnKeyDown(event, optionValue) {
|
|
70
|
+
switch (event.key) {
|
|
71
|
+
case "Enter":
|
|
72
|
+
case " ":
|
|
73
|
+
event.preventDefault();
|
|
74
|
+
handleToggleChange(optionValue);
|
|
75
|
+
}
|
|
94
76
|
};
|
|
95
|
-
|
|
96
77
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
97
78
|
theme: colorsTheme.toggleGroup
|
|
98
79
|
}, /*#__PURE__*/_react["default"].createElement(ToggleGroup, {
|
|
99
|
-
margin: margin
|
|
100
|
-
disabled: disabled
|
|
80
|
+
margin: margin
|
|
101
81
|
}, /*#__PURE__*/_react["default"].createElement(Label, {
|
|
102
|
-
|
|
82
|
+
id: toggleGroupLabelId,
|
|
103
83
|
disabled: disabled
|
|
104
84
|
}, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
105
85
|
disabled: disabled
|
|
106
86
|
}, helperText), /*#__PURE__*/_react["default"].createElement(OptionsContainer, {
|
|
107
|
-
|
|
108
|
-
role: multiple ? "group" : "radiogroup"
|
|
87
|
+
"aria-labelledby": toggleGroupLabelId
|
|
109
88
|
}, options.map(function (option, i) {
|
|
110
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
"aria-
|
|
114
|
-
|
|
89
|
+
return /*#__PURE__*/_react["default"].createElement(ToggleButton, {
|
|
90
|
+
key: "toggle-".concat(i, "-").concat(option.label),
|
|
91
|
+
"aria-label": option.title,
|
|
92
|
+
"aria-pressed": multiple ? value ? Array.isArray(value) && value.includes(option.value) : Array.isArray(selectedValue) && selectedValue.includes(option.value) : value ? option.value === value : option.value === selectedValue,
|
|
93
|
+
disabled: disabled,
|
|
115
94
|
onClick: function onClick() {
|
|
116
|
-
|
|
95
|
+
handleToggleChange(option.value);
|
|
117
96
|
},
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
isIcon: option.icon,
|
|
121
|
-
optionLabel: option.label,
|
|
122
|
-
disabled: disabled,
|
|
123
|
-
onKeyPress: function onKeyPress(event) {
|
|
124
|
-
handleKeyPress(event, option.value);
|
|
97
|
+
onKeyDown: function onKeyDown(event) {
|
|
98
|
+
handleOnKeyDown(event, option.value);
|
|
125
99
|
},
|
|
126
|
-
|
|
127
|
-
|
|
100
|
+
tabIndex: !disabled ? tabIndex : -1,
|
|
101
|
+
title: option.title,
|
|
102
|
+
hasIcon: option.icon,
|
|
103
|
+
optionLabel: option.label,
|
|
104
|
+
selected: multiple ? value ? Array.isArray(value) && value.includes(option.value) : Array.isArray(selectedValue) && selectedValue.includes(option.value) : value ? option.value === value : option.value === selectedValue
|
|
105
|
+
}, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
106
|
+
alignItems: "center"
|
|
107
|
+
}, option.icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
128
108
|
optionLabel: option.label
|
|
129
|
-
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(
|
|
109
|
+
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
130
110
|
src: option.icon
|
|
131
111
|
}) : option.icon), option.label && /*#__PURE__*/_react["default"].createElement(LabelContainer, null, option.label)));
|
|
132
112
|
}))));
|
|
133
113
|
};
|
|
134
|
-
|
|
135
|
-
|
|
114
|
+
var ToggleGroup = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
115
|
+
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
116
|
+
}, function (props) {
|
|
117
|
+
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
|
|
118
|
+
}, function (props) {
|
|
119
|
+
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
|
|
120
|
+
}, function (props) {
|
|
121
|
+
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
|
|
122
|
+
}, function (props) {
|
|
123
|
+
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
124
|
+
});
|
|
125
|
+
var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
136
126
|
return props.disabled ? props.theme.disabledLabelFontColor : props.theme.labelFontColor;
|
|
137
127
|
}, function (props) {
|
|
138
128
|
return props.theme.labelFontFamily;
|
|
@@ -145,8 +135,7 @@ var Label = _styledComponents["default"].label(_templateObject || (_templateObje
|
|
|
145
135
|
}, function (props) {
|
|
146
136
|
return props.theme.labelLineHeight;
|
|
147
137
|
});
|
|
148
|
-
|
|
149
|
-
var HelperText = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
138
|
+
var HelperText = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
150
139
|
return props.disabled ? props.theme.disabledHelperTextFontcolor : props.theme.helperTextFontColor;
|
|
151
140
|
}, function (props) {
|
|
152
141
|
return props.theme.helperTextFontFamily;
|
|
@@ -159,20 +148,7 @@ var HelperText = _styledComponents["default"].span(_templateObject2 || (_templat
|
|
|
159
148
|
}, function (props) {
|
|
160
149
|
return props.theme.helperTextLineHeight;
|
|
161
150
|
});
|
|
162
|
-
|
|
163
|
-
var ToggleGroup = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
164
|
-
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
165
|
-
}, function (props) {
|
|
166
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
|
|
167
|
-
}, function (props) {
|
|
168
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
|
|
169
|
-
}, function (props) {
|
|
170
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
|
|
171
|
-
}, function (props) {
|
|
172
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n opacity: 1;\n height: calc(48px - 4px - 4px);\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n border-color: ", ";\n background-color: ", ";\n padding: 4px;\n margin-top: ", ";\n"])), function (props) {
|
|
151
|
+
var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n gap: 0.25rem;\n width: max-content;\n height: calc(48px - 4px - 4px);\n padding: 0.25rem;\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n border-color: ", ";\n margin-top: ", ";\n background-color: ", ";\n"])), function (props) {
|
|
176
152
|
return props.theme.containerBorderThickness;
|
|
177
153
|
}, function (props) {
|
|
178
154
|
return props.theme.containerBorderStyle;
|
|
@@ -180,18 +156,36 @@ var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_te
|
|
|
180
156
|
return props.theme.containerBorderRadius;
|
|
181
157
|
}, function (props) {
|
|
182
158
|
return props.theme.containerBorderColor;
|
|
183
|
-
}, function (props) {
|
|
184
|
-
return props.theme.containerBackgroundColor;
|
|
185
159
|
}, function (props) {
|
|
186
160
|
return props.theme.containerMarginTop;
|
|
161
|
+
}, function (props) {
|
|
162
|
+
return props.theme.containerBackgroundColor;
|
|
187
163
|
});
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
164
|
+
var ToggleButton = _styledComponents["default"].button(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding-left: ", ";\n padding-right: ", ";\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n background-color: ", ";\n color: ", ";\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n color: #ffffff;\n }\n &:focus {\n outline: none;\n box-shadow: ", ";\n }\n &:disabled {\n background-color: ", ";\n color: ", ";\n cursor: not-allowed;\n }\n"])), function (props) {
|
|
165
|
+
return props.optionLabel && props.hasIcon || props.optionLabel && !props.hasIcon ? props.theme.labelPaddingLeft : props.theme.iconPaddingLeft;
|
|
166
|
+
}, function (props) {
|
|
167
|
+
return props.optionLabel && props.hasIcon || props.optionLabel && !props.hasIcon ? props.theme.labelPaddingRight : props.theme.iconPaddingRight;
|
|
168
|
+
}, function (props) {
|
|
169
|
+
return props.theme.optionBorderThickness;
|
|
170
|
+
}, function (props) {
|
|
171
|
+
return props.theme.optionBorderStyle;
|
|
172
|
+
}, function (props) {
|
|
173
|
+
return props.theme.optionBorderRadius;
|
|
174
|
+
}, function (props) {
|
|
175
|
+
return props.selected ? props.theme.selectedBackgroundColor : props.theme.unselectedBackgroundColor;
|
|
176
|
+
}, function (props) {
|
|
177
|
+
return props.selected ? props.theme.selectedFontColor : props.theme.unselectedFontColor;
|
|
191
178
|
}, function (props) {
|
|
192
|
-
return
|
|
179
|
+
return props.selected ? props.theme.selectedHoverBackgroundColor : props.theme.unselectedHoverBackgroundColor;
|
|
180
|
+
}, function (props) {
|
|
181
|
+
return props.selected ? props.theme.selectedActiveBackgroundColor : props.theme.unselectedActiveBackgroundColor;
|
|
182
|
+
}, function (props) {
|
|
183
|
+
return "0 0 0 ".concat(props.theme.optionFocusBorderThickness, " ").concat(props.theme.focusColor);
|
|
184
|
+
}, function (props) {
|
|
185
|
+
return props.selected ? props.theme.selectedDisabledBackgroundColor : props.theme.unselectedDisabledBackgroundColor;
|
|
186
|
+
}, function (props) {
|
|
187
|
+
return props.selected ? props.theme.selectedDisabledFontColor : props.theme.unselectedDisabledFontColor;
|
|
193
188
|
});
|
|
194
|
-
|
|
195
189
|
var LabelContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
196
190
|
return props.theme.optionLabelFontFamily;
|
|
197
191
|
}, function (props) {
|
|
@@ -201,14 +195,7 @@ var LabelContainer = _styledComponents["default"].span(_templateObject6 || (_tem
|
|
|
201
195
|
}, function (props) {
|
|
202
196
|
return props.theme.optionLabelFontWeight;
|
|
203
197
|
});
|
|
204
|
-
|
|
205
|
-
var OptionContent = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n align-items: center;\n"])));
|
|
206
|
-
|
|
207
|
-
var Icon = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
208
|
-
|
|
209
|
-
var IconContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n height: 24px;\n width: 24px;\n overflow: hidden;\n display: flex;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
198
|
+
var IconContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 24px;\n width: 24px;\n margin-right: ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
210
199
|
return props.optionLabel && props.theme.iconMarginRight;
|
|
211
200
|
});
|
|
212
|
-
|
|
213
|
-
var _default = DxcToggleGroup;
|
|
214
|
-
exports["default"] = _default;
|
|
201
|
+
var _default = exports["default"] = DxcToggleGroup;
|
|
@@ -3,9 +3,10 @@ import { userEvent, within } from "@storybook/testing-library";
|
|
|
3
3
|
import DxcToggleGroup from "./ToggleGroup";
|
|
4
4
|
import Title from "../../.storybook/components/Title";
|
|
5
5
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
6
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
6
7
|
|
|
7
8
|
export default {
|
|
8
|
-
title: "
|
|
9
|
+
title: "Toggle Group",
|
|
9
10
|
component: DxcToggleGroup,
|
|
10
11
|
};
|
|
11
12
|
|
|
@@ -41,7 +42,7 @@ const options = [
|
|
|
41
42
|
},
|
|
42
43
|
{
|
|
43
44
|
value: 2,
|
|
44
|
-
label: "
|
|
45
|
+
label: "X",
|
|
45
46
|
},
|
|
46
47
|
{
|
|
47
48
|
value: 3,
|
|
@@ -52,14 +53,17 @@ const optionsWithIcon = [
|
|
|
52
53
|
{
|
|
53
54
|
value: 1,
|
|
54
55
|
icon: wifiSVG,
|
|
56
|
+
title: "WiFi connection",
|
|
55
57
|
},
|
|
56
58
|
{
|
|
57
59
|
value: 2,
|
|
58
60
|
icon: ethernetSVG,
|
|
61
|
+
title: "Ethernet connection",
|
|
59
62
|
},
|
|
60
63
|
{
|
|
61
64
|
value: 3,
|
|
62
65
|
icon: gMobileSVG,
|
|
66
|
+
title: "3G Mobile data connection",
|
|
63
67
|
},
|
|
64
68
|
];
|
|
65
69
|
const optionsWithIconAndLabel = [
|
|
@@ -86,9 +90,19 @@ const twoOptions = [
|
|
|
86
90
|
},
|
|
87
91
|
{
|
|
88
92
|
value: 2,
|
|
89
|
-
label: "
|
|
93
|
+
label: "X",
|
|
90
94
|
},
|
|
91
95
|
];
|
|
96
|
+
|
|
97
|
+
const opinionatedTheme = {
|
|
98
|
+
toggleGroup: {
|
|
99
|
+
selectedBaseColor: "#5f249f",
|
|
100
|
+
selectedFontColor: "#ffffff",
|
|
101
|
+
unselectedBaseColor: "#e6e6e6",
|
|
102
|
+
unselectedFontColor: "#000000",
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
|
|
92
106
|
export const Chromatic = () => (
|
|
93
107
|
<>
|
|
94
108
|
<ExampleContainer>
|
|
@@ -97,7 +111,7 @@ export const Chromatic = () => (
|
|
|
97
111
|
</ExampleContainer>
|
|
98
112
|
<ExampleContainer>
|
|
99
113
|
<Title title="Selected" theme="light" level={4} />
|
|
100
|
-
<DxcToggleGroup label="Selected" helperText="HelperText"
|
|
114
|
+
<DxcToggleGroup label="Selected" helperText="HelperText" defaultValue={2} options={options} />
|
|
101
115
|
</ExampleContainer>
|
|
102
116
|
<ExampleContainer>
|
|
103
117
|
<Title title="Icons toggle group" theme="light" level={4} />
|
|
@@ -109,11 +123,11 @@ export const Chromatic = () => (
|
|
|
109
123
|
</ExampleContainer>
|
|
110
124
|
<ExampleContainer>
|
|
111
125
|
<Title title="Disabled" theme="light" level={4} />
|
|
112
|
-
<DxcToggleGroup label="Disabled"
|
|
126
|
+
<DxcToggleGroup label="Disabled" defaultValue={2} options={options} disabled />
|
|
113
127
|
</ExampleContainer>
|
|
114
128
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
115
129
|
<Title title="Hovered" theme="light" level={4} />
|
|
116
|
-
<DxcToggleGroup label="Hovered" options={twoOptions}
|
|
130
|
+
<DxcToggleGroup label="Hovered" options={twoOptions} defaultValue={2} />
|
|
117
131
|
</ExampleContainer>
|
|
118
132
|
<ExampleContainer>
|
|
119
133
|
<Title title="Multiple toggleGroup" theme="light" level={4} />
|
|
@@ -121,7 +135,7 @@ export const Chromatic = () => (
|
|
|
121
135
|
label="Toggle group"
|
|
122
136
|
helperText="Please select one or more"
|
|
123
137
|
options={options}
|
|
124
|
-
|
|
138
|
+
defaultValue={[1, 3]}
|
|
125
139
|
multiple
|
|
126
140
|
></DxcToggleGroup>
|
|
127
141
|
</ExampleContainer>
|
|
@@ -154,6 +168,37 @@ export const Chromatic = () => (
|
|
|
154
168
|
<Title title="xxLarge" theme="light" level={4} />
|
|
155
169
|
<DxcToggleGroup label="xxLarge margin" options={options} margin="xxlarge" />
|
|
156
170
|
</ExampleContainer>
|
|
171
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
172
|
+
<ExampleContainer>
|
|
173
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
174
|
+
<Title title="Selected" theme="light" level={4} />
|
|
175
|
+
<DxcToggleGroup label="Selected" helperText="HelperText" defaultValue={2} options={options} />
|
|
176
|
+
</HalstackProvider>
|
|
177
|
+
</ExampleContainer>
|
|
178
|
+
<ExampleContainer>
|
|
179
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
180
|
+
<Title title="Icons & label toggle group" theme="light" level={4} />
|
|
181
|
+
<DxcToggleGroup label="Icons & label" options={optionsWithIconAndLabel} />
|
|
182
|
+
</HalstackProvider>
|
|
183
|
+
</ExampleContainer>
|
|
184
|
+
<ExampleContainer>
|
|
185
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
186
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
187
|
+
<DxcToggleGroup label="Disabled" defaultValue={2} options={options} disabled />
|
|
188
|
+
</HalstackProvider>
|
|
189
|
+
</ExampleContainer>
|
|
190
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
191
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
192
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
193
|
+
<DxcToggleGroup label="Hovered" options={twoOptions} defaultValue={2} />
|
|
194
|
+
</HalstackProvider>
|
|
195
|
+
</ExampleContainer>
|
|
196
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
197
|
+
<Title title="Actived" theme="light" level={4} />
|
|
198
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
199
|
+
<DxcToggleGroup label="Actived" options={twoOptions} defaultValue={2} />
|
|
200
|
+
</HalstackProvider>
|
|
201
|
+
</ExampleContainer>
|
|
157
202
|
</>
|
|
158
203
|
);
|
|
159
204
|
const OptionSelected = () => <DxcToggleGroup label="Toggle group" helperText="HelperText" options={options} />;
|
|
@@ -167,7 +212,7 @@ ToggleGroupSelectedActived.play = async ({ canvasElement }) => {
|
|
|
167
212
|
export const ToggleGroupUnselectedActived = OptionSelected.bind({});
|
|
168
213
|
ToggleGroupUnselectedActived.play = async ({ canvasElement }) => {
|
|
169
214
|
const canvas = within(canvasElement);
|
|
170
|
-
const option = canvas.getByText("
|
|
215
|
+
const option = canvas.getByText("X");
|
|
171
216
|
await userEvent.click(option);
|
|
172
217
|
userEvent.tab();
|
|
173
218
|
};
|