@dxc-technology/halstack-react 0.0.0-bfdc357 → 0.0.0-c023f9a

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 (535) hide show
  1. package/BackgroundColorContext.d.ts +1 -0
  2. package/BackgroundColorContext.js +6 -26
  3. package/HalstackContext.d.ts +1246 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.accessibility.test.d.ts +1 -0
  7. package/accordion/Accordion.accessibility.test.js +71 -0
  8. package/accordion/Accordion.d.ts +1 -1
  9. package/accordion/Accordion.js +103 -193
  10. package/accordion/Accordion.stories.tsx +241 -0
  11. package/accordion/Accordion.test.d.ts +1 -0
  12. package/accordion/Accordion.test.js +56 -0
  13. package/accordion/types.d.ts +12 -23
  14. package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
  15. package/accordion-group/AccordionGroup.accessibility.test.js +82 -0
  16. package/accordion-group/AccordionGroup.d.ts +3 -3
  17. package/accordion-group/AccordionGroup.js +39 -108
  18. package/accordion-group/AccordionGroup.stories.tsx +252 -0
  19. package/accordion-group/AccordionGroup.test.d.ts +1 -0
  20. package/accordion-group/AccordionGroup.test.js +94 -0
  21. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  22. package/accordion-group/AccordionGroupAccordion.js +31 -0
  23. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  24. package/accordion-group/AccordionGroupContext.js +8 -0
  25. package/accordion-group/types.d.ts +18 -23
  26. package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
  27. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  28. package/action-icon/ActionIcon.d.ts +4 -0
  29. package/action-icon/ActionIcon.js +48 -0
  30. package/action-icon/ActionIcon.stories.tsx +41 -0
  31. package/action-icon/ActionIcon.test.d.ts +1 -0
  32. package/action-icon/ActionIcon.test.js +64 -0
  33. package/action-icon/types.d.ts +26 -0
  34. package/alert/Alert.accessibility.test.d.ts +1 -0
  35. package/alert/Alert.accessibility.test.js +95 -0
  36. package/alert/Alert.js +41 -128
  37. package/alert/Alert.stories.tsx +28 -0
  38. package/alert/Alert.test.d.ts +1 -0
  39. package/alert/Alert.test.js +75 -0
  40. package/alert/types.d.ts +6 -6
  41. package/badge/Badge.accessibility.test.d.ts +1 -0
  42. package/badge/Badge.accessibility.test.js +129 -0
  43. package/badge/Badge.d.ts +4 -0
  44. package/badge/Badge.js +142 -40
  45. package/badge/Badge.stories.tsx +210 -0
  46. package/badge/Badge.test.d.ts +1 -0
  47. package/badge/Badge.test.js +30 -0
  48. package/badge/types.d.ts +54 -0
  49. package/badge/types.js +5 -0
  50. package/bleed/Bleed.d.ts +3 -0
  51. package/bleed/Bleed.js +43 -0
  52. package/bleed/Bleed.stories.tsx +342 -0
  53. package/bleed/types.d.ts +37 -0
  54. package/bleed/types.js +5 -0
  55. package/box/Box.accessibility.test.d.ts +1 -0
  56. package/box/Box.accessibility.test.js +33 -0
  57. package/box/Box.d.ts +1 -1
  58. package/box/Box.js +31 -82
  59. package/box/Box.stories.tsx +38 -51
  60. package/box/Box.test.d.ts +1 -0
  61. package/box/Box.test.js +13 -0
  62. package/box/types.d.ts +3 -14
  63. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  64. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  65. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  66. package/breadcrumbs/Breadcrumbs.js +79 -0
  67. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  68. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  69. package/breadcrumbs/Breadcrumbs.test.js +169 -0
  70. package/breadcrumbs/Item.d.ts +4 -0
  71. package/breadcrumbs/Item.js +52 -0
  72. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  73. package/breadcrumbs/dropdownTheme.js +62 -0
  74. package/breadcrumbs/types.d.ts +16 -0
  75. package/breadcrumbs/types.js +5 -0
  76. package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
  77. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  78. package/bulleted-list/BulletedList.d.ts +7 -0
  79. package/bulleted-list/BulletedList.js +92 -0
  80. package/bulleted-list/BulletedList.stories.tsx +115 -0
  81. package/bulleted-list/types.d.ts +38 -0
  82. package/bulleted-list/types.js +5 -0
  83. package/button/Button.accessibility.test.d.ts +1 -0
  84. package/button/Button.accessibility.test.js +127 -0
  85. package/button/Button.d.ts +1 -1
  86. package/button/Button.js +65 -121
  87. package/button/Button.stories.tsx +155 -106
  88. package/button/Button.test.d.ts +1 -0
  89. package/button/Button.test.js +38 -0
  90. package/button/types.d.ts +14 -14
  91. package/card/Card.accessibility.test.d.ts +1 -0
  92. package/card/Card.accessibility.test.js +36 -0
  93. package/card/Card.d.ts +1 -1
  94. package/card/Card.js +60 -103
  95. package/card/Card.stories.tsx +171 -0
  96. package/card/Card.test.d.ts +1 -0
  97. package/card/Card.test.js +39 -0
  98. package/card/types.d.ts +8 -15
  99. package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
  100. package/checkbox/Checkbox.accessibility.test.js +87 -0
  101. package/checkbox/Checkbox.d.ts +2 -2
  102. package/checkbox/Checkbox.js +141 -182
  103. package/checkbox/Checkbox.stories.tsx +166 -136
  104. package/checkbox/Checkbox.test.d.ts +1 -0
  105. package/checkbox/Checkbox.test.js +199 -0
  106. package/checkbox/types.d.ts +20 -8
  107. package/chip/Chip.accessibility.test.d.ts +1 -0
  108. package/chip/Chip.accessibility.test.js +67 -0
  109. package/chip/Chip.d.ts +4 -0
  110. package/chip/Chip.js +51 -146
  111. package/chip/Chip.stories.tsx +109 -31
  112. package/chip/Chip.test.d.ts +1 -0
  113. package/chip/Chip.test.js +41 -0
  114. package/chip/types.d.ts +45 -0
  115. package/chip/types.js +5 -0
  116. package/common/coreTokens.d.ts +237 -0
  117. package/common/coreTokens.js +184 -0
  118. package/common/utils.d.ts +1 -0
  119. package/common/utils.js +6 -12
  120. package/common/variables.d.ts +1392 -0
  121. package/common/variables.js +1084 -1397
  122. package/container/Container.d.ts +4 -0
  123. package/container/Container.js +194 -0
  124. package/container/Container.stories.tsx +214 -0
  125. package/container/types.d.ts +74 -0
  126. package/container/types.js +5 -0
  127. package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
  128. package/contextual-menu/ContextualMenu.accessibility.test.js +98 -0
  129. package/contextual-menu/ContextualMenu.d.ts +5 -0
  130. package/contextual-menu/ContextualMenu.js +88 -0
  131. package/contextual-menu/ContextualMenu.stories.tsx +232 -0
  132. package/contextual-menu/ContextualMenu.test.d.ts +1 -0
  133. package/contextual-menu/ContextualMenu.test.js +205 -0
  134. package/contextual-menu/GroupItem.d.ts +4 -0
  135. package/contextual-menu/GroupItem.js +67 -0
  136. package/contextual-menu/ItemAction.d.ts +4 -0
  137. package/contextual-menu/ItemAction.js +51 -0
  138. package/contextual-menu/MenuItem.d.ts +4 -0
  139. package/contextual-menu/MenuItem.js +29 -0
  140. package/contextual-menu/SingleItem.d.ts +4 -0
  141. package/contextual-menu/SingleItem.js +38 -0
  142. package/contextual-menu/types.d.ts +58 -0
  143. package/contextual-menu/types.js +5 -0
  144. package/date-input/Calendar.d.ts +4 -0
  145. package/date-input/Calendar.js +214 -0
  146. package/date-input/DateInput.accessibility.test.d.ts +1 -0
  147. package/date-input/DateInput.accessibility.test.js +230 -0
  148. package/date-input/DateInput.js +174 -313
  149. package/date-input/DateInput.stories.tsx +210 -56
  150. package/date-input/DateInput.test.d.ts +1 -0
  151. package/date-input/DateInput.test.js +809 -0
  152. package/date-input/DatePicker.d.ts +4 -0
  153. package/date-input/DatePicker.js +121 -0
  154. package/date-input/YearPicker.d.ts +4 -0
  155. package/date-input/YearPicker.js +100 -0
  156. package/date-input/types.d.ts +86 -22
  157. package/dialog/Dialog.accessibility.test.d.ts +1 -0
  158. package/dialog/Dialog.accessibility.test.js +69 -0
  159. package/dialog/Dialog.d.ts +1 -1
  160. package/dialog/Dialog.js +57 -129
  161. package/dialog/Dialog.stories.tsx +325 -167
  162. package/dialog/Dialog.test.d.ts +1 -0
  163. package/dialog/Dialog.test.js +371 -0
  164. package/dialog/types.d.ts +18 -25
  165. package/divider/Divider.accessibility.test.d.ts +1 -0
  166. package/divider/Divider.accessibility.test.js +33 -0
  167. package/divider/Divider.d.ts +4 -0
  168. package/divider/Divider.js +36 -0
  169. package/divider/Divider.stories.tsx +223 -0
  170. package/divider/Divider.test.d.ts +1 -0
  171. package/divider/Divider.test.js +38 -0
  172. package/divider/types.d.ts +21 -0
  173. package/divider/types.js +5 -0
  174. package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
  175. package/dropdown/Dropdown.accessibility.test.js +184 -0
  176. package/dropdown/Dropdown.d.ts +1 -1
  177. package/dropdown/Dropdown.js +233 -330
  178. package/dropdown/Dropdown.stories.tsx +427 -0
  179. package/dropdown/Dropdown.test.d.ts +1 -0
  180. package/dropdown/Dropdown.test.js +629 -0
  181. package/dropdown/DropdownMenu.d.ts +4 -0
  182. package/dropdown/DropdownMenu.js +63 -0
  183. package/dropdown/DropdownMenuItem.d.ts +4 -0
  184. package/dropdown/DropdownMenuItem.js +71 -0
  185. package/dropdown/types.d.ts +38 -31
  186. package/file-input/FileInput.accessibility.test.d.ts +1 -0
  187. package/file-input/FileInput.accessibility.test.js +167 -0
  188. package/file-input/FileInput.d.ts +2 -2
  189. package/file-input/FileInput.js +271 -342
  190. package/file-input/FileInput.stories.tsx +618 -0
  191. package/file-input/FileInput.test.d.ts +1 -0
  192. package/file-input/FileInput.test.js +404 -0
  193. package/file-input/FileItem.d.ts +4 -14
  194. package/file-input/FileItem.js +64 -121
  195. package/file-input/types.d.ts +53 -11
  196. package/flex/Flex.d.ts +4 -0
  197. package/flex/Flex.js +57 -0
  198. package/flex/Flex.stories.tsx +112 -0
  199. package/flex/types.d.ts +97 -0
  200. package/flex/types.js +5 -0
  201. package/footer/Footer.accessibility.test.d.ts +1 -0
  202. package/footer/Footer.accessibility.test.js +125 -0
  203. package/footer/Footer.d.ts +1 -1
  204. package/footer/Footer.js +74 -200
  205. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +96 -39
  206. package/footer/Footer.test.d.ts +1 -0
  207. package/footer/Footer.test.js +85 -0
  208. package/footer/Icons.d.ts +3 -0
  209. package/footer/Icons.js +54 -23
  210. package/footer/types.d.ts +40 -37
  211. package/grid/Grid.d.ts +7 -0
  212. package/grid/Grid.js +76 -0
  213. package/grid/Grid.stories.tsx +219 -0
  214. package/grid/types.d.ts +115 -0
  215. package/grid/types.js +5 -0
  216. package/header/Header.accessibility.test.d.ts +1 -0
  217. package/header/Header.accessibility.test.js +94 -0
  218. package/header/Header.d.ts +4 -3
  219. package/header/Header.js +105 -219
  220. package/header/Header.stories.tsx +168 -63
  221. package/header/Header.test.d.ts +1 -0
  222. package/header/Header.test.js +66 -0
  223. package/header/Icons.d.ts +2 -0
  224. package/header/Icons.js +5 -15
  225. package/header/types.d.ts +6 -18
  226. package/heading/Heading.accessibility.test.d.ts +1 -0
  227. package/heading/Heading.accessibility.test.js +33 -0
  228. package/heading/Heading.js +11 -33
  229. package/heading/Heading.stories.tsx +54 -0
  230. package/heading/Heading.test.d.ts +1 -0
  231. package/heading/Heading.test.js +156 -0
  232. package/heading/types.d.ts +7 -7
  233. package/icon/Icon.accessibility.test.d.ts +1 -0
  234. package/icon/Icon.accessibility.test.js +30 -0
  235. package/icon/Icon.d.ts +4 -0
  236. package/icon/Icon.js +33 -0
  237. package/icon/Icon.stories.tsx +28 -0
  238. package/icon/types.d.ts +4 -0
  239. package/icon/types.js +5 -0
  240. package/image/Image.accessibility.test.d.ts +1 -0
  241. package/image/Image.accessibility.test.js +56 -0
  242. package/image/Image.d.ts +4 -0
  243. package/image/Image.js +70 -0
  244. package/image/Image.stories.tsx +129 -0
  245. package/image/types.d.ts +72 -0
  246. package/image/types.js +5 -0
  247. package/inset/Inset.d.ts +3 -0
  248. package/inset/Inset.js +43 -0
  249. package/inset/Inset.stories.tsx +230 -0
  250. package/inset/types.d.ts +37 -0
  251. package/inset/types.js +5 -0
  252. package/layout/ApplicationLayout.d.ts +20 -0
  253. package/layout/ApplicationLayout.js +88 -186
  254. package/layout/ApplicationLayout.stories.tsx +162 -0
  255. package/layout/Icons.d.ts +7 -0
  256. package/layout/Icons.js +41 -48
  257. package/layout/types.d.ts +41 -0
  258. package/layout/types.js +5 -0
  259. package/link/Link.accessibility.test.d.ts +1 -0
  260. package/link/Link.accessibility.test.js +108 -0
  261. package/link/Link.d.ts +3 -2
  262. package/link/Link.js +65 -109
  263. package/link/Link.stories.tsx +161 -54
  264. package/link/Link.test.d.ts +1 -0
  265. package/link/Link.test.js +63 -0
  266. package/link/types.d.ts +15 -35
  267. package/main.d.ts +20 -14
  268. package/main.js +99 -98
  269. package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
  270. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  271. package/nav-tabs/NavTabs.d.ts +7 -0
  272. package/nav-tabs/NavTabs.js +93 -0
  273. package/nav-tabs/NavTabs.stories.tsx +279 -0
  274. package/nav-tabs/NavTabs.test.d.ts +1 -0
  275. package/nav-tabs/NavTabs.test.js +77 -0
  276. package/nav-tabs/NavTabsContext.d.ts +3 -0
  277. package/nav-tabs/NavTabsContext.js +8 -0
  278. package/nav-tabs/Tab.d.ts +4 -0
  279. package/nav-tabs/Tab.js +117 -0
  280. package/nav-tabs/types.d.ts +52 -0
  281. package/nav-tabs/types.js +5 -0
  282. package/number-input/NumberInput.accessibility.test.d.ts +1 -0
  283. package/number-input/NumberInput.accessibility.test.js +228 -0
  284. package/number-input/NumberInput.js +48 -48
  285. package/number-input/NumberInput.stories.tsx +44 -28
  286. package/number-input/NumberInput.test.d.ts +1 -0
  287. package/number-input/NumberInput.test.js +989 -0
  288. package/number-input/NumberInputContext.d.ts +3 -0
  289. package/number-input/NumberInputContext.js +3 -11
  290. package/number-input/types.d.ts +34 -15
  291. package/package.json +53 -52
  292. package/paginator/Paginator.accessibility.test.d.ts +1 -0
  293. package/paginator/Paginator.accessibility.test.js +79 -0
  294. package/paginator/Paginator.js +47 -107
  295. package/paginator/Paginator.stories.tsx +24 -0
  296. package/paginator/Paginator.test.d.ts +1 -0
  297. package/paginator/Paginator.test.js +335 -0
  298. package/paginator/types.d.ts +3 -3
  299. package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
  300. package/paragraph/Paragraph.accessibility.test.js +28 -0
  301. package/paragraph/Paragraph.d.ts +5 -0
  302. package/paragraph/Paragraph.js +22 -0
  303. package/paragraph/Paragraph.stories.tsx +27 -0
  304. package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
  305. package/password-input/PasswordInput.accessibility.test.js +153 -0
  306. package/password-input/PasswordInput.js +61 -126
  307. package/password-input/PasswordInput.stories.tsx +3 -35
  308. package/password-input/PasswordInput.test.d.ts +1 -0
  309. package/password-input/PasswordInput.test.js +198 -0
  310. package/password-input/types.d.ts +35 -24
  311. package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
  312. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  313. package/progress-bar/ProgressBar.js +69 -93
  314. package/progress-bar/ProgressBar.stories.tsx +93 -0
  315. package/progress-bar/ProgressBar.test.d.ts +1 -0
  316. package/progress-bar/ProgressBar.test.js +93 -0
  317. package/progress-bar/types.d.ts +3 -3
  318. package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
  319. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  320. package/quick-nav/QuickNav.d.ts +4 -0
  321. package/quick-nav/QuickNav.js +94 -0
  322. package/quick-nav/QuickNav.stories.tsx +356 -0
  323. package/quick-nav/types.d.ts +21 -0
  324. package/quick-nav/types.js +5 -0
  325. package/radio-group/Radio.d.ts +4 -0
  326. package/radio-group/Radio.js +121 -0
  327. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  328. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  329. package/radio-group/RadioGroup.d.ts +4 -0
  330. package/radio-group/RadioGroup.js +233 -0
  331. package/radio-group/RadioGroup.stories.tsx +214 -0
  332. package/radio-group/RadioGroup.test.d.ts +1 -0
  333. package/radio-group/RadioGroup.test.js +754 -0
  334. package/radio-group/types.d.ts +114 -0
  335. package/radio-group/types.js +5 -0
  336. package/resultset-table/Icons.d.ts +7 -0
  337. package/resultset-table/Icons.js +47 -0
  338. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  339. package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
  340. package/resultset-table/ResultsetTable.d.ts +7 -0
  341. package/resultset-table/ResultsetTable.js +171 -0
  342. package/resultset-table/ResultsetTable.stories.tsx +413 -0
  343. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  344. package/resultset-table/ResultsetTable.test.js +380 -0
  345. package/resultset-table/types.d.ts +100 -0
  346. package/resultset-table/types.js +5 -0
  347. package/select/Listbox.d.ts +4 -0
  348. package/select/Listbox.js +151 -0
  349. package/select/Option.d.ts +4 -0
  350. package/select/Option.js +89 -0
  351. package/select/Select.accessibility.test.d.ts +1 -0
  352. package/select/Select.accessibility.test.js +228 -0
  353. package/select/Select.d.ts +4 -0
  354. package/select/Select.js +248 -513
  355. package/select/Select.stories.tsx +602 -255
  356. package/select/Select.test.d.ts +1 -0
  357. package/select/Select.test.js +2268 -0
  358. package/select/types.d.ts +209 -0
  359. package/select/types.js +5 -0
  360. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  361. package/sidenav/Sidenav.accessibility.test.js +59 -0
  362. package/sidenav/Sidenav.d.ts +6 -5
  363. package/sidenav/Sidenav.js +137 -72
  364. package/sidenav/Sidenav.stories.tsx +277 -0
  365. package/sidenav/Sidenav.test.d.ts +1 -0
  366. package/sidenav/Sidenav.test.js +37 -0
  367. package/sidenav/SidenavContext.d.ts +5 -0
  368. package/sidenav/SidenavContext.js +13 -0
  369. package/sidenav/types.d.ts +52 -26
  370. package/slider/Slider.accessibility.test.d.ts +1 -0
  371. package/slider/Slider.accessibility.test.js +104 -0
  372. package/slider/Slider.d.ts +2 -2
  373. package/slider/Slider.js +149 -183
  374. package/slider/Slider.stories.tsx +68 -65
  375. package/slider/Slider.test.d.ts +1 -0
  376. package/slider/Slider.test.js +257 -0
  377. package/slider/types.d.ts +11 -3
  378. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  379. package/spinner/Spinner.accessibility.test.js +96 -0
  380. package/spinner/Spinner.js +35 -75
  381. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
  382. package/spinner/Spinner.test.d.ts +1 -0
  383. package/spinner/Spinner.test.js +55 -0
  384. package/spinner/types.d.ts +3 -3
  385. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  386. package/status-light/StatusLight.accessibility.test.js +157 -0
  387. package/status-light/StatusLight.d.ts +4 -0
  388. package/status-light/StatusLight.js +51 -0
  389. package/status-light/StatusLight.stories.tsx +74 -0
  390. package/status-light/StatusLight.test.d.ts +1 -0
  391. package/status-light/StatusLight.test.js +25 -0
  392. package/status-light/types.d.ts +17 -0
  393. package/status-light/types.js +5 -0
  394. package/switch/Switch.accessibility.test.d.ts +1 -0
  395. package/switch/Switch.accessibility.test.js +98 -0
  396. package/switch/Switch.d.ts +2 -2
  397. package/switch/Switch.js +147 -115
  398. package/switch/Switch.stories.tsx +57 -68
  399. package/switch/Switch.test.d.ts +1 -0
  400. package/switch/Switch.test.js +180 -0
  401. package/switch/types.d.ts +13 -5
  402. package/table/DropdownTheme.js +62 -0
  403. package/table/Table.accessibility.test.d.ts +1 -0
  404. package/table/Table.accessibility.test.js +93 -0
  405. package/table/Table.d.ts +6 -2
  406. package/table/Table.js +80 -37
  407. package/table/Table.stories.tsx +663 -0
  408. package/table/Table.test.d.ts +1 -0
  409. package/table/Table.test.js +112 -0
  410. package/table/types.d.ts +34 -6
  411. package/tabs/Tab.d.ts +4 -0
  412. package/tabs/Tab.js +117 -0
  413. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  414. package/tabs/Tabs.accessibility.test.js +56 -0
  415. package/tabs/Tabs.d.ts +1 -1
  416. package/tabs/Tabs.js +307 -145
  417. package/tabs/Tabs.stories.tsx +230 -0
  418. package/tabs/Tabs.test.d.ts +1 -0
  419. package/tabs/Tabs.test.js +276 -0
  420. package/tabs/types.d.ts +48 -27
  421. package/tag/Tag.accessibility.test.d.ts +1 -0
  422. package/tag/Tag.accessibility.test.js +69 -0
  423. package/tag/Tag.d.ts +1 -1
  424. package/tag/Tag.js +44 -86
  425. package/tag/Tag.stories.tsx +37 -30
  426. package/tag/Tag.test.d.ts +1 -0
  427. package/tag/Tag.test.js +41 -0
  428. package/tag/types.d.ts +25 -16
  429. package/text-input/Suggestion.d.ts +4 -0
  430. package/text-input/Suggestion.js +67 -0
  431. package/text-input/Suggestions.d.ts +4 -0
  432. package/text-input/Suggestions.js +94 -0
  433. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  434. package/text-input/TextInput.accessibility.test.js +321 -0
  435. package/text-input/TextInput.d.ts +4 -0
  436. package/text-input/TextInput.js +336 -592
  437. package/text-input/TextInput.stories.tsx +474 -0
  438. package/text-input/TextInput.test.d.ts +1 -0
  439. package/text-input/TextInput.test.js +1756 -0
  440. package/text-input/types.d.ts +205 -0
  441. package/text-input/types.js +5 -0
  442. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  443. package/textarea/Textarea.accessibility.test.js +155 -0
  444. package/textarea/Textarea.d.ts +4 -0
  445. package/textarea/Textarea.js +98 -183
  446. package/textarea/Textarea.stories.tsx +174 -0
  447. package/textarea/Textarea.test.d.ts +1 -0
  448. package/textarea/Textarea.test.js +406 -0
  449. package/textarea/types.d.ts +141 -0
  450. package/textarea/types.js +5 -0
  451. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  452. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  453. package/toggle-group/ToggleGroup.d.ts +4 -0
  454. package/toggle-group/ToggleGroup.js +99 -143
  455. package/toggle-group/ToggleGroup.stories.tsx +79 -39
  456. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  457. package/toggle-group/ToggleGroup.test.js +137 -0
  458. package/toggle-group/types.d.ts +114 -0
  459. package/toggle-group/types.js +5 -0
  460. package/typography/Typography.accessibility.test.d.ts +1 -0
  461. package/typography/Typography.accessibility.test.js +339 -0
  462. package/typography/Typography.d.ts +4 -0
  463. package/typography/Typography.js +23 -0
  464. package/typography/Typography.stories.tsx +198 -0
  465. package/typography/types.d.ts +18 -0
  466. package/typography/types.js +5 -0
  467. package/useTheme.d.ts +1145 -0
  468. package/useTheme.js +4 -11
  469. package/useTranslatedLabels.d.ts +85 -0
  470. package/useTranslatedLabels.js +14 -0
  471. package/utils/BaseTypography.d.ts +21 -0
  472. package/utils/BaseTypography.js +94 -0
  473. package/utils/FocusLock.d.ts +13 -0
  474. package/utils/FocusLock.js +124 -0
  475. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  476. package/wizard/Wizard.accessibility.test.js +55 -0
  477. package/wizard/Wizard.d.ts +1 -1
  478. package/wizard/Wizard.js +122 -114
  479. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +67 -19
  480. package/wizard/Wizard.test.d.ts +1 -0
  481. package/wizard/Wizard.test.js +114 -0
  482. package/wizard/types.d.ts +15 -15
  483. package/ThemeContext.js +0 -246
  484. package/V3Select/V3Select.js +0 -455
  485. package/V3Select/index.d.ts +0 -27
  486. package/V3Textarea/V3Textarea.js +0 -260
  487. package/V3Textarea/index.d.ts +0 -27
  488. package/chip/index.d.ts +0 -22
  489. package/common/OpenSans.css +0 -81
  490. package/common/RequiredComponent.js +0 -32
  491. package/common/fonts/OpenSans-Bold.ttf +0 -0
  492. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  493. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  494. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  495. package/common/fonts/OpenSans-Italic.ttf +0 -0
  496. package/common/fonts/OpenSans-Light.ttf +0 -0
  497. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  498. package/common/fonts/OpenSans-Regular.ttf +0 -0
  499. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  500. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  501. package/date/Date.js +0 -373
  502. package/date/index.d.ts +0 -27
  503. package/input-text/Icons.js +0 -22
  504. package/input-text/InputText.js +0 -611
  505. package/input-text/index.d.ts +0 -36
  506. package/paginator/Icons.js +0 -66
  507. package/progress-bar/ProgressBar.stories.jsx +0 -58
  508. package/radio/Radio.d.ts +0 -4
  509. package/radio/Radio.js +0 -174
  510. package/radio/Radio.stories.tsx +0 -192
  511. package/radio/types.d.ts +0 -54
  512. package/resultsetTable/ResultsetTable.js +0 -274
  513. package/resultsetTable/index.d.ts +0 -19
  514. package/select/index.d.ts +0 -131
  515. package/table/Table.stories.jsx +0 -276
  516. package/text-input/index.d.ts +0 -135
  517. package/textarea/Textarea.stories.jsx +0 -135
  518. package/textarea/index.d.ts +0 -117
  519. package/toggle/Toggle.js +0 -186
  520. package/toggle/index.d.ts +0 -21
  521. package/toggle-group/index.d.ts +0 -21
  522. package/upload/Upload.js +0 -201
  523. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  524. package/upload/buttons-upload/Icons.js +0 -40
  525. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  526. package/upload/dragAndDropArea/Icons.js +0 -39
  527. package/upload/file-upload/FileToUpload.js +0 -115
  528. package/upload/file-upload/Icons.js +0 -66
  529. package/upload/files-upload/FilesToUpload.js +0 -109
  530. package/upload/index.d.ts +0 -15
  531. package/upload/transaction/Icons.js +0 -160
  532. package/upload/transaction/Transaction.js +0 -104
  533. package/upload/transactions/Transactions.js +0 -94
  534. package/wizard/Icons.js +0 -65
  535. /package/{radio → action-icon}/types.js +0 -0
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _react2 = require("@testing-library/react");
8
+ var _axeHelper = require("../../test/accessibility/axe-helper.js");
9
+ var _Switch = _interopRequireDefault(require("./Switch"));
10
+ var _disabledRules = require("../../test/accessibility/rules/specific/switch/disabledRules.js");
11
+ var disabledRules = {
12
+ rules: _disabledRules.disabledRules.reduce(function (rulesObj, rule) {
13
+ rulesObj[rule] = {
14
+ enabled: false
15
+ };
16
+ return rulesObj;
17
+ }, {})
18
+ };
19
+ describe("Switch component accessibility tests", function () {
20
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
21
+ var _render, container, results;
22
+ return _regenerator["default"].wrap(function _callee$(_context) {
23
+ while (1) switch (_context.prev = _context.next) {
24
+ case 0:
25
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
26
+ label: "Default label",
27
+ defaultChecked: true,
28
+ value: "test-defaultChecked",
29
+ name: "test",
30
+ labelPosition: "after",
31
+ margin: "medium",
32
+ size: "medium",
33
+ checked: true
34
+ })), container = _render.container;
35
+ _context.next = 3;
36
+ return (0, _axeHelper.axe)(container, disabledRules);
37
+ case 3:
38
+ results = _context.sent;
39
+ expect(results).toHaveNoViolations();
40
+ case 5:
41
+ case "end":
42
+ return _context.stop();
43
+ }
44
+ }, _callee);
45
+ })));
46
+ it("Should not have basic accessibility issues for optional mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
47
+ var _render2, container, results;
48
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
49
+ while (1) switch (_context2.prev = _context2.next) {
50
+ case 0:
51
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
52
+ label: "Default label",
53
+ defaultChecked: true,
54
+ value: "test-defaultChecked",
55
+ name: "test",
56
+ labelPosition: "after",
57
+ margin: "medium",
58
+ size: "medium",
59
+ optional: true
60
+ })), container = _render2.container;
61
+ _context2.next = 3;
62
+ return (0, _axeHelper.axe)(container, disabledRules);
63
+ case 3:
64
+ results = _context2.sent;
65
+ expect(results).toHaveNoViolations();
66
+ case 5:
67
+ case "end":
68
+ return _context2.stop();
69
+ }
70
+ }, _callee2);
71
+ })));
72
+ it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
73
+ var _render3, container, results;
74
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
75
+ while (1) switch (_context3.prev = _context3.next) {
76
+ case 0:
77
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
78
+ label: "Default label",
79
+ defaultChecked: true,
80
+ value: "test-defaultChecked",
81
+ name: "test",
82
+ labelPosition: "after",
83
+ margin: "medium",
84
+ size: "medium",
85
+ disabled: true
86
+ })), container = _render3.container;
87
+ _context3.next = 3;
88
+ return (0, _axeHelper.axe)(container, disabledRules);
89
+ case 3:
90
+ results = _context3.sent;
91
+ expect(results).toHaveNoViolations();
92
+ case 5:
93
+ case "end":
94
+ return _context3.stop();
95
+ }
96
+ }, _callee3);
97
+ })));
98
+ });
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import SwitchPropsType from "./types";
3
- declare const DxcSwitch: ({ checked, value, label, labelPosition, name, disabled, onChange, required, margin, size, tabIndex, }: SwitchPropsType) => JSX.Element;
3
+ declare const DxcSwitch: React.ForwardRefExoticComponent<SwitchPropsType & React.RefAttributes<HTMLDivElement>>;
4
4
  export default DxcSwitch;
