@dxc-technology/halstack-react 0.0.0-5a1e592 → 0.0.0-5a7a613

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 (466) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +4 -21
  3. package/HalstackContext.d.ts +74 -144
  4. package/HalstackContext.js +35 -50
  5. package/accordion/Accordion.accessibility.test.d.ts +1 -0
  6. package/accordion/Accordion.accessibility.test.js +71 -0
  7. package/accordion/Accordion.js +33 -87
  8. package/accordion/Accordion.stories.tsx +8 -64
  9. package/accordion/Accordion.test.d.ts +1 -0
  10. package/accordion/Accordion.test.js +19 -34
  11. package/accordion/types.d.ts +6 -6
  12. package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
  13. package/accordion-group/AccordionGroup.accessibility.test.js +82 -0
  14. package/accordion-group/AccordionGroup.d.ts +2 -3
  15. package/accordion-group/AccordionGroup.js +17 -44
  16. package/accordion-group/AccordionGroup.stories.tsx +24 -24
  17. package/accordion-group/AccordionGroup.test.d.ts +1 -0
  18. package/accordion-group/AccordionGroup.test.js +41 -63
  19. package/accordion-group/AccordionGroupAccordion.js +11 -23
  20. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  21. package/accordion-group/AccordionGroupContext.js +8 -0
  22. package/accordion-group/types.d.ts +7 -7
  23. package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
  24. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  25. package/action-icon/ActionIcon.d.ts +4 -0
  26. package/action-icon/ActionIcon.js +48 -0
  27. package/action-icon/ActionIcon.stories.tsx +41 -0
  28. package/action-icon/ActionIcon.test.d.ts +1 -0
  29. package/action-icon/ActionIcon.test.js +64 -0
  30. package/action-icon/types.d.ts +26 -0
  31. package/alert/Alert.accessibility.test.d.ts +1 -0
  32. package/alert/Alert.accessibility.test.js +95 -0
  33. package/alert/Alert.js +34 -120
  34. package/alert/Alert.test.d.ts +1 -0
  35. package/alert/Alert.test.js +29 -46
  36. package/alert/types.d.ts +5 -5
  37. package/badge/Badge.accessibility.test.d.ts +1 -0
  38. package/badge/Badge.accessibility.test.js +129 -0
  39. package/badge/Badge.d.ts +1 -1
  40. package/badge/Badge.js +142 -42
  41. package/badge/Badge.stories.tsx +210 -0
  42. package/badge/Badge.test.d.ts +1 -0
  43. package/badge/Badge.test.js +30 -0
  44. package/badge/types.d.ts +52 -3
  45. package/bar-chart/BarChart.d.ts +4 -0
  46. package/bar-chart/BarChart.js +157 -0
  47. package/bar-chart/BarChart.stories.tsx +281 -0
  48. package/bar-chart/BarChart.test.d.ts +1 -0
  49. package/bar-chart/BarChart.test.js +194 -0
  50. package/bar-chart/theme.d.ts +3 -0
  51. package/bar-chart/theme.js +31 -0
  52. package/bar-chart/types.d.ts +137 -0
  53. package/bar-chart/types.js +5 -0
  54. package/bleed/Bleed.js +13 -21
  55. package/bleed/Bleed.stories.tsx +0 -1
  56. package/bleed/types.d.ts +2 -2
  57. package/box/Box.accessibility.test.d.ts +1 -0
  58. package/box/Box.accessibility.test.js +33 -0
  59. package/box/Box.js +11 -33
  60. package/box/Box.test.d.ts +1 -0
  61. package/box/Box.test.js +2 -7
  62. package/box/types.d.ts +3 -3
  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 +168 -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 +40 -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.js +22 -55
  79. package/bulleted-list/BulletedList.stories.tsx +2 -93
  80. package/bulleted-list/types.d.ts +5 -5
  81. package/button/Button.accessibility.test.d.ts +1 -0
  82. package/button/Button.accessibility.test.js +127 -0
  83. package/button/Button.js +36 -59
  84. package/button/Button.stories.tsx +35 -135
  85. package/button/Button.test.d.ts +1 -0
  86. package/button/Button.test.js +14 -22
  87. package/button/types.d.ts +5 -5
  88. package/card/Card.accessibility.test.d.ts +1 -0
  89. package/card/Card.accessibility.test.js +36 -0
  90. package/card/Card.js +23 -45
  91. package/card/Card.stories.tsx +1 -1
  92. package/card/Card.test.d.ts +1 -0
  93. package/card/Card.test.js +11 -22
  94. package/card/types.d.ts +5 -5
  95. package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
  96. package/checkbox/Checkbox.accessibility.test.js +87 -0
  97. package/checkbox/Checkbox.js +59 -116
  98. package/checkbox/Checkbox.stories.tsx +0 -54
  99. package/checkbox/Checkbox.test.d.ts +1 -0
  100. package/checkbox/Checkbox.test.js +80 -109
  101. package/checkbox/types.d.ts +4 -4
  102. package/chip/Chip.accessibility.test.d.ts +1 -0
  103. package/chip/Chip.accessibility.test.js +67 -0
  104. package/chip/Chip.js +22 -36
  105. package/chip/Chip.stories.tsx +6 -25
  106. package/chip/Chip.test.d.ts +1 -0
  107. package/chip/Chip.test.js +18 -31
  108. package/chip/types.d.ts +4 -4
  109. package/common/coreTokens.d.ts +105 -15
  110. package/common/coreTokens.js +40 -24
  111. package/common/utils.js +2 -8
  112. package/common/variables.d.ts +80 -141
  113. package/common/variables.js +150 -224
  114. package/container/Container.d.ts +4 -0
  115. package/container/Container.js +194 -0
  116. package/container/Container.stories.tsx +215 -0
  117. package/container/types.d.ts +176 -0
  118. package/container/types.js +5 -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 +136 -0
  123. package/contextual-menu/ContextualMenu.stories.tsx +231 -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 +88 -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 +65 -0
  135. package/contextual-menu/types.js +5 -0
  136. package/date-input/Calendar.js +59 -87
  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 +170 -130
  140. package/date-input/DateInput.stories.tsx +32 -50
  141. package/date-input/DateInput.test.d.ts +1 -0
  142. package/date-input/DateInput.test.js +668 -709
  143. package/date-input/DatePicker.js +26 -51
  144. package/date-input/YearPicker.js +17 -38
  145. package/date-input/types.d.ts +28 -26
  146. package/dialog/Dialog.accessibility.test.d.ts +1 -0
  147. package/dialog/Dialog.accessibility.test.js +69 -0
  148. package/dialog/Dialog.js +21 -59
  149. package/dialog/Dialog.stories.tsx +174 -0
  150. package/dialog/Dialog.test.d.ts +1 -0
  151. package/dialog/Dialog.test.js +216 -215
  152. package/dialog/types.d.ts +18 -13
  153. package/divider/Divider.accessibility.test.d.ts +1 -0
  154. package/divider/Divider.accessibility.test.js +33 -0
  155. package/divider/Divider.d.ts +4 -0
  156. package/divider/Divider.js +36 -0
  157. package/divider/Divider.stories.tsx +224 -0
  158. package/divider/Divider.test.d.ts +1 -0
  159. package/divider/Divider.test.js +38 -0
  160. package/divider/types.d.ts +21 -0
  161. package/divider/types.js +5 -0
  162. package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
  163. package/dropdown/Dropdown.accessibility.test.js +183 -0
  164. package/dropdown/Dropdown.js +66 -153
  165. package/dropdown/Dropdown.stories.tsx +16 -27
  166. package/dropdown/Dropdown.test.d.ts +1 -0
  167. package/dropdown/Dropdown.test.js +434 -392
  168. package/dropdown/DropdownMenu.js +12 -23
  169. package/dropdown/DropdownMenuItem.js +13 -21
  170. package/dropdown/types.d.ts +20 -24
  171. package/file-input/FileInput.accessibility.test.d.ts +1 -0
  172. package/file-input/FileInput.accessibility.test.js +167 -0
  173. package/file-input/FileInput.js +177 -286
  174. package/file-input/FileInput.stories.tsx +1 -1
  175. package/file-input/FileInput.test.d.ts +1 -0
  176. package/file-input/FileInput.test.js +303 -356
  177. package/file-input/FileItem.js +29 -66
  178. package/file-input/types.d.ts +9 -13
  179. package/flex/Flex.js +25 -39
  180. package/flex/types.d.ts +6 -6
  181. package/footer/Footer.accessibility.test.d.ts +1 -0
  182. package/footer/Footer.accessibility.test.js +125 -0
  183. package/footer/Footer.d.ts +1 -1
  184. package/footer/Footer.js +43 -68
  185. package/footer/Footer.stories.tsx +58 -2
  186. package/footer/Footer.test.d.ts +1 -0
  187. package/footer/Footer.test.js +19 -33
  188. package/footer/Icons.d.ts +3 -2
  189. package/footer/Icons.js +53 -22
  190. package/footer/types.d.ts +17 -17
  191. package/grid/Grid.js +1 -16
  192. package/grid/Grid.stories.tsx +3 -1
  193. package/grid/types.d.ts +10 -10
  194. package/header/Header.accessibility.test.d.ts +1 -0
  195. package/header/Header.accessibility.test.js +94 -0
  196. package/header/Header.d.ts +1 -1
  197. package/header/Header.js +38 -104
  198. package/header/Header.stories.tsx +17 -1
  199. package/header/Header.test.d.ts +1 -0
  200. package/header/Header.test.js +13 -26
  201. package/header/Icons.d.ts +2 -2
  202. package/header/Icons.js +3 -13
  203. package/header/types.d.ts +7 -8
  204. package/heading/Heading.accessibility.test.d.ts +1 -0
  205. package/heading/Heading.accessibility.test.js +33 -0
  206. package/heading/Heading.js +9 -31
  207. package/heading/Heading.test.d.ts +1 -0
  208. package/heading/Heading.test.js +65 -95
  209. package/heading/types.d.ts +7 -7
  210. package/icon/Icon.accessibility.test.d.ts +1 -0
  211. package/icon/Icon.accessibility.test.js +30 -0
  212. package/icon/Icon.d.ts +4 -0
  213. package/icon/Icon.js +33 -0
  214. package/icon/Icon.stories.tsx +28 -0
  215. package/icon/types.d.ts +4 -0
  216. package/icon/types.js +5 -0
  217. package/image/Image.accessibility.test.d.ts +1 -0
  218. package/image/Image.accessibility.test.js +56 -0
  219. package/image/Image.d.ts +2 -2
  220. package/image/Image.js +17 -32
  221. package/image/Image.stories.tsx +3 -1
  222. package/image/types.d.ts +2 -2
  223. package/inset/Inset.js +13 -21
  224. package/inset/types.d.ts +2 -2
  225. package/layout/ApplicationLayout.d.ts +2 -2
  226. package/layout/ApplicationLayout.js +23 -60
  227. package/layout/Icons.d.ts +4 -5
  228. package/layout/Icons.js +2 -16
  229. package/layout/types.d.ts +3 -3
  230. package/link/Link.accessibility.test.d.ts +1 -0
  231. package/link/Link.accessibility.test.js +108 -0
  232. package/link/Link.js +28 -47
  233. package/link/Link.stories.tsx +4 -4
  234. package/link/Link.test.d.ts +1 -0
  235. package/link/Link.test.js +24 -42
  236. package/link/types.d.ts +14 -14
  237. package/main.d.ts +10 -4
  238. package/main.js +53 -60
  239. package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
  240. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  241. package/nav-tabs/NavTabs.d.ts +1 -2
  242. package/nav-tabs/NavTabs.js +34 -48
  243. package/nav-tabs/NavTabs.stories.tsx +45 -25
  244. package/nav-tabs/NavTabs.test.d.ts +1 -0
  245. package/nav-tabs/NavTabs.test.js +46 -51
  246. package/nav-tabs/NavTabsContext.d.ts +3 -0
  247. package/nav-tabs/NavTabsContext.js +8 -0
  248. package/nav-tabs/Tab.js +38 -67
  249. package/nav-tabs/types.d.ts +10 -10
  250. package/number-input/NumberInput.accessibility.test.d.ts +1 -0
  251. package/number-input/NumberInput.accessibility.test.js +227 -0
  252. package/number-input/NumberInput.d.ts +0 -7
  253. package/number-input/NumberInput.js +51 -40
  254. package/number-input/NumberInput.stories.tsx +37 -26
  255. package/number-input/NumberInput.test.d.ts +1 -0
  256. package/number-input/NumberInput.test.js +839 -576
  257. package/number-input/NumberInputContext.d.ts +3 -0
  258. package/number-input/NumberInputContext.js +8 -0
  259. package/number-input/types.d.ts +17 -5
  260. package/package.json +49 -41
  261. package/paginator/Paginator.accessibility.test.d.ts +1 -0
  262. package/paginator/Paginator.accessibility.test.js +78 -0
  263. package/paginator/Paginator.js +27 -52
  264. package/paginator/Paginator.test.d.ts +1 -0
  265. package/paginator/Paginator.test.js +226 -210
  266. package/paginator/types.d.ts +3 -3
  267. package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
  268. package/paragraph/Paragraph.accessibility.test.js +28 -0
  269. package/paragraph/Paragraph.js +3 -19
  270. package/paragraph/Paragraph.stories.tsx +0 -17
  271. package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
  272. package/password-input/PasswordInput.accessibility.test.js +152 -0
  273. package/password-input/PasswordInput.js +36 -55
  274. package/password-input/PasswordInput.stories.tsx +11 -35
  275. package/password-input/PasswordInput.test.d.ts +1 -0
  276. package/password-input/PasswordInput.test.js +153 -130
  277. package/password-input/types.d.ts +8 -7
  278. package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
  279. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  280. package/progress-bar/ProgressBar.js +26 -56
  281. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
  282. package/progress-bar/ProgressBar.test.d.ts +1 -0
  283. package/progress-bar/ProgressBar.test.js +36 -53
  284. package/progress-bar/types.d.ts +3 -3
  285. package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
  286. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  287. package/quick-nav/QuickNav.js +4 -27
  288. package/quick-nav/QuickNav.stories.tsx +1 -1
  289. package/quick-nav/types.d.ts +10 -10
  290. package/radio-group/Radio.js +15 -50
  291. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  292. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  293. package/radio-group/RadioGroup.js +37 -85
  294. package/radio-group/RadioGroup.test.d.ts +1 -0
  295. package/radio-group/RadioGroup.test.js +505 -500
  296. package/radio-group/types.d.ts +5 -5
  297. package/resultset-table/Icons.d.ts +7 -0
  298. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  299. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  300. package/resultset-table/ResultsetTable.accessibility.test.js +284 -0
  301. package/resultset-table/ResultsetTable.d.ts +7 -0
  302. package/{resultsetTable → resultset-table}/ResultsetTable.js +79 -76
  303. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +119 -6
  304. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  305. package/resultset-table/ResultsetTable.test.js +450 -0
  306. package/{resultsetTable → resultset-table}/types.d.ts +47 -13
  307. package/resultset-table/types.js +5 -0
  308. package/select/Listbox.d.ts +3 -3
  309. package/select/Listbox.js +44 -66
  310. package/select/Option.d.ts +3 -3
  311. package/select/Option.js +36 -40
  312. package/select/Select.accessibility.test.d.ts +1 -0
  313. package/select/Select.accessibility.test.js +227 -0
  314. package/select/Select.js +127 -310
  315. package/select/Select.stories.tsx +74 -117
  316. package/select/Select.test.d.ts +1 -0
  317. package/select/Select.test.js +1913 -1973
  318. package/select/selectUtils.d.ts +41 -0
  319. package/select/selectUtils.js +129 -0
  320. package/select/types.d.ts +15 -16
  321. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  322. package/sidenav/Sidenav.accessibility.test.js +59 -0
  323. package/sidenav/Sidenav.js +44 -81
  324. package/sidenav/Sidenav.stories.tsx +5 -10
  325. package/sidenav/Sidenav.test.d.ts +1 -0
  326. package/sidenav/Sidenav.test.js +4 -11
  327. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  328. package/{layout → sidenav}/SidenavContext.js +3 -9
  329. package/sidenav/types.d.ts +20 -20
  330. package/slider/Slider.accessibility.test.d.ts +1 -0
  331. package/slider/Slider.accessibility.test.js +103 -0
  332. package/slider/Slider.js +66 -125
  333. package/slider/Slider.stories.tsx +0 -60
  334. package/slider/Slider.test.d.ts +1 -0
  335. package/slider/Slider.test.js +118 -112
  336. package/slider/types.d.ts +4 -4
  337. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  338. package/spinner/Spinner.accessibility.test.js +96 -0
  339. package/spinner/Spinner.d.ts +1 -1
  340. package/spinner/Spinner.js +43 -96
  341. package/spinner/Spinner.test.d.ts +1 -0
  342. package/spinner/Spinner.test.js +26 -35
  343. package/spinner/types.d.ts +3 -3
  344. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  345. package/status-light/StatusLight.accessibility.test.js +157 -0
  346. package/status-light/StatusLight.d.ts +4 -0
  347. package/status-light/StatusLight.js +51 -0
  348. package/status-light/StatusLight.stories.tsx +74 -0
  349. package/status-light/StatusLight.test.d.ts +1 -0
  350. package/status-light/StatusLight.test.js +25 -0
  351. package/status-light/types.d.ts +17 -0
  352. package/status-light/types.js +5 -0
  353. package/switch/Switch.accessibility.test.d.ts +1 -0
  354. package/switch/Switch.accessibility.test.js +98 -0
  355. package/switch/Switch.js +49 -100
  356. package/switch/Switch.stories.tsx +12 -34
  357. package/switch/Switch.test.d.ts +1 -0
  358. package/switch/Switch.test.js +52 -97
  359. package/switch/types.d.ts +4 -4
  360. package/table/DropdownTheme.js +62 -0
  361. package/table/Table.accessibility.test.d.ts +1 -0
  362. package/table/Table.accessibility.test.js +92 -0
  363. package/table/Table.d.ts +6 -2
  364. package/table/Table.js +76 -33
  365. package/table/{Table.stories.jsx → Table.stories.tsx} +309 -2
  366. package/table/Table.test.d.ts +1 -0
  367. package/table/Table.test.js +92 -7
  368. package/table/types.d.ts +34 -6
  369. package/tabs/Tab.js +22 -37
  370. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  371. package/tabs/Tabs.accessibility.test.js +56 -0
  372. package/tabs/Tabs.js +59 -147
  373. package/tabs/Tabs.stories.tsx +8 -4
  374. package/tabs/Tabs.test.d.ts +1 -0
  375. package/tabs/Tabs.test.js +58 -132
  376. package/tabs/types.d.ts +21 -21
  377. package/tag/Tag.accessibility.test.d.ts +1 -0
  378. package/tag/Tag.accessibility.test.js +69 -0
  379. package/tag/Tag.js +27 -57
  380. package/tag/Tag.stories.tsx +5 -8
  381. package/tag/Tag.test.d.ts +1 -0
  382. package/tag/Tag.test.js +18 -37
  383. package/tag/types.d.ts +9 -9
  384. package/text-input/Suggestion.js +9 -26
  385. package/text-input/Suggestions.d.ts +1 -1
  386. package/text-input/Suggestions.js +30 -70
  387. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  388. package/text-input/TextInput.accessibility.test.js +320 -0
  389. package/text-input/TextInput.js +190 -301
  390. package/text-input/TextInput.stories.tsx +29 -160
  391. package/text-input/TextInput.test.d.ts +1 -0
  392. package/text-input/TextInput.test.js +1226 -1283
  393. package/text-input/types.d.ts +21 -17
  394. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  395. package/textarea/Textarea.accessibility.test.js +155 -0
  396. package/textarea/Textarea.js +60 -103
  397. package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -108
  398. package/textarea/Textarea.test.d.ts +1 -0
  399. package/textarea/Textarea.test.js +136 -209
  400. package/textarea/types.d.ts +5 -5
  401. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  402. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  403. package/toggle-group/ToggleGroup.js +25 -67
  404. package/toggle-group/ToggleGroup.stories.tsx +5 -5
  405. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  406. package/toggle-group/ToggleGroup.test.js +49 -82
  407. package/toggle-group/types.d.ts +12 -12
  408. package/tooltip/Tooltip.accessibility.test.d.ts +1 -0
  409. package/tooltip/Tooltip.accessibility.test.js +144 -0
  410. package/tooltip/Tooltip.d.ts +4 -0
  411. package/tooltip/Tooltip.js +50 -0
  412. package/tooltip/Tooltip.stories.tsx +111 -0
  413. package/tooltip/Tooltip.test.d.ts +1 -0
  414. package/tooltip/Tooltip.test.js +112 -0
  415. package/tooltip/types.d.ts +16 -0
  416. package/tooltip/types.js +5 -0
  417. package/typography/Typography.accessibility.test.d.ts +1 -0
  418. package/typography/Typography.accessibility.test.js +339 -0
  419. package/typography/Typography.js +4 -13
  420. package/typography/Typography.stories.tsx +1 -3
  421. package/typography/Typography.test.js +23 -0
  422. package/typography/types.d.ts +1 -1
  423. package/useTheme.d.ts +60 -138
  424. package/useTheme.js +1 -8
  425. package/useTranslatedLabels.d.ts +11 -0
  426. package/useTranslatedLabels.js +1 -7
  427. package/utils/BaseTypography.d.ts +2 -2
  428. package/utils/BaseTypography.js +60 -70
  429. package/utils/FocusLock.js +26 -39
  430. package/utils/useWidth.d.ts +2 -0
  431. package/utils/useWidth.js +30 -0
  432. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  433. package/wizard/Wizard.accessibility.test.js +55 -0
  434. package/wizard/Wizard.js +27 -73
  435. package/wizard/Wizard.stories.tsx +20 -1
  436. package/wizard/Wizard.test.d.ts +1 -0
  437. package/wizard/Wizard.test.js +54 -81
  438. package/wizard/types.d.ts +8 -8
  439. package/common/OpenSans.css +0 -69
  440. package/common/fonts/OpenSans-Bold.ttf +0 -0
  441. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  442. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  443. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  444. package/common/fonts/OpenSans-Italic.ttf +0 -0
  445. package/common/fonts/OpenSans-Light.ttf +0 -0
  446. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  447. package/common/fonts/OpenSans-Regular.ttf +0 -0
  448. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  449. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  450. package/date-input/Icons.d.ts +0 -6
  451. package/date-input/Icons.js +0 -75
  452. package/paginator/Icons.d.ts +0 -5
  453. package/paginator/Icons.js +0 -54
  454. package/password-input/Icons.d.ts +0 -6
  455. package/password-input/Icons.js +0 -39
  456. package/resultsetTable/Icons.d.ts +0 -7
  457. package/resultsetTable/ResultsetTable.d.ts +0 -4
  458. package/resultsetTable/ResultsetTable.test.js +0 -325
  459. package/select/Icons.d.ts +0 -10
  460. package/select/Icons.js +0 -93
  461. package/sidenav/Icons.d.ts +0 -7
  462. package/sidenav/Icons.js +0 -51
  463. package/text-input/Icons.d.ts +0 -8
  464. package/text-input/Icons.js +0 -60
  465. /package/{resultsetTable → action-icon}/types.js +0 -0
  466. /package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
