@dxc-technology/halstack-react 0.0.0-951bb80 → 0.0.0-95b5b84

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 (433) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1249 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.accessibility.test.js +71 -0
  7. package/accordion/Accordion.d.ts +1 -1
  8. package/accordion/Accordion.js +104 -182
  9. package/accordion/Accordion.stories.tsx +85 -141
  10. package/accordion/Accordion.test.js +56 -0
  11. package/accordion/types.d.ts +10 -17
  12. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  13. package/accordion-group/AccordionGroup.d.ts +3 -3
  14. package/accordion-group/AccordionGroup.js +38 -107
  15. package/accordion-group/AccordionGroup.stories.tsx +95 -68
  16. package/accordion-group/AccordionGroup.test.js +98 -0
  17. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  18. package/accordion-group/AccordionGroupAccordion.js +31 -0
  19. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  20. package/accordion-group/AccordionGroupContext.js +8 -0
  21. package/accordion-group/types.d.ts +16 -17
  22. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  23. package/action-icon/ActionIcon.d.ts +4 -0
  24. package/action-icon/ActionIcon.js +48 -0
  25. package/action-icon/ActionIcon.stories.tsx +41 -0
  26. package/action-icon/ActionIcon.test.js +64 -0
  27. package/action-icon/types.d.ts +26 -0
  28. package/alert/Alert.accessibility.test.js +95 -0
  29. package/alert/Alert.js +35 -125
  30. package/alert/Alert.stories.tsx +28 -0
  31. package/alert/Alert.test.js +75 -0
  32. package/alert/types.d.ts +5 -5
  33. package/badge/Badge.accessibility.test.js +129 -0
  34. package/badge/Badge.d.ts +4 -0
  35. package/badge/Badge.js +141 -41
  36. package/badge/Badge.stories.tsx +210 -0
  37. package/badge/Badge.test.js +30 -0
  38. package/badge/types.d.ts +54 -0
  39. package/bleed/Bleed.js +14 -55
  40. package/bleed/Bleed.stories.tsx +95 -95
  41. package/bleed/types.d.ts +26 -2
  42. package/box/Box.accessibility.test.js +33 -0
  43. package/box/Box.d.ts +1 -1
  44. package/box/Box.js +30 -81
  45. package/box/Box.stories.tsx +38 -51
  46. package/box/Box.test.js +13 -0
  47. package/box/types.d.ts +3 -14
  48. package/bulleted-list/BulletedList.accessibility.test.js +107 -0
  49. package/bulleted-list/BulletedList.d.ts +7 -0
  50. package/bulleted-list/BulletedList.js +92 -0
  51. package/bulleted-list/BulletedList.stories.tsx +115 -0
  52. package/bulleted-list/types.d.ts +38 -0
  53. package/button/Button.accessibility.test.js +127 -0
  54. package/button/Button.d.ts +1 -1
  55. package/button/Button.js +63 -113
  56. package/button/Button.stories.tsx +151 -100
  57. package/button/Button.test.js +38 -0
  58. package/button/types.d.ts +12 -8
  59. package/card/Card.accessibility.test.js +36 -0
  60. package/card/Card.d.ts +1 -1
  61. package/card/Card.js +58 -102
  62. package/card/Card.stories.tsx +12 -42
  63. package/card/Card.test.js +39 -0
  64. package/card/types.d.ts +6 -11
  65. package/checkbox/Checkbox.accessibility.test.js +87 -0
  66. package/checkbox/Checkbox.d.ts +2 -2
  67. package/checkbox/Checkbox.js +144 -182
  68. package/checkbox/Checkbox.stories.tsx +166 -136
  69. package/checkbox/Checkbox.test.js +199 -0
  70. package/checkbox/types.d.ts +18 -6
  71. package/chip/Chip.accessibility.test.js +67 -0
  72. package/chip/Chip.js +39 -79
  73. package/chip/Chip.stories.tsx +120 -26
  74. package/chip/Chip.test.js +41 -0
  75. package/chip/types.d.ts +4 -4
  76. package/common/coreTokens.d.ts +237 -0
  77. package/common/coreTokens.js +184 -0
  78. package/common/utils.d.ts +1 -0
  79. package/common/utils.js +6 -12
  80. package/common/variables.d.ts +1395 -0
  81. package/common/variables.js +1030 -1374
  82. package/container/Container.d.ts +4 -0
  83. package/container/Container.js +194 -0
  84. package/container/Container.stories.tsx +214 -0
  85. package/container/types.d.ts +74 -0
  86. package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
  87. package/contextual-menu/ContextualMenu.d.ts +7 -0
  88. package/contextual-menu/ContextualMenu.js +71 -0
  89. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  90. package/contextual-menu/ContextualMenu.test.js +71 -0
  91. package/contextual-menu/MenuItemAction.d.ts +4 -0
  92. package/contextual-menu/MenuItemAction.js +46 -0
  93. package/contextual-menu/types.d.ts +22 -0
  94. package/date-input/Calendar.d.ts +4 -0
  95. package/date-input/Calendar.js +214 -0
  96. package/date-input/DateInput.accessibility.test.js +216 -0
  97. package/date-input/DateInput.js +171 -306
  98. package/date-input/DateInput.stories.tsx +203 -56
  99. package/date-input/DateInput.test.js +808 -0
  100. package/date-input/DatePicker.d.ts +4 -0
  101. package/date-input/DatePicker.js +115 -0
  102. package/date-input/Icons.d.ts +6 -0
  103. package/date-input/Icons.js +58 -0
  104. package/date-input/YearPicker.d.ts +4 -0
  105. package/date-input/YearPicker.js +100 -0
  106. package/date-input/types.d.ts +86 -22
  107. package/dialog/Dialog.accessibility.test.js +69 -0
  108. package/dialog/Dialog.d.ts +1 -1
  109. package/dialog/Dialog.js +68 -130
  110. package/dialog/Dialog.stories.tsx +320 -167
  111. package/dialog/Dialog.test.js +307 -0
  112. package/dialog/types.d.ts +18 -25
  113. package/divider/Divider.accessibility.test.js +33 -0
  114. package/divider/Divider.d.ts +4 -0
  115. package/divider/Divider.js +36 -0
  116. package/divider/Divider.stories.tsx +223 -0
  117. package/divider/Divider.test.js +38 -0
  118. package/divider/types.d.ts +21 -0
  119. package/dropdown/Dropdown.accessibility.test.js +180 -0
  120. package/dropdown/Dropdown.d.ts +1 -1
  121. package/dropdown/Dropdown.js +231 -307
  122. package/dropdown/Dropdown.stories.tsx +235 -57
  123. package/dropdown/Dropdown.test.js +599 -0
  124. package/dropdown/DropdownMenu.d.ts +4 -0
  125. package/dropdown/DropdownMenu.js +63 -0
  126. package/dropdown/DropdownMenuItem.d.ts +4 -0
  127. package/dropdown/DropdownMenuItem.js +70 -0
  128. package/dropdown/types.d.ts +35 -19
  129. package/file-input/FileInput.accessibility.test.js +160 -0
  130. package/file-input/FileInput.d.ts +2 -2
  131. package/file-input/FileInput.js +246 -357
  132. package/file-input/FileInput.stories.tsx +123 -12
  133. package/file-input/FileInput.test.js +459 -0
  134. package/file-input/FileItem.d.ts +4 -14
  135. package/file-input/FileItem.js +50 -99
  136. package/file-input/types.d.ts +25 -8
  137. package/flex/Flex.d.ts +4 -0
  138. package/flex/Flex.js +57 -0
  139. package/flex/Flex.stories.tsx +112 -0
  140. package/flex/types.d.ts +97 -0
  141. package/flex/types.js +5 -0
  142. package/footer/Footer.accessibility.test.js +117 -0
  143. package/footer/Footer.d.ts +1 -1
  144. package/footer/Footer.js +70 -190
  145. package/footer/Footer.stories.tsx +61 -21
  146. package/footer/Footer.test.js +85 -0
  147. package/footer/Icons.d.ts +3 -2
  148. package/footer/Icons.js +67 -8
  149. package/footer/types.d.ts +25 -26
  150. package/grid/Grid.d.ts +7 -0
  151. package/grid/Grid.js +76 -0
  152. package/grid/Grid.stories.tsx +219 -0
  153. package/grid/types.d.ts +115 -0
  154. package/grid/types.js +5 -0
  155. package/header/Header.accessibility.test.js +84 -0
  156. package/header/Header.d.ts +4 -3
  157. package/header/Header.js +99 -203
  158. package/header/Header.stories.tsx +152 -63
  159. package/header/Header.test.js +66 -0
  160. package/header/Icons.d.ts +2 -2
  161. package/header/Icons.js +4 -9
  162. package/header/types.d.ts +7 -21
  163. package/heading/Heading.accessibility.test.js +33 -0
  164. package/heading/Heading.js +10 -32
  165. package/heading/Heading.test.js +169 -0
  166. package/heading/types.d.ts +7 -7
  167. package/icon/Icon.accessibility.test.js +30 -0
  168. package/icon/Icon.d.ts +4 -0
  169. package/icon/Icon.js +33 -0
  170. package/icon/Icon.stories.tsx +28 -0
  171. package/icon/types.d.ts +4 -0
  172. package/icon/types.js +5 -0
  173. package/image/Image.accessibility.test.js +56 -0
  174. package/image/Image.d.ts +4 -0
  175. package/image/Image.js +70 -0
  176. package/image/Image.stories.tsx +129 -0
  177. package/image/types.d.ts +72 -0
  178. package/image/types.js +5 -0
  179. package/inset/Inset.js +14 -55
  180. package/inset/Inset.stories.tsx +37 -36
  181. package/inset/types.d.ts +26 -2
  182. package/layout/ApplicationLayout.d.ts +16 -6
  183. package/layout/ApplicationLayout.js +83 -174
  184. package/layout/ApplicationLayout.stories.tsx +85 -94
  185. package/layout/Icons.d.ts +8 -0
  186. package/layout/Icons.js +49 -48
  187. package/layout/types.d.ts +19 -35
  188. package/link/Link.accessibility.test.js +112 -0
  189. package/link/Link.d.ts +3 -2
  190. package/link/Link.js +61 -99
  191. package/link/Link.stories.tsx +155 -53
  192. package/link/Link.test.js +63 -0
  193. package/link/types.d.ts +15 -31
  194. package/main.d.ts +18 -18
  195. package/main.js +77 -123
  196. package/nav-tabs/NavTabs.accessibility.test.js +52 -0
  197. package/nav-tabs/NavTabs.d.ts +7 -0
  198. package/nav-tabs/NavTabs.js +93 -0
  199. package/nav-tabs/NavTabs.stories.tsx +276 -0
  200. package/nav-tabs/NavTabs.test.js +76 -0
  201. package/nav-tabs/NavTabsContext.d.ts +3 -0
  202. package/nav-tabs/NavTabsContext.js +8 -0
  203. package/nav-tabs/Tab.d.ts +4 -0
  204. package/nav-tabs/Tab.js +118 -0
  205. package/nav-tabs/types.d.ts +52 -0
  206. package/nav-tabs/types.js +5 -0
  207. package/number-input/NumberInput.accessibility.test.js +228 -0
  208. package/number-input/NumberInput.js +47 -44
  209. package/number-input/NumberInput.stories.tsx +44 -28
  210. package/number-input/NumberInput.test.js +989 -0
  211. package/number-input/NumberInputContext.d.ts +3 -4
  212. package/number-input/NumberInputContext.js +3 -14
  213. package/number-input/types.d.ts +34 -15
  214. package/package.json +52 -53
  215. package/paginator/Icons.d.ts +5 -0
  216. package/paginator/Icons.js +21 -47
  217. package/paginator/Paginator.accessibility.test.js +79 -0
  218. package/paginator/Paginator.js +34 -91
  219. package/paginator/Paginator.stories.tsx +24 -0
  220. package/paginator/Paginator.test.js +335 -0
  221. package/paginator/types.d.ts +3 -3
  222. package/paragraph/Paragraph.accessibility.test.js +28 -0
  223. package/paragraph/Paragraph.d.ts +5 -0
  224. package/paragraph/Paragraph.js +22 -0
  225. package/paragraph/Paragraph.stories.tsx +27 -0
  226. package/password-input/Icons.d.ts +6 -0
  227. package/password-input/Icons.js +35 -0
  228. package/password-input/PasswordInput.accessibility.test.js +153 -0
  229. package/password-input/PasswordInput.js +57 -123
  230. package/password-input/PasswordInput.stories.tsx +1 -33
  231. package/password-input/PasswordInput.test.js +198 -0
  232. package/password-input/types.d.ts +21 -17
  233. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  234. package/progress-bar/ProgressBar.js +65 -91
  235. package/progress-bar/ProgressBar.stories.tsx +93 -0
  236. package/progress-bar/ProgressBar.test.js +93 -0
  237. package/progress-bar/types.d.ts +3 -3
  238. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  239. package/quick-nav/QuickNav.d.ts +4 -0
  240. package/quick-nav/QuickNav.js +94 -0
  241. package/quick-nav/QuickNav.stories.tsx +356 -0
  242. package/quick-nav/types.d.ts +21 -0
  243. package/quick-nav/types.js +5 -0
  244. package/radio-group/Radio.d.ts +1 -1
  245. package/radio-group/Radio.js +64 -80
  246. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  247. package/radio-group/RadioGroup.js +101 -139
  248. package/radio-group/RadioGroup.stories.tsx +171 -36
  249. package/radio-group/RadioGroup.test.js +691 -183
  250. package/radio-group/types.d.ts +89 -11
  251. package/resultset-table/Icons.d.ts +7 -0
  252. package/resultset-table/Icons.js +47 -0
  253. package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
  254. package/resultset-table/ResultsetTable.d.ts +7 -0
  255. package/resultset-table/ResultsetTable.js +170 -0
  256. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +156 -30
  257. package/resultset-table/ResultsetTable.test.js +381 -0
  258. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  259. package/resultset-table/types.js +5 -0
  260. package/select/Icons.d.ts +10 -0
  261. package/select/Icons.js +89 -0
  262. package/select/Listbox.d.ts +4 -0
  263. package/select/Listbox.js +143 -0
  264. package/select/Option.d.ts +4 -0
  265. package/select/Option.js +87 -0
  266. package/select/Select.accessibility.test.js +217 -0
  267. package/select/Select.js +229 -502
  268. package/select/Select.stories.tsx +602 -204
  269. package/select/Select.test.js +2370 -0
  270. package/select/types.d.ts +64 -25
  271. package/sidenav/Icons.d.ts +7 -0
  272. package/sidenav/Icons.js +47 -0
  273. package/sidenav/Sidenav.accessibility.test.js +59 -0
  274. package/sidenav/Sidenav.d.ts +6 -5
  275. package/sidenav/Sidenav.js +132 -71
  276. package/sidenav/Sidenav.stories.tsx +250 -151
  277. package/sidenav/Sidenav.test.js +37 -0
  278. package/sidenav/SidenavContext.d.ts +5 -0
  279. package/sidenav/SidenavContext.js +13 -0
  280. package/sidenav/types.d.ts +52 -26
  281. package/slider/Slider.accessibility.test.js +104 -0
  282. package/slider/Slider.d.ts +2 -2
  283. package/slider/Slider.js +148 -180
  284. package/slider/Slider.test.js +254 -0
  285. package/slider/types.d.ts +11 -3
  286. package/spinner/Spinner.accessibility.test.js +96 -0
  287. package/spinner/Spinner.js +31 -75
  288. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  289. package/spinner/Spinner.test.js +55 -0
  290. package/spinner/types.d.ts +3 -3
  291. package/status-light/StatusLight.accessibility.test.js +157 -0
  292. package/status-light/StatusLight.d.ts +4 -0
  293. package/status-light/StatusLight.js +51 -0
  294. package/status-light/StatusLight.stories.tsx +74 -0
  295. package/status-light/StatusLight.test.js +25 -0
  296. package/status-light/types.d.ts +17 -0
  297. package/status-light/types.js +5 -0
  298. package/switch/Switch.accessibility.test.js +89 -0
  299. package/switch/Switch.d.ts +2 -2
  300. package/switch/Switch.js +149 -114
  301. package/switch/Switch.stories.tsx +44 -67
  302. package/switch/Switch.test.js +180 -0
  303. package/switch/types.d.ts +13 -5
  304. package/table/DropdownTheme.js +62 -0
  305. package/table/Table.accessibility.test.js +82 -0
  306. package/table/Table.d.ts +6 -2
  307. package/table/Table.js +78 -35
  308. package/table/Table.stories.tsx +651 -0
  309. package/table/Table.test.js +113 -0
  310. package/table/types.d.ts +34 -6
  311. package/tabs/Tab.d.ts +4 -0
  312. package/tabs/Tab.js +116 -0
  313. package/tabs/Tabs.accessibility.test.js +56 -0
  314. package/tabs/Tabs.d.ts +1 -1
  315. package/tabs/Tabs.js +316 -145
  316. package/tabs/Tabs.stories.tsx +120 -14
  317. package/tabs/Tabs.test.js +294 -0
  318. package/tabs/types.d.ts +29 -15
  319. package/tag/Tag.accessibility.test.js +69 -0
  320. package/tag/Tag.js +41 -78
  321. package/tag/Tag.stories.tsx +25 -8
  322. package/tag/Tag.test.js +49 -0
  323. package/tag/types.d.ts +7 -7
  324. package/text-input/Suggestion.d.ts +4 -0
  325. package/text-input/Suggestion.js +67 -0
  326. package/text-input/Suggestions.d.ts +4 -0
  327. package/text-input/Suggestions.js +86 -0
  328. package/text-input/TextInput.accessibility.test.js +321 -0
  329. package/text-input/TextInput.js +329 -556
  330. package/text-input/TextInput.stories.tsx +281 -272
  331. package/text-input/TextInput.test.js +1756 -0
  332. package/text-input/types.d.ts +70 -24
  333. package/textarea/Textarea.accessibility.test.js +155 -0
  334. package/textarea/Textarea.js +85 -135
  335. package/textarea/Textarea.stories.tsx +174 -0
  336. package/textarea/Textarea.test.js +406 -0
  337. package/textarea/types.d.ts +27 -16
  338. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  339. package/toggle-group/ToggleGroup.d.ts +2 -2
  340. package/toggle-group/ToggleGroup.js +92 -105
  341. package/toggle-group/ToggleGroup.stories.tsx +53 -8
  342. package/toggle-group/ToggleGroup.test.js +137 -0
  343. package/toggle-group/types.d.ts +34 -17
  344. package/typography/Typography.accessibility.test.js +339 -0
  345. package/typography/Typography.d.ts +4 -0
  346. package/typography/Typography.js +23 -0
  347. package/typography/Typography.stories.tsx +198 -0
  348. package/typography/types.d.ts +18 -0
  349. package/typography/types.js +5 -0
  350. package/useTheme.d.ts +1147 -1
  351. package/useTheme.js +4 -11
  352. package/useTranslatedLabels.d.ts +85 -0
  353. package/useTranslatedLabels.js +14 -0
  354. package/utils/BaseTypography.d.ts +21 -0
  355. package/utils/BaseTypography.js +94 -0
  356. package/utils/FocusLock.d.ts +13 -0
  357. package/utils/FocusLock.js +124 -0
  358. package/wizard/Wizard.accessibility.test.js +55 -0
  359. package/wizard/Wizard.d.ts +1 -1
  360. package/wizard/Wizard.js +70 -101
  361. package/wizard/Wizard.stories.tsx +48 -19
  362. package/wizard/Wizard.test.js +114 -0
  363. package/wizard/types.d.ts +13 -9
  364. package/ThemeContext.d.ts +0 -15
  365. package/ThemeContext.js +0 -243
  366. package/V3Select/V3Select.js +0 -455
  367. package/V3Select/index.d.ts +0 -27
  368. package/V3Textarea/V3Textarea.js +0 -260
  369. package/V3Textarea/index.d.ts +0 -27
  370. package/card/ice-cream.jpg +0 -0
  371. package/common/OpenSans.css +0 -81
  372. package/common/RequiredComponent.js +0 -32
  373. package/common/fonts/OpenSans-Bold.ttf +0 -0
  374. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  375. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  376. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  377. package/common/fonts/OpenSans-Italic.ttf +0 -0
  378. package/common/fonts/OpenSans-Light.ttf +0 -0
  379. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  380. package/common/fonts/OpenSans-Regular.ttf +0 -0
  381. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  382. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  383. package/date/Date.js +0 -373
  384. package/date/index.d.ts +0 -27
  385. package/input-text/Icons.js +0 -22
  386. package/input-text/InputText.js +0 -611
  387. package/input-text/index.d.ts +0 -36
  388. package/list/List.d.ts +0 -4
  389. package/list/List.js +0 -47
  390. package/list/List.stories.tsx +0 -95
  391. package/list/types.d.ts +0 -7
  392. package/number-input/numberInputContextTypes.d.ts +0 -19
  393. package/progress-bar/ProgressBar.stories.jsx +0 -58
  394. package/radio/Radio.d.ts +0 -4
  395. package/radio/Radio.js +0 -174
  396. package/radio/Radio.stories.tsx +0 -192
  397. package/radio/types.d.ts +0 -54
  398. package/resultsetTable/ResultsetTable.d.ts +0 -4
  399. package/resultsetTable/ResultsetTable.js +0 -251
  400. package/row/Row.d.ts +0 -3
  401. package/row/Row.js +0 -127
  402. package/row/Row.stories.tsx +0 -237
  403. package/row/types.d.ts +0 -10
  404. package/slider/Slider.stories.tsx +0 -177
  405. package/stack/Stack.d.ts +0 -3
  406. package/stack/Stack.js +0 -97
  407. package/stack/Stack.stories.tsx +0 -164
  408. package/stack/types.d.ts +0 -9
  409. package/table/Table.stories.jsx +0 -277
  410. package/text/Text.d.ts +0 -7
  411. package/text/Text.js +0 -30
  412. package/text/Text.stories.tsx +0 -19
  413. package/textarea/Textarea.stories.jsx +0 -136
  414. package/toggle/Toggle.js +0 -186
  415. package/toggle/index.d.ts +0 -21
  416. package/upload/Upload.js +0 -201
  417. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  418. package/upload/buttons-upload/Icons.js +0 -40
  419. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  420. package/upload/dragAndDropArea/Icons.js +0 -39
  421. package/upload/file-upload/FileToUpload.js +0 -115
  422. package/upload/file-upload/Icons.js +0 -66
  423. package/upload/files-upload/FilesToUpload.js +0 -109
  424. package/upload/index.d.ts +0 -15
  425. package/upload/transaction/Icons.js +0 -160
  426. package/upload/transaction/Transaction.js +0 -104
  427. package/upload/transactions/Transactions.js +0 -94
  428. /package/{list → action-icon}/types.js +0 -0
  429. /package/{radio → badge}/types.js +0 -0
  430. /package/{resultsetTable → bulleted-list}/types.js +0 -0
  431. /package/{row → container}/types.js +0 -0
  432. /package/{stack → contextual-menu}/types.js +0 -0
  433. /package/{number-input/numberInputContextTypes.js → divider/types.js} +0 -0