package/switch/Switch.js CHANGED
@@ -1,122 +1,162 @@
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
- var _core = require("@material-ui/core");
23
-
24
- var _RequiredComponent = _interopRequireDefault(require("../common/RequiredComponent"));
25
-
26
- var _variables = require("../common/variables.js");
27
-
28
- var _utils = require("../common/utils.js");
29
-
30
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
31
-
32
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
33
-
34
- var _templateObject, _templateObject2;
35
-
36
- 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); }
37
-
38
- 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; }
39
-
40
- var DxcSwitch = function DxcSwitch(_ref) {
41
- var checked = _ref.checked,
42
- value = _ref.value,
43
- _ref$label = _ref.label,
44
- label = _ref$label === void 0 ? "" : _ref$label,
45
- _ref$labelPosition = _ref.labelPosition,
46
- labelPosition = _ref$labelPosition === void 0 ? "before" : _ref$labelPosition,
47
- _ref$name = _ref.name,
48
- name = _ref$name === void 0 ? "" : _ref$name,
49
- _ref$disabled = _ref.disabled,
50
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
51
- onChange = _ref.onChange,
52
- _ref$required = _ref.required,
53
- required = _ref$required === void 0 ? false : _ref$required,
54
- margin = _ref.margin,
55
- _ref$size = _ref.size,
56
- size = _ref$size === void 0 ? "fitContent" : _ref$size,
57
- _ref$tabIndex = _ref.tabIndex,
58
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
59
-
60
- var _useState = (0, _react.useState)(false),
61
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
62
- innerChecked = _useState2[0],
63
- setInnerChecked = _useState2[1];
64
-
14
+ var _variables = require("../common/variables");
15
+ var _utils = require("../common/utils");
16
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
17
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
18
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
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 && {}.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; }
21
+ var DxcSwitch = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
22
+ var defaultChecked = _ref.defaultChecked,
23
+ checked = _ref.checked,
24
+ value = _ref.value,
25
+ _ref$label = _ref.label,
26
+ label = _ref$label === void 0 ? "" : _ref$label,
27
+ _ref$labelPosition = _ref.labelPosition,
28
+ labelPosition = _ref$labelPosition === void 0 ? "before" : _ref$labelPosition,
29
+ _ref$name = _ref.name,
30
+ name = _ref$name === void 0 ? "" : _ref$name,
31
+ _ref$disabled = _ref.disabled,
32
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
33
+ _ref$optional = _ref.optional,
34
+ optional = _ref$optional === void 0 ? false : _ref$optional,
35
+ onChange = _ref.onChange,
36
+ margin = _ref.margin,
37
+ _ref$size = _ref.size,
38
+ size = _ref$size === void 0 ? "fitContent" : _ref$size,
39
+ _ref$tabIndex = _ref.tabIndex,
40
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
41
+ var switchId = "switch-".concat((0, _react.useId)());
42
+ var labelId = "label-".concat(switchId);
43
+ var _useState = (0, _react.useState)(defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : false),
44
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
45
+ innerChecked = _useState2[0],
46
+ setInnerChecked = _useState2[1];
65
47
  var colorsTheme = (0, _useTheme["default"])();
