@dxc-technology/halstack-react 0.0.0-1f7dada → 0.0.0-1fb45b6
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 -23
- 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 +117 -193
- package/accordion/Accordion.stories.tsx +103 -120
- package/accordion/Accordion.test.js +56 -0
- package/accordion/types.d.ts +11 -22
- 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 +98 -0
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/types.d.ts +17 -22
- 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 +75 -0
- package/alert/types.d.ts +5 -5
- package/badge/Badge.d.ts +4 -0
- 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 +54 -0
- package/bleed/Bleed.d.ts +3 -0
- package/bleed/Bleed.js +43 -0
- package/bleed/Bleed.stories.tsx +342 -0
- package/bleed/types.d.ts +37 -0
- package/box/Box.d.ts +1 -1
- package/box/Box.js +30 -81
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +13 -0
- 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/bulleted-list/types.js +5 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +63 -122
- package/button/Button.stories.tsx +164 -96
- package/button/Button.test.js +38 -0
- package/button/types.d.ts +12 -12
- package/card/Card.d.ts +1 -1
- package/card/Card.js +58 -102
- package/card/Card.stories.tsx +13 -43
- package/card/Card.test.js +39 -0
- 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 +199 -0
- package/checkbox/types.d.ts +19 -7
- package/chip/Chip.d.ts +1 -1
- package/chip/Chip.js +46 -124
- package/chip/Chip.stories.tsx +123 -30
- package/chip/Chip.test.js +41 -0
- package/chip/types.d.ts +8 -16
- 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 +1003 -1338
- 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/container/types.js +5 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.js +173 -308
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +808 -0
- 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 -129
- package/dialog/Dialog.stories.tsx +320 -167
- package/dialog/Dialog.test.js +307 -0
- package/dialog/types.d.ts +18 -25
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +244 -327
- package/dropdown/Dropdown.stories.tsx +438 -0
- package/dropdown/Dropdown.test.js +599 -0
- 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 +36 -27
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +250 -292
- package/file-input/FileInput.stories.tsx +618 -0
- package/file-input/FileInput.test.js +459 -0
- 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/flex/types.js +5 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +70 -192
- package/footer/Footer.stories.tsx +60 -19
- package/footer/Footer.test.js +85 -0
- 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/grid/types.js +5 -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 +66 -0
- 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.stories.tsx +3 -2
- package/heading/Heading.test.js +169 -0
- 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/image/types.js +5 -0
- package/inset/Inset.d.ts +3 -0
- package/inset/Inset.js +43 -0
- package/inset/Inset.stories.tsx +230 -0
- package/inset/types.d.ts +37 -0
- package/inset/types.js +5 -0
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +83 -174
- 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 +64 -110
- package/link/Link.stories.tsx +159 -52
- package/link/Link.test.js +63 -0
- package/link/types.d.ts +15 -35
- package/main.d.ts +17 -18
- package/main.js +68 -120
- 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 +830 -0
- package/number-input/types.d.ts +28 -15
- package/package.json +46 -45
- 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 +335 -0
- 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 +3 -35
- package/password-input/PasswordInput.test.js +198 -0
- 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 +93 -0
- 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 +4 -0
- package/radio-group/Radio.js +124 -0
- package/radio-group/RadioGroup.d.ts +4 -0
- package/radio-group/RadioGroup.js +235 -0
- package/radio-group/RadioGroup.stories.tsx +214 -0
- package/radio-group/RadioGroup.test.js +756 -0
- package/radio-group/types.d.ts +114 -0
- package/radio-group/types.js +5 -0
- 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 +75 -32
- package/resultset-table/ResultsetTable.test.js +305 -0
- 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.d.ts +4 -0
- package/select/Select.js +230 -503
- package/select/Select.stories.tsx +603 -204
- package/select/Select.test.js +2370 -0
- package/select/types.d.ts +209 -0
- package/select/types.js +5 -0
- 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 -134
- package/sidenav/Sidenav.test.js +37 -0
- 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 +254 -0
- package/slider/types.d.ts +11 -3
- package/spinner/Spinner.js +31 -75
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
- package/spinner/Spinner.test.js +55 -0
- 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 +45 -68
- package/switch/Switch.test.js +180 -0
- 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} +179 -1
- package/table/Table.test.js +21 -0
- 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 +317 -146
- package/tabs/Tabs.stories.tsx +123 -18
- package/tabs/Tabs.test.js +294 -0
- package/tabs/types.d.ts +46 -24
- package/tag/Tag.d.ts +1 -1
- package/tag/Tag.js +43 -85
- package/tag/Tag.stories.tsx +38 -28
- package/tag/Tag.test.js +49 -0
- package/tag/types.d.ts +25 -16
- 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 +325 -539
- package/text-input/TextInput.stories.tsx +280 -271
- package/text-input/TextInput.test.js +1739 -0
- package/text-input/types.d.ts +71 -25
- package/textarea/Textarea.js +85 -135
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +406 -0
- package/textarea/types.d.ts +27 -16
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +95 -111
- package/toggle-group/ToggleGroup.stories.tsx +76 -36
- package/toggle-group/ToggleGroup.test.js +137 -0
- package/toggle-group/types.d.ts +66 -36
- 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 +114 -0
- package/wizard/types.d.ts +12 -8
- package/ThemeContext.d.ts +0 -15
- package/ThemeContext.js +0 -243
- package/V3Select/V3Select.js +0 -455
- package/V3Select/index.d.ts +0 -27
- package/V3Textarea/V3Textarea.js +0 -260
- package/V3Textarea/index.d.ts +0 -27
- package/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/list/List.d.ts +0 -8
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -85
- 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/types.d.ts +0 -54
- package/resultsetTable/ResultsetTable.js +0 -251
- package/row/Row.d.ts +0 -11
- package/row/Row.js +0 -124
- package/row/Row.stories.tsx +0 -223
- package/select/index.d.ts +0 -131
- package/slider/Slider.stories.tsx +0 -177
- package/stack/Stack.d.ts +0 -10
- package/stack/Stack.js +0 -94
- package/stack/Stack.stories.tsx +0 -150
- 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 -135
- package/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- package/upload/Upload.js +0 -201
- package/upload/buttons-upload/ButtonsUpload.js +0 -111
- package/upload/buttons-upload/Icons.js +0 -40
- package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
- package/upload/dragAndDropArea/Icons.js +0 -39
- package/upload/file-upload/FileToUpload.js +0 -115
- package/upload/file-upload/Icons.js +0 -66
- package/upload/files-upload/FilesToUpload.js +0 -109
- package/upload/index.d.ts +0 -15
- package/upload/transaction/Icons.js +0 -160
- package/upload/transaction/Transaction.js +0 -104
- package/upload/transactions/Transactions.js +0 -94
- /package/{radio → action-icon}/types.js +0 -0
- /package/{resultsetTable → badge}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → bleed/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,139 +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
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
-
|
|
14
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
15
|
-
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
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 ? [] : ""),
|
|
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.iconSrc || 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
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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, {
|
|
131
108
|
optionLabel: option.label
|
|
132
|
-
}
|
|
109
|
+
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
110
|
+
src: option.icon
|
|
111
|
+
}) : option.icon), option.label && /*#__PURE__*/_react["default"].createElement(LabelContainer, null, option.label)));
|
|
133
112
|
}))));
|
|
134
113
|
};
|
|
135
|
-
|
|
136
|
-
|
|
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) {
|
|
137
126
|
return props.disabled ? props.theme.disabledLabelFontColor : props.theme.labelFontColor;
|
|
138
127
|
}, function (props) {
|
|
139
128
|
return props.theme.labelFontFamily;
|
|
@@ -146,8 +135,7 @@ var Label = _styledComponents["default"].label(_templateObject || (_templateObje
|
|
|
146
135
|
}, function (props) {
|
|
147
136
|
return props.theme.labelLineHeight;
|
|
148
137
|
});
|
|
149
|
-
|
|
150
|
-
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) {
|
|
151
139
|
return props.disabled ? props.theme.disabledHelperTextFontcolor : props.theme.helperTextFontColor;
|
|
152
140
|
}, function (props) {
|
|
153
141
|
return props.theme.helperTextFontFamily;
|
|
@@ -160,20 +148,7 @@ var HelperText = _styledComponents["default"].span(_templateObject2 || (_templat
|
|
|
160
148
|
}, function (props) {
|
|
161
149
|
return props.theme.helperTextLineHeight;
|
|
162
150
|
});
|
|
163
|
-
|
|
164
|
-
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) {
|
|
165
|
-
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
166
|
-
}, function (props) {
|
|
167
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
|
|
168
|
-
}, function (props) {
|
|
169
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
|
|
170
|
-
}, function (props) {
|
|
171
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
|
|
172
|
-
}, function (props) {
|
|
173
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
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) {
|
|
177
152
|
return props.theme.containerBorderThickness;
|
|
178
153
|
}, function (props) {
|
|
179
154
|
return props.theme.containerBorderStyle;
|
|
@@ -181,18 +156,36 @@ var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_te
|
|
|
181
156
|
return props.theme.containerBorderRadius;
|
|
182
157
|
}, function (props) {
|
|
183
158
|
return props.theme.containerBorderColor;
|
|
184
|
-
}, function (props) {
|
|
185
|
-
return props.theme.containerBackgroundColor;
|
|
186
159
|
}, function (props) {
|
|
187
160
|
return props.theme.containerMarginTop;
|
|
161
|
+
}, function (props) {
|
|
162
|
+
return props.theme.containerBackgroundColor;
|
|
188
163
|
});
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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;
|
|
178
|
+
}, function (props) {
|
|
179
|
+
return props.selected ? props.theme.selectedHoverBackgroundColor : props.theme.unselectedHoverBackgroundColor;
|
|
192
180
|
}, function (props) {
|
|
193
|
-
return
|
|
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;
|
|
194
188
|
});
|
|
195
|
-
|
|
196
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) {
|
|
197
190
|
return props.theme.optionLabelFontFamily;
|
|
198
191
|
}, function (props) {
|
|
@@ -202,16 +195,7 @@ var LabelContainer = _styledComponents["default"].span(_templateObject6 || (_tem
|
|
|
202
195
|
}, function (props) {
|
|
203
196
|
return props.theme.optionLabelFontWeight;
|
|
204
197
|
});
|
|
205
|
-
|
|
206
|
-
var OptionContent = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n align-items: center;\n"])));
|
|
207
|
-
|
|
208
|
-
var Icon = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n height: 24px;\n width: 24px;\n margin-right: ", ";\n"])), function (props) {
|
|
209
|
-
return props.optionLabel && props.theme.iconMarginRight;
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
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) {
|
|
213
199
|
return props.optionLabel && props.theme.iconMarginRight;
|
|
214
200
|
});
|
|
215
|
-
|
|
216
|
-
var _default = DxcToggleGroup;
|
|
217
|
-
exports["default"] = _default;
|
|
201
|
+
var _default = exports["default"] = DxcToggleGroup;
|
|
@@ -3,42 +3,38 @@ 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
|
|
|
12
|
-
const ethernetSVG = (
|
|
13
|
-
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<path d="M0,0h24v24H0V0z" fill="none" />
|
|
25
|
-
</g>
|
|
13
|
+
const ethernetSVG = (
|
|
14
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
15
|
+
<path d="M0 0h24v24H0V0z" fill="none" />
|
|
16
|
+
<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" />
|
|
17
|
+
</svg>
|
|
18
|
+
);
|
|
19
|
+
const gMobileSVG = (
|
|
20
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
21
|
+
<g>
|
|
22
|
+
<path d="M0,0h24v24H0V0z" fill="none" />
|
|
23
|
+
</g>
|
|
24
|
+
<g>
|
|
26
25
|
<g>
|
|
27
|
-
<
|
|
28
|
-
<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" />
|
|
29
|
-
</g>
|
|
26
|
+
<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" />
|
|
30
27
|
</g>
|
|
31
|
-
</
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const wifiSVG = (
|
|
35
|
-
|
|
36
|
-
<
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
};
|
|
28
|
+
</g>
|
|
29
|
+
</svg>
|
|
30
|
+
);
|
|
31
|
+
const wifiSVG = (
|
|
32
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
33
|
+
<path d="M0 0h24v24H0V0zm0 0h24v24H0V0z" fill="none" />
|
|
34
|
+
<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" />
|
|
35
|
+
</svg>
|
|
36
|
+
);
|
|
37
|
+
|
|
42
38
|
const options = [
|
|
43
39
|
{
|
|
44
40
|
value: 1,
|
|
@@ -46,7 +42,7 @@ const options = [
|
|
|
46
42
|
},
|
|
47
43
|
{
|
|
48
44
|
value: 2,
|
|
49
|
-
label: "
|
|
45
|
+
label: "X",
|
|
50
46
|
},
|
|
51
47
|
{
|
|
52
48
|
value: 3,
|
|
@@ -57,14 +53,17 @@ const optionsWithIcon = [
|
|
|
57
53
|
{
|
|
58
54
|
value: 1,
|
|
59
55
|
icon: wifiSVG,
|
|
56
|
+
title: "WiFi connection",
|
|
60
57
|
},
|
|
61
58
|
{
|
|
62
59
|
value: 2,
|
|
63
60
|
icon: ethernetSVG,
|
|
61
|
+
title: "Ethernet connection",
|
|
64
62
|
},
|
|
65
63
|
{
|
|
66
64
|
value: 3,
|
|
67
65
|
icon: gMobileSVG,
|
|
66
|
+
title: "3G Mobile data connection",
|
|
68
67
|
},
|
|
69
68
|
];
|
|
70
69
|
const optionsWithIconAndLabel = [
|
|
@@ -91,9 +90,19 @@ const twoOptions = [
|
|
|
91
90
|
},
|
|
92
91
|
{
|
|
93
92
|
value: 2,
|
|
94
|
-
label: "
|
|
93
|
+
label: "X",
|
|
95
94
|
},
|
|
96
95
|
];
|
|
96
|
+
|
|
97
|
+
const opinionatedTheme = {
|
|
98
|
+
toggleGroup: {
|
|
99
|
+
selectedBaseColor: "#5f249f",
|
|
100
|
+
selectedFontColor: "#ffffff",
|
|
101
|
+
unselectedBaseColor: "#e6e6e6",
|
|
102
|
+
unselectedFontColor: "#000000",
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
|
|
97
106
|
export const Chromatic = () => (
|
|
98
107
|
<>
|
|
99
108
|
<ExampleContainer>
|
|
@@ -102,7 +111,7 @@ export const Chromatic = () => (
|
|
|
102
111
|
</ExampleContainer>
|
|
103
112
|
<ExampleContainer>
|
|
104
113
|
<Title title="Selected" theme="light" level={4} />
|
|
105
|
-
<DxcToggleGroup label="Selected" helperText="HelperText"
|
|
114
|
+
<DxcToggleGroup label="Selected" helperText="HelperText" defaultValue={2} options={options} />
|
|
106
115
|
</ExampleContainer>
|
|
107
116
|
<ExampleContainer>
|
|
108
117
|
<Title title="Icons toggle group" theme="light" level={4} />
|
|
@@ -114,11 +123,11 @@ export const Chromatic = () => (
|
|
|
114
123
|
</ExampleContainer>
|
|
115
124
|
<ExampleContainer>
|
|
116
125
|
<Title title="Disabled" theme="light" level={4} />
|
|
117
|
-
<DxcToggleGroup label="Disabled"
|
|
126
|
+
<DxcToggleGroup label="Disabled" defaultValue={2} options={options} disabled />
|
|
118
127
|
</ExampleContainer>
|
|
119
128
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
120
129
|
<Title title="Hovered" theme="light" level={4} />
|
|
121
|
-
<DxcToggleGroup label="Hovered" options={twoOptions}
|
|
130
|
+
<DxcToggleGroup label="Hovered" options={twoOptions} defaultValue={2} />
|
|
122
131
|
</ExampleContainer>
|
|
123
132
|
<ExampleContainer>
|
|
124
133
|
<Title title="Multiple toggleGroup" theme="light" level={4} />
|
|
@@ -126,7 +135,7 @@ export const Chromatic = () => (
|
|
|
126
135
|
label="Toggle group"
|
|
127
136
|
helperText="Please select one or more"
|
|
128
137
|
options={options}
|
|
129
|
-
|
|
138
|
+
defaultValue={[1, 3]}
|
|
130
139
|
multiple
|
|
131
140
|
></DxcToggleGroup>
|
|
132
141
|
</ExampleContainer>
|
|
@@ -159,6 +168,37 @@ export const Chromatic = () => (
|
|
|
159
168
|
<Title title="xxLarge" theme="light" level={4} />
|
|
160
169
|
<DxcToggleGroup label="xxLarge margin" options={options} margin="xxlarge" />
|
|
161
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>
|
|
162
202
|
</>
|
|
163
203
|
);
|
|
164
204
|
const OptionSelected = () => <DxcToggleGroup label="Toggle group" helperText="HelperText" options={options} />;
|
|
@@ -172,7 +212,7 @@ ToggleGroupSelectedActived.play = async ({ canvasElement }) => {
|
|
|
172
212
|
export const ToggleGroupUnselectedActived = OptionSelected.bind({});
|
|
173
213
|
ToggleGroupUnselectedActived.play = async ({ canvasElement }) => {
|
|
174
214
|
const canvas = within(canvasElement);
|
|
175
|
-
const option = canvas.getByText("
|
|
215
|
+
const option = canvas.getByText("X");
|
|
176
216
|
await userEvent.click(option);
|
|
177
217
|
userEvent.tab();
|
|
178
218
|
};
|