@@ -1,138 +1,128 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
-
16
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
-
22
14
  var _uuid = require("uuid");
23
-
24
- var _variables = require("../common/variables.js");
25
-
15
+ var _variables = require("../common/variables");
26
16
  var _useTheme = _interopRequireDefault(require("../useTheme"));
27
-
28
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _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 _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
- 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;
23
+ helperText = _ref.helperText,
24
+ defaultValue = _ref.defaultValue,
25
+ value = _ref.value,
26
+ onChange = _ref.onChange,
27
+ _ref$disabled = _ref.disabled,
28
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
29
+ options = _ref.options,
30
+ margin = _ref.margin,
31
+ _ref$multiple = _ref.multiple,
32
+ multiple = _ref$multiple === void 0 ? false : _ref$multiple,
33
+ _ref$tabIndex = _ref.tabIndex,
34
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
35
+ var _useState = (0, _react.useState)("label-toggle-group-".concat((0, _uuid.v4)())),
36
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
37
+ toggleGroupLabelId = _useState2[0];
38
+ var _useState3 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : -1),
39
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
40
+ selectedValue = _useState4[0],
41
+ setSelectedValue = _useState4[1];
47
42
  var colorsTheme = (0, _useTheme["default"])();
48
-
49
- var _useState = (0, _react.useState)(multiple ? [] : -1),
50
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
51
- selectedValue = _useState2[0],
52
- setSelectedValue = _useState2[1];
53
-
54
- var _useState3 = (0, _react.useState)("toggle-group-".concat((0, _uuid.v4)())),
55
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
56
- toggleGroupId = _useState4[0];
57
-
58
43
  var handleToggleChange = function handleToggleChange(selectedOption) {
59
44
  var newSelectedOptions;
60
-
61
45
  if (value == null) {
62
46
  if (multiple && Array.isArray(selectedValue)) {
63
47
  newSelectedOptions = selectedValue.map(function (value) {
64
48
  return value;
65
49
  });
66
-
67
50
  if (newSelectedOptions.includes(selectedOption)) {
68
51
  var index = newSelectedOptions.indexOf(selectedOption);
69
52
  newSelectedOptions.splice(index, 1);
70
53
  } else {
71
54
  newSelectedOptions.push(selectedOption);
72
55
  }
73
-
74
56
  setSelectedValue(newSelectedOptions);
75
57
  } else setSelectedValue(selectedOption === selectedValue ? null : selectedOption);
76
58
  } else if (multiple) {
77
59
  newSelectedOptions = Array.isArray(value) ? value.map(function (v) {
78
60
  return v;
79
61
  }) : value;
80
-
81
62
  if (newSelectedOptions.includes(selectedOption)) {
82
63
  var _index = newSelectedOptions.indexOf(selectedOption);
83
-
84
64
  newSelectedOptions.splice(_index, 1);
85
65
  } else newSelectedOptions.push(selectedOption);
86
66
  }
87
-
88
67
  onChange === null || onChange === void 0 ? void 0 : onChange(multiple ? newSelectedOptions : selectedOption);
89
68
  };