66
- var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
67
-
48
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
49
+ var refTrack = (0, _react.useRef)(null);
50
+ var handleOnKeyDown = function handleOnKeyDown(event) {
51
+ switch (event.key) {
52
+ case "Enter":
53
+ case " ":
54
+ // Space
55
+ event.preventDefault();
56
+ refTrack.current.focus();
57
+ var isChecked = !(checked !== null && checked !== void 0 ? checked : innerChecked);
58
+ setInnerChecked(isChecked);
59
+ onChange === null || onChange === void 0 ? void 0 : onChange(isChecked);
60
+ break;
61
+ }
62
+ };
68
63
  var handlerSwitchChange = function handlerSwitchChange(event) {
69
- if (checked === undefined) {
70
- var _event$target$checked;
71
-
72
- var isChecked = (_event$target$checked = event.target.checked) !== null && _event$target$checked !== void 0 ? _event$target$checked : !innerChecked;
73
- setInnerChecked(isChecked);
74
- onChange === null || onChange === void 0 ? void 0 : onChange(isChecked);
75
- } else onChange === null || onChange === void 0 ? void 0 : onChange(!checked);
64
+ checked !== null && checked !== void 0 ? checked : setInnerChecked(function (innerChecked) {
65
+ return !innerChecked;
66
+ });
67
+ onChange === null || onChange === void 0 ? void 0 : onChange(checked ? !checked : !innerChecked);
76
68
  };
