@dxc-technology/halstack-react 0.0.0-3716032 → 0.0.0-381476a

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.
Files changed (340) hide show
  1. package/BackgroundColorContext.d.ts +3 -3
  2. package/BackgroundColorContext.js +6 -19
  3. package/HalstackContext.d.ts +1356 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +117 -190
  8. package/accordion/Accordion.stories.tsx +103 -120
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +11 -22
  11. package/accordion-group/AccordionGroup.d.ts +5 -4
  12. package/accordion-group/AccordionGroup.js +38 -107
  13. package/accordion-group/AccordionGroup.stories.tsx +95 -68
  14. package/accordion-group/AccordionGroup.test.js +98 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +17 -22
  18. package/alert/Alert.js +22 -55
  19. package/alert/Alert.stories.tsx +28 -0
  20. package/alert/Alert.test.js +75 -0
  21. package/alert/types.d.ts +5 -5
  22. package/badge/Badge.d.ts +4 -0
  23. package/badge/Badge.js +8 -19
  24. package/badge/types.d.ts +5 -0
  25. package/bleed/Bleed.d.ts +3 -0
  26. package/bleed/Bleed.js +43 -0
  27. package/bleed/Bleed.stories.tsx +342 -0
  28. package/bleed/types.d.ts +37 -0
  29. package/box/Box.d.ts +1 -1
  30. package/box/Box.js +29 -77
  31. package/box/Box.stories.tsx +38 -51
  32. package/box/Box.test.js +13 -0
  33. package/box/types.d.ts +3 -14
  34. package/bulleted-list/BulletedList.d.ts +7 -0
  35. package/bulleted-list/BulletedList.js +99 -0
  36. package/bulleted-list/BulletedList.stories.tsx +116 -0
  37. package/bulleted-list/types.d.ts +38 -0
  38. package/button/Button.d.ts +1 -1
  39. package/button/Button.js +61 -119
  40. package/button/Button.stories.tsx +164 -96
  41. package/button/Button.test.js +36 -0
  42. package/button/types.d.ts +12 -12
  43. package/card/Card.d.ts +1 -1
  44. package/card/Card.js +58 -102
  45. package/card/Card.stories.tsx +13 -43
  46. package/card/Card.test.js +39 -0
  47. package/card/types.d.ts +6 -11
  48. package/checkbox/Checkbox.d.ts +2 -2
  49. package/checkbox/Checkbox.js +145 -178
  50. package/checkbox/Checkbox.stories.tsx +166 -136
  51. package/checkbox/Checkbox.test.js +199 -0
  52. package/checkbox/types.d.ts +18 -6
  53. package/chip/Chip.d.ts +1 -1
  54. package/chip/Chip.js +46 -124
  55. package/chip/Chip.stories.tsx +123 -30
  56. package/chip/Chip.test.js +41 -0
  57. package/chip/types.d.ts +8 -16
  58. package/common/OpenSans.css +68 -80
  59. package/common/coreTokens.d.ts +146 -0
  60. package/common/coreTokens.js +166 -0
  61. package/common/utils.d.ts +1 -0
  62. package/common/utils.js +6 -12
  63. package/common/variables.d.ts +1499 -0
  64. package/common/variables.js +1117 -1320
  65. package/date-input/Calendar.d.ts +4 -0
  66. package/date-input/Calendar.js +214 -0
  67. package/date-input/DateInput.js +173 -308
  68. package/date-input/DateInput.stories.tsx +203 -56
  69. package/date-input/DateInput.test.js +808 -0
  70. package/date-input/DatePicker.d.ts +4 -0
  71. package/date-input/DatePicker.js +115 -0
  72. package/date-input/Icons.d.ts +6 -0
  73. package/date-input/Icons.js +58 -0
  74. package/date-input/YearPicker.d.ts +4 -0
  75. package/date-input/YearPicker.js +100 -0
  76. package/date-input/types.d.ts +86 -22
  77. package/dialog/Dialog.d.ts +1 -1
  78. package/dialog/Dialog.js +70 -129
  79. package/dialog/Dialog.stories.tsx +154 -171
  80. package/dialog/Dialog.test.js +307 -0
  81. package/dialog/types.d.ts +18 -25
  82. package/dropdown/Dropdown.d.ts +1 -1
  83. package/dropdown/Dropdown.js +244 -327
  84. package/dropdown/Dropdown.stories.tsx +255 -64
  85. package/dropdown/Dropdown.test.js +599 -0
  86. package/dropdown/DropdownMenu.d.ts +4 -0
  87. package/dropdown/DropdownMenu.js +63 -0
  88. package/dropdown/DropdownMenuItem.d.ts +4 -0
  89. package/dropdown/DropdownMenuItem.js +67 -0
  90. package/dropdown/types.d.ts +36 -27
  91. package/file-input/FileInput.d.ts +2 -2
  92. package/file-input/FileInput.js +224 -356
  93. package/file-input/FileInput.stories.tsx +123 -11
  94. package/file-input/FileInput.test.js +408 -0
  95. package/file-input/FileItem.d.ts +4 -14
  96. package/file-input/FileItem.js +50 -99
  97. package/file-input/types.d.ts +25 -8
  98. package/flex/Flex.d.ts +4 -0
  99. package/flex/Flex.js +57 -0
  100. package/flex/Flex.stories.tsx +112 -0
  101. package/flex/types.d.ts +97 -0
  102. package/flex/types.js +5 -0
  103. package/footer/Footer.d.ts +1 -1
  104. package/footer/Footer.js +54 -179
  105. package/footer/Footer.stories.tsx +41 -19
  106. package/footer/Footer.test.js +85 -0
  107. package/footer/Icons.d.ts +2 -2
  108. package/footer/Icons.js +3 -8
  109. package/footer/types.d.ts +21 -22
  110. package/grid/Grid.d.ts +7 -0
  111. package/grid/Grid.js +76 -0
  112. package/grid/Grid.stories.tsx +219 -0
  113. package/grid/types.d.ts +115 -0
  114. package/grid/types.js +5 -0
  115. package/header/Header.d.ts +4 -3
  116. package/header/Header.js +104 -197
  117. package/header/Header.stories.tsx +152 -63
  118. package/header/Header.test.js +66 -0
  119. package/header/Icons.d.ts +2 -2
  120. package/header/Icons.js +4 -9
  121. package/header/types.d.ts +5 -20
  122. package/heading/Heading.js +10 -32
  123. package/heading/Heading.stories.tsx +3 -2
  124. package/heading/Heading.test.js +169 -0
  125. package/heading/types.d.ts +7 -7
  126. package/image/Image.d.ts +4 -0
  127. package/image/Image.js +70 -0
  128. package/image/Image.stories.tsx +127 -0
  129. package/image/types.d.ts +72 -0
  130. package/image/types.js +5 -0
  131. package/inset/Inset.d.ts +3 -0
  132. package/inset/Inset.js +43 -0
  133. package/inset/Inset.stories.tsx +230 -0
  134. package/inset/types.d.ts +37 -0
  135. package/inset/types.js +5 -0
  136. package/layout/ApplicationLayout.d.ts +16 -6
  137. package/layout/ApplicationLayout.js +83 -174
  138. package/layout/ApplicationLayout.stories.tsx +85 -94
  139. package/layout/Icons.d.ts +8 -0
  140. package/layout/Icons.js +51 -48
  141. package/layout/SidenavContext.d.ts +5 -0
  142. package/layout/SidenavContext.js +13 -0
  143. package/layout/types.d.ts +19 -35
  144. package/link/Link.d.ts +3 -2
  145. package/link/Link.js +64 -110
  146. package/link/Link.stories.tsx +159 -52
  147. package/link/Link.test.js +63 -0
  148. package/link/types.d.ts +15 -35
  149. package/main.d.ts +14 -16
  150. package/main.js +61 -120
  151. package/nav-tabs/NavTabs.d.ts +8 -0
  152. package/nav-tabs/NavTabs.js +90 -0
  153. package/nav-tabs/NavTabs.stories.tsx +274 -0
  154. package/nav-tabs/NavTabs.test.js +75 -0
  155. package/nav-tabs/Tab.d.ts +4 -0
  156. package/nav-tabs/Tab.js +117 -0
  157. package/nav-tabs/types.d.ts +52 -0
  158. package/nav-tabs/types.js +5 -0
  159. package/number-input/NumberInput.d.ts +7 -0
  160. package/number-input/NumberInput.js +27 -43
  161. package/number-input/NumberInput.stories.tsx +44 -28
  162. package/number-input/NumberInput.test.js +830 -0
  163. package/number-input/types.d.ts +28 -15
  164. package/package.json +44 -43
  165. package/paginator/Icons.d.ts +5 -0
  166. package/paginator/Icons.js +21 -47
  167. package/paginator/Paginator.js +33 -87
  168. package/paginator/Paginator.stories.tsx +24 -0
  169. package/paginator/Paginator.test.js +335 -0
  170. package/paginator/types.d.ts +3 -3
  171. package/paragraph/Paragraph.d.ts +5 -0
  172. package/paragraph/Paragraph.js +27 -0
  173. package/paragraph/Paragraph.stories.tsx +27 -0
  174. package/password-input/Icons.d.ts +6 -0
  175. package/password-input/Icons.js +35 -0
  176. package/password-input/PasswordInput.js +57 -123
  177. package/password-input/PasswordInput.stories.tsx +3 -34
  178. package/password-input/PasswordInput.test.js +198 -0
  179. package/password-input/types.d.ts +21 -17
  180. package/progress-bar/ProgressBar.js +67 -87
  181. package/progress-bar/ProgressBar.stories.tsx +93 -0
  182. package/progress-bar/ProgressBar.test.js +93 -0
  183. package/progress-bar/types.d.ts +3 -3
  184. package/quick-nav/QuickNav.d.ts +4 -0
  185. package/quick-nav/QuickNav.js +94 -0
  186. package/quick-nav/QuickNav.stories.tsx +356 -0
  187. package/quick-nav/types.d.ts +21 -0
  188. package/quick-nav/types.js +5 -0
  189. package/radio-group/Radio.d.ts +4 -0
  190. package/radio-group/Radio.js +124 -0
  191. package/radio-group/RadioGroup.d.ts +4 -0
  192. package/radio-group/RadioGroup.js +235 -0
  193. package/radio-group/RadioGroup.stories.tsx +214 -0
  194. package/radio-group/RadioGroup.test.js +756 -0
  195. package/radio-group/types.d.ts +114 -0
  196. package/radio-group/types.js +5 -0
  197. package/resultset-table/Icons.d.ts +7 -0
  198. package/resultset-table/Icons.js +47 -0
  199. package/resultset-table/ResultsetTable.js +159 -0
  200. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +56 -32
  201. package/resultset-table/ResultsetTable.test.js +305 -0
  202. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  203. package/resultset-table/types.js +5 -0
  204. package/select/Icons.d.ts +10 -0
  205. package/select/Icons.js +89 -0
  206. package/select/Listbox.d.ts +4 -0
  207. package/select/Listbox.js +143 -0
  208. package/select/Option.d.ts +4 -0
  209. package/select/Option.js +80 -0
  210. package/select/Select.js +210 -491
  211. package/select/Select.stories.tsx +603 -204
  212. package/select/Select.test.js +2334 -0
  213. package/select/types.d.ts +64 -25
  214. package/sidenav/Icons.d.ts +7 -0
  215. package/sidenav/Icons.js +47 -0
  216. package/sidenav/Sidenav.d.ts +6 -5
  217. package/sidenav/Sidenav.js +133 -70
  218. package/sidenav/Sidenav.stories.tsx +251 -134
  219. package/sidenav/Sidenav.test.js +37 -0
  220. package/sidenav/types.d.ts +52 -26
  221. package/slider/Slider.d.ts +2 -2
  222. package/slider/Slider.js +145 -168
  223. package/slider/Slider.test.js +254 -0
  224. package/slider/types.d.ts +11 -3
  225. package/spinner/Spinner.js +28 -64
  226. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
  227. package/spinner/Spinner.test.js +55 -0
  228. package/spinner/types.d.ts +3 -3
  229. package/switch/Switch.d.ts +2 -2
  230. package/switch/Switch.js +152 -112
  231. package/switch/Switch.stories.tsx +45 -68
  232. package/switch/Switch.test.js +180 -0
  233. package/switch/types.d.ts +13 -5
  234. package/table/Table.js +7 -26
  235. package/table/{Table.stories.jsx → Table.stories.tsx} +81 -1
  236. package/table/Table.test.js +21 -0
  237. package/table/types.d.ts +8 -8
  238. package/tabs/Tab.d.ts +4 -0
  239. package/tabs/Tab.js +113 -0
  240. package/tabs/Tabs.d.ts +1 -1
  241. package/tabs/Tabs.js +318 -146
  242. package/tabs/Tabs.stories.tsx +122 -17
  243. package/tabs/Tabs.test.js +294 -0
  244. package/tabs/types.d.ts +46 -24
  245. package/tag/Tag.d.ts +1 -1
  246. package/tag/Tag.js +43 -85
  247. package/tag/Tag.stories.tsx +38 -28
  248. package/tag/Tag.test.js +49 -0
  249. package/tag/types.d.ts +25 -16
  250. package/text-input/Icons.d.ts +8 -0
  251. package/text-input/Icons.js +56 -0
  252. package/text-input/Suggestion.d.ts +4 -0
  253. package/text-input/Suggestion.js +67 -0
  254. package/text-input/Suggestions.d.ts +4 -0
  255. package/text-input/Suggestions.js +89 -0
  256. package/text-input/TextInput.js +301 -495
  257. package/text-input/TextInput.stories.tsx +280 -271
  258. package/text-input/TextInput.test.js +1739 -0
  259. package/text-input/types.d.ts +71 -25
  260. package/textarea/Textarea.js +79 -123
  261. package/textarea/Textarea.stories.tsx +175 -0
  262. package/textarea/Textarea.test.js +406 -0
  263. package/textarea/types.d.ts +27 -16
  264. package/toggle-group/ToggleGroup.d.ts +2 -2
  265. package/toggle-group/ToggleGroup.js +95 -105
  266. package/toggle-group/ToggleGroup.stories.tsx +53 -8
  267. package/toggle-group/ToggleGroup.test.js +137 -0
  268. package/toggle-group/types.d.ts +34 -17
  269. package/typography/Typography.d.ts +4 -0
  270. package/typography/Typography.js +23 -0
  271. package/typography/Typography.stories.tsx +198 -0
  272. package/typography/types.d.ts +18 -0
  273. package/typography/types.js +5 -0
  274. package/useTheme.d.ts +1251 -1
  275. package/useTheme.js +4 -11
  276. package/useTranslatedLabels.d.ts +85 -0
  277. package/useTranslatedLabels.js +14 -0
  278. package/utils/BaseTypography.d.ts +21 -0
  279. package/utils/BaseTypography.js +94 -0
  280. package/utils/FocusLock.d.ts +13 -0
  281. package/utils/FocusLock.js +114 -0
  282. package/wizard/Wizard.d.ts +1 -1
  283. package/wizard/Wizard.js +70 -101
  284. package/wizard/Wizard.stories.tsx +48 -19
  285. package/wizard/Wizard.test.js +114 -0
  286. package/wizard/types.d.ts +12 -8
  287. package/ThemeContext.d.ts +0 -15
  288. package/ThemeContext.js +0 -243
  289. package/V3Select/V3Select.js +0 -455
  290. package/V3Select/index.d.ts +0 -27
  291. package/V3Textarea/V3Textarea.js +0 -260
  292. package/V3Textarea/index.d.ts +0 -27
  293. package/card/ice-cream.jpg +0 -0
  294. package/common/RequiredComponent.js +0 -32
  295. package/date/Date.js +0 -373
  296. package/date/index.d.ts +0 -27
  297. package/input-text/Icons.js +0 -22
  298. package/input-text/InputText.js +0 -611
  299. package/input-text/index.d.ts +0 -36
  300. package/list/List.d.ts +0 -8
  301. package/list/List.js +0 -47
  302. package/list/List.stories.tsx +0 -85
  303. package/number-input/NumberInputContext.d.ts +0 -4
  304. package/number-input/NumberInputContext.js +0 -19
  305. package/number-input/numberInputContextTypes.d.ts +0 -19
  306. package/progress-bar/ProgressBar.stories.jsx +0 -58
  307. package/radio/Radio.d.ts +0 -4
  308. package/radio/Radio.js +0 -174
  309. package/radio/Radio.stories.tsx +0 -192
  310. package/radio/types.d.ts +0 -54
  311. package/resultsetTable/ResultsetTable.js +0 -251
  312. package/row/Row.d.ts +0 -11
  313. package/row/Row.js +0 -124
  314. package/row/Row.stories.tsx +0 -223
  315. package/slider/Slider.stories.tsx +0 -177
  316. package/stack/Stack.d.ts +0 -10
  317. package/stack/Stack.js +0 -94
  318. package/stack/Stack.stories.tsx +0 -150
  319. package/text/Text.d.ts +0 -7
  320. package/text/Text.js +0 -30
  321. package/text/Text.stories.tsx +0 -19
  322. package/textarea/Textarea.stories.jsx +0 -135
  323. package/toggle/Toggle.js +0 -186
  324. package/toggle/index.d.ts +0 -21
  325. package/upload/Upload.js +0 -201
  326. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  327. package/upload/buttons-upload/Icons.js +0 -40
  328. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  329. package/upload/dragAndDropArea/Icons.js +0 -39
  330. package/upload/file-upload/FileToUpload.js +0 -115
  331. package/upload/file-upload/Icons.js +0 -66
  332. package/upload/files-upload/FilesToUpload.js +0 -109
  333. package/upload/index.d.ts +0 -15
  334. package/upload/transaction/Icons.js +0 -160
  335. package/upload/transaction/Transaction.js +0 -104
  336. package/upload/transactions/Transactions.js +0 -94
  337. /package/{radio → badge}/types.js +0 -0
  338. /package/{resultsetTable → bleed}/types.js +0 -0
  339. /package/{number-input/numberInputContextTypes.js → bulleted-list/types.js} +0 -0
  340. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
