@dxc-technology/halstack-react 0.0.0-c291a0c → 0.0.0-c2b6ec9

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 (511) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1240 -6
  4. package/HalstackContext.js +130 -115
  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 +101 -159
  10. package/accordion/Accordion.stories.tsx +82 -148
  11. package/accordion/Accordion.test.d.ts +1 -0
  12. package/accordion/Accordion.test.js +24 -40
  13. package/accordion/types.d.ts +6 -17
  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 +2 -2
  17. package/accordion-group/AccordionGroup.js +31 -98
  18. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  19. package/accordion-group/AccordionGroup.test.d.ts +1 -0
  20. package/accordion-group/AccordionGroup.test.js +49 -106
  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 +12 -17
  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 +37 -127
  37. package/alert/Alert.stories.tsx +28 -0
  38. package/alert/Alert.test.d.ts +1 -0
  39. package/alert/Alert.test.js +28 -45
  40. package/alert/types.d.ts +5 -5
  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 +1 -1
  44. package/badge/Badge.js +142 -42
  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 +52 -3
  49. package/bleed/Bleed.js +13 -21
  50. package/bleed/Bleed.stories.tsx +64 -63
  51. package/bleed/types.d.ts +2 -2
  52. package/box/Box.accessibility.test.d.ts +1 -0
  53. package/box/Box.accessibility.test.js +33 -0
  54. package/box/Box.d.ts +1 -1
  55. package/box/Box.js +19 -60
  56. package/box/Box.stories.tsx +38 -51
  57. package/box/Box.test.d.ts +1 -0
  58. package/box/Box.test.js +1 -6
  59. package/box/types.d.ts +3 -14
  60. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  61. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  62. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  63. package/breadcrumbs/Breadcrumbs.js +79 -0
  64. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  65. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  66. package/breadcrumbs/Breadcrumbs.test.js +168 -0
  67. package/breadcrumbs/Item.d.ts +4 -0
  68. package/breadcrumbs/Item.js +52 -0
  69. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  70. package/breadcrumbs/dropdownTheme.js +62 -0
  71. package/breadcrumbs/types.d.ts +16 -0
  72. package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
  73. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  74. package/bulleted-list/BulletedList.d.ts +7 -0
  75. package/bulleted-list/BulletedList.js +92 -0
  76. package/bulleted-list/BulletedList.stories.tsx +115 -0
  77. package/bulleted-list/types.d.ts +38 -0
  78. package/button/Button.accessibility.test.d.ts +1 -0
  79. package/button/Button.accessibility.test.js +127 -0
  80. package/button/Button.d.ts +1 -1
  81. package/button/Button.js +64 -117
  82. package/button/Button.stories.tsx +151 -100
  83. package/button/Button.test.d.ts +1 -0
  84. package/button/Button.test.js +19 -16
  85. package/button/types.d.ts +12 -8
  86. package/card/Card.accessibility.test.d.ts +1 -0
  87. package/card/Card.accessibility.test.js +36 -0
  88. package/card/Card.d.ts +1 -1
  89. package/card/Card.js +49 -89
  90. package/card/Card.stories.tsx +13 -43
  91. package/card/Card.test.d.ts +1 -0
  92. package/card/Card.test.js +10 -21
  93. package/card/types.d.ts +6 -11
  94. package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
  95. package/checkbox/Checkbox.accessibility.test.js +87 -0
  96. package/checkbox/Checkbox.d.ts +2 -2
  97. package/checkbox/Checkbox.js +138 -183
  98. package/checkbox/Checkbox.stories.tsx +128 -94
  99. package/checkbox/Checkbox.test.d.ts +1 -0
  100. package/checkbox/Checkbox.test.js +159 -38
  101. package/checkbox/types.d.ts +11 -3
  102. package/chip/Chip.accessibility.test.d.ts +1 -0
  103. package/chip/Chip.accessibility.test.js +67 -0
  104. package/chip/Chip.js +45 -80
  105. package/chip/Chip.stories.tsx +103 -27
  106. package/chip/Chip.test.d.ts +1 -0
  107. package/chip/Chip.test.js +17 -32
  108. package/chip/types.d.ts +4 -4
  109. package/common/coreTokens.d.ts +237 -0
  110. package/common/coreTokens.js +184 -0
  111. package/common/utils.d.ts +1 -0
  112. package/common/utils.js +6 -12
  113. package/common/variables.d.ts +1392 -0
  114. package/common/variables.js +993 -1199
  115. package/container/Container.d.ts +4 -0
  116. package/container/Container.js +194 -0
  117. package/container/Container.stories.tsx +214 -0
  118. package/container/types.d.ts +74 -0
  119. package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
  120. package/contextual-menu/ContextualMenu.accessibility.test.js +98 -0
  121. package/contextual-menu/ContextualMenu.d.ts +5 -0
  122. package/contextual-menu/ContextualMenu.js +108 -0
  123. package/contextual-menu/ContextualMenu.stories.tsx +223 -0
  124. package/contextual-menu/ContextualMenu.test.d.ts +1 -0
  125. package/contextual-menu/ContextualMenu.test.js +247 -0
  126. package/contextual-menu/GroupItem.d.ts +4 -0
  127. package/contextual-menu/GroupItem.js +67 -0
  128. package/contextual-menu/ItemAction.d.ts +4 -0
  129. package/contextual-menu/ItemAction.js +50 -0
  130. package/contextual-menu/MenuItem.d.ts +4 -0
  131. package/contextual-menu/MenuItem.js +29 -0
  132. package/contextual-menu/SingleItem.d.ts +4 -0
  133. package/contextual-menu/SingleItem.js +38 -0
  134. package/contextual-menu/types.d.ts +61 -0
  135. package/date-input/Calendar.d.ts +4 -0
  136. package/date-input/Calendar.js +230 -0
  137. package/date-input/DateInput.accessibility.test.d.ts +1 -0
  138. package/date-input/DateInput.accessibility.test.js +229 -0
  139. package/date-input/DateInput.js +156 -300
  140. package/date-input/DateInput.stories.tsx +210 -57
  141. package/date-input/DateInput.test.d.ts +1 -0
  142. package/date-input/DateInput.test.js +699 -370
  143. package/date-input/DatePicker.d.ts +4 -0
  144. package/date-input/DatePicker.js +121 -0
  145. package/date-input/YearPicker.d.ts +4 -0
  146. package/date-input/YearPicker.js +105 -0
  147. package/date-input/types.d.ts +72 -15
  148. package/dialog/Dialog.accessibility.test.d.ts +1 -0
  149. package/dialog/Dialog.accessibility.test.js +69 -0
  150. package/dialog/Dialog.d.ts +1 -1
  151. package/dialog/Dialog.js +61 -106
  152. package/dialog/Dialog.stories.tsx +324 -167
  153. package/dialog/Dialog.test.d.ts +1 -0
  154. package/dialog/Dialog.test.js +349 -19
  155. package/dialog/types.d.ts +18 -25
  156. package/divider/Divider.accessibility.test.d.ts +1 -0
  157. package/divider/Divider.accessibility.test.js +33 -0
  158. package/divider/Divider.d.ts +4 -0
  159. package/divider/Divider.js +36 -0
  160. package/divider/Divider.stories.tsx +223 -0
  161. package/divider/Divider.test.d.ts +1 -0
  162. package/divider/Divider.test.js +38 -0
  163. package/divider/types.d.ts +21 -0
  164. package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
  165. package/dropdown/Dropdown.accessibility.test.js +183 -0
  166. package/dropdown/Dropdown.d.ts +1 -1
  167. package/dropdown/Dropdown.js +232 -303
  168. package/dropdown/Dropdown.stories.tsx +236 -58
  169. package/dropdown/Dropdown.test.d.ts +1 -0
  170. package/dropdown/Dropdown.test.js +603 -164
  171. package/dropdown/DropdownMenu.d.ts +4 -0
  172. package/dropdown/DropdownMenu.js +63 -0
  173. package/dropdown/DropdownMenuItem.d.ts +4 -0
  174. package/dropdown/DropdownMenuItem.js +71 -0
  175. package/dropdown/types.d.ts +35 -19
  176. package/file-input/FileInput.accessibility.test.d.ts +1 -0
  177. package/file-input/FileInput.accessibility.test.js +167 -0
  178. package/file-input/FileInput.d.ts +2 -2
  179. package/file-input/FileInput.js +238 -393
  180. package/file-input/FileInput.stories.tsx +123 -12
  181. package/file-input/FileInput.test.d.ts +1 -0
  182. package/file-input/FileInput.test.js +314 -367
  183. package/file-input/FileItem.d.ts +4 -14
  184. package/file-input/FileItem.js +56 -117
  185. package/file-input/types.d.ts +24 -11
  186. package/flex/Flex.d.ts +4 -0
  187. package/flex/Flex.js +57 -0
  188. package/flex/Flex.stories.tsx +112 -0
  189. package/flex/types.d.ts +97 -0
  190. package/footer/Footer.accessibility.test.d.ts +1 -0
  191. package/footer/Footer.accessibility.test.js +125 -0
  192. package/footer/Footer.d.ts +1 -1
  193. package/footer/Footer.js +73 -118
  194. package/footer/Footer.stories.tsx +99 -21
  195. package/footer/Footer.test.d.ts +1 -0
  196. package/footer/Footer.test.js +32 -56
  197. package/footer/Icons.d.ts +3 -2
  198. package/footer/Icons.js +53 -22
  199. package/footer/types.d.ts +26 -27
  200. package/grid/Grid.d.ts +7 -0
  201. package/grid/Grid.js +76 -0
  202. package/grid/Grid.stories.tsx +221 -0
  203. package/grid/types.d.ts +115 -0
  204. package/grid/types.js +5 -0
  205. package/header/Header.accessibility.test.d.ts +1 -0
  206. package/header/Header.accessibility.test.js +94 -0
  207. package/header/Header.d.ts +4 -3
  208. package/header/Header.js +90 -183
  209. package/header/Header.stories.tsx +134 -39
  210. package/header/Header.test.d.ts +1 -0
  211. package/header/Header.test.js +12 -25
  212. package/header/Icons.d.ts +2 -2
  213. package/header/Icons.js +5 -15
  214. package/header/types.d.ts +7 -21
  215. package/heading/Heading.accessibility.test.d.ts +1 -0
  216. package/heading/Heading.accessibility.test.js +33 -0
  217. package/heading/Heading.js +10 -32
  218. package/heading/Heading.test.d.ts +1 -0
  219. package/heading/Heading.test.js +64 -94
  220. package/heading/types.d.ts +7 -7
  221. package/icon/Icon.accessibility.test.d.ts +1 -0
  222. package/icon/Icon.accessibility.test.js +30 -0
  223. package/icon/Icon.d.ts +4 -0
  224. package/icon/Icon.js +33 -0
  225. package/icon/Icon.stories.tsx +28 -0
  226. package/icon/types.d.ts +4 -0
  227. package/icon/types.js +5 -0
  228. package/image/Image.accessibility.test.d.ts +1 -0
  229. package/image/Image.accessibility.test.js +56 -0
  230. package/image/Image.d.ts +4 -0
  231. package/image/Image.js +70 -0
  232. package/image/Image.stories.tsx +129 -0
  233. package/image/types.d.ts +72 -0
  234. package/image/types.js +5 -0
  235. package/inset/Inset.js +13 -21
  236. package/inset/Inset.stories.tsx +5 -4
  237. package/inset/types.d.ts +2 -2
  238. package/layout/ApplicationLayout.d.ts +15 -6
  239. package/layout/ApplicationLayout.js +56 -118
  240. package/layout/ApplicationLayout.stories.tsx +81 -45
  241. package/layout/Icons.d.ts +7 -5
  242. package/layout/Icons.js +41 -59
  243. package/layout/types.d.ts +21 -32
  244. package/link/Link.accessibility.test.d.ts +1 -0
  245. package/link/Link.accessibility.test.js +108 -0
  246. package/link/Link.js +32 -51
  247. package/link/Link.stories.tsx +76 -9
  248. package/link/Link.test.d.ts +1 -0
  249. package/link/Link.test.js +23 -43
  250. package/link/types.d.ts +14 -14
  251. package/main.d.ts +15 -13
  252. package/main.js +66 -103
  253. package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
  254. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  255. package/nav-tabs/NavTabs.d.ts +7 -0
  256. package/nav-tabs/NavTabs.js +108 -0
  257. package/nav-tabs/NavTabs.stories.tsx +294 -0
  258. package/nav-tabs/NavTabs.test.d.ts +1 -0
  259. package/nav-tabs/NavTabs.test.js +77 -0
  260. package/nav-tabs/NavTabsContext.d.ts +3 -0
  261. package/nav-tabs/NavTabsContext.js +8 -0
  262. package/nav-tabs/Tab.js +117 -0
  263. package/{tabs-nav → nav-tabs}/types.d.ts +15 -16
  264. package/nav-tabs/types.js +5 -0
  265. package/number-input/NumberInput.accessibility.test.d.ts +1 -0
  266. package/number-input/NumberInput.accessibility.test.js +227 -0
  267. package/number-input/NumberInput.js +50 -37
  268. package/number-input/NumberInput.stories.tsx +37 -26
  269. package/number-input/NumberInput.test.d.ts +1 -0
  270. package/number-input/NumberInput.test.js +858 -376
  271. package/number-input/NumberInputContext.d.ts +3 -4
  272. package/number-input/NumberInputContext.js +3 -14
  273. package/number-input/types.d.ts +17 -5
  274. package/package.json +56 -54
  275. package/paginator/Paginator.accessibility.test.d.ts +1 -0
  276. package/paginator/Paginator.accessibility.test.js +78 -0
  277. package/paginator/Paginator.js +35 -68
  278. package/paginator/Paginator.stories.tsx +24 -0
  279. package/paginator/Paginator.test.d.ts +1 -0
  280. package/paginator/Paginator.test.js +253 -227
  281. package/paginator/types.d.ts +3 -3
  282. package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
  283. package/paragraph/Paragraph.accessibility.test.js +28 -0
  284. package/paragraph/Paragraph.d.ts +5 -0
  285. package/paragraph/Paragraph.js +22 -0
  286. package/paragraph/Paragraph.stories.tsx +27 -0
  287. package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
  288. package/password-input/PasswordInput.accessibility.test.js +152 -0
  289. package/password-input/PasswordInput.js +62 -128
  290. package/password-input/PasswordInput.stories.tsx +11 -34
  291. package/password-input/PasswordInput.test.d.ts +1 -0
  292. package/password-input/PasswordInput.test.js +158 -141
  293. package/password-input/types.d.ts +8 -7
  294. package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
  295. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  296. package/progress-bar/ProgressBar.js +68 -92
  297. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
  298. package/progress-bar/ProgressBar.test.d.ts +1 -0
  299. package/progress-bar/ProgressBar.test.js +71 -43
  300. package/progress-bar/types.d.ts +3 -3
  301. package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
  302. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  303. package/quick-nav/QuickNav.js +27 -45
  304. package/quick-nav/QuickNav.stories.tsx +146 -27
  305. package/quick-nav/types.d.ts +10 -10
  306. package/radio-group/Radio.d.ts +1 -1
  307. package/radio-group/Radio.js +59 -79
  308. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  309. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  310. package/radio-group/RadioGroup.js +70 -119
  311. package/radio-group/RadioGroup.stories.tsx +132 -18
  312. package/radio-group/RadioGroup.test.d.ts +1 -0
  313. package/radio-group/RadioGroup.test.js +518 -459
  314. package/radio-group/types.d.ts +10 -10
  315. package/resultset-table/Icons.d.ts +7 -0
  316. package/resultset-table/Icons.js +47 -0
  317. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  318. package/resultset-table/ResultsetTable.accessibility.test.js +284 -0
  319. package/resultset-table/ResultsetTable.d.ts +7 -0
  320. package/resultset-table/ResultsetTable.js +171 -0
  321. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +169 -31
  322. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  323. package/resultset-table/ResultsetTable.test.js +379 -0
  324. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  325. package/resultset-table/types.js +5 -0
  326. package/select/Listbox.js +40 -64
  327. package/select/Option.js +35 -56
  328. package/select/Select.accessibility.test.d.ts +1 -0
  329. package/select/Select.accessibility.test.js +227 -0
  330. package/select/Select.js +150 -208
  331. package/select/Select.stories.tsx +505 -203
  332. package/select/Select.test.d.ts +1 -0
  333. package/select/Select.test.js +1909 -1804
  334. package/select/types.d.ts +17 -20
  335. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  336. package/sidenav/Sidenav.accessibility.test.js +59 -0
  337. package/sidenav/Sidenav.d.ts +6 -5
  338. package/sidenav/Sidenav.js +132 -78
  339. package/sidenav/Sidenav.stories.tsx +246 -151
  340. package/sidenav/Sidenav.test.d.ts +1 -0
  341. package/sidenav/Sidenav.test.js +25 -44
  342. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  343. package/{layout → sidenav}/SidenavContext.js +3 -9
  344. package/sidenav/types.d.ts +52 -26
  345. package/slider/Slider.accessibility.test.d.ts +1 -0
  346. package/slider/Slider.accessibility.test.js +103 -0
  347. package/slider/Slider.d.ts +2 -2
  348. package/slider/Slider.js +146 -181
  349. package/slider/Slider.stories.tsx +64 -61
  350. package/slider/Slider.test.d.ts +1 -0
  351. package/slider/Slider.test.js +194 -88
  352. package/slider/types.d.ts +7 -3
  353. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  354. package/spinner/Spinner.accessibility.test.js +96 -0
  355. package/spinner/Spinner.js +34 -74
  356. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  357. package/spinner/Spinner.test.d.ts +1 -0
  358. package/spinner/Spinner.test.js +25 -34
  359. package/spinner/types.d.ts +3 -3
  360. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  361. package/status-light/StatusLight.accessibility.test.js +157 -0
  362. package/status-light/StatusLight.d.ts +4 -0
  363. package/status-light/StatusLight.js +51 -0
  364. package/status-light/StatusLight.stories.tsx +74 -0
  365. package/status-light/StatusLight.test.d.ts +1 -0
  366. package/status-light/StatusLight.test.js +25 -0
  367. package/status-light/types.d.ts +17 -0
  368. package/status-light/types.js +5 -0
  369. package/switch/Switch.accessibility.test.d.ts +1 -0
  370. package/switch/Switch.accessibility.test.js +98 -0
  371. package/switch/Switch.d.ts +2 -2
  372. package/switch/Switch.js +145 -129
  373. package/switch/Switch.stories.tsx +49 -60
  374. package/switch/Switch.test.d.ts +1 -0
  375. package/switch/Switch.test.js +137 -55
  376. package/switch/types.d.ts +7 -3
  377. package/table/DropdownTheme.js +62 -0
  378. package/table/Table.accessibility.test.d.ts +1 -0
  379. package/table/Table.accessibility.test.js +92 -0
  380. package/table/Table.d.ts +6 -2
  381. package/table/Table.js +78 -35
  382. package/table/Table.stories.tsx +663 -0
  383. package/table/Table.test.d.ts +1 -0
  384. package/table/Table.test.js +92 -7
  385. package/table/types.d.ts +34 -6
  386. package/tabs/Tab.d.ts +4 -0
  387. package/tabs/Tab.js +117 -0
  388. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  389. package/tabs/Tabs.accessibility.test.js +56 -0
  390. package/tabs/Tabs.js +303 -141
  391. package/tabs/Tabs.stories.tsx +124 -6
  392. package/tabs/Tabs.test.d.ts +1 -0
  393. package/tabs/Tabs.test.js +212 -76
  394. package/tabs/types.d.ts +30 -20
  395. package/tag/Tag.accessibility.test.d.ts +1 -0
  396. package/tag/Tag.accessibility.test.js +69 -0
  397. package/tag/Tag.js +35 -67
  398. package/tag/Tag.stories.tsx +19 -9
  399. package/tag/Tag.test.d.ts +1 -0
  400. package/tag/Tag.test.js +17 -36
  401. package/tag/types.d.ts +9 -9
  402. package/text-input/Suggestion.js +40 -28
  403. package/text-input/Suggestions.d.ts +4 -0
  404. package/text-input/Suggestions.js +94 -0
  405. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  406. package/text-input/TextInput.accessibility.test.js +320 -0
  407. package/text-input/TextInput.js +313 -512
  408. package/text-input/TextInput.stories.tsx +278 -275
  409. package/text-input/TextInput.test.d.ts +1 -0
  410. package/text-input/TextInput.test.js +1417 -1374
  411. package/text-input/types.d.ts +43 -16
  412. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  413. package/textarea/Textarea.accessibility.test.js +155 -0
  414. package/textarea/Textarea.js +67 -109
  415. package/textarea/Textarea.stories.tsx +174 -0
  416. package/textarea/Textarea.test.d.ts +1 -0
  417. package/textarea/Textarea.test.js +151 -182
  418. package/textarea/types.d.ts +9 -5
  419. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  420. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  421. package/toggle-group/ToggleGroup.d.ts +2 -2
  422. package/toggle-group/ToggleGroup.js +92 -108
  423. package/toggle-group/ToggleGroup.stories.tsx +53 -8
  424. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  425. package/toggle-group/ToggleGroup.test.js +68 -87
  426. package/toggle-group/types.d.ts +28 -19
  427. package/tooltip/Tooltip.accessibility.test.d.ts +1 -0
  428. package/tooltip/Tooltip.accessibility.test.js +144 -0
  429. package/tooltip/Tooltip.d.ts +4 -0
  430. package/tooltip/Tooltip.js +50 -0
  431. package/tooltip/Tooltip.stories.tsx +111 -0
  432. package/tooltip/Tooltip.test.d.ts +1 -0
  433. package/tooltip/Tooltip.test.js +112 -0
  434. package/tooltip/types.d.ts +16 -0
  435. package/tooltip/types.js +5 -0
  436. package/typography/Typography.accessibility.test.d.ts +1 -0
  437. package/typography/Typography.accessibility.test.js +339 -0
  438. package/typography/Typography.d.ts +4 -0
  439. package/typography/Typography.js +23 -0
  440. package/typography/Typography.stories.tsx +196 -0
  441. package/typography/types.d.ts +18 -0
  442. package/typography/types.js +5 -0
  443. package/useTheme.d.ts +1144 -1
  444. package/useTheme.js +2 -9
  445. package/useTranslatedLabels.d.ts +84 -1
  446. package/useTranslatedLabels.js +1 -7
  447. package/utils/BaseTypography.d.ts +21 -0
  448. package/utils/BaseTypography.js +94 -0
  449. package/utils/FocusLock.d.ts +13 -0
  450. package/utils/FocusLock.js +125 -0
  451. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  452. package/wizard/Wizard.accessibility.test.js +55 -0
  453. package/wizard/Wizard.js +34 -87
  454. package/wizard/Wizard.stories.tsx +60 -2
  455. package/wizard/Wizard.test.d.ts +1 -0
  456. package/wizard/Wizard.test.js +53 -80
  457. package/wizard/types.d.ts +9 -9
  458. package/card/ice-cream.jpg +0 -0
  459. package/common/OpenSans.css +0 -81
  460. package/common/RequiredComponent.js +0 -32
  461. package/common/fonts/OpenSans-Bold.ttf +0 -0
  462. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  463. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  464. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  465. package/common/fonts/OpenSans-Italic.ttf +0 -0
  466. package/common/fonts/OpenSans-Light.ttf +0 -0
  467. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  468. package/common/fonts/OpenSans-Regular.ttf +0 -0
  469. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  470. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  471. package/inline/Inline.d.ts +0 -4
  472. package/inline/Inline.js +0 -54
  473. package/inline/Inline.stories.tsx +0 -264
  474. package/inline/types.d.ts +0 -32
  475. package/list/List.d.ts +0 -4
  476. package/list/List.js +0 -47
  477. package/list/List.stories.tsx +0 -89
  478. package/list/types.d.ts +0 -7
  479. package/number-input/numberInputContextTypes.d.ts +0 -19
  480. package/paginator/Icons.js +0 -66
  481. package/resultsetTable/ResultsetTable.d.ts +0 -4
  482. package/resultsetTable/ResultsetTable.js +0 -254
  483. package/resultsetTable/ResultsetTable.test.js +0 -348
  484. package/row/Row.d.ts +0 -3
  485. package/row/Row.js +0 -127
  486. package/row/Row.stories.tsx +0 -237
  487. package/row/types.d.ts +0 -28
  488. package/select/Icons.d.ts +0 -10
  489. package/select/Icons.js +0 -93
  490. package/stack/Stack.d.ts +0 -4
  491. package/stack/Stack.js +0 -50
  492. package/stack/Stack.stories.tsx +0 -225
  493. package/stack/types.d.ts +0 -28
  494. package/table/Table.stories.jsx +0 -277
  495. package/tabs-nav/NavTabs.d.ts +0 -8
  496. package/tabs-nav/NavTabs.js +0 -125
  497. package/tabs-nav/NavTabs.stories.tsx +0 -170
  498. package/tabs-nav/NavTabs.test.js +0 -82
  499. package/tabs-nav/Tab.js +0 -132
  500. package/text/Text.d.ts +0 -7
  501. package/text/Text.js +0 -30
  502. package/text/Text.stories.tsx +0 -19
  503. package/textarea/Textarea.stories.jsx +0 -157
  504. /package/{inline → action-icon}/types.js +0 -0
  505. /package/{list → breadcrumbs}/types.js +0 -0
  506. /package/{resultsetTable → bulleted-list}/types.js +0 -0
  507. /package/{row → container}/types.js +0 -0
  508. /package/{stack → contextual-menu}/types.js +0 -0
  509. /package/{tabs-nav → divider}/types.js +0 -0
  510. /package/{number-input/numberInputContextTypes.js → flex/types.js} +0 -0
  511. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _react = _interopRequireDefault(require("react"));