77
-
78
69
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
79
70
  theme: colorsTheme["switch"]
80
71
  }, /*#__PURE__*/_react["default"].createElement(SwitchContainer, {
81
72
  margin: margin,
73
+ size: size,
74
+ onKeyDown: handleOnKeyDown,
82
75
  disabled: disabled,
76
+ onClick: !disabled ? handlerSwitchChange : undefined,
77
+ ref: ref
78
+ }, labelPosition === "before" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
79
+ id: labelId,
83
80
  labelPosition: labelPosition,
84
- size: size,
85
- backgroundType: backgroundType
86
- }, /*#__PURE__*/_react["default"].createElement(_core.Switch, {
87
- checked: checked !== null && checked !== void 0 ? checked : innerChecked,
88
- inputProps: {
89
- name: name,
90
- tabIndex: tabIndex
91
- },
92
- onChange: handlerSwitchChange,
81
+ disabled: disabled,
82
+ label: label
83
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(ValueInput, {
84
+ type: "checkbox",
85
+ name: name,
86
+ "aria-hidden": true,
93
87
  value: value,
94
88
  disabled: disabled,
95
- disableRipple: true
96
- }), /*#__PURE__*/_react["default"].createElement(LabelContainer, {
89
+ checked: checked !== null && checked !== void 0 ? checked : innerChecked,
90
+ readOnly: true
91
+ }), /*#__PURE__*/_react["default"].createElement(SwitchBase, null, /*#__PURE__*/_react["default"].createElement(SwitchTrack, {
92
+ role: "switch",
93
+ "aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
94
+ "aria-disabled": disabled,
95
+ disabled: disabled,
96
+ "aria-labelledby": labelId,
97
+ tabIndex: !disabled ? tabIndex : -1,
98
+ ref: refTrack
99
+ })), labelPosition === "after" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
100
+ id: labelId,
97
101
  labelPosition: labelPosition,
98
- onClick: !disabled && handlerSwitchChange,
99
102
  disabled: disabled,
100
- backgroundType: backgroundType
101
- }, required && /*#__PURE__*/_react["default"].createElement(_RequiredComponent["default"], null), label)));
102
- };
103
-
103
+ label: label
104
+ }, optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel), " ", label)));
105
+ });
104
106
  var sizes = {
105
107
  small: "60px",
106
108
  medium: "240px",
107
109
  large: "480px",
108
110
  fillParent: "100%",
109
- fitContent: "unset"
111
+ fitContent: "fit-content"
110
112
  };