90
-
91
- var handleKeyPress = function handleKeyPress(event, optionValue) {
92
- event.preventDefault();
93
- if (!disabled && (event.nativeEvent.code === "Enter" || event.nativeEvent.code === "Space")) handleToggleChange(optionValue);
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
- htmlFor: toggleGroupId,
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
- id: toggleGroupId,
108
- role: multiple ? "group" : "radiogroup"
87
+ "aria-labelledby": toggleGroupLabelId
109
88
  }, 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,
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
- return !disabled && handleToggleChange(option.value);
95
+ handleToggleChange(option.value);
117
96
  },
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);
97
+ onKeyDown: function onKeyDown(event) {
98
+ handleOnKeyDown(event, option.value);
125
99
  },
126
- key: "toggle-".concat(i, "-").concat(option.label)
127
- }, /*#__PURE__*/_react["default"].createElement(OptionContent, null, option.icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
100
+ tabIndex: !disabled ? tabIndex : -1,
101
+ title: option.title,
102
+ hasIcon: option.icon,
103
+ optionLabel: option.label,
104
+ selected: multiple ? value ? Array.isArray(value) && value.includes(option.value) : Array.isArray(selectedValue) && selectedValue.includes(option.value) : value ? option.value === value : option.value === selectedValue
105
+ }, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
106
+ alignItems: "center"
107
+ }, option.icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
128
108
  optionLabel: option.label