6
-
7
5
  var _react2 = require("@testing-library/react");
8
-
9
6
  var _ToggleGroup = _interopRequireDefault(require("./ToggleGroup"));
10
-
11
7
  var options = [{
12
8
  value: 1,
13
9
  label: "Amazon"
@@ -24,12 +20,11 @@ var options = [{
24
20
  describe("Toggle group component tests", function () {
25
21
  test("Toggle group renders with correct labels", function () {
26
22
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
27
- label: "Toggle group label",
28
- helperText: "Toggle group helper text",
29
- options: options
30
- })),
31
- getByText = _render.getByText;
32
-
23
+ label: "Toggle group label",
24
+ helperText: "Toggle group helper text",
25
+ options: options
26
+ })),
27
+ getByText = _render.getByText;
33
28
  expect(getByText("Toggle group label")).toBeTruthy();
34
29
  expect(getByText("Toggle group helper text")).toBeTruthy();
35
30
  expect(getByText("Amazon")).toBeTruthy();
@@ -37,120 +32,106 @@ describe("Toggle group component tests", function () {
37
32
  expect(getByText("Apple")).toBeTruthy();
38
33
  expect(getByText("Google")).toBeTruthy();
39
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
+ });
40
48
  test("Uncontrolled toggle group calls correct function on change with value", function () {
41
49
  var onChange = jest.fn();
42
-
43
- var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
44
- options: options,
45
- onChange: onChange
46
- })),
47
- getByText = _render2.getByText;
48
-
50
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
51
+ options: options,
52
+ onChange: onChange
53
+ })),
54
+ getByText = _render3.getByText;
49
55
  var option = getByText("Ebay");