111
-
112
113
  var calculateWidth = function calculateWidth(margin, size) {
113
114
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
114
115
  };
115
-
116
- var SwitchContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n display: inline-flex;\n align-items: center;\n flex-direction: ", ";\n \n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n cursor: ", ";\n\n .MuiSwitch-root {\n align-items: center;\n width: ", ";\n height: 45px;\n margin: 3px;\n\n .Mui-focusVisible {\n outline: ", ";\n outline-offset: -3px;\n }\n\n .MuiSwitch-track {\n /*Enabled and unchecked bar*/\n background-color: ", ";\n height: ", ";\n }\n\n .MuiSwitch-switchBase + .MuiSwitch-track {\n opacity: 1;\n }\n\n .MuiIconButton-root {\n /*Enabled and unchecked*/\n top: unset;\n .MuiSwitch-thumb {\n /*Only for thumb in all states*/\n width: ", ";\n height: ", ";\n }\n color: ", ";\n &:hover {\n background-color: transparent;\n }\n &.Mui-disabled {\n /*Disabled and unchecked*/\n color: ", ";\n + .MuiSwitch-track {\n /*Disabled and unchecked bar*/\n background-color: ", ";\n }\n }\n &.Mui-disabled.Mui-checked {\n /*Disabled and checked*/\n color: ", ";\n + .MuiSwitch-track {\n /*Disabled and checked bar*/\n background-color: ", ";\n }\n }\n &.Mui-checked {\n /*Enabled and checked*/\n color: ", ";\n transform: translateX(", ");\n &:hover {\n background-color: transparent;\n }\n + .MuiSwitch-track {\n /*Enabled and checked bar*/\n background-color: ", ";\n }\n }\n }\n }\n"])), function (props) {
116
+ var getDisabledColor = function getDisabledColor(theme, element, subElement) {
117
+ switch (element) {
118
+ case "track":
119
+ switch (subElement) {
120
+ case "check":
121
+ return theme.disabledCheckedTrackBackgroundColor;
122
+ case "uncheck":
123
+ return theme.disabledUncheckedTrackBackgroundColor;
124
+ }
125
+ case "thumb":
126
+ switch (subElement) {
127
+ case "check":
128
+ return theme.disabledCheckedThumbBackgroundColor;
129
+ case "uncheck":
130
+ return theme.disabledUncheckedThumbBackgroundColor;
131
+ }
132
+ case "label":
133
+ return theme.disabledLabelFontColor;
134
+ }
135
+ };
136
+ var getNotDisabledColor = function getNotDisabledColor(theme, element, subElement) {
137
+ switch (element) {
138
+ case "track":
139
+ switch (subElement) {
140
+ case "check":
141
+ return theme.checkedTrackBackgroundColor;
142
+ case "uncheck":
143
+ return theme.uncheckedTrackBackgroundColor;
144
+ }
145
+ case "thumb":
146
+ switch (subElement) {
147
+ case "check":
148
+ return theme.checkedThumbBackgroundColor;
149
+ case "uncheck":
150
+ return theme.uncheckedThumbBackgroundColor;
151
+ }
152
+ case "label":
153
+ return theme.labelFontColor;
154
+ }
155
+ };
156
+ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n width: ", ";\n height: 40px;\n cursor: ", ";\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
117
157
  return calculateWidth(props.margin, props.size);