@@ -1,11 +1,11 @@
1
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
- declare type Margin = {
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
- declare type Props = {
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 null.
63
+ * If there is no error, error will not be defined.
56
64
  */
57
65
  onChange?: (val: {
58
66
  value: string;
59
- error: string | null;
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 null.
73
+ * error will not be defined.
66
74
  */
67
75
  onBlur?: (val: {
68
76
  value: string;
69
- error: string | null;
77
+ error?: string;
70
78
  }) => void;
71
79
  /**
72
- * If it is defined, the component will change its appearance, showing
73
- * the error below the textarea. If it is not defined, the error
74
- * messages will be managed internally, but never displayed on its own.
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 null.
95
+ * events will not be defined.
85
96
  */
86
97
  pattern?: string;
87
98
  /**
88
- * Specifies the minimun length allowed by the textarea.
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 null.
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 null.
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 ('small' | 'medium' | 'large' | 'fillParent').
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 declare type RefType = HTMLDivElement;
140
+ export type RefType = HTMLDivElement;
130
141
  export default Props;
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
- import ToogleGroupPropsType from "./types";
3
- declare const DxcToggleGroup: ({ label, helperText, value, onChange, disabled, options, margin, multiple, tabIndex, }: ToogleGroupPropsType) => JSX.Element;
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,131 @@
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, _templateObject8, _templateObject9;
29
-
30
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
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 _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
18
+ var _Flex = _interopRequireDefault(require("../flex/Flex"));
19
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
20
+ 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); }
21
+ 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
22
  var DxcToggleGroup = function DxcToggleGroup(_ref) {
35
23
  var label = _ref.label,
36
- helperText = _ref.helperText,
37
- value = _ref.value,
38
- onChange = _ref.onChange,
39
- _ref$disabled = _ref.disabled,
40
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
41
- options = _ref.options,
42
- margin = _ref.margin,
43
- _ref$multiple = _ref.multiple,
44
- multiple = _ref$multiple === void 0 ? false : _ref$multiple,
45
- _ref$tabIndex = _ref.tabIndex,
46
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
24
+ helperText = _ref.helperText,
25
+ defaultValue = _ref.defaultValue,
26
+ value = _ref.value,
27
+ onChange = _ref.onChange,
28
+ _ref$disabled = _ref.disabled,
29
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
30
+ options = _ref.options,
31
+ margin = _ref.margin,
32
+ _ref$multiple = _ref.multiple,
33
+ multiple = _ref$multiple === void 0 ? false : _ref$multiple,
34
+ _ref$tabIndex = _ref.tabIndex,
35
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
36
+ var _useState = (0, _react.useState)("label-toggle-group-".concat((0, _uuid.v4)())),
37
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
38
+ toggleGroupLabelId = _useState2[0];
39
+ var _useState3 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : -1),
40
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
41
+ selectedValue = _useState4[0],
42
+ setSelectedValue = _useState4[1];
47
43
  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
-
44
+ var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
58
45
  var handleToggleChange = function handleToggleChange(selectedOption) {
59
46
  var newSelectedOptions;
60
-
61
47
  if (value == null) {
62
48
  if (multiple && Array.isArray(selectedValue)) {
63
49
  newSelectedOptions = selectedValue.map(function (value) {
64
50
  return value;
65
51
  });
66
-
67
52
  if (newSelectedOptions.includes(selectedOption)) {
68
53
  var index = newSelectedOptions.indexOf(selectedOption);
69
54
  newSelectedOptions.splice(index, 1);
70
55
  } else {
71
56
  newSelectedOptions.push(selectedOption);
72
57
  }
73
-
74
58
  setSelectedValue(newSelectedOptions);
75
59
  } else setSelectedValue(selectedOption === selectedValue ? null : selectedOption);
76
60
  } else if (multiple) {
77
61
  newSelectedOptions = Array.isArray(value) ? value.map(function (v) {
78
62
  return v;
79
63
  }) : value;
80
-
81
64
  if (newSelectedOptions.includes(selectedOption)) {
82
65
  var _index = newSelectedOptions.indexOf(selectedOption);
83
-
84
66
  newSelectedOptions.splice(_index, 1);
85
67
  } else newSelectedOptions.push(selectedOption);
86
68
  }
87
-
88
69
  onChange === null || onChange === void 0 ? void 0 : onChange(multiple ? newSelectedOptions : selectedOption);
89
70
  };
90
-
91
- var handleKeyPress = function handleKeyPress(event, optionValue) {
92
- event.preventDefault();
93
- if (!disabled && (event.nativeEvent.code === "Enter" || event.nativeEvent.code === "Space")) handleToggleChange(optionValue);
71
+ var handleOnKeyDown = function handleOnKeyDown(event, optionValue) {
72
+ switch (event.key) {
73
+ case "Enter":
74
+ case " ":
75
+ event.preventDefault();
76
+ handleToggleChange(optionValue);
77
+ }
94
78
  };
95
-
96
79
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
97
80
  theme: colorsTheme.toggleGroup
98
81
  }, /*#__PURE__*/_react["default"].createElement(ToggleGroup, {
99
- margin: margin,
100
- disabled: disabled
82
+ margin: margin
101
83
  }, /*#__PURE__*/_react["default"].createElement(Label, {
102
- htmlFor: toggleGroupId,
84
+ id: toggleGroupLabelId,
103
85
  disabled: disabled
104
86
  }, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
105
87
  disabled: disabled
106
88
  }, helperText), /*#__PURE__*/_react["default"].createElement(OptionsContainer, {
107
- id: toggleGroupId,
108
- role: multiple ? "group" : "radiogroup"
89
+ "aria-labelledby": toggleGroupLabelId
109
90
  }, options.map(function (option, i) {
110
- return /*#__PURE__*/_react["default"].createElement(ToggleContainer, {
111
- selected: multiple && Array.isArray(value) ? value ? value.includes(option.value) : Array.isArray(selectedValue) && selectedValue.includes(option.value) : value ? option.value === value : option.value === selectedValue,
112
- role: multiple ? "switch" : "radio",
113
- "aria-checked": multiple && Array.isArray(value) ? value ? value.includes(option.value) : Array.isArray(selectedValue) && selectedValue.includes(option.value) : value ? option.value === value : option.value === selectedValue,
114
- tabIndex: !disabled ? tabIndex : -1,
91
+ return /*#__PURE__*/_react["default"].createElement(ToggleButton, {
92
+ key: "toggle-".concat(i, "-").concat(option.label),
93
+ "aria-label": option.title,
94
+ "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,
95
+ disabled: disabled,
115
96
  onClick: function onClick() {
116
- return !disabled && handleToggleChange(option.value);
97
+ handleToggleChange(option.value);
117
98
  },
118
- isFirst: i === 0,
119
- isLast: i === options.length - 1,
120
- isIcon: option.icon,
121
- optionLabel: option.label,
122
- disabled: disabled,
123
- onKeyPress: function onKeyPress(event) {
124
- handleKeyPress(event, option.value);
99
+ onKeyDown: function onKeyDown(event) {
100
+ handleOnKeyDown(event, option.value);
125
101
  },
126
- key: "toggle-".concat(i, "-").concat(option.label)
127
- }, /*#__PURE__*/_react["default"].createElement(OptionContent, null, option.icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
102
+ tabIndex: !disabled ? tabIndex : -1,
103
+ title: option.title,
104
+ backgroundType: backgroundType,
105
+ hasIcon: option.icon,
106
+ optionLabel: option.label,
107
+ selected: multiple ? value ? Array.isArray(value) && value.includes(option.value) : Array.isArray(selectedValue) && selectedValue.includes(option.value) : value ? option.value === value : option.value === selectedValue
108
+ }, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
109
+ alignItems: "center"
110
+ }, option.icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
128
111
  optionLabel: option.label
129
- }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(Icon, {
112
+ }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
130
113
  src: option.icon
131
114
  }) : option.icon), option.label && /*#__PURE__*/_react["default"].createElement(LabelContainer, null, option.label)));
132
115
  }))));
