@dxc-technology/halstack-react 0.0.0-4e1277a → 0.0.0-4e3dbad

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 (363) hide show
  1. package/BackgroundColorContext.js +1 -1
  2. package/HalstackContext.d.ts +42 -5
  3. package/HalstackContext.js +28 -18
  4. package/accordion/Accordion.accessibility.test.d.ts +1 -0
  5. package/accordion/Accordion.accessibility.test.js +71 -0
  6. package/accordion/Accordion.js +16 -30
  7. package/accordion/Accordion.stories.tsx +7 -49
  8. package/accordion/Accordion.test.d.ts +1 -0
  9. package/accordion/Accordion.test.js +3 -3
  10. package/accordion/types.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
  12. package/accordion-group/AccordionGroup.accessibility.test.js +82 -0
  13. package/accordion-group/AccordionGroup.js +1 -1
  14. package/accordion-group/AccordionGroup.stories.tsx +23 -23
  15. package/accordion-group/AccordionGroup.test.d.ts +1 -0
  16. package/accordion-group/AccordionGroup.test.js +5 -9
  17. package/accordion-group/AccordionGroupAccordion.js +1 -1
  18. package/accordion-group/types.d.ts +1 -1
  19. package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
  20. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  21. package/action-icon/ActionIcon.js +4 -3
  22. package/action-icon/ActionIcon.stories.tsx +3 -3
  23. package/action-icon/ActionIcon.test.d.ts +1 -0
  24. package/action-icon/ActionIcon.test.js +1 -1
  25. package/action-icon/types.d.ts +1 -1
  26. package/alert/Alert.accessibility.test.d.ts +1 -0
  27. package/alert/Alert.accessibility.test.js +95 -0
  28. package/alert/Alert.js +21 -72
  29. package/alert/Alert.test.d.ts +1 -0
  30. package/alert/Alert.test.js +1 -1
  31. package/badge/Badge.accessibility.test.d.ts +1 -0
  32. package/badge/Badge.accessibility.test.js +129 -0
  33. package/badge/Badge.js +6 -4
  34. package/badge/Badge.stories.tsx +11 -11
  35. package/badge/Badge.test.d.ts +1 -0
  36. package/badge/Badge.test.js +2 -2
  37. package/badge/types.d.ts +1 -1
  38. package/bar-chart/BarChart.d.ts +4 -0
  39. package/bar-chart/BarChart.js +152 -0
  40. package/bar-chart/BarChart.stories.tsx +281 -0
  41. package/bar-chart/BarChart.test.d.ts +1 -0
  42. package/bar-chart/BarChart.test.js +194 -0
  43. package/bar-chart/theme.d.ts +3 -0
  44. package/bar-chart/theme.js +31 -0
  45. package/bar-chart/types.d.ts +118 -0
  46. package/bar-chart/types.js +5 -0
  47. package/bleed/Bleed.stories.tsx +0 -1
  48. package/box/Box.accessibility.test.d.ts +1 -0
  49. package/box/Box.accessibility.test.js +33 -0
  50. package/box/Box.js +1 -1
  51. package/box/Box.test.d.ts +1 -0
  52. package/box/Box.test.js +1 -1
  53. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  54. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  55. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  56. package/breadcrumbs/Breadcrumbs.js +79 -0
  57. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  58. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  59. package/breadcrumbs/Breadcrumbs.test.js +168 -0
  60. package/breadcrumbs/Item.d.ts +4 -0
  61. package/breadcrumbs/Item.js +52 -0
  62. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  63. package/breadcrumbs/dropdownTheme.js +62 -0
  64. package/breadcrumbs/types.d.ts +40 -0
  65. package/breadcrumbs/types.js +5 -0
  66. package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
  67. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  68. package/bulleted-list/BulletedList.js +7 -4
  69. package/bulleted-list/BulletedList.stories.tsx +1 -1
  70. package/button/Button.accessibility.test.d.ts +1 -0
  71. package/button/Button.accessibility.test.js +127 -0
  72. package/button/Button.js +2 -2
  73. package/button/Button.stories.tsx +3 -4
  74. package/button/Button.test.d.ts +1 -0
  75. package/button/Button.test.js +1 -1
  76. package/card/Card.accessibility.test.d.ts +1 -0
  77. package/card/Card.accessibility.test.js +36 -0
  78. package/card/Card.js +3 -2
  79. package/card/Card.stories.tsx +1 -1
  80. package/card/Card.test.d.ts +1 -0
  81. package/card/Card.test.js +1 -1
  82. package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
  83. package/checkbox/Checkbox.accessibility.test.js +87 -0
  84. package/checkbox/Checkbox.js +10 -13
  85. package/checkbox/Checkbox.test.d.ts +1 -0
  86. package/checkbox/Checkbox.test.js +1 -1
  87. package/chip/Chip.accessibility.test.d.ts +1 -0
  88. package/chip/Chip.accessibility.test.js +67 -0
  89. package/chip/Chip.js +11 -6
  90. package/chip/Chip.stories.tsx +6 -25
  91. package/chip/Chip.test.d.ts +1 -0
  92. package/chip/Chip.test.js +5 -5
  93. package/common/coreTokens.d.ts +0 -1
  94. package/common/coreTokens.js +3 -4
  95. package/common/variables.d.ts +48 -5
  96. package/common/variables.js +110 -73
  97. package/container/Container.stories.tsx +3 -3
  98. package/container/types.d.ts +113 -11
  99. package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
  100. package/contextual-menu/ContextualMenu.accessibility.test.js +98 -0
  101. package/contextual-menu/ContextualMenu.d.ts +3 -5
  102. package/contextual-menu/ContextualMenu.js +118 -53
  103. package/contextual-menu/ContextualMenu.stories.tsx +124 -75
  104. package/contextual-menu/ContextualMenu.test.d.ts +1 -0
  105. package/contextual-menu/ContextualMenu.test.js +200 -24
  106. package/contextual-menu/GroupItem.d.ts +4 -0
  107. package/contextual-menu/GroupItem.js +67 -0
  108. package/contextual-menu/ItemAction.d.ts +4 -0
  109. package/contextual-menu/ItemAction.js +88 -0
  110. package/contextual-menu/MenuItem.d.ts +4 -0
  111. package/contextual-menu/MenuItem.js +29 -0
  112. package/contextual-menu/SingleItem.d.ts +4 -0
  113. package/contextual-menu/SingleItem.js +38 -0
  114. package/contextual-menu/types.d.ts +54 -11
  115. package/date-input/Calendar.js +47 -31
  116. package/date-input/DateInput.accessibility.test.d.ts +1 -0
  117. package/date-input/DateInput.accessibility.test.js +229 -0
  118. package/date-input/DateInput.js +28 -23
  119. package/date-input/DateInput.stories.tsx +18 -12
  120. package/date-input/DateInput.test.d.ts +1 -0
  121. package/date-input/DateInput.test.js +39 -39
  122. package/date-input/DatePicker.js +13 -7
  123. package/date-input/YearPicker.js +10 -5
  124. package/dialog/Dialog.accessibility.test.d.ts +1 -0
  125. package/dialog/Dialog.accessibility.test.js +69 -0
  126. package/dialog/Dialog.js +9 -20
  127. package/dialog/Dialog.stories.tsx +8 -4
  128. package/dialog/Dialog.test.d.ts +1 -0
  129. package/dialog/Dialog.test.js +112 -49
  130. package/divider/Divider.accessibility.test.d.ts +1 -0
  131. package/divider/Divider.accessibility.test.js +33 -0
  132. package/divider/Divider.stories.tsx +2 -1
  133. package/divider/Divider.test.d.ts +1 -0
  134. package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
  135. package/dropdown/Dropdown.accessibility.test.js +183 -0
  136. package/dropdown/Dropdown.js +31 -66
  137. package/dropdown/Dropdown.stories.tsx +16 -27
  138. package/dropdown/Dropdown.test.d.ts +1 -0
  139. package/dropdown/Dropdown.test.js +101 -72
  140. package/dropdown/DropdownMenu.js +4 -4
  141. package/dropdown/DropdownMenuItem.js +8 -4
  142. package/dropdown/types.d.ts +2 -4
  143. package/file-input/FileInput.accessibility.test.d.ts +1 -0
  144. package/file-input/FileInput.accessibility.test.js +167 -0
  145. package/file-input/FileInput.js +6 -47
  146. package/file-input/FileInput.test.d.ts +1 -0
  147. package/file-input/FileInput.test.js +51 -106
  148. package/file-input/FileItem.js +18 -28
  149. package/file-input/types.d.ts +0 -4
  150. package/footer/Footer.accessibility.test.d.ts +1 -0
  151. package/footer/Footer.accessibility.test.js +125 -0
  152. package/footer/Footer.js +8 -6
  153. package/footer/Footer.stories.tsx +40 -3
  154. package/footer/Footer.test.d.ts +1 -0
  155. package/footer/Footer.test.js +1 -1
  156. package/footer/Icons.js +2 -30
  157. package/footer/types.d.ts +1 -1
  158. package/grid/Grid.stories.tsx +3 -1
  159. package/header/Header.accessibility.test.d.ts +1 -0
  160. package/header/Header.accessibility.test.js +94 -0
  161. package/header/Header.js +12 -22
  162. package/header/Header.stories.tsx +17 -1
  163. package/header/Header.test.d.ts +1 -0
  164. package/header/Header.test.js +1 -1
  165. package/header/Icons.js +1 -6
  166. package/heading/Heading.accessibility.test.d.ts +1 -0
  167. package/heading/Heading.accessibility.test.js +33 -0
  168. package/heading/Heading.js +1 -1
  169. package/heading/Heading.test.d.ts +1 -0
  170. package/heading/Heading.test.js +1 -14
  171. package/icon/Icon.accessibility.test.d.ts +1 -0
  172. package/icon/Icon.accessibility.test.js +30 -0
  173. package/icon/Icon.js +1 -1
  174. package/icon/Icon.stories.tsx +6 -4
  175. package/image/Image.accessibility.test.d.ts +1 -0
  176. package/image/Image.accessibility.test.js +56 -0
  177. package/image/Image.js +1 -1
  178. package/layout/ApplicationLayout.js +9 -6
  179. package/layout/Icons.d.ts +0 -1
  180. package/layout/Icons.js +1 -11
  181. package/link/Link.accessibility.test.d.ts +1 -0
  182. package/link/Link.accessibility.test.js +108 -0
  183. package/link/Link.js +8 -6
  184. package/link/Link.stories.tsx +4 -4
  185. package/link/Link.test.d.ts +1 -0
  186. package/link/Link.test.js +1 -1
  187. package/link/types.d.ts +1 -1
  188. package/main.d.ts +3 -1
  189. package/main.js +15 -1
  190. package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
  191. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  192. package/nav-tabs/NavTabs.js +19 -4
  193. package/nav-tabs/NavTabs.stories.tsx +41 -23
  194. package/nav-tabs/NavTabs.test.d.ts +1 -0
  195. package/nav-tabs/NavTabs.test.js +10 -9
  196. package/nav-tabs/Tab.js +17 -18
  197. package/nav-tabs/types.d.ts +1 -1
  198. package/number-input/NumberInput.accessibility.test.d.ts +1 -0
  199. package/number-input/NumberInput.accessibility.test.js +227 -0
  200. package/number-input/NumberInput.js +6 -3
  201. package/number-input/NumberInput.stories.tsx +11 -16
  202. package/number-input/NumberInput.test.d.ts +1 -0
  203. package/number-input/NumberInput.test.js +6 -7
  204. package/package.json +34 -28
  205. package/paginator/Paginator.accessibility.test.d.ts +1 -0
  206. package/paginator/Paginator.accessibility.test.js +78 -0
  207. package/paginator/Paginator.js +13 -10
  208. package/paginator/Paginator.test.d.ts +1 -0
  209. package/paginator/Paginator.test.js +2 -3
  210. package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
  211. package/paragraph/Paragraph.accessibility.test.js +28 -0
  212. package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
  213. package/password-input/PasswordInput.accessibility.test.js +152 -0
  214. package/password-input/PasswordInput.js +11 -8
  215. package/password-input/PasswordInput.stories.tsx +10 -1
  216. package/password-input/PasswordInput.test.d.ts +1 -0
  217. package/password-input/PasswordInput.test.js +6 -7
  218. package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
  219. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  220. package/progress-bar/ProgressBar.js +6 -4
  221. package/progress-bar/ProgressBar.test.d.ts +1 -0
  222. package/progress-bar/ProgressBar.test.js +1 -1
  223. package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
  224. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  225. package/quick-nav/QuickNav.js +1 -1
  226. package/radio-group/Radio.js +6 -9
  227. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  228. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  229. package/radio-group/RadioGroup.js +14 -16
  230. package/radio-group/RadioGroup.test.d.ts +1 -0
  231. package/radio-group/RadioGroup.test.js +3 -5
  232. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  233. package/resultset-table/ResultsetTable.accessibility.test.js +284 -0
  234. package/resultset-table/ResultsetTable.d.ts +1 -1
  235. package/resultset-table/ResultsetTable.js +47 -15
  236. package/resultset-table/ResultsetTable.stories.tsx +19 -3
  237. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  238. package/resultset-table/ResultsetTable.test.js +111 -32
  239. package/resultset-table/types.d.ts +41 -13
  240. package/select/Listbox.d.ts +3 -3
  241. package/select/Listbox.js +33 -29
  242. package/select/Option.d.ts +3 -3
  243. package/select/Option.js +21 -15
  244. package/select/Select.accessibility.test.d.ts +1 -0
  245. package/select/Select.accessibility.test.js +227 -0
  246. package/select/Select.js +85 -192
  247. package/select/Select.stories.tsx +74 -117
  248. package/select/Select.test.d.ts +1 -0
  249. package/select/Select.test.js +348 -550
  250. package/select/selectUtils.d.ts +41 -0
  251. package/select/selectUtils.js +129 -0
  252. package/select/types.d.ts +1 -1
  253. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  254. package/sidenav/Sidenav.accessibility.test.js +59 -0
  255. package/sidenav/Sidenav.js +16 -12
  256. package/sidenav/Sidenav.stories.tsx +5 -10
  257. package/sidenav/Sidenav.test.d.ts +1 -0
  258. package/sidenav/Sidenav.test.js +1 -1
  259. package/sidenav/types.d.ts +2 -2
  260. package/slider/Slider.accessibility.test.d.ts +1 -0
  261. package/slider/Slider.accessibility.test.js +103 -0
  262. package/slider/Slider.js +11 -13
  263. package/slider/Slider.stories.tsx +180 -0
  264. package/slider/Slider.test.d.ts +1 -0
  265. package/slider/Slider.test.js +13 -11
  266. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  267. package/spinner/Spinner.accessibility.test.js +96 -0
  268. package/spinner/Spinner.d.ts +1 -1
  269. package/spinner/Spinner.js +32 -47
  270. package/spinner/Spinner.test.d.ts +1 -0
  271. package/spinner/Spinner.test.js +1 -1
  272. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  273. package/status-light/StatusLight.accessibility.test.js +157 -0
  274. package/status-light/StatusLight.test.d.ts +1 -0
  275. package/status-light/StatusLight.test.js +1 -1
  276. package/switch/Switch.accessibility.test.d.ts +1 -0
  277. package/switch/Switch.accessibility.test.js +98 -0
  278. package/switch/Switch.js +6 -9
  279. package/switch/Switch.stories.tsx +12 -0
  280. package/switch/Switch.test.d.ts +1 -0
  281. package/switch/Switch.test.js +1 -1
  282. package/table/Table.accessibility.test.d.ts +1 -0
  283. package/table/Table.accessibility.test.js +92 -0
  284. package/table/Table.js +2 -11
  285. package/table/Table.stories.tsx +15 -10
  286. package/table/Table.test.d.ts +1 -0
  287. package/table/Table.test.js +2 -4
  288. package/table/types.d.ts +1 -15
  289. package/tabs/Tab.js +6 -5
  290. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  291. package/tabs/Tabs.accessibility.test.js +56 -0
  292. package/tabs/Tabs.js +9 -20
  293. package/tabs/Tabs.stories.tsx +7 -3
  294. package/tabs/Tabs.test.d.ts +1 -0
  295. package/tabs/Tabs.test.js +20 -38
  296. package/tabs/types.d.ts +2 -2
  297. package/tag/Tag.accessibility.test.d.ts +1 -0
  298. package/tag/Tag.accessibility.test.js +69 -0
  299. package/tag/Tag.js +7 -7
  300. package/tag/Tag.stories.tsx +5 -8
  301. package/tag/Tag.test.d.ts +1 -0
  302. package/tag/Tag.test.js +5 -13
  303. package/tag/types.d.ts +2 -2
  304. package/text-input/Suggestion.js +1 -1
  305. package/text-input/Suggestions.js +17 -7
  306. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  307. package/text-input/TextInput.accessibility.test.js +320 -0
  308. package/text-input/TextInput.js +56 -73
  309. package/text-input/TextInput.stories.tsx +20 -8
  310. package/text-input/TextInput.test.d.ts +1 -0
  311. package/text-input/TextInput.test.js +2 -3
  312. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  313. package/textarea/Textarea.accessibility.test.js +155 -0
  314. package/textarea/Textarea.js +14 -13
  315. package/textarea/Textarea.test.d.ts +1 -0
  316. package/textarea/Textarea.test.js +1 -1
  317. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  318. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  319. package/toggle-group/ToggleGroup.js +10 -12
  320. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  321. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  322. package/toggle-group/ToggleGroup.test.js +1 -1
  323. package/toggle-group/types.d.ts +2 -2
  324. package/tooltip/Tooltip.accessibility.test.d.ts +1 -0
  325. package/tooltip/Tooltip.accessibility.test.js +144 -0
  326. package/tooltip/Tooltip.d.ts +4 -0
  327. package/tooltip/Tooltip.js +50 -0
  328. package/tooltip/Tooltip.stories.tsx +111 -0
  329. package/tooltip/Tooltip.test.d.ts +1 -0
  330. package/tooltip/Tooltip.test.js +112 -0
  331. package/tooltip/types.d.ts +16 -0
  332. package/tooltip/types.js +5 -0
  333. package/typography/Typography.accessibility.test.d.ts +1 -0
  334. package/typography/Typography.accessibility.test.js +339 -0
  335. package/typography/Typography.stories.tsx +1 -3
  336. package/typography/Typography.test.js +23 -0
  337. package/useTheme.d.ts +31 -5
  338. package/useTranslatedLabels.d.ts +11 -0
  339. package/utils/BaseTypography.js +45 -41
  340. package/utils/FocusLock.js +3 -2
  341. package/utils/useWidth.d.ts +2 -0
  342. package/utils/useWidth.js +30 -0
  343. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  344. package/wizard/Wizard.accessibility.test.js +55 -0
  345. package/wizard/Wizard.js +14 -25
  346. package/wizard/Wizard.stories.tsx +20 -1
  347. package/wizard/Wizard.test.d.ts +1 -0
  348. package/wizard/Wizard.test.js +1 -1
  349. package/wizard/types.d.ts +1 -1
  350. package/contextual-menu/MenuItemAction.d.ts +0 -4
  351. package/contextual-menu/MenuItemAction.js +0 -46
  352. package/date-input/Icons.d.ts +0 -6
  353. package/date-input/Icons.js +0 -58
  354. package/paginator/Icons.d.ts +0 -5
  355. package/paginator/Icons.js +0 -40
  356. package/password-input/Icons.d.ts +0 -6
  357. package/password-input/Icons.js +0 -35
  358. package/select/Icons.d.ts +0 -10
  359. package/select/Icons.js +0 -89
  360. package/sidenav/Icons.d.ts +0 -7
  361. package/sidenav/Icons.js +0 -47
  362. package/text-input/Icons.d.ts +0 -8
  363. package/text-input/Icons.js +0 -56