118
158
  }, function (props) {
119
- return props.labelPosition === "after" ? "row" : "row-reverse";
159
+ return props.disabled === true ? "not-allowed" : "pointer";
120
160
  }, function (props) {
121
161
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
122
162
  }, function (props) {
@@ -127,53 +167,45 @@ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_temp
127
167
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
128
168
  }, function (props) {
129
169
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
170
+ });
171
+ var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ", ";\n opacity: 1;\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n\n ", ";\n\n ", "\n"])), function (props) {
172
+ return props.disabled ? getDisabledColor(props.theme, "label") : getNotDisabledColor(props.theme, "label");
130
173
  }, function (props) {
131
- return props.disabled ? "not-allowed" : "default";
132
- }, function (props) {
133
- return props.theme.trackWidth;
134
- }, function (props) {
135
- return "".concat(props.backgroundType === "dark" ? props.theme.thumbFocusColorOnDark : props.theme.thumbFocusColor, " solid 2px");
136
- }, function (props) {
137
- return props.backgroundType === "dark" ? props.theme.uncheckedTrackBackgroundColorOnDark : props.theme.uncheckedTrackBackgroundColor;
138
- }, function (props) {
139
- return props.theme.trackHeight;
140
- }, function (props) {
141
- return props.theme.thumbWidth;
174
+ return props.theme.labelFontFamily;
142
175
  }, function (props) {
143
- return props.theme.thumbHeight;
176
+ return props.theme.labelFontSize;
144
177
  }, function (props) {
145
- return props.backgroundType === "dark" ? props.theme.uncheckedThumbBackgroundColorOnDark : props.theme.uncheckedThumbBackgroundColor;
178
+ return props.disabled ? props.theme.disabledLabelFontStyle : props.theme.labelFontStyle;
146
179
  }, function (props) {
147
- return props.backgroundType === "dark" ? props.theme.disabledUncheckedThumbBackgroundColorOnDark : props.theme.disabledUncheckedThumbBackgroundColor;
180
+ return props.theme.labelFontWeight;
148
181
  }, function (props) {
149
- return props.backgroundType === "dark" ? props.theme.disabledUncheckedTrackBackgroundColorOnDark : props.theme.disabledUncheckedTrackBackgroundColor;
182
+ return !props.label ? "margin: 0px;" : props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
150
183
  }, function (props) {
151
- return props.backgroundType === "dark" ? props.theme.disabledCheckedThumbBackgroundColorOnDark : props.theme.disabledCheckedThumbBackgroundColor;
184
+ return props.labelPosition === "before" && "order: -1";
185
+ });
186
+ var SwitchBase = _styledComponents["default"].label(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n margin: 0px 12px;\n"])));
187
+ var ValueInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
188
+ var SwitchTrack = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n border-radius: 15px;\n width: ", ";\n height: ", ";\n position: relative;\n cursor: ", ";\n\n &:focus-visible {\n outline: none;\n ::before {\n outline: ", ";\n outline-offset: 6px;\n }\n }\n\n /* Thumb element */\n ::before {\n content: \"\";\n transform: initial;\n position: absolute;\n width: ", ";\n height: ", ";\n border-radius: 50%;\n box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);\n bottom: -6px;\n left: -4px;\n transform: translateX(0px);\n background-color: ", ";\n }\n\n /* Unchecked */\n background-color: ", ";\n\n /* Checked */\n &[aria-checked=\"true\"] {\n background-color: ", ";\n ::before {\n transform: translateX(", ");\n background-color: ", ";\n }\n }\n"])), function (props) {
189
+ return props.theme.trackWidth;
152
190
  }, function (props) {
153
- return props.backgroundType === "dark" ? props.theme.disabledCheckedTrackBackgroundColorOnDark : props.theme.disabledCheckedTrackBackgroundColor;
191
+ return props.theme.trackHeight;
154
192
  }, function (props) {
155
- return props.backgroundType === "dark" ? props.theme.checkedThumbBackgroundColorOnDark : props.theme.checkedThumbBackgroundColor;
193
+ return props.disabled ? "not-allowed" : "pointer";
156
194
  }, function (props) {
157
- return props.theme.thumbShift;
195
+ return "".concat(props.theme.thumbFocusColor, " solid 2px");
158
196
  }, function (props) {
159
- return props.backgroundType === "dark" ? props.theme.checkedTrackBackgroundColorOnDark : props.theme.checkedTrackBackgroundColor;
160
- });
161
-
162
- var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ", ";\n opacity: 1;\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n cursor: ", ";\n ", "\n"])), function (props) {
163
- return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
197
+ return props.theme.thumbWidth;
164
198
  }, function (props) {
165
- return props.theme.labelFontFamily;
199
+ return props.theme.thumbHeight;
166
200
  }, function (props) {
167
- return props.theme.labelFontSize;
201
+ return props.disabled ? getDisabledColor(props.theme, "thumb", "uncheck") : getNotDisabledColor(props.theme, "thumb", "uncheck");
168
202
  }, function (props) {
169
- return props.disabled ? props.theme.disabledLabelFontStyle : props.theme.labelFontStyle;
203
+ return props.disabled ? getDisabledColor(props.theme, "track", "uncheck") : getNotDisabledColor(props.theme, "track", "uncheck");
170
204
  }, function (props) {
171
- return props.theme.labelFontWeight;
205
+ return props.disabled ? getDisabledColor(props.theme, "track", "check") : getNotDisabledColor(props.theme, "track", "check");
172
206
  }, function (props) {
173
- return props.disabled === true ? "not-allowed" : "pointer";
207
+ return props.theme.thumbShift;
174
208
  }, function (props) {
175
- return props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
209
+ return props.disabled ? getDisabledColor(props.theme, "thumb", "check") : getNotDisabledColor(props.theme, "thumb", "check");
176
210
  });