133
116
  };
134
-
135
- var Label = _styledComponents["default"].label(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
117
+ 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) {
118
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
119
+ }, function (props) {
120
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
121
+ }, function (props) {
122
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
123
+ }, function (props) {
124
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
125
+ }, function (props) {
126
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
127
+ });
128
+ 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
129
  return props.disabled ? props.theme.disabledLabelFontColor : props.theme.labelFontColor;
137
130
  }, function (props) {
138
131
  return props.theme.labelFontFamily;
@@ -145,8 +138,7 @@ var Label = _styledComponents["default"].label(_templateObject || (_templateObje
145
138
  }, function (props) {
146
139
  return props.theme.labelLineHeight;
147
140
  });
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) {
141
+ 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
142
  return props.disabled ? props.theme.disabledHelperTextFontcolor : props.theme.helperTextFontColor;
151
143
  }, function (props) {
152
144
  return props.theme.helperTextFontFamily;
@@ -159,20 +151,7 @@ var HelperText = _styledComponents["default"].span(_templateObject2 || (_templat
159
151
  }, function (props) {
160
152
  return props.theme.helperTextLineHeight;
161
153
  });
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) {
154
+ 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
155
  return props.theme.containerBorderThickness;
177
156
  }, function (props) {
178
157
  return props.theme.containerBorderStyle;
@@ -180,18 +159,36 @@ var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_te
180
159
  return props.theme.containerBorderRadius;
181
160
  }, function (props) {
182
161
  return props.theme.containerBorderColor;
183
- }, function (props) {
184
- return props.theme.containerBackgroundColor;
185
162
  }, function (props) {
186
163
  return props.theme.containerMarginTop;
164
+ }, function (props) {
165
+ return props.theme.containerBackgroundColor;
187
166
  });