50
-
51
56
  _react2.fireEvent.click(option);
52
-
53
57
  expect(onChange).toHaveBeenCalledWith(2);
54
58
  });
55
59
  test("Controlled toggle group calls correct function on change with value", function () {
56
60
  var onChange = jest.fn();
57
-
58
- var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
59
- options: options,
60
- onChange: onChange,
61
- value: 1
62
- })),
63
- getByText = _render3.getByText;
64
-
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;
65
67
  var option = getByText("Ebay");
66
-
67
68
  _react2.fireEvent.click(option);
68
-
69
69
  expect(onChange).toHaveBeenCalledWith(2);
70
70
  });
71
71
  test("Function on change is not called when disable", function () {
72
72
  var onChange = jest.fn();
73
-
74
- var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
75
- options: options,
76
- onChange: onChange,
77
- disabled: true
78
- })),
79
- getByText = _render4.getByText;
80
-
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;
81
79
  var option = getByText("Ebay");
82
-
83
80
  _react2.fireEvent.click(option);
84
-
85
81
  expect(onChange).toHaveBeenCalledTimes(0);
86
82
  });
87
83
  test("Uncontrolled multiple toggle group calls correct function on change with value when is multiple", function () {
88
84
  var onChange = jest.fn();
89
-
90
- var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
91
- options: options,
92
- onChange: onChange,
93
- multiple: true
94
- })),
95
- getAllByRole = _render5.getAllByRole;
96
-
97
- var toggleOptions = getAllByRole("switch");
98
-
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");
99
92
  _react2.fireEvent.click(toggleOptions[0]);