177
-
178
- var _default = DxcSwitch;
179
- exports["default"] = _default;
211
+ var _default = exports["default"] = DxcSwitch;
@@ -1,14 +1,31 @@
1
1
  import React from "react";
2
- import { userEvent, within } from "@storybook/testing-library";
3
2
  import DxcSwitch from "./Switch";
4
- import { BackgroundColorProvider } from "../BackgroundColorContext";
5
3
  import Title from "../../.storybook/components/Title";
6
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
7
- import DarkContainer from "../../.storybook/components/DarkSection";
5
+ import { HalstackProvider } from "../HalstackContext";
6
+ import { disabledRules } from "../../test/accessibility/rules/specific/switch/disabledRules";
7
+ import preview from "../../.storybook/preview";
8
8
 
9
9
  export default {
10
10
  title: "Switch",
11
11
  component: DxcSwitch,
12
+ parameters: {
13
+ a11y: {
14
+ config: {
15
+ rules: [
16
+ ...disabledRules.map((ruleId) => ({ id: ruleId, enabled: false })),
17
+ ...preview?.parameters?.a11y?.config?.rules,
18
+ ],
19
+ },
20
+ },
21
+ },
22
+ };
23
+
24
+ const opinionatedTheme = {
25
+ switch: {
26
+ checkedBaseColor: "#5f249f",
27
+ fontColor: "#000000",
28
+ },
12
29
  };