188
-
189
- var ToggleContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-right: ", ";\n\n ", "\n"])), function (props) {
190
- return !props.isLast && "4px";
167
+ 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) {
168
+ return props.optionLabel && props.hasIcon || props.optionLabel && !props.hasIcon ? props.theme.labelPaddingLeft : props.theme.iconPaddingLeft;
169
+ }, function (props) {
170
+ return props.optionLabel && props.hasIcon || props.optionLabel && !props.hasIcon ? props.theme.labelPaddingRight : props.theme.iconPaddingRight;
171
+ }, function (props) {
172
+ return props.theme.optionBorderThickness;
173
+ }, function (props) {
174
+ return props.theme.optionBorderStyle;
175
+ }, function (props) {
176
+ return props.theme.optionBorderRadius;
177
+ }, function (props) {
178
+ return props.selected ? props.theme.selectedBackgroundColor : props.theme.unselectedBackgroundColor;
179
+ }, function (props) {
180
+ return props.selected ? props.theme.selectedFontColor : props.theme.unselectedFontColor;
191
181
  }, function (props) {
192
- return "\n background-color: ".concat(props.selected ? props.disabled ? props.theme.selectedDisabledBackgroundColor : props.theme.selectedBackgroundColor : props.disabled ? props.theme.unselectedDisabledBackgroundColor : props.theme.unselectedBackgroundColor, ";\n border-width: ").concat(props.theme.optionBorderThickness, ";\n border-style: ").concat(props.theme.optionBorderStyle, ";\n border-radius: ").concat(props.theme.optionBorderRadius, ";\n padding-left: ").concat(props.optionLabel && props.isIcon || props.optionLabel && !props.isIcon ? props.theme.labelPaddingLeft : props.theme.iconPaddingLeft, ";\n padding-right: ").concat(props.optionLabel && props.isIcon || props.optionLabel && !props.isIcon ? props.theme.labelPaddingRight : props.theme.iconPaddingRight, ";\n ").concat(!props.disabled ? ":hover {\n background-color: ".concat(props.selected ? props.theme.selectedHoverBackgroundColor : props.theme.unselectedHoverBackgroundColor, ";\n }\n :active {\n background-color: ").concat(props.selected ? props.theme.selectedActiveBackgroundColor : props.theme.unselectedActiveBackgroundColor, ";\n color: #ffffff;\n } \n :focus {\n border-color: transparent;\n box-shadow: 0 0 0 ").concat(props.theme.optionFocusBorderThickness, " ").concat(props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor, ";\n }\n &:focus-visible {\n outline: none;\n }\n cursor: pointer;\n color: ").concat(props.selected ? props.theme.selectedFontColor : props.theme.unselectedFontColor, ";\n") : "color: ".concat(props.selected ? props.theme.selectedDisabledFontColor : props.theme.unselectedDisabledFontColor, ";\n cursor: not-allowed;"), "\n ");
182
+ return props.selected ? props.theme.selectedHoverBackgroundColor : props.theme.unselectedHoverBackgroundColor;
183
+ }, function (props) {
184
+ return props.selected ? props.theme.selectedActiveBackgroundColor : props.theme.unselectedActiveBackgroundColor;
185
+ }, function (props) {
186
+ return "0 0 0 ".concat(props.theme.optionFocusBorderThickness, " ").concat(props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor);
187
+ }, function (props) {
188
+ return props.selected ? props.theme.selectedDisabledBackgroundColor : props.theme.unselectedDisabledBackgroundColor;
189
+ }, function (props) {
190
+ return props.selected ? props.theme.selectedDisabledFontColor : props.theme.unselectedDisabledFontColor;
193
191
  });
194
-
195
192
  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
193
  return props.theme.optionLabelFontFamily;
197
194
  }, function (props) {
@@ -201,14 +198,7 @@ var LabelContainer = _styledComponents["default"].span(_templateObject6 || (_tem
201
198
  }, function (props) {
202
199
  return props.theme.optionLabelFontWeight;
203
200
  });
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) {
201
+ 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
202
  return props.optionLabel && props.theme.iconMarginRight;
211
203
  });
212
-
213
- var _default = DxcToggleGroup;
214
- exports["default"] = _default;
204
+ 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: "ToggleGroup",
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: "Twitter",
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: "Twitter",
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" value={2} options={options} />
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" value={2} options={options} 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} value={2} />
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
- value={[1, 3]}
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("Twitter");
215
+ const option = canvas.getByText("X");
171
216
  await userEvent.click(option);
172
217
  userEvent.tab();
173
218
  };