@@ -0,0 +1,96 @@
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 _Breadcrumbs = _interopRequireDefault(require("./Breadcrumbs"));
10
+ var _disabledRules = require("../../test/accessibility/rules/specific/breadcrumbs/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
+ var items = [{
20
+ label: "Home",
21
+ href: "/"
22
+ }, {
23
+ label: "User Menu",
24
+ href: ""
25
+ }, {
26
+ label: "Preferences",
27
+ href: ""
28
+ }, {
29
+ label: "Dark Mode",
30
+ href: ""
31
+ }];
32
+ describe("Breadcrumbs component accessibility tests", function () {
33
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
34
+ var _render, container, results;
35
+ return _regenerator["default"].wrap(function _callee$(_context) {
36
+ while (1) switch (_context.prev = _context.next) {
37
+ case 0:
38
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Breadcrumbs["default"], {
39
+ items: items,
40
+ ariaLabel: "example"
41
+ })), container = _render.container;
42
+ _context.next = 3;
43
+ return (0, _axeHelper.axe)(container, disabledRules);
44
+ case 3:
45
+ results = _context.sent;
46
+ expect(results).toHaveNoViolations();
47
+ case 5:
48
+ case "end":
49
+ return _context.stop();
50
+ }
51
+ }, _callee);
52
+ })));
53
+ it("Should not have basic accessibility issues when collapsed", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
54
+ var _render2, container, results;
55
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
56
+ while (1) switch (_context2.prev = _context2.next) {
57
+ case 0:
58
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Breadcrumbs["default"], {
59
+ items: items,
60
+ itemsBeforeCollapse: 3,
61
+ ariaLabel: "example"
62
+ })), container = _render2.container;
63
+ _context2.next = 3;
64
+ return (0, _axeHelper.axe)(container, disabledRules);
65
+ case 3:
66
+ results = _context2.sent;
67
+ expect(results).toHaveNoViolations();
68
+ case 5:
69
+ case "end":
70
+ return _context2.stop();
71
+ }
72
+ }, _callee2);
73
+ })));
74
+ it("Should not have basic accessibility issues without root", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
75
+ var _render3, container, results;
76
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
77
+ while (1) switch (_context3.prev = _context3.next) {
78
+ case 0:
79
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Breadcrumbs["default"], {
80
+ items: items,
81
+ itemsBeforeCollapse: 3,
82
+ ariaLabel: "example",
83
+ showRoot: false
84
+ })), container = _render3.container;
85
+ _context3.next = 3;
86
+ return (0, _axeHelper.axe)(container, disabledRules);
87
+ case 3:
88
+ results = _context3.sent;
89
+ expect(results).toHaveNoViolations();
90
+ case 5:
91
+ case "end":
92
+ return _context3.stop();
93
+ }
94
+ }, _callee3);
95
+ })));
96
+ });
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import BreadcrumbsProps from "./types";
3
+ declare const DxcBreadcrumbs: ({ ariaLabel, items, itemsBeforeCollapse, onItemClick, showRoot, }: BreadcrumbsProps) => React.JSX.Element;
4
+ export default DxcBreadcrumbs;
@@ -0,0 +1,79 @@
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 = _interopRequireWildcard(require("react"));
11
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
12
+ var _Dropdown = _interopRequireDefault(require("../dropdown/Dropdown"));
13
+ var _HalstackContext = require("../HalstackContext");
14
+ var _dropdownTheme = _interopRequireDefault(require("./dropdownTheme"));
15
+ var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
16
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
17
+ var _Item = _interopRequireDefault(require("./Item"));
18
+ var _Flex = _interopRequireDefault(require("../flex/Flex"));
19
+ var _templateObject;
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _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; }
22
+ var DxcBreadcrumbs = function DxcBreadcrumbs(_ref) {
23
+ var _ref$ariaLabel = _ref.ariaLabel,
24
+ ariaLabel = _ref$ariaLabel === void 0 ? "Breadcrumbs" : _ref$ariaLabel,
25
+ items = _ref.items,
26
+ _ref$itemsBeforeColla = _ref.itemsBeforeCollapse,
27
+ itemsBeforeCollapse = _ref$itemsBeforeColla === void 0 ? 4 : _ref$itemsBeforeColla,
28
+ onItemClick = _ref.onItemClick,
29
+ _ref$showRoot = _ref.showRoot,
30
+ showRoot = _ref$showRoot === void 0 ? true : _ref$showRoot;
31
+ var handleOnSelectOption = (0, _react.useCallback)(function (href) {
32
+ if (onItemClick) onItemClick(href);else window.location.href = href;
33
+ }, [items]);
34
+ return /*#__PURE__*/_react["default"].createElement("nav", {
35
+ "aria-label": ariaLabel
36
+ }, /*#__PURE__*/_react["default"].createElement(OrderedList, null, items && items.length > Math.max(itemsBeforeCollapse, 2) ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, showRoot && /*#__PURE__*/_react["default"].createElement(_Item["default"], {
37
+ href: items[0].href,
38
+ key: 0,
39
+ label: items[0].label
40
+ }), /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
41
+ alignItems: "center",
42
+ as: "li",
43
+ key: 1
44
+ }, /*#__PURE__*/_react["default"].createElement(_HalstackContext.HalstackProvider, {
45
+ advancedTheme: _dropdownTheme["default"]
46
+ }, /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
47
+ caretHidden: true,
48
+ icon: /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
49
+ icon: "more_horiz"
50
+ }),
51
+ margin: showRoot && {
52
+ left: "small"
53
+ },
54
+ onSelectOption: handleOnSelectOption,
55
+ options: items.slice(showRoot ? 1 : 0, -1).map(function (_ref2) {
56
+ var label = _ref2.label,
57
+ href = _ref2.href;
58
+ return {
59
+ label: label,
60
+ value: href
61
+ };
62
+ })
63
+ }))), /*#__PURE__*/_react["default"].createElement(_Item["default"], {
64
+ isCurrentPage: true,
65
+ key: 2,
66
+ label: items[items.length - 1].label
67
+ })) : items.map(function (item, index, _ref3) {
68
+ var length = _ref3.length;
69
+ return /*#__PURE__*/_react["default"].createElement(_Item["default"], {
70
+ href: item.href,
71
+ isCurrentPage: index === length - 1,
72
+ key: index,
73
+ label: item.label,
74
+ onClick: onItemClick
75
+ });
76
+ })));
77
+ };
78
+ var OrderedList = _styledComponents["default"].ol(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n padding-left: ", ";\n display: flex;\n align-items: center;\n gap: ", ";\n list-style-type: none;\n\n > li:not(:first-child) {\n > a,\n > span {\n margin-left: ", ";\n }\n &::before {\n margin: ", " ", ";\n transform: rotate(15deg);\n border-right: ", " solid ", ";\n height: 1rem;\n content: \"\";\n }\n }\n"])), _coreTokens["default"].spacing_0, _coreTokens["default"].spacing_0, _coreTokens["default"].spacing_12, _coreTokens["default"].spacing_12, _coreTokens["default"].spacing_0, _coreTokens["default"].spacing_2, _coreTokens["default"].border_width_1, _coreTokens["default"].color_grey_500);
79
+ var _default = exports["default"] = DxcBreadcrumbs;
@@ -0,0 +1,194 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
4
+ import DxcBreadcrumbs from "./Breadcrumbs";
5
+ import DxcContainer from "../container/Container";
6
+ import { HalstackProvider } from "../HalstackContext";
7
+ import { userEvent, within } from "@storybook/test";
8
+ import { disabledRules } from "../../test/accessibility/rules/specific/breadcrumbs/disabledRules";
9
+ import preview from "../../.storybook/preview";
10
+
11
+ export default {
12
+ title: "Breadcrumbs",
13
+ component: DxcBreadcrumbs,
14
+ parameters: {
15
+ a11y: {
16
+ config: {
17
+ rules: [
18
+ ...disabledRules.map((ruleId) => ({ id: ruleId, enabled: false })),
19
+ ...preview?.parameters?.a11y?.config?.rules,
20
+ ],
21
+ },
22
+ },
23
+ },
24
+ };
25
+
26
+ const items = [
27
+ {
28
+ label: "Home",
29
+ href: "/",
30
+ },
31
+ {
32
+ label: "User Menu",
33
+ href: "",
34
+ },
35
+ {
36
+ label: "Preferences",
37
+ href: "",
38
+ },
39
+ {
40
+ label: "Customization",
41
+ href: "",
42
+ },
43
+ {
44
+ label: "Dark Mode",
45
+ href: "",
46
+ },
47
+ ];
48
+
49
+ const Breadcrumbs = () => (
50
+ <>
51
+ <Title title="Default" theme="light" level={3} />
52
+ <ExampleContainer>
53
+ <DxcBreadcrumbs
54
+ items={[
55
+ {
56
+ label: "Home",
57
+ href: "/",
58
+ },
59
+ {
60
+ label: "User Menu",
61
+ href: "",
62
+ },
63
+ {
64
+ label: "Preferences",
65
+ href: "",
66
+ },
67
+ {
68
+ label: "Dark Mode",
69
+ href: "",
70
+ },
71
+ ]}
72
+ />
73
+ </ExampleContainer>
74
+ <Title title="Collapsed variant" theme="light" level={3} />
75
+ <ExampleContainer>
76
+ <DxcBreadcrumbs items={items} />
77
+ </ExampleContainer>
78
+ <Title title="Collapsed variant without root" theme="light" level={3} />
79
+ <ExampleContainer>
80
+ <DxcBreadcrumbs items={items} showRoot={false} />
81
+ </ExampleContainer>
82
+ <Title title="Collapsed variant with dropdown menu opened" theme="light" level={3} />
83
+ <ExampleContainer>
84
+ <DxcContainer height="150px">
85
+ <DxcBreadcrumbs items={items} />
86
+ </DxcContainer>
87
+ </ExampleContainer>
88
+ <Title title="Focus state" theme="light" level={3} />
89
+ <ExampleContainer pseudoState="pseudo-focus">
90
+ <DxcBreadcrumbs items={items} />
91
+ </ExampleContainer>
92
+ <Title title="Hover state" theme="light" level={3} />
93
+ <ExampleContainer pseudoState="pseudo-hover">
94
+ <DxcBreadcrumbs items={items} />
95
+ </ExampleContainer>
96
+ <Title title="Active state" theme="light" level={3} />
97
+ <ExampleContainer pseudoState="pseudo-active">
98
+ <DxcBreadcrumbs items={items} />
99
+ </ExampleContainer>
100
+ <Title title="Truncation and text ellipsis with tooltip (only when collapsed)" theme="light" level={3} />
101
+ <ExampleContainer>
102
+ <DxcContainer width="200px">
103
+ <DxcBreadcrumbs
104
+ items={[
105
+ {
106
+ label: "Root",
107
+ href: "/",
108
+ },
109
+ {
110
+ label: "Main folder",
111
+ href: "",
112
+ },
113
+ {
114
+ label: "User",
115
+ href: "",
116
+ },
117
+ {
118
+ label: "Very long label for the link",
119
+ href: "",
120
+ },
121
+ ]}
122
+ itemsBeforeCollapse={3}
123
+ />
124
+ </DxcContainer>
125
+ </ExampleContainer>
126
+ <Title title="Truncation, text ellipsis with tooltip and without root" theme="light" level={3} />
127
+ <ExampleContainer>
128
+ <DxcContainer width="200px">
129
+ <DxcBreadcrumbs
130
+ items={[
131
+ {
132
+ label: "Root",
133
+ href: "/",
134
+ },
135
+ {
136
+ label: "Main folder",
137
+ href: "",
138
+ },
139
+ {
140
+ label: "User",
141
+ href: "",
142
+ },
143
+ {
144
+ label: "Very long label for the link",
145
+ href: "",
146
+ },
147
+ ]}
148
+ itemsBeforeCollapse={3}
149
+ showRoot={false}
150
+ />
151
+ </DxcContainer>
152
+ </ExampleContainer>
153
+ <Title title="Dropdown theming doesn't affect the collapsed trigger" theme="light" level={3} />
154
+ <ExampleContainer>
155
+ <Title title="Opinionated theming" theme="light" level={4} />
156
+ <ExampleContainer>
157
+ <HalstackProvider
158
+ theme={{
159
+ dropdown: {
160
+ baseColor: "#fabada",
161
+ fontColor: "#999",
162
+ optionFontColor: "#4d4d4d",
163
+ },
164
+ }}
165
+ >
166
+ <DxcBreadcrumbs items={items} itemsBeforeCollapse={3} />
167
+ </HalstackProvider>
168
+ </ExampleContainer>
169
+ <Title title="Advanced theming" theme="light" level={4} />
170
+ <ExampleContainer>
171
+ <HalstackProvider
172
+ advancedTheme={{
173
+ dropdown: {
174
+ buttonBackgroundColor: "#fabada",
175
+ buttonHeight: "100px",
176
+ buttonBorderThickness: "2px",
177
+ buttonBorderStyle: "solid",
178
+ buttonBorderColor: "#000",
179
+ },
180
+ }}
181
+ >
182
+ <DxcBreadcrumbs items={items} itemsBeforeCollapse={3} />
183
+ </HalstackProvider>
184
+ </ExampleContainer>
185
+ </ExampleContainer>
186
+ </>
187
+ );
188
+
189
+ export const Chromatic = Breadcrumbs.bind({});
190
+ Chromatic.play = async ({ canvasElement }) => {
191
+ const canvas = within(canvasElement);
192
+ const dropdowns = canvas.getAllByRole("button");
193
+ await userEvent.click(dropdowns[2]);
194
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,168 @@
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 _Breadcrumbs = _interopRequireDefault(require("./Breadcrumbs"));
11
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
12
+ global.ResizeObserver = /*#__PURE__*/function () {
13
+ function ResizeObserver() {
14
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
15
+ }
16
+ return (0, _createClass2["default"])(ResizeObserver, [{
17
+ key: "observe",
18
+ value: function observe() {}
19
+ }, {
20
+ key: "unobserve",
21
+ value: function unobserve() {}
22
+ }, {
23
+ key: "disconnect",
24
+ value: function disconnect() {}
25
+ }]);
26
+ }();
27
+ var items = [{
28
+ label: "Home",
29
+ href: "/"
30
+ }, {
31
+ label: "User Menu",
32
+ href: ""
33
+ }, {
34
+ label: "Preferences",
35
+ href: ""
36
+ }, {
37
+ label: "Dark Mode",
38
+ href: ""
39
+ }];
40
+ describe("Breadcrumbs component tests", function () {
41
+ test("Renders with correct aria accessibility attributes", function () {
42
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Breadcrumbs["default"], {
43
+ items: items,
44
+ ariaLabel: "example"
45
+ })),
46
+ getByText = _render.getByText,
47
+ getByRole = _render.getByRole;
48
+ var breadcrumbs = getByRole("navigation");
49
+ expect(breadcrumbs.getAttribute("aria-label")).toBe("example");
50
+ expect(getByText("Dark Mode").parentElement.getAttribute("aria-current")).toBe("page");
51
+ });
52
+ test("Collapsed variant renders all the items inside the dropdown menu except the root and the current page", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
53
+ var _render2, queryByText, getByText, getByRole, dropdown;
54
+ return _regenerator["default"].wrap(function _callee$(_context) {
55
+ while (1) switch (_context.prev = _context.next) {
56
+ case 0:
57
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Breadcrumbs["default"], {
58
+ items: items,
59
+ itemsBeforeCollapse: 3
60
+ })), queryByText = _render2.queryByText, getByText = _render2.getByText, getByRole = _render2.getByRole;
61
+ dropdown = getByRole("button");
62
+ expect(queryByText("User Menu")).toBeFalsy();
63
+ expect(queryByText("Preferences")).toBeFalsy();
64
+ _context.next = 6;
65
+ return _userEvent["default"].click(dropdown);
66
+ case 6:
67
+ expect(getByText("User Menu")).toBeTruthy();
68
+ expect(getByText("Preferences")).toBeTruthy();
69
+ case 8:
70
+ case "end":
71
+ return _context.stop();
72
+ }
73
+ }, _callee);
74
+ })));
75
+ test("Collapsed variant, with show root set to false, renders all the items inside the dropdown menu except the current page", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
76
+ var _render3, queryByText, getByText, getByRole, dropdown;
77
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
78
+ while (1) switch (_context2.prev = _context2.next) {
79
+ case 0:
80
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Breadcrumbs["default"], {
81
+ items: items,
82
+ itemsBeforeCollapse: 3,
83
+ showRoot: false
84
+ })), queryByText = _render3.queryByText, getByText = _render3.getByText, getByRole = _render3.getByRole;
85
+ dropdown = getByRole("button");
86
+ expect(queryByText("Home")).toBeFalsy();
87
+ expect(queryByText("User Menu")).toBeFalsy();
88
+ expect(queryByText("Preferences")).toBeFalsy();
89
+ _context2.next = 7;
90
+ return _userEvent["default"].click(dropdown);
91
+ case 7:
92
+ expect(getByText("Home")).toBeTruthy();
93
+ expect(getByText("User Menu")).toBeTruthy();
94
+ expect(getByText("Preferences")).toBeTruthy();
95
+ case 10:
96
+ case "end":
97
+ return _context2.stop();
98
+ }
99
+ }, _callee2);
100
+ })));
101
+ test("If itemsBeforeCollapse value is below two, ignores it and renders a collapsed variant", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
102
+ var _render4, getByText, getByRole;
103
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
104
+ while (1) switch (_context3.prev = _context3.next) {
105
+ case 0:
106
+ _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Breadcrumbs["default"], {
107
+ items: items,
108
+ itemsBeforeCollapse: -1
109
+ })), getByText = _render4.getByText, getByRole = _render4.getByRole;
110
+ expect(getByText("Home")).toBeTruthy();
111
+ expect(getByRole("button")).toBeTruthy();
112
+ expect(getByText("Dark Mode")).toBeTruthy();
113
+ case 4:
114
+ case "end":
115
+ return _context3.stop();
116
+ }
117
+ }, _callee3);
118
+ })));
119
+ test("The onClick prop from an item is properly called", function () {
120
+ var onItemClick = jest.fn();
121
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Breadcrumbs["default"], {
122
+ onItemClick: onItemClick,
123
+ items: [{
124
+ label: "Home",
125
+ href: "/home"
126
+ }, {
127
+ label: "Preferences",
128
+ href: "/preferences"
129
+ }]
130
+ })),
131
+ getByText = _render5.getByText;
132
+ _userEvent["default"].click(getByText("Home"));
133
+ expect(onItemClick).toHaveBeenCalledWith("/home");
134
+ });
135
+ test("The onClick prop from an item is properly called (collapsed)", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
136
+ var onItemClick, _render6, getByText, getByRole;
137
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
138
+ while (1) switch (_context4.prev = _context4.next) {
139
+ case 0:
140
+ onItemClick = jest.fn();
141
+ _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Breadcrumbs["default"], {
142
+ onItemClick: onItemClick,
143
+ items: [{
144
+ label: "Home",
145
+ href: "/"
146
+ }, {
147
+ label: "Preferences",
148
+ href: "/"
149
+ }, {
150
+ label: "Dark Mode",
151
+ href: "/"
152
+ }],
153
+ itemsBeforeCollapse: 2
154
+ })), getByText = _render6.getByText, getByRole = _render6.getByRole;
155
+ _context4.next = 4;
156
+ return _userEvent["default"].click(getByRole("button"));
157
+ case 4:
158
+ _context4.next = 6;
159
+ return _userEvent["default"].click(getByText("Preferences"));
160
+ case 6:
161
+ expect(onItemClick).toHaveBeenCalledWith("/");
162
+ case 7:
163
+ case "end":
164
+ return _context4.stop();
165
+ }
166
+ }, _callee4);
167
+ })));
168
+ });
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { ItemPropsType } from "./types";
3
+ declare const Item: ({ isCurrentPage, href, label, onClick }: ItemPropsType) => React.JSX.Element;
4
+ export default Item;
@@ -0,0 +1,52 @@
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 = _interopRequireWildcard(require("react"));
11
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
12
+ var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
13
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
14
+ 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); }
15
+ 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; }
16
+ var Item = function Item(_ref) {
17
+ var _ref$isCurrentPage = _ref.isCurrentPage,
18
+ isCurrentPage = _ref$isCurrentPage === void 0 ? false : _ref$isCurrentPage,
19
+ href = _ref.href,
20
+ label = _ref.label,
21
+ onClick = _ref.onClick;
22
+ var currentItemRef = (0, _react.useRef)(null);
23
+ var handleOnMouseEnter = function handleOnMouseEnter(event) {
24
+ var labelContainer = event.currentTarget;
25
+ var optionElement = currentItemRef === null || currentItemRef === void 0 ? void 0 : currentItemRef.current;
26
+ if (optionElement.title === "" && labelContainer.scrollWidth > labelContainer.clientWidth) optionElement.title = label;
27
+ };
28
+ var handleOnClick = function handleOnClick(event) {
29
+ if (onClick) {
30
+ event.preventDefault();
31
+ onClick(href);
32
+ }
33
+ };
34
+ return /*#__PURE__*/_react["default"].createElement(ListItem, {
35
+ "aria-current": isCurrentPage ? "page" : undefined,
36
+ isCurrentPage: isCurrentPage
37
+ }, isCurrentPage ? /*#__PURE__*/_react["default"].createElement(CurrentPage, {
38
+ ref: currentItemRef,
39
+ onMouseEnter: handleOnMouseEnter
40
+ }, label) : /*#__PURE__*/_react["default"].createElement(Link, {
41
+ href: href,
42
+ onClick: handleOnClick
43
+ }, /*#__PURE__*/_react["default"].createElement(Text, null, label)));
44
+ };
45
+ var ListItem = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n ", "\n"])), _coreTokens["default"].type_sans, _coreTokens["default"].type_scale_02, _coreTokens["default"].color_black, function (_ref2) {
46
+ var isCurrentPage = _ref2.isCurrentPage;
47
+ return isCurrentPage && "overflow: hidden;";
48
+ });
49
+ var CurrentPage = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: default;\n"])), _coreTokens["default"].type_semibold);
50
+ var Link = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n border-radius: ", ";\n padding: ", " ", ";\n display: inline-flex;\n align-items: center;\n height: 24px;\n color: ", ";\n text-decoration: ", ";\n cursor: pointer;\n\n &:focus {\n outline: ", " solid ", ";\n }\n"])), _coreTokens["default"].border_radius_small, _coreTokens["default"].spacing_0, _coreTokens["default"].spacing_2, _coreTokens["default"].color_black, _coreTokens["default"].type_no_line, _coreTokens["default"].border_width_2, _coreTokens["default"].color_blue_600);
51
+ var Text = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n border: ", " solid ", ";\n &:hover {\n border-bottom-color: ", ";\n }\n"])), _coreTokens["default"].border_width_1, _coreTokens["default"].color_transparent, _coreTokens["default"].color_black);
52
+ var _default = exports["default"] = Item;
@@ -0,0 +1,53 @@
1
+ declare const _default: {
2
+ dropdown: {
3
+ buttonIconSize: string;
4
+ buttonPaddingTop: string;
5
+ buttonPaddingBottom: string;
6
+ buttonPaddingLeft: string;
7
+ buttonPaddingRight: string;
8
+ buttonHeight: string;
9
+ buttonBorderRadius: string;
10
+ buttonBorderColor: string;
11
+ optionFontSize: string;
12
+ optionPaddingTop: string;
13
+ optionPaddingBottom: string;
14
+ optionPaddingLeft: string;
15
+ optionPaddingRight: string;
16
+ buttonBackgroundColor: string;
17
+ hoverButtonBackgroundColor: string;
18
+ activeButtonBackgroundColor: string;
19
+ buttonFontFamily: string;
20
+ buttonFontSize: string;
21
+ buttonFontStyle: string;
22
+ buttonFontWeight: string;
23
+ buttonFontColor: string;
24
+ buttonIconSpacing: string;
25
+ buttonIconColor: string;
26
+ buttonBorderStyle: string;
27
+ buttonBorderThickness: string;
28
+ disabledColor: string;
29
+ disabledButtonBackgroundColor: string;
30
+ disabledButtonBorderColor: string;
31
+ optionBackgroundColor: string;
32
+ hoverOptionBackgroundColor: string;
33
+ activeOptionBackgroundColor: string;
34
+ optionFontFamily: string;
35
+ optionFontStyle: string;
36
+ optionFontWeight: string;
37
+ optionFontColor: string;
38
+ optionIconSize: string;
39
+ optionIconSpacing: string;
40
+ optionIconColor: string;
41
+ caretIconSize: string;
42
+ caretIconColor: string;
43
+ caretIconSpacing: string;
44
+ borderRadius: string;
45
+ borderStyle: string;
46
+ borderThickness: string;
47
+ borderColor: string;
48
+ scrollBarThumbColor: string;
49
+ scrollBarTrackColor: string;
50
+ focusColor: string;
51
+ };
52
+ };
53
+ export default _default;