13
30
 
14
31
  export const Chromatic = () => (
@@ -21,58 +38,34 @@ export const Chromatic = () => (
21
38
  <Title title="Without label" theme="light" level={4} />
22
39
  <DxcSwitch />
23
40
  </ExampleContainer>
41
+ <ExampleContainer pseudoState="pseudo-focus-visible">
42
+ <Title title="Focused" theme="light" level={4} />
43
+ <DxcSwitch label="Switch" labelPosition="after" />
44
+ </ExampleContainer>
24
45
  <ExampleContainer>
25
46
  <Title title="Checked" theme="light" level={4} />
26
- <DxcSwitch label="Switch" checked />
47
+ <DxcSwitch label="Switch" defaultChecked />
27
48
  </ExampleContainer>
28
49
  <ExampleContainer>
29
- <Title title="Required" theme="light" level={4} />
30
- <DxcSwitch label="Switch" required />
50
+ <Title title="Optional" theme="light" level={4} />
51
+ <DxcSwitch label="Switch" optional />
31
52
  </ExampleContainer>
32
53
  <ExampleContainer>
33
54
  <Title title="Disabled" theme="light" level={4} />
34
55
  <DxcSwitch label="Switch" disabled />
35
56
  </ExampleContainer>
36
57
  <ExampleContainer>
37
- <Title title="Disabled required" theme="light" level={4} />
38
- <DxcSwitch label="Switch" disabled required labelPosition="after" />
58
+ <Title title="Disabled optional" theme="light" level={4} />
59
+ <DxcSwitch label="Switch" disabled optional labelPosition="after" />
39
60
  </ExampleContainer>
40
61
  <ExampleContainer>
41
62
  <Title title="Disabled checked" theme="light" level={4} />
42
- <DxcSwitch label="Switch" disabled checked labelPosition="after" />
43
- </ExampleContainer>
44
- <BackgroundColorProvider color="#333333">
45
- <DarkContainer>
46
- <ExampleContainer>
47
- <Title title="With label" theme="dark" level={4} />
48
- <DxcSwitch label="Switch" />
49
- </ExampleContainer>
50
- <ExampleContainer>
51
- <Title title="Checked" theme="dark" level={4} />
52
- <DxcSwitch label="Switch" checked />
53
- </ExampleContainer>
54
- <ExampleContainer>
55
- <Title title="Required" theme="dark" level={4} />
56
- <DxcSwitch label="Switch" required />
57
- </ExampleContainer>
58
- <ExampleContainer>
59
- <Title title="Disabled" theme="dark" level={4} />
60
- <DxcSwitch label="Switch" disabled />
61
- </ExampleContainer>
62
- <ExampleContainer>
63
- <Title title="Disabled required" theme="dark" level={4} />
64
- <DxcSwitch label="Switch" disabled required labelPosition="after" />
65
- </ExampleContainer>
66
- <ExampleContainer>
67
- <Title title="Disabled checked" theme="dark" level={4} />
68
- <DxcSwitch label="Switch" disabled checked labelPosition="after" />
69
- </ExampleContainer>
70
- </DarkContainer>
71
- </BackgroundColorProvider>
63
+ <DxcSwitch label="Switch" disabled defaultChecked labelPosition="after" />
64
+ </ExampleContainer>
72
65
  <Title title="Margins" theme="light" level={2} />
73
66
  <ExampleContainer>
74
67
  <Title title="Xxsmall margin" theme="light" level={4} />
75
- <DxcSwitch label="Xxsmmall" margin="xxsmall" />
68
+ <DxcSwitch label="Xxsmall" margin="xxsmall" />
76
69
  </ExampleContainer>
77
70
  <ExampleContainer>
78
71
  <Title title="Xsmall margin" theme="light" level={4} />
@@ -127,34 +120,30 @@ export const Chromatic = () => (
127
120
  <Title title="FitContent size" theme="light" level={4} />
128
121
  <DxcSwitch label="FitContent" size="fitContent" />
129
122
  </ExampleContainer>
130
- </>
131
- );
132
-
133
- const Switch = () => (
134
- <ExampleContainer>
135
- <Title title="Focused" theme="light" level={4} />
136
- <DxcSwitch label="Switch" />
137
- </ExampleContainer>
138
- );
139
- export const FocusedSwitch = Switch.bind({});
140
- FocusedSwitch.play = async ({ canvasElement }) => {
141
- const canvas = within(canvasElement);
142
- canvas.getByRole("checkbox").focus();
143
- };
144
-
145
- const DarkSwitch = () => (
146
- <BackgroundColorProvider color="#333333">
147
- <DarkContainer>
148
- <ExampleContainer>
149
- <Title title="Focused" theme="dark" level={4} />
123
+ <Title title="Opinionated theme" theme="light" level={2} />
124
+ <ExampleContainer>
125
+ <Title title="Checked" theme="light" level={4} />
126
+ <HalstackProvider theme={opinionatedTheme}>
127
+ <DxcSwitch label="Switch" defaultChecked />
128
+ </HalstackProvider>
129
+ </ExampleContainer>
130
+ <ExampleContainer>
131
+ <Title title="Default" theme="light" level={4} />
132
+ <HalstackProvider theme={opinionatedTheme}>
150
133
  <DxcSwitch label="Switch" />
151
- </ExampleContainer>
152
- </DarkContainer>
153
- </BackgroundColorProvider>
134
+ </HalstackProvider>
135
+ </ExampleContainer>
136
+ <ExampleContainer>
137
+ <Title title="Disabled" theme="light" level={4} />
138
+ <HalstackProvider theme={opinionatedTheme}>
139
+ <DxcSwitch label="Switch" disabled />
140
+ </HalstackProvider>
141
+ </ExampleContainer>
142
+ <ExampleContainer>
143
+ <Title title="Disabled checked" theme="light" level={4} />
144
+ <HalstackProvider theme={opinionatedTheme}>
145
+ <DxcSwitch label="Switch" disabled defaultChecked />
146
+ </HalstackProvider>
147
+ </ExampleContainer>
148
+ </>
154
149
  );
155
-
156
- export const FocusedSwitchOnDark = DarkSwitch.bind({});
157
- FocusedSwitchOnDark.play = async ({ canvasElement }) => {
158
- const canvas = within(canvasElement);
159
- canvas.getByRole("checkbox").focus();
160
- };
@@ -0,0 +1 @@
1
+ export {};