129
- }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(Icon, {
109
+ }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
130
110
  src: option.icon
131
111
  }) : option.icon), option.label && /*#__PURE__*/_react["default"].createElement(LabelContainer, null, option.label)));
132
112
  }))));
133
113
  };
134
-
135
- 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) {
114
+ var ToggleGroup = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
115
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
116
+ }, function (props) {
117
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
118
+ }, function (props) {
119
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
120
+ }, function (props) {
121
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
122
+ }, function (props) {
123
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
124
+ });
125
+ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
136
126
  return props.disabled ? props.theme.disabledLabelFontColor : props.theme.labelFontColor;
137
127
  }, function (props) {
138
128
  return props.theme.labelFontFamily;
@@ -145,8 +135,7 @@ var Label = _styledComponents["default"].label(_templateObject || (_templateObje
145
135
  }, function (props) {
146
136
  return props.theme.labelLineHeight;
147
137
  });
148
-
149
- var HelperText = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
138
+ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
150
139
  return props.disabled ? props.theme.disabledHelperTextFontcolor : props.theme.helperTextFontColor;
151
140
  }, function (props) {
152
141
  return props.theme.helperTextFontFamily;
@@ -159,20 +148,7 @@ var HelperText = _styledComponents["default"].span(_templateObject2 || (_templat
159
148
  }, function (props) {
160
149
  return props.theme.helperTextLineHeight;
161
150
  });
162
-
163
- var ToggleGroup = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
164
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
165
- }, function (props) {
166
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
167
- }, function (props) {
168
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
169
- }, function (props) {
170
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
171
- }, function (props) {
172
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
173
- });
174
-
175
- var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n opacity: 1;\n height: calc(48px - 4px - 4px);\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n border-color: ", ";\n background-color: ", ";\n padding: 4px;\n margin-top: ", ";\n"])), function (props) {
151
+ var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n gap: 0.25rem;\n width: max-content;\n height: calc(48px - 4px - 4px);\n padding: 0.25rem;\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n border-color: ", ";\n margin-top: ", ";\n background-color: ", ";\n"])), function (props) {
176
152
  return props.theme.containerBorderThickness;