100
-
101
93
  expect(onChange).toHaveBeenCalledWith([1]);
102
-
103
94
  _react2.fireEvent.click(toggleOptions[1]);
104
-
105
95
  _react2.fireEvent.click(toggleOptions[3]);
106
-
107
96
  expect(onChange).toHaveBeenCalledWith([1, 2, 4]);
108
- expect(toggleOptions[0].getAttribute("aria-checked")).toBe("true");
109
- expect(toggleOptions[1].getAttribute("aria-checked")).toBe("true");
110
- expect(toggleOptions[3].getAttribute("aria-checked")).toBe("true");
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");
111
100
  });
112
101
  test("Controlled multiple toggle returns always same values", function () {
113
102
  var onChange = jest.fn();
114
-
115
- var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
116
- options: options,
117
- onChange: onChange,
118
- value: [1],
119
- multiple: true
120
- })),
121
- getByText = _render6.getByText;
122
-
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;
123
110
  var option = getByText("Ebay");
124
-
125
111
  _react2.fireEvent.click(option);
126
-
127
112
  expect(onChange).toHaveBeenCalledWith([1, 2]);
128
113
  var option2 = getByText("Google");
129
-
130
114
  _react2.fireEvent.click(option2);
131
-
132
115
  expect(onChange).toHaveBeenNthCalledWith(2, [1, 4]);