@@ -0,0 +1,118 @@
1
+ /// <reference types="react" />
2
+ type DataTypes = string | number;
3
+ type BarChartThresholdSeries<X> = {
4
+ /**
5
+ * Title of the series.
6
+ */
7
+ title: string;
8
+ /**
9
+ * Type of the series. It can be either "threshold" or "bar".
10
+ */
11
+ type: "threshold";
12
+ /**
13
+ * Value of the y axis.
14
+ */
15
+ y?: number;
16
+ /**
17
+ * Value of the x axis. It can be a string or a number.
18
+ */
19
+ x?: X;
20
+ };
21
+ type BarChartDataSeries<X> = {
22
+ /**
23
+ * Title of the series.
24
+ */
25
+ title: string;
26
+ /**
27
+ * Type of the series. It can be either "threshold" or "bar".
28
+ */
29
+ type: "bar";
30
+ /**
31
+ * Data points of the series. Each data point is represented by an object with an x value and a y value.
32
+ */
33
+ data: {
34
+ x: X;
35
+ y: number;
36
+ }[];
37
+ };
38
+ type BarChartSeries<X> = BarChartThresholdSeries<X> | BarChartDataSeries<X>;
39
+ type BarChartProps<X extends DataTypes> = {
40
+ /**
41
+ * Title of the chart.
42
+ */
43
+ chartTitle?: string;
44
+ /**
45
+ * Error state of the chart. If set, the chart will display an error message with a retry action.
46
+ */
47
+ error?: string;
48
+ /**
49
+ * If true, the chart will display horizontal bars.
50
+ */
51
+ horizontalBars?: boolean;
52
+ /**
53
+ * Legend title.
54
+ */
55
+ legendTitle?: string;
56
+ /**
57
+ * Activates the loading state.
58
+ */
59
+ loading?: boolean;
60
+ /**
61
+ * Event called when the bar chart filters are changed.
62
+ */
63
+ onFilterChange?: (visibleSeries: string[]) => void;
64
+ /**
65
+ * Event called when the highlighted series has changed because of user interaction.
66
+ */
67
+ onHighlightChange?: (highlightedSeries?: string) => void;
68
+ /**
69
+ * Event called when the user clicks on the retry action of the error state.
70
+ */
71
+ onRetry?: () => void;
72
+ /**
73
+ * Array that represents the source of data for the displayed chart.
74
+ */
75
+ series: BarChartSeries<X>[];
76
+ /**
77
+ * If true, the chart will display a filter to show/hide series.
78
+ */
79
+ showFilter?: boolean;
80
+ /**
81
+ * If true, the chart will display a legend with the corresponding data series.
82
+ */
83
+ showLegend?: boolean;
84
+ /**
85
+ * When set to true, bars in the same data point are stacked instead of being grouped next to each other.
86
+ */
87
+ stackedBars?: boolean;
88
+ /**
89
+ * Determines the domain of the x axis, i.e. the range of values that will be visible in the chart
90
+ */
91
+ xDomain?: X[];
92
+ /**
93
+ * Formatter function for the x axis. It receives the x value and returns a string.
94
+ */
95
+ xFormatter?: (value: X) => string;
96
+ /**
97
+ * Title of the x axis.
98
+ */
99
+ xTitle?: string;
100
+ /**
101
+ * Determines the domain of the y axis, i.e. the range of values that will be visible in the chart
102
+ */
103
+ yDomain?: [number, number];
104
+ /**
105
+ * Formatter function for the y axis. It receives the y value and returns a string.
106
+ */
107
+ yFormatter?: (value: number) => string;
108
+ /**
109
+ * Title of the y axis.
110
+ */
111
+ yTitle?: string;
112
+ };
113
+ type InsetWrapperProps = {
114
+ condition: boolean;
115
+ children: React.ReactNode;
116
+ };
117
+ export default BarChartProps;
118
+ export type { DataTypes, InsetWrapperProps };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -111,7 +111,6 @@ export const Chromatic = () => (
111
111
  <Placeholder></Placeholder>
112
112
  </DxcFlex>
113
113
  </Container>
114
-
115
114
  <Title title="Horizontal = none" theme="light" level={4} />
116
115
  <Container>
117
116
  <DxcFlex direction="column" gap="1.5rem">
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
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 _Box = _interopRequireDefault(require("../box/Box"));
10
+ describe("Box component accessibility tests", function () {
11
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
12
+ var _render, container, results;
13
+ return _regenerator["default"].wrap(function _callee$(_context) {
14
+ while (1) switch (_context.prev = _context.next) {
15
+ case 0:
16
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Box["default"], {
17
+ shadowDepth: 0,
18
+ margin: "medium",
19
+ size: "small",
20
+ display: "flex"
21
+ }, "Box")), container = _render.container;
22
+ _context.next = 3;
23
+ return (0, _axeHelper.axe)(container);
24
+ case 3:
25
+ results = _context.sent;
26
+ expect(results).toHaveNoViolations();
27
+ case 5:
28
+ case "end":
29
+ return _context.stop();
30
+ }
31
+ }, _callee);
32
+ })));
33
+ });
package/box/Box.js CHANGED
@@ -15,7 +15,7 @@ var _utils = require("../common/utils");
15
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
16
16
  var _templateObject;
17
17
  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); }
18
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
19
19
  var DxcBox = function DxcBox(_ref) {
20
20
  var _ref$shadowDepth = _ref.shadowDepth,
21
21
  shadowDepth = _ref$shadowDepth === void 0 ? 2 : _ref$shadowDepth,
@@ -0,0 +1 @@
1
+ export {};
package/box/Box.test.js CHANGED
@@ -3,7 +3,7 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  var _react = _interopRequireDefault(require("react"));
5
5
  var _react2 = require("@testing-library/react");
6
- var _Card = _interopRequireDefault(require("../card/Card.tsx"));
6
+ var _Card = _interopRequireDefault(require("../card/Card"));
7
7
  describe("Box component tests", function () {
8
8
  test("Box renders with correct text", function () {
9
9
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], null, "test-box")),
@@ -0,0 +1 @@
1
+ export {};
@@ -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 {};