177
153
  }, function (props) {
178
154
  return props.theme.containerBorderStyle;
@@ -180,18 +156,36 @@ var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_te
180
156
  return props.theme.containerBorderRadius;
181
157
  }, function (props) {
182
158
  return props.theme.containerBorderColor;
183
- }, function (props) {
184
- return props.theme.containerBackgroundColor;
185
159
  }, function (props) {
186
160
  return props.theme.containerMarginTop;
161
+ }, function (props) {
162
+ return props.theme.containerBackgroundColor;
187
163
  });
188
-
189
- 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";
164
+ var ToggleButton = _styledComponents["default"].button(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding-left: ", ";\n padding-right: ", ";\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n background-color: ", ";\n color: ", ";\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n color: #ffffff;\n }\n &:focus {\n outline: none;\n box-shadow: ", ";\n }\n &:disabled {\n background-color: ", ";\n color: ", ";\n cursor: not-allowed;\n }\n"])), function (props) {
165
+ return props.optionLabel && props.hasIcon || props.optionLabel && !props.hasIcon ? props.theme.labelPaddingLeft : props.theme.iconPaddingLeft;
166
+ }, function (props) {
167
+ return props.optionLabel && props.hasIcon || props.optionLabel && !props.hasIcon ? props.theme.labelPaddingRight : props.theme.iconPaddingRight;
168
+ }, function (props) {
169
+ return props.theme.optionBorderThickness;
170
+ }, function (props) {
171
+ return props.theme.optionBorderStyle;
172
+ }, function (props) {
173
+ return props.theme.optionBorderRadius;
174
+ }, function (props) {
175
+ return props.selected ? props.theme.selectedBackgroundColor : props.theme.unselectedBackgroundColor;
176
+ }, function (props) {
177
+ return props.selected ? props.theme.selectedFontColor : props.theme.unselectedFontColor;
191
178
  }, function (props) {
192
- return "\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 ");
179
+ return props.selected ? props.theme.selectedHoverBackgroundColor : props.theme.unselectedHoverBackgroundColor;
180
+ }, function (props) {
181
+ return props.selected ? props.theme.selectedActiveBackgroundColor : props.theme.unselectedActiveBackgroundColor;
182
+ }, function (props) {
183
+ return "0 0 0 ".concat(props.theme.optionFocusBorderThickness, " ").concat(props.theme.focusColor);
184
+ }, function (props) {
185
+ return props.selected ? props.theme.selectedDisabledBackgroundColor : props.theme.unselectedDisabledBackgroundColor;
186
+ }, function (props) {
187
+ return props.selected ? props.theme.selectedDisabledFontColor : props.theme.unselectedDisabledFontColor;
193
188
  });