133
116
  });
134
117
  test("Single selection: Renders with correct default value", function () {
135
- var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
136
- options: options,
137
- defaultValue: 2
138
- })),
139
- getAllByRole = _render7.getAllByRole;
140
-
141
- var toggleOptions = getAllByRole("radio");
142
- expect(toggleOptions[1].getAttribute("aria-checked")).toBe("true");
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");
143
125
  });
144
126
  test("Multiple selection: Renders with correct default value", function () {
145
- var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
146
- options: options,
147
- defaultValue: [2, 4],
148
- multiple: true
149
- })),
150
- getAllByRole = _render8.getAllByRole;
151
-
152
- var toggleOptions = getAllByRole("switch");
153
- expect(toggleOptions[1].getAttribute("aria-checked")).toBe("true");
154
- expect(toggleOptions[3].getAttribute("aria-checked")).toBe("true");
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");
155
136
  });
156
137
  });
@@ -1,40 +1,49 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Margin = {
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement>;
10
- declare type OptionCommons = {
11
- /**
12
- * Number with the option inner value.
13
- */
14
- value: number;
15
- };
16
- declare type OptionIcon = OptionCommons & {
9
+ type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
+ type OptionIcon = {
17
11
  /**
18
12
  * String with the option display value.
19
13
  */
20
- label?: string;
14
+ label?: never;
21
15
  /**
22
- * Element used as the icon. Icon and label can't be used at same time.
16
+ * Material Symbols icon or SVG element. Icon and label can't be used at same time.
23
17
  */
24
18
  icon: string | SVG;
19
+ /**
20
+ * Value for the HTML properties title and aria-label.
21
+ * When a label is defined, this prop can not be use.
22
+ */
23
+ title: string;
25
24
  };
26
- declare type OptionLabel = OptionCommons & {
25
+ export type OptionLabel = {
27
26
  /**
28
27
  * String with the option display value.
29
28
  */
30
29
  label: string;
31
30
  /**
32
- * Element used as the icon. Icon and label can't be used at same time.
31
+ * Material Symbols icon or SVG element. Icon and label can't be used at same time.
33
32
  */
34
33
  icon?: string | SVG;
34
+ /**
35
+ * Value for the HTML properties title and aria-label.
36
+ * When a label is defined, this prop can not be use.
37
+ */
38
+ title?: never;
35
39
  };
36
- declare type Option = OptionIcon | OptionLabel;
37
- declare type CommonProps = {
40
+ type Option = {
41
+ /**
42
+ * Number with the option inner value.
43
+ */
44
+ value: number;
45
+ } & (OptionIcon | OptionLabel);
46
+ type CommonProps = {
38
47
  /**
39
48
  * Text to be placed above the component.
40
49
  */
@@ -61,7 +70,7 @@ declare type CommonProps = {
61
70
  */
62
71
  tabIndex?: number;
63
72
  };
64
- declare type SingleSelectionToggle = CommonProps & {
73
+ type SingleSelectionToggleGroup = CommonProps & {
65
74
  /**
66
75
  * If true, the toggle group will support multiple selection. In that case, value must be an array of numbers with the keys of the selected values.
67
76
  */
@@ -81,7 +90,7 @@ declare type SingleSelectionToggle = CommonProps & {
81
90
  */
82
91
  onChange?: (optionIndex: number) => void;
83
92
  };
84
- declare type MultipleSelectionToggle = CommonProps & {
93
+ type MultipleSelectionToggleGroup = CommonProps & {
85
94
  /**
86
95
  * If true, the toggle group will support multiple selection. In that case, value must be an array of numbers with the keys of the selected values.
87
96
  */
@@ -101,5 +110,5 @@ declare type MultipleSelectionToggle = CommonProps & {
101
110
  */
102
111
  onChange?: (optionIndex: number[]) => void;
103
112
  };
104
- declare type Props = SingleSelectionToggle | MultipleSelectionToggle;
113
+ type Props = SingleSelectionToggleGroup | MultipleSelectionToggleGroup;
105
114
  export default Props;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,144 @@
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
7
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _react2 = require("@testing-library/react");
10
+ var _axeHelper = require("../../test/accessibility/axe-helper.js");
11
+ var _Tooltip = _interopRequireDefault(require("./Tooltip"));
12
+ var _Button = _interopRequireDefault(require("../button/Button"));
13
+ global.globalThis = global;
14
+ global.DOMRect = {
15
+ fromRect: function fromRect() {
16
+ return {
17
+ top: 0,
18
+ left: 0,
19
+ bottom: 0,
20
+ right: 0,
21
+ width: 0,
22
+ height: 0,
23
+ x: 0,
24
+ y: 0
25
+ };
26
+ }
27
+ };
28
+ global.ResizeObserver = /*#__PURE__*/function () {
29
+ function ResizeObserver() {
30
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
31
+ }
32
+ return (0, _createClass2["default"])(ResizeObserver, [{
33
+ key: "observe",
34
+ value: function observe() {}
35
+ }, {
36
+ key: "unobserve",
37
+ value: function unobserve() {}
38
+ }, {
39
+ key: "disconnect",
40
+ value: function disconnect() {}
41
+ }]);
42
+ }();
43
+ describe("Tooltip component accessibility tests", function () {
44
+ it("Should not have basic accessibility issues for bottom position", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
45
+ var _render, baseElement, getByText, triggerElement, results;
46
+ return _regenerator["default"].wrap(function _callee$(_context) {
47
+ while (1) switch (_context.prev = _context.next) {
48
+ case 0:
49
+ // baseElement is needed when using React Portals
50
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
51
+ label: "Tooltip Test",
52
+ position: "bottom"
53
+ }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
54
+ label: "Hoverable button"
55
+ }))), baseElement = _render.baseElement, getByText = _render.getByText;
56
+ triggerElement = getByText("Hoverable button");
57
+ _react2.fireEvent.mouseEnter(triggerElement);
58
+ _context.next = 5;
59
+ return (0, _axeHelper.axe)(baseElement);
60
+ case 5:
61
+ results = _context.sent;
62
+ expect(results).toHaveNoViolations();
63
+ case 7:
64
+ case "end":
65
+ return _context.stop();
66
+ }
67
+ }, _callee);
68
+ })));
69
+ it("Should not have basic accessibility issues for top position", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
70
+ var _render2, baseElement, getByText, triggerElement, results;
71
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
72
+ while (1) switch (_context2.prev = _context2.next) {
73
+ case 0:
74
+ // baseElement is needed when using React Portals
75
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
76
+ label: "Tooltip Test",
77
+ position: "top"
78
+ }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
79
+ label: "Hoverable button"
80
+ }))), baseElement = _render2.baseElement, getByText = _render2.getByText;
81
+ triggerElement = getByText("Hoverable button");
82
+ _react2.fireEvent.mouseEnter(triggerElement);
83
+ _context2.next = 5;
84
+ return (0, _axeHelper.axe)(baseElement);
85
+ case 5:
86
+ results = _context2.sent;
87
+ expect(results).toHaveNoViolations();
88
+ case 7:
89
+ case "end":
90
+ return _context2.stop();
91
+ }
92
+ }, _callee2);
93
+ })));
94
+ it("Should not have basic accessibility issues for left position", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
95
+ var _render3, baseElement, getByText, triggerElement, results;
96
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
97
+ while (1) switch (_context3.prev = _context3.next) {
98
+ case 0:
99
+ // baseElement is needed when using React Portals
100
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
101
+ label: "Tooltip Test",
102
+ position: "left"
103
+ }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
104
+ label: "Hoverable button"
105
+ }))), baseElement = _render3.baseElement, getByText = _render3.getByText;
106
+ triggerElement = getByText("Hoverable button");
107
+ _react2.fireEvent.mouseEnter(triggerElement);
108
+ _context3.next = 5;
109
+ return (0, _axeHelper.axe)(baseElement);
110
+ case 5:
111
+ results = _context3.sent;
112
+ expect(results).toHaveNoViolations();
113
+ case 7:
114
+ case "end":
115
+ return _context3.stop();
116
+ }
117
+ }, _callee3);
118
+ })));
119
+ it("Should not have basic accessibility issues for right position", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
120
+ var _render4, baseElement, getByText, triggerElement, results;
121
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
122
+ while (1) switch (_context4.prev = _context4.next) {
123
+ case 0:
124
+ // baseElement is needed when using React Portals
125
+ _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
126
+ label: "Tooltip Test",
127
+ position: "right"
128
+ }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
129
+ label: "Hoverable button"
130
+ }))), baseElement = _render4.baseElement, getByText = _render4.getByText;
131
+ triggerElement = getByText("Hoverable button");
132
+ _react2.fireEvent.mouseEnter(triggerElement);
133
+ _context4.next = 5;
134
+ return (0, _axeHelper.axe)(baseElement);
135
+ case 5:
136
+ results = _context4.sent;
137
+ expect(results).toHaveNoViolations();
138
+ case 7:
139
+ case "end":
140
+ return _context4.stop();
141
+ }
142
+ }, _callee4);
143
+ })));
144
+ });
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import TooltipPropsType from "./types";
3
+ declare const DxcTooltip: ({ position, label, children }: TooltipPropsType) => JSX.Element;
4
+ export default DxcTooltip;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
12
+ var Tooltip = _interopRequireWildcard(require("@radix-ui/react-tooltip"));
13
+ var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
14
+ var _templateObject, _templateObject2, _templateObject3;
15
+ 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); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(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; }
17
+ var Triangle = function Triangle() {
18
+ return /*#__PURE__*/_react["default"].createElement("svg", {
19
+ width: "12",
20
+ height: "6",
21
+ viewBox: "0 0 12 6",
22
+ xmlns: "http://www.w3.org/2000/svg",
23
+ preserveAspectRatio: "none",
24
+ display: "block"
25
+ }, /*#__PURE__*/_react["default"].createElement("path", {
26
+ d: "M0.351562 0L5.30131 4.94975C5.69184 5.34027 6.325 5.34027 6.71552 4.94975L11.6653 0H6.00842H0.351562Z",
27
+ fill: _coreTokens["default"].color_grey_800
28
+ }));
29
+ };
30
+ var DxcTooltip = function DxcTooltip(_ref) {
31
+ var _ref$position = _ref.position,
32
+ position = _ref$position === void 0 ? "bottom" : _ref$position,
33
+ label = _ref.label,
34
+ children = _ref.children;
35
+ return label ? /*#__PURE__*/_react["default"].createElement(Tooltip.Provider, {
36
+ delayDuration: 300
37
+ }, /*#__PURE__*/_react["default"].createElement(Tooltip.Root, null, /*#__PURE__*/_react["default"].createElement(Tooltip.Trigger, {
38
+ asChild: true
39
+ }, /*#__PURE__*/_react["default"].createElement(TooltipTriggerContainer, null, children)), /*#__PURE__*/_react["default"].createElement(Tooltip.Portal, null, /*#__PURE__*/_react["default"].createElement(StyledTooltipContent, {
40
+ side: position,
41
+ sideOffset: 8
42
+ }, /*#__PURE__*/_react["default"].createElement(TooltipContainer, null, label), /*#__PURE__*/_react["default"].createElement(Tooltip.Arrow, {
43
+ asChild: true,
44
+ "aria-hidden": true
45
+ }, /*#__PURE__*/_react["default"].createElement(Triangle, null)))))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children);
46
+ };
47
+ var TooltipTriggerContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n position: relative;\n"])));
48
+ var StyledTooltipContent = (0, _styledComponents["default"])(Tooltip.Content)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n z-index: 2147483647;\n\n animation-duration: 0.2s;\n animation-timing-function: ease-out;\n\n /* Additional optimization to prevent blurry text in certain browsers */\n -webkit-font-smoothing: antialiased;\n transform: translateZ(0) scale(1, 1);\n\n &[data-side=\"top\"] {\n animation-name: slideUp;\n }\n &[data-side=\"bottom\"] {\n animation-name: slideDown;\n }\n &[data-side=\"left\"] {\n animation-name: slideLeft;\n }\n &[data-side=\"right\"] {\n animation-name: slideRight;\n }\n @keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n @keyframes slideUp {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n @keyframes slideLeft {\n from {\n opacity: 0;\n transform: translateX(10px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n }\n @keyframes slideRight {\n from {\n opacity: 0;\n transform: translateX(-10px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n }\n"])));
49
+ var TooltipContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n padding: 8px 12px;\n border-radius: 4px;\n font-size: ", ";\n font-family: ", ";\n max-width: 242px;\n color: ", ";\n background-color: ", ";\n border-color: ", ";\n"])), _coreTokens["default"].type_scale_01, _coreTokens["default"].type_sans, _coreTokens["default"].color_white, _coreTokens["default"].color_grey_800, _coreTokens["default"].color_grey_800);
50
+ var _default = exports["default"] = DxcTooltip;
@@ -0,0 +1,111 @@
1
+ import React from "react";
2
+ import DxcTooltip from "./Tooltip";
3
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
4
+ import DxcButton from "../button/Button";
5
+ import { userEvent, within } from "@storybook/test";
6
+ import DxcInset from "../inset/Inset";
7
+ import Title from "../../.storybook/components/Title";
8
+ import DxcFlex from "../flex/Flex";
9
+
10
+ export default {
11
+ title: "Tooltip",
12
+ component: DxcTooltip,
13
+ };
14
+
15
+ const Tooltip = () => (
16
+ <>
17
+ <Title title="Default tooltip" theme="light" level={4} />
18
+ <ExampleContainer>
19
+ <DxcInset bottom="3rem">
20
+ <DxcTooltip label="Tooltip Test">
21
+ <DxcButton label="Hoverable button" />
22
+ </DxcTooltip>
23
+ </DxcInset>
24
+ </ExampleContainer>
25
+ </>
26
+ );
27
+
28
+ const LargeTextWithinTooltip = () => (
29
+ <>
30
+ <Title title="Multiple line tooltip" theme="light" level={4} />
31
+ <ExampleContainer>
32
+ <DxcInset bottom="5rem" left="1rem">
33
+ <DxcTooltip label="Tooltip Test with a large text to display in the container while hovering the component">
34
+ <DxcButton label="Hoverable button" />
35
+ </DxcTooltip>
36
+ </DxcInset>
37
+ </ExampleContainer>
38
+ </>
39
+ );
40
+
41
+ const TopTooltip = () => (
42
+ <>
43
+ <Title title="Top tooltip" theme="light" level={4} />
44
+ <ExampleContainer>
45
+ <DxcInset top="3rem">
46
+ <DxcTooltip label="Tooltip Test" position="top">
47
+ <DxcButton label="Hoverable button" />
48
+ </DxcTooltip>
49
+ </DxcInset>
50
+ </ExampleContainer>
51
+ </>
52
+ );
53
+
54
+ const LeftTooltip = () => (
55
+ <>
56
+ <Title title="Left tooltip" theme="light" level={4} />
57
+ <ExampleContainer>
58
+ <DxcFlex justifyContent="center">
59
+ <DxcTooltip label="Tooltip Test" position="left">
60
+ <DxcButton label="Hoverable button" />
61
+ </DxcTooltip>
62
+ </DxcFlex>
63
+ </ExampleContainer>
64
+ </>
65
+ );
66
+
67
+ const RightTooltip = () => (
68
+ <>
69
+ <Title title="Right tooltip" theme="light" level={4} />
70
+ <ExampleContainer>
71
+ <DxcTooltip label="Tooltip Test" position="right">
72
+ <DxcButton label="Hoverable button" />
73
+ </DxcTooltip>
74
+ </ExampleContainer>
75
+ </>
76
+ );
77
+
78
+ export const Chromatic = Tooltip.bind({});
79
+ Chromatic.play = async ({ canvasElement }) => {
80
+ const canvas = within(canvasElement);
81
+ const buttonList = canvas.getByRole("button");
82
+ await userEvent.hover(buttonList);
83
+ };
84
+
85
+ export const LargeTextTooltip = LargeTextWithinTooltip.bind({});
86
+ LargeTextTooltip.play = async ({ canvasElement }) => {
87
+ const canvas = within(canvasElement);
88
+ const buttonList = canvas.getByRole("button");
89
+ await userEvent.hover(buttonList);
90
+ };
91
+
92
+ export const TooltipPositionTop = TopTooltip.bind({});
93
+ TooltipPositionTop.play = async ({ canvasElement }) => {
94
+ const canvas = within(canvasElement);
95
+ const buttonList = canvas.getByRole("button");
96
+ await userEvent.hover(buttonList);
97
+ };
98
+
99
+ export const TooltipPositionLeft = LeftTooltip.bind({});
100
+ TooltipPositionLeft.play = async ({ canvasElement }) => {
101
+ const canvas = within(canvasElement);
102
+ const buttonList = canvas.getByRole("button");
103
+ await userEvent.hover(buttonList);
104
+ };
105
+
106
+ export const TooltipPositionRight = RightTooltip.bind({});
107
+ TooltipPositionRight.play = async ({ canvasElement }) => {
108
+ const canvas = within(canvasElement);
109
+ const buttonList = canvas.getByRole("button");
110
+ await userEvent.hover(buttonList);
111
+ };
@@ -0,0 +1 @@
1
+ import "@testing-library/jest-dom";