194
-
195
189
  var LabelContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
196
190
  return props.theme.optionLabelFontFamily;
197
191
  }, function (props) {
@@ -201,14 +195,7 @@ var LabelContainer = _styledComponents["default"].span(_templateObject6 || (_tem
201
195
  }, function (props) {
202
196
  return props.theme.optionLabelFontWeight;
203
197
  });
204
-
205
- var OptionContent = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n align-items: center;\n"])));
206
-
207
- var Icon = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])([""])));
208
-
209
- var IconContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n height: 24px;\n width: 24px;\n overflow: hidden;\n display: flex;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
198
+ var IconContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 24px;\n width: 24px;\n margin-right: ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
210
199
  return props.optionLabel && props.theme.iconMarginRight;
211
200
  });
212
-
213
- var _default = DxcToggleGroup;
214
- exports["default"] = _default;
201
+ var _default = exports["default"] = DxcToggleGroup;
@@ -3,9 +3,10 @@ import { userEvent, within } from "@storybook/testing-library";
3
3
  import DxcToggleGroup from "./ToggleGroup";
4
4
  import Title from "../../.storybook/components/Title";
5
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+ import { HalstackProvider } from "../HalstackContext";
6
7
 
7
8
  export default {
8
- title: "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
  };
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _ToggleGroup = _interopRequireDefault(require("./ToggleGroup.tsx"));
7
+ var options = [{
8
+ value: 1,
9
+ label: "Amazon"
10
+ }, {
11
+ value: 2,
12
+ label: "Ebay"
13
+ }, {
14
+ value: 3,
15
+ label: "Apple"
16
+ }, {
17
+ value: 4,
18
+ label: "Google"
19
+ }];
20
+ describe("Toggle group component tests", function () {
21
+ test("Toggle group renders with correct labels", function () {
22
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
23
+ label: "Toggle group label",
24
+ helperText: "Toggle group helper text",
25
+ options: options
26
+ })),
27
+ getByText = _render.getByText;
28
+ expect(getByText("Toggle group label")).toBeTruthy();
29
+ expect(getByText("Toggle group helper text")).toBeTruthy();
30
+ expect(getByText("Amazon")).toBeTruthy();
31
+ expect(getByText("Ebay")).toBeTruthy();
32
+ expect(getByText("Apple")).toBeTruthy();
33
+ expect(getByText("Google")).toBeTruthy();
34
+ });
35
+ test("Toggle group renders with correct aria-label in only-icon scenario", function () {
36
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
37
+ label: "Toggle group label",
38
+ helperText: "Toggle group helper text",
39
+ options: [{
40
+ value: 1,
41
+ icon: "https://cdn.icon-icons.com/icons2/2645/PNG/512/mic_mute_icon_159965.png",
42
+ title: "Mute"
43
+ }]
44
+ })),
45
+ getByRole = _render2.getByRole;
46
+ expect(getByRole("button").getAttribute("aria-label")).toBe("Mute");
47
+ });
48
+ test("Uncontrolled toggle group calls correct function on change with value", function () {
49
+ var onChange = jest.fn();
50
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
51
+ options: options,
52
+ onChange: onChange
53
+ })),
54
+ getByText = _render3.getByText;
55
+ var option = getByText("Ebay");
56
+ _react2.fireEvent.click(option);
57
+ expect(onChange).toHaveBeenCalledWith(2);
58
+ });
59
+ test("Controlled toggle group calls correct function on change with value", function () {
60
+ var onChange = jest.fn();
61
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
62
+ options: options,
63
+ onChange: onChange,
64
+ value: 1
65
+ })),
66
+ getByText = _render4.getByText;
67
+ var option = getByText("Ebay");
68
+ _react2.fireEvent.click(option);
69
+ expect(onChange).toHaveBeenCalledWith(2);
70
+ });
71
+ test("Function on change is not called when disable", function () {
72
+ var onChange = jest.fn();
73
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
74
+ options: options,
75
+ onChange: onChange,
76
+ disabled: true
77
+ })),
78
+ getByText = _render5.getByText;
79
+ var option = getByText("Ebay");
80
+ _react2.fireEvent.click(option);
81
+ expect(onChange).toHaveBeenCalledTimes(0);
82
+ });
83
+ test("Uncontrolled multiple toggle group calls correct function on change with value when is multiple", function () {
84
+ var onChange = jest.fn();
85
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
86
+ options: options,
87
+ onChange: onChange,
88
+ multiple: true
89
+ })),
90
+ getAllByRole = _render6.getAllByRole;
91
+ var toggleOptions = getAllByRole("button");
92
+ _react2.fireEvent.click(toggleOptions[0]);
93
+ expect(onChange).toHaveBeenCalledWith([1]);
94
+ _react2.fireEvent.click(toggleOptions[1]);
95
+ _react2.fireEvent.click(toggleOptions[3]);
96
+ expect(onChange).toHaveBeenCalledWith([1, 2, 4]);
97
+ expect(toggleOptions[0].getAttribute("aria-pressed")).toBe("true");
98
+ expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
99
+ expect(toggleOptions[3].getAttribute("aria-pressed")).toBe("true");
100
+ });
101
+ test("Controlled multiple toggle returns always same values", function () {
102
+ var onChange = jest.fn();
103
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
104
+ options: options,
105
+ onChange: onChange,
106
+ value: [1],
107
+ multiple: true
108
+ })),
109
+ getByText = _render7.getByText;
110
+ var option = getByText("Ebay");
111
+ _react2.fireEvent.click(option);
112
+ expect(onChange).toHaveBeenCalledWith([1, 2]);
113
+ var option2 = getByText("Google");
114
+ _react2.fireEvent.click(option2);
115
+ expect(onChange).toHaveBeenNthCalledWith(2, [1, 4]);
116
+ });
117
+ test("Single selection: Renders with correct default value", function () {
118
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
119
+ options: options,
120
+ defaultValue: 2
121
+ })),
122
+ getAllByRole = _render8.getAllByRole;
123
+ var toggleOptions = getAllByRole("button");
124
+ expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
125
+ });
126
+ test("Multiple selection: Renders with correct default value", function () {
127
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
128
+ options: options,
129
+ defaultValue: [2, 4],
130
+ multiple: true
131
+ })),
132
+ getAllByRole = _render9.getAllByRole;
133
+ var toggleOptions = getAllByRole("button");
134
+ expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
135
+ expect(toggleOptions[3].getAttribute("aria-pressed")).toBe("true");
136
+ });
137
+ });