@dxc-technology/halstack-react 0.0.0-73f82b7 → 0.0.0-74c93cf

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 (400) hide show
  1. package/BackgroundColorContext.d.ts +1 -0
  2. package/BackgroundColorContext.js +6 -26
  3. package/HalstackContext.d.ts +1249 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +105 -194
  8. package/accordion/Accordion.stories.tsx +252 -0
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +12 -23
  11. package/accordion-group/AccordionGroup.d.ts +3 -3
  12. package/accordion-group/AccordionGroup.js +39 -108
  13. package/accordion-group/AccordionGroup.stories.tsx +252 -0
  14. package/accordion-group/AccordionGroup.test.js +98 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  18. package/accordion-group/AccordionGroupContext.js +8 -0
  19. package/accordion-group/types.d.ts +18 -23
  20. package/action-icon/ActionIcon.d.ts +4 -0
  21. package/action-icon/ActionIcon.js +48 -0
  22. package/action-icon/ActionIcon.stories.tsx +41 -0
  23. package/action-icon/ActionIcon.test.js +64 -0
  24. package/action-icon/types.d.ts +26 -0
  25. package/alert/Alert.js +24 -60
  26. package/alert/Alert.stories.tsx +28 -0
  27. package/alert/Alert.test.js +75 -0
  28. package/alert/types.d.ts +6 -6
  29. package/badge/Badge.d.ts +4 -0
  30. package/badge/Badge.js +141 -41
  31. package/badge/Badge.stories.tsx +210 -0
  32. package/badge/Badge.test.js +30 -0
  33. package/badge/types.d.ts +54 -0
  34. package/badge/types.js +5 -0
  35. package/bleed/Bleed.d.ts +3 -0
  36. package/bleed/Bleed.js +43 -0
  37. package/bleed/Bleed.stories.tsx +342 -0
  38. package/bleed/types.d.ts +37 -0
  39. package/bleed/types.js +5 -0
  40. package/box/Box.d.ts +1 -1
  41. package/box/Box.js +32 -86
  42. package/box/Box.stories.tsx +38 -51
  43. package/box/Box.test.js +13 -0
  44. package/box/types.d.ts +3 -18
  45. package/bulleted-list/BulletedList.d.ts +7 -0
  46. package/bulleted-list/BulletedList.js +89 -0
  47. package/bulleted-list/BulletedList.stories.tsx +115 -0
  48. package/bulleted-list/types.d.ts +38 -0
  49. package/bulleted-list/types.js +5 -0
  50. package/button/Button.d.ts +1 -1
  51. package/button/Button.js +65 -121
  52. package/button/Button.stories.tsx +156 -106
  53. package/button/Button.test.js +38 -0
  54. package/button/types.d.ts +14 -14
  55. package/card/Card.d.ts +1 -1
  56. package/card/Card.js +59 -104
  57. package/card/Card.stories.tsx +171 -0
  58. package/card/Card.test.js +39 -0
  59. package/card/types.d.ts +8 -15
  60. package/checkbox/Checkbox.d.ts +2 -2
  61. package/checkbox/Checkbox.js +145 -183
  62. package/checkbox/Checkbox.stories.tsx +166 -136
  63. package/checkbox/Checkbox.test.js +199 -0
  64. package/checkbox/types.d.ts +20 -8
  65. package/chip/Chip.d.ts +4 -0
  66. package/chip/Chip.js +48 -148
  67. package/chip/Chip.stories.tsx +214 -0
  68. package/chip/Chip.test.js +41 -0
  69. package/chip/types.d.ts +45 -0
  70. package/chip/types.js +5 -0
  71. package/common/coreTokens.d.ts +237 -0
  72. package/common/coreTokens.js +184 -0
  73. package/common/utils.d.ts +1 -0
  74. package/common/utils.js +6 -12
  75. package/common/variables.d.ts +1395 -0
  76. package/common/variables.js +1034 -1344
  77. package/container/Container.d.ts +4 -0
  78. package/container/Container.js +194 -0
  79. package/container/Container.stories.tsx +214 -0
  80. package/container/types.d.ts +74 -0
  81. package/container/types.js +5 -0
  82. package/contextual-menu/ContextualMenu.d.ts +7 -0
  83. package/contextual-menu/ContextualMenu.js +71 -0
  84. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  85. package/contextual-menu/ContextualMenu.test.js +71 -0
  86. package/contextual-menu/MenuItemAction.d.ts +4 -0
  87. package/contextual-menu/MenuItemAction.js +46 -0
  88. package/contextual-menu/types.d.ts +22 -0
  89. package/contextual-menu/types.js +5 -0
  90. package/date-input/Calendar.d.ts +4 -0
  91. package/date-input/Calendar.js +214 -0
  92. package/date-input/DateInput.js +175 -313
  93. package/date-input/DateInput.stories.tsx +203 -56
  94. package/date-input/DateInput.test.js +808 -0
  95. package/date-input/DatePicker.d.ts +4 -0
  96. package/date-input/DatePicker.js +115 -0
  97. package/date-input/Icons.d.ts +6 -0
  98. package/date-input/Icons.js +58 -0
  99. package/date-input/YearPicker.d.ts +4 -0
  100. package/date-input/YearPicker.js +100 -0
  101. package/date-input/types.d.ts +86 -22
  102. package/dialog/Dialog.d.ts +1 -1
  103. package/dialog/Dialog.js +69 -130
  104. package/dialog/Dialog.stories.tsx +365 -0
  105. package/dialog/Dialog.test.js +307 -0
  106. package/dialog/types.d.ts +18 -25
  107. package/divider/Divider.d.ts +4 -0
  108. package/divider/Divider.js +36 -0
  109. package/divider/Divider.stories.tsx +223 -0
  110. package/divider/Divider.test.js +38 -0
  111. package/divider/types.d.ts +21 -0
  112. package/divider/types.js +5 -0
  113. package/dropdown/Dropdown.d.ts +1 -1
  114. package/dropdown/Dropdown.js +232 -330
  115. package/dropdown/Dropdown.stories.tsx +427 -0
  116. package/dropdown/Dropdown.test.js +599 -0
  117. package/dropdown/DropdownMenu.d.ts +4 -0
  118. package/dropdown/DropdownMenu.js +63 -0
  119. package/dropdown/DropdownMenuItem.d.ts +4 -0
  120. package/dropdown/DropdownMenuItem.js +70 -0
  121. package/dropdown/types.d.ts +38 -31
  122. package/file-input/FileInput.d.ts +4 -0
  123. package/file-input/FileInput.js +274 -327
  124. package/file-input/FileInput.stories.tsx +618 -0
  125. package/file-input/FileInput.test.js +459 -0
  126. package/file-input/FileItem.d.ts +4 -0
  127. package/file-input/FileItem.js +54 -112
  128. package/file-input/types.d.ts +129 -0
  129. package/file-input/types.js +5 -0
  130. package/flex/Flex.d.ts +4 -0
  131. package/flex/Flex.js +57 -0
  132. package/flex/Flex.stories.tsx +112 -0
  133. package/flex/types.d.ts +97 -0
  134. package/flex/types.js +5 -0
  135. package/footer/Footer.d.ts +1 -1
  136. package/footer/Footer.js +73 -201
  137. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +57 -37
  138. package/footer/Footer.test.js +85 -0
  139. package/footer/Icons.d.ts +3 -0
  140. package/footer/Icons.js +67 -8
  141. package/footer/types.d.ts +41 -38
  142. package/grid/Grid.d.ts +7 -0
  143. package/grid/Grid.js +76 -0
  144. package/grid/Grid.stories.tsx +219 -0
  145. package/grid/types.d.ts +115 -0
  146. package/grid/types.js +5 -0
  147. package/header/Header.d.ts +4 -3
  148. package/header/Header.js +100 -204
  149. package/header/Header.stories.tsx +251 -0
  150. package/header/Header.test.js +66 -0
  151. package/header/Icons.d.ts +2 -0
  152. package/header/Icons.js +4 -9
  153. package/header/types.d.ts +6 -18
  154. package/heading/Heading.d.ts +4 -0
  155. package/heading/Heading.js +16 -55
  156. package/heading/Heading.stories.tsx +54 -0
  157. package/heading/Heading.test.js +169 -0
  158. package/heading/types.d.ts +33 -0
  159. package/heading/types.js +5 -0
  160. package/icon/Icon.d.ts +4 -0
  161. package/icon/Icon.js +33 -0
  162. package/icon/Icon.stories.tsx +28 -0
  163. package/icon/types.d.ts +4 -0
  164. package/icon/types.js +5 -0
  165. package/image/Image.d.ts +4 -0
  166. package/image/Image.js +70 -0
  167. package/image/Image.stories.tsx +129 -0
  168. package/image/types.d.ts +72 -0
  169. package/image/types.js +5 -0
  170. package/inset/Inset.d.ts +3 -0
  171. package/inset/Inset.js +43 -0
  172. package/inset/Inset.stories.tsx +230 -0
  173. package/inset/types.d.ts +37 -0
  174. package/inset/types.js +5 -0
  175. package/layout/ApplicationLayout.d.ts +20 -0
  176. package/layout/ApplicationLayout.js +83 -184
  177. package/layout/ApplicationLayout.stories.tsx +162 -0
  178. package/layout/Icons.d.ts +8 -0
  179. package/layout/Icons.js +51 -48
  180. package/layout/types.d.ts +41 -0
  181. package/layout/types.js +5 -0
  182. package/link/Link.d.ts +3 -2
  183. package/link/Link.js +65 -111
  184. package/link/Link.stories.tsx +199 -16
  185. package/link/Link.test.js +63 -0
  186. package/link/types.d.ts +15 -35
  187. package/main.d.ts +19 -14
  188. package/main.js +92 -98
  189. package/nav-tabs/NavTabs.d.ts +7 -0
  190. package/nav-tabs/NavTabs.js +93 -0
  191. package/nav-tabs/NavTabs.stories.tsx +276 -0
  192. package/nav-tabs/NavTabs.test.js +76 -0
  193. package/nav-tabs/NavTabsContext.d.ts +3 -0
  194. package/nav-tabs/NavTabsContext.js +8 -0
  195. package/nav-tabs/Tab.d.ts +4 -0
  196. package/nav-tabs/Tab.js +118 -0
  197. package/nav-tabs/types.d.ts +52 -0
  198. package/nav-tabs/types.js +5 -0
  199. package/number-input/NumberInput.js +48 -48
  200. package/number-input/NumberInput.stories.tsx +44 -28
  201. package/number-input/NumberInput.test.js +989 -0
  202. package/number-input/NumberInputContext.d.ts +3 -0
  203. package/number-input/NumberInputContext.js +3 -11
  204. package/number-input/types.d.ts +34 -15
  205. package/package.json +46 -45
  206. package/paginator/Icons.d.ts +5 -0
  207. package/paginator/Icons.js +21 -47
  208. package/paginator/Paginator.js +35 -98
  209. package/paginator/Paginator.stories.tsx +24 -0
  210. package/paginator/Paginator.test.js +335 -0
  211. package/paginator/types.d.ts +3 -3
  212. package/paragraph/Paragraph.d.ts +5 -0
  213. package/paragraph/Paragraph.js +22 -0
  214. package/paragraph/Paragraph.stories.tsx +27 -0
  215. package/password-input/Icons.d.ts +6 -0
  216. package/password-input/Icons.js +35 -0
  217. package/password-input/PasswordInput.js +60 -125
  218. package/password-input/PasswordInput.stories.tsx +3 -35
  219. package/password-input/PasswordInput.test.js +198 -0
  220. package/password-input/types.d.ts +35 -24
  221. package/progress-bar/ProgressBar.js +66 -92
  222. package/progress-bar/ProgressBar.stories.tsx +93 -0
  223. package/progress-bar/ProgressBar.test.js +93 -0
  224. package/progress-bar/types.d.ts +3 -3
  225. package/quick-nav/QuickNav.d.ts +4 -0
  226. package/quick-nav/QuickNav.js +94 -0
  227. package/quick-nav/QuickNav.stories.tsx +356 -0
  228. package/quick-nav/types.d.ts +21 -0
  229. package/quick-nav/types.js +5 -0
  230. package/radio-group/Radio.d.ts +4 -0
  231. package/radio-group/Radio.js +124 -0
  232. package/radio-group/RadioGroup.d.ts +4 -0
  233. package/radio-group/RadioGroup.js +235 -0
  234. package/radio-group/RadioGroup.stories.tsx +214 -0
  235. package/radio-group/RadioGroup.test.js +756 -0
  236. package/radio-group/types.d.ts +114 -0
  237. package/radio-group/types.js +5 -0
  238. package/resultset-table/Icons.d.ts +7 -0
  239. package/resultset-table/Icons.js +47 -0
  240. package/resultset-table/ResultsetTable.d.ts +7 -0
  241. package/resultset-table/ResultsetTable.js +170 -0
  242. package/resultset-table/ResultsetTable.stories.tsx +401 -0
  243. package/resultset-table/ResultsetTable.test.js +381 -0
  244. package/resultset-table/types.d.ts +100 -0
  245. package/resultset-table/types.js +5 -0
  246. package/select/Icons.d.ts +10 -0
  247. package/select/Icons.js +89 -0
  248. package/select/Listbox.d.ts +4 -0
  249. package/select/Listbox.js +143 -0
  250. package/select/Option.d.ts +4 -0
  251. package/select/Option.js +87 -0
  252. package/select/Select.d.ts +4 -0
  253. package/select/Select.js +240 -515
  254. package/select/Select.stories.tsx +971 -0
  255. package/select/Select.test.js +2370 -0
  256. package/select/types.d.ts +209 -0
  257. package/select/types.js +5 -0
  258. package/sidenav/Icons.d.ts +7 -0
  259. package/sidenav/Icons.js +47 -0
  260. package/sidenav/Sidenav.d.ts +6 -5
  261. package/sidenav/Sidenav.js +133 -72
  262. package/sidenav/Sidenav.stories.tsx +282 -0
  263. package/sidenav/Sidenav.test.js +37 -0
  264. package/sidenav/SidenavContext.d.ts +5 -0
  265. package/sidenav/SidenavContext.js +13 -0
  266. package/sidenav/types.d.ts +52 -26
  267. package/slider/Slider.d.ts +2 -2
  268. package/slider/Slider.js +151 -183
  269. package/slider/Slider.test.js +254 -0
  270. package/slider/types.d.ts +11 -3
  271. package/spinner/Spinner.js +32 -76
  272. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
  273. package/spinner/Spinner.test.js +55 -0
  274. package/spinner/types.d.ts +3 -3
  275. package/status-light/StatusLight.d.ts +4 -0
  276. package/status-light/StatusLight.js +51 -0
  277. package/status-light/StatusLight.stories.tsx +74 -0
  278. package/status-light/StatusLight.test.js +25 -0
  279. package/status-light/types.d.ts +17 -0
  280. package/status-light/types.js +5 -0
  281. package/switch/Switch.d.ts +2 -2
  282. package/switch/Switch.js +150 -115
  283. package/switch/Switch.stories.tsx +45 -68
  284. package/switch/Switch.test.js +180 -0
  285. package/switch/types.d.ts +13 -5
  286. package/table/DropdownTheme.js +62 -0
  287. package/table/Table.d.ts +6 -2
  288. package/table/Table.js +80 -37
  289. package/table/Table.stories.tsx +651 -0
  290. package/table/Table.test.js +113 -0
  291. package/table/types.d.ts +34 -6
  292. package/tabs/Tab.d.ts +4 -0
  293. package/tabs/Tab.js +116 -0
  294. package/tabs/Tabs.d.ts +1 -1
  295. package/tabs/Tabs.js +318 -145
  296. package/tabs/Tabs.stories.tsx +226 -0
  297. package/tabs/Tabs.test.js +294 -0
  298. package/tabs/types.d.ts +48 -27
  299. package/tag/Tag.d.ts +1 -1
  300. package/tag/Tag.js +44 -86
  301. package/tag/Tag.stories.tsx +38 -28
  302. package/tag/Tag.test.js +49 -0
  303. package/tag/types.d.ts +25 -16
  304. package/text-input/Icons.d.ts +8 -0
  305. package/text-input/Icons.js +56 -0
  306. package/text-input/Suggestion.d.ts +4 -0
  307. package/text-input/Suggestion.js +67 -0
  308. package/text-input/Suggestions.d.ts +4 -0
  309. package/text-input/Suggestions.js +84 -0
  310. package/text-input/TextInput.d.ts +4 -0
  311. package/text-input/TextInput.js +333 -593
  312. package/text-input/TextInput.stories.tsx +465 -0
  313. package/text-input/TextInput.test.js +1756 -0
  314. package/text-input/types.d.ts +205 -0
  315. package/text-input/types.js +5 -0
  316. package/textarea/Textarea.d.ts +4 -0
  317. package/textarea/Textarea.js +98 -181
  318. package/textarea/Textarea.stories.tsx +174 -0
  319. package/textarea/Textarea.test.js +406 -0
  320. package/textarea/types.d.ts +141 -0
  321. package/textarea/types.js +5 -0
  322. package/toggle-group/ToggleGroup.d.ts +4 -0
  323. package/toggle-group/ToggleGroup.js +100 -142
  324. package/toggle-group/ToggleGroup.stories.tsx +76 -36
  325. package/toggle-group/ToggleGroup.test.js +137 -0
  326. package/toggle-group/types.d.ts +114 -0
  327. package/toggle-group/types.js +5 -0
  328. package/typography/Typography.d.ts +4 -0
  329. package/typography/Typography.js +23 -0
  330. package/typography/Typography.stories.tsx +198 -0
  331. package/typography/types.d.ts +18 -0
  332. package/typography/types.js +5 -0
  333. package/useTheme.d.ts +1148 -0
  334. package/useTheme.js +4 -11
  335. package/useTranslatedLabels.d.ts +85 -0
  336. package/useTranslatedLabels.js +14 -0
  337. package/utils/BaseTypography.d.ts +21 -0
  338. package/utils/BaseTypography.js +94 -0
  339. package/utils/FocusLock.d.ts +13 -0
  340. package/utils/FocusLock.js +124 -0
  341. package/wizard/Wizard.d.ts +1 -1
  342. package/wizard/Wizard.js +123 -104
  343. package/wizard/Wizard.stories.tsx +253 -0
  344. package/wizard/Wizard.test.js +114 -0
  345. package/wizard/types.d.ts +15 -15
  346. package/ThemeContext.js +0 -246
  347. package/V3Select/V3Select.js +0 -455
  348. package/V3Select/index.d.ts +0 -27
  349. package/V3Textarea/V3Textarea.js +0 -260
  350. package/V3Textarea/index.d.ts +0 -27
  351. package/chip/index.d.ts +0 -22
  352. package/common/OpenSans.css +0 -81
  353. package/common/RequiredComponent.js +0 -32
  354. package/common/fonts/OpenSans-Bold.ttf +0 -0
  355. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  356. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  357. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  358. package/common/fonts/OpenSans-Italic.ttf +0 -0
  359. package/common/fonts/OpenSans-Light.ttf +0 -0
  360. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  361. package/common/fonts/OpenSans-Regular.ttf +0 -0
  362. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  363. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  364. package/date/Date.js +0 -373
  365. package/date/index.d.ts +0 -27
  366. package/file-input/index.d.ts +0 -81
  367. package/heading/index.d.ts +0 -17
  368. package/input-text/Icons.js +0 -22
  369. package/input-text/InputText.js +0 -611
  370. package/input-text/index.d.ts +0 -36
  371. package/progress-bar/ProgressBar.stories.jsx +0 -58
  372. package/radio/Radio.d.ts +0 -4
  373. package/radio/Radio.js +0 -174
  374. package/radio/Radio.stories.tsx +0 -192
  375. package/radio/types.d.ts +0 -54
  376. package/resultsetTable/ResultsetTable.js +0 -274
  377. package/resultsetTable/index.d.ts +0 -19
  378. package/select/index.d.ts +0 -131
  379. package/slider/Slider.stories.tsx +0 -172
  380. package/table/Table.stories.jsx +0 -276
  381. package/text-input/index.d.ts +0 -135
  382. package/textarea/Textarea.stories.jsx +0 -135
  383. package/textarea/index.d.ts +0 -117
  384. package/toggle/Toggle.js +0 -186
  385. package/toggle/index.d.ts +0 -21
  386. package/toggle-group/index.d.ts +0 -21
  387. package/upload/Upload.js +0 -201
  388. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  389. package/upload/buttons-upload/Icons.js +0 -40
  390. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  391. package/upload/dragAndDropArea/Icons.js +0 -39
  392. package/upload/file-upload/FileToUpload.js +0 -115
  393. package/upload/file-upload/Icons.js +0 -66
  394. package/upload/files-upload/FilesToUpload.js +0 -109
  395. package/upload/index.d.ts +0 -15
  396. package/upload/transaction/Icons.js +0 -160
  397. package/upload/transaction/Transaction.js +0 -104
  398. package/upload/transactions/Transactions.js +0 -94
  399. package/wizard/Icons.js +0 -65
  400. /package/{radio → action-icon}/types.js +0 -0
@@ -0,0 +1,307 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
7
+ var _Dialog = _interopRequireDefault(require("./Dialog.tsx"));
8
+ var _TextInput = _interopRequireDefault(require("../text-input/TextInput.tsx"));
9
+ var _Textarea = _interopRequireDefault(require("../textarea/Textarea.tsx"));
10
+ var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox.tsx"));
11
+ var _Select = _interopRequireDefault(require("../select/Select.tsx"));
12
+ var _Button = _interopRequireDefault(require("../button/Button.tsx"));
13
+ var _Link = _interopRequireDefault(require("../link/Link.tsx"));
14
+ var _Card = _interopRequireDefault(require("../card/Card.tsx"));
15
+ var _RadioGroup = _interopRequireDefault(require("../radio-group/RadioGroup.tsx"));
16
+ var _Slider = _interopRequireDefault(require("../slider/Slider.tsx"));
17
+ var _Switch = _interopRequireDefault(require("../switch/Switch.tsx"));
18
+ var options = [{
19
+ label: "Female",
20
+ value: "female"
21
+ }, {
22
+ label: "Male",
23
+ value: "male"
24
+ }, {
25
+ label: "Non-binary",
26
+ value: "non-binary"
27
+ }, {
28
+ label: "Other",
29
+ value: "other"
30
+ }];
31
+ describe("Dialog component tests", function () {
32
+ test("Dialog renders with correct text and accesibility attributes", function () {
33
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "dialog-text")),
34
+ getByText = _render.getByText,
35
+ getByRole = _render.getByRole;
36
+ expect(getByRole("dialog")).toBeTruthy();
37
+ expect(getByRole("dialog").getAttribute("aria-modal")).toBe("true");
38
+ expect(getByText("dialog-text")).toBeTruthy();
39
+ });
40
+ test("Dialog renders without close button", function () {
41
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
42
+ isCloseVisible: false
43
+ }, "dialog-text")),
44
+ queryByRole = _render2.queryByRole;
45
+ expect(queryByRole("button")).toBeFalsy();
46
+ });
47
+ test("Dialog renders with aria-modal false when overlay is not used", function () {
48
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
49
+ isCloseVisible: false,
50
+ overlay: false
51
+ }, "dialog-text")),
52
+ getByRole = _render3.getByRole;
53
+ expect(getByRole("dialog")).toBeTruthy();
54
+ expect(getByRole("dialog").getAttribute("aria-modal")).toBe("false");
55
+ });
56
+ test("Calls correct function onCloseClick", function () {
57
+ var onCloseClick = jest.fn();
58
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
59
+ onCloseClick: onCloseClick
60
+ }, "dialog-text")),
61
+ getByRole = _render4.getByRole;
62
+ var closeButton = getByRole("button");
63
+ _react2.fireEvent.click(closeButton);
64
+ expect(onCloseClick).toHaveBeenCalled();
65
+ });
66
+ test("Calls correct function onCloseClick when 'Escape' key is pressed", function () {
67
+ var onCloseClick = jest.fn();
68
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
69
+ onCloseClick: onCloseClick
70
+ }, "dialog-text")),
71
+ getByRole = _render5.getByRole;
72
+ _react2.fireEvent.keyDown(getByRole("dialog"), {
73
+ key: "Escape",
74
+ code: "Escape",
75
+ keyCode: 27,
76
+ charCode: 27
77
+ });
78
+ expect(onCloseClick).toHaveBeenCalled();
79
+ });
80
+ });
81
+ describe("Dialog component: Focus lock tests", function () {
82
+ test("Close action: when there's no focusable content, the focus never leaves the close action (unless you click outside)", function () {
83
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "example-dialog")),
84
+ getByRole = _render6.getByRole;
85
+ var button = getByRole("button");
86
+ var dialog = getByRole("dialog");
87
+ expect(document.activeElement).toEqual(button);
88
+ expect(button.getAttribute("aria-label")).toBe("Close dialog");
89
+ _userEvent["default"].tab();
90
+ expect(document.activeElement).toEqual(button);
91
+ _react2.fireEvent.keyDown(dialog, {
92
+ key: "Tab",
93
+ shiftKey: true
94
+ });
95
+ expect(document.activeElement).toEqual(button);
96
+ });
97
+ test("Autofocus with Button component", function () {
98
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
99
+ label: "Accept"
100
+ }))),
101
+ getAllByRole = _render7.getAllByRole;
102
+ var button = getAllByRole("button")[0];
103
+ expect(document.activeElement).toEqual(button);
104
+ expect(button.getAttribute("aria-label")).not.toBe("Close dialog");
105
+ });
106
+ test("Autofocus with Card component", function () {
107
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Card["default"], {
108
+ linkHref: "https://developer.dxc.com/halstack/next/components/card/"
109
+ }, "example-card"))),
110
+ getByRole = _render8.getByRole;
111
+ var card = getByRole("link");
112
+ expect(document.activeElement).toEqual(card);
113
+ });
114
+ test("Autofocus with Checkbox component", function () {
115
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
116
+ label: "Name"
117
+ }))),
118
+ getByRole = _render9.getByRole;
119
+ var checkbox = getByRole("checkbox");
120
+ expect(document.activeElement).toEqual(checkbox);
121
+ });
122
+ test("Autofocus with Link component", function () {
123
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "This is a text with a ", /*#__PURE__*/_react["default"].createElement(_Link["default"], {
124
+ href: "#"
125
+ }, "Link"), " to another page.")),
126
+ getByRole = _render10.getByRole;
127
+ var link = getByRole("link");
128
+ expect(document.activeElement).toEqual(link);
129
+ });
130
+ test("Autofocus with RadioGroup component", function () {
131
+ var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
132
+ label: "Example",
133
+ options: options
134
+ }))),
135
+ getAllByRole = _render11.getAllByRole;
136
+ var checkedRadio = getAllByRole("radio")[0];
137
+ expect(document.activeElement).toEqual(checkedRadio);
138
+ });
139
+ test("Autofocus with Select component", function () {
140
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
141
+ label: "Country",
142
+ options: options
143
+ }))),
144
+ getByRole = _render12.getByRole;
145
+ var select = getByRole("combobox");
146
+ expect(document.activeElement).toEqual(select);
147
+ });
148
+ test("Autofocus with Slider component", function () {
149
+ var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
150
+ label: "label",
151
+ minValue: 0,
152
+ maxValue: 100,
153
+ showLimitsValues: true
154
+ }))),
155
+ getByRole = _render13.getByRole;
156
+ var slider = getByRole("slider");
157
+ expect(document.activeElement).toEqual(slider);
158
+ });
159
+ test("Autofocus with Switch component", function () {
160
+ var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
161
+ label: "Example"
162
+ }))),
163
+ getByRole = _render14.getByRole;
164
+ var switchButton = getByRole("switch");
165
+ expect(document.activeElement).toEqual(switchButton);
166
+ });
167
+ test("Autofocus with Text Input component", function () {
168
+ var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
169
+ label: "Name"
170
+ }))),
171
+ getByRole = _render15.getByRole;
172
+ var input = getByRole("textbox");
173
+ expect(document.activeElement).toEqual(input);
174
+ });
175
+ test("Autofocus with Textarea component", function () {
176
+ var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
177
+ label: "Name"
178
+ }))),
179
+ getByRole = _render16.getByRole;
180
+ var textarea = getByRole("textbox");
181
+ expect(document.activeElement).toEqual(textarea);
182
+ });
183
+ test("Negative tabindex elements are not automatically focused, even if it is enabled and a valid focusable item (programatically and by click)", function () {
184
+ var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement("input", {
185
+ label: "Name",
186
+ tabIndex: -1
187
+ }), /*#__PURE__*/_react["default"].createElement("input", {
188
+ label: "Name"
189
+ }))),
190
+ getAllByRole = _render17.getAllByRole,
191
+ getByRole = _render17.getByRole;
192
+ var inputs = getAllByRole("textbox");
193
+ var button = getByRole("button");
194
+ expect(document.activeElement).toEqual(inputs[1]);
195
+ _userEvent["default"].tab();
196
+ expect(document.activeElement).toEqual(button);
197
+ _userEvent["default"].tab();
198
+ expect(document.activeElement).toEqual(inputs[1]);
199
+ });
200
+ test("Focus jumps disabled components and negative tabIndexes when autofocusing first item", function () {
201
+ var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
202
+ label: "Accept",
203
+ disabled: true
204
+ }), /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
205
+ label: "Older age",
206
+ disabled: true
207
+ }), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
208
+ label: "Country",
209
+ options: options,
210
+ disabled: true
211
+ }), /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
212
+ label: "Country",
213
+ options: options,
214
+ disabled: true
215
+ }), /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
216
+ label: "Name",
217
+ disabled: true
218
+ }), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
219
+ label: "Accept",
220
+ tabIndex: -1
221
+ }), /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
222
+ label: "Older age",
223
+ tabIndex: -1
224
+ }), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
225
+ label: "Country",
226
+ options: options,
227
+ tabIndex: -1
228
+ }), /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
229
+ label: "Country",
230
+ options: options,
231
+ tabIndex: -1
232
+ }), /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
233
+ label: "Name",
234
+ tabIndex: -1
235
+ }), /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
236
+ label: "Description"
237
+ }))),
238
+ getAllByRole = _render18.getAllByRole;
239
+ var textarea = getAllByRole("textbox")[2];
240
+ expect(document.activeElement).toEqual(textarea);
241
+ });
242
+ test("Focus jumps from last element to the first", function () {
243
+ var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
244
+ label: "Accept",
245
+ disabled: true
246
+ }), /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
247
+ label: "Name"
248
+ }), /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
249
+ label: "Name",
250
+ options: options
251
+ }))),
252
+ getByRole = _render19.getByRole;
253
+ var closeAction = getByRole("button");
254
+ var textarea = getByRole("textbox");
255
+ expect(document.activeElement).toEqual(textarea);
256
+ _userEvent["default"].tab();
257
+ _userEvent["default"].tab();
258
+ expect(document.activeElement).toEqual(closeAction);
259
+ _userEvent["default"].tab();
260
+ expect(document.activeElement).toEqual(textarea);
261
+ });
262
+ test("'display: none;', 'visibility: hidden;' and 'type = 'hidden'' elements are never autofocused", function () {
263
+ var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement("input", {
264
+ label: "Name",
265
+ style: {
266
+ display: "none"
267
+ }
268
+ }), /*#__PURE__*/_react["default"].createElement("input", {
269
+ label: "Name",
270
+ style: {
271
+ visibility: "hidden"
272
+ }
273
+ }), /*#__PURE__*/_react["default"].createElement("input", {
274
+ type: "hidden",
275
+ name: "example"
276
+ }))),
277
+ getByRole = _render20.getByRole;
278
+ var closeAction = getByRole("button");
279
+ expect(document.activeElement).toEqual(closeAction);
280
+ _userEvent["default"].tab();
281
+ expect(document.activeElement).toEqual(closeAction);
282
+ });
283
+ test("Focus gets trapped in the Dialog when there are not focusable elements inside until it is closed", function () {
284
+ var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
285
+ label: "Name"
286
+ }), /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
287
+ isCloseVisible: false
288
+ }, /*#__PURE__*/_react["default"].createElement("h2", null, "Policy agreement"), /*#__PURE__*/_react["default"].createElement("p", null, "Sample text.")), /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
289
+ label: "Surname"
290
+ }))),
291
+ getAllByRole = _render21.getAllByRole;
292
+ var inputs = getAllByRole("textbox");
293
+ var dialog = getAllByRole("dialog")[0];
294
+ _userEvent["default"].tab();
295
+ _userEvent["default"].tab();
296
+ expect(document.activeElement).not.toEqual(inputs[1]);
297
+ _react2.fireEvent.keyDown(dialog, {
298
+ key: "Tab",
299
+ shiftKey: true
300
+ });
301
+ _react2.fireEvent.keyDown(dialog, {
302
+ key: "Tab",
303
+ shiftKey: true
304
+ });
305
+ expect(document.activeElement).not.toEqual(inputs[0]);
306
+ });
307
+ });
package/dialog/types.d.ts CHANGED
@@ -1,43 +1,36 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Padding = {
4
- top?: Space;
5
- bottom?: Space;
6
- left?: Space;
7
- right?: Space;
8
- };
9
- declare type Props = {
2
+ type Props = {
10
3
  /**
11
- * If true, the close 'x' button will be visible.
4
+ * If true, the close button will be visible.
12
5
  */
13
6
  isCloseVisible?: boolean;
14
7
  /**
15
- * This function will be called when the user clicks the close 'x' button.
16
- * The responsibility of hiding the modal lies with the user.
8
+ * This function will be called when the user clicks the close button.
9
+ * The responsibility of hiding the dialog lies with the user.
17
10
  */
18
11
  onCloseClick?: () => void;
19
12
  /**
20
- * If true, the dialog will be displayed over a darker background that covers the content behind.
21
- */
22
- overlay?: boolean;
23
- /**
24
- * This function will be called when the user clicks background of the modal.
25
- * The responsibility of hiding the modal lies with the user.
13
+ * This function will be called when the user clicks on the background of the modal.
14
+ * The responsibility of hiding the dialog lies with the user.
26
15
  */
27
16
  onBackgroundClick?: () => void;
28
17
  /**
29
- * Size of the padding to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
30
- * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different padding sizes.
18
+ * If true, the dialog will be displayed over a darker background that covers the content behind.
31
19
  */
32
- padding?: Padding | Space;
20
+ overlay?: boolean;
33
21
  /**
34
- * Value of the tabindex given to the close 'x' button.
22
+ * Area within the dialog that can be used to render custom content.
23
+ * We strongly encourage users to not change the
24
+ * tabindex of the inner components or elements. This
25
+ * can lead to unpredictable behaviour for keyboard users, affecting
26
+ * the order of focus and focus locking within the dialog.
35
27
  */
36
- tabIndex?: number;
28
+ children: React.ReactNode;
37
29
  /**
38
- * The area inside the dialog. This area can be used to render
39
- * custom content.
30
+ * Value of the tabindex applied to the close button.
31
+ * Note that values greater than 0 are strongly discouraged. It can
32
+ * lead to unexpected behaviours with the focus within the dialog.
40
33
  */
41
- children: React.ReactNode;
34
+ tabIndex?: number;
42
35
  };
43
36
  export default Props;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import DividerPropsType from "./types";
3
+ declare const DxcDivider: ({ orientation, weight, color, decorative }: DividerPropsType) => JSX.Element;
4
+ export default DxcDivider;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+ var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
12
+ var _templateObject;
13
+ var DxcDivider = function DxcDivider(_ref) {
14
+ var _ref$orientation = _ref.orientation,
15
+ orientation = _ref$orientation === void 0 ? "horizontal" : _ref$orientation,
16
+ _ref$weight = _ref.weight,
17
+ weight = _ref$weight === void 0 ? "regular" : _ref$weight,
18
+ _ref$color = _ref.color,
19
+ color = _ref$color === void 0 ? "mediumGrey" : _ref$color,
20
+ _ref$decorative = _ref.decorative,
21
+ decorative = _ref$decorative === void 0 ? true : _ref$decorative;
22
+ return /*#__PURE__*/_react["default"].createElement(StyledDivider, {
23
+ orientation: orientation,
24
+ weight: weight,
25
+ color: color,
26
+ "aria-orientation": orientation,
27
+ "aria-hidden": decorative
28
+ });
29
+ };
30
+ var StyledDivider = _styledComponents["default"].hr(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n"])), function (_ref2) {
31
+ var orientation = _ref2.orientation,
32
+ weight = _ref2.weight,
33
+ color = _ref2.color;
34
+ return "\n border-color: ".concat(color === "lightGrey" ? _coreTokens["default"].color_grey_200 : color === "mediumGrey" ? _coreTokens["default"].color_grey_400 : _coreTokens["default"].color_grey_700, ";\n ").concat(orientation === "horizontal" ? "width" : "min-height", ": 100%;\n ").concat(orientation === "horizontal" ? "height" : "width", ": 0px;\n ").concat(orientation === "horizontal" ? "border-width: " + (weight === "regular" ? "1px 0 0 0" : "2px 0 0 0") : "border-width: " + (weight === "regular" ? "0 0 0 1px" : "0 0 0 2px"), ";\n margin: 0px;\n ");
35
+ });
36
+ var _default = exports["default"] = DxcDivider;
@@ -0,0 +1,223 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import DxcDivider from "./Divider";
4
+ import { DxcFlex, DxcParagraph } from "../main";
5
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+
7
+ export default {
8
+ title: "Divider",
9
+ component: DxcDivider,
10
+ };
11
+
12
+ export const Chromatic = () => (
13
+ <>
14
+ <Title title="Default" level={4} />
15
+ <ExampleContainer>
16
+ <DxcFlex gap="1rem" direction="column">
17
+ <DxcParagraph>
18
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
19
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
20
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
21
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
22
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
23
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
24
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
25
+ Commodo sagittis volutpat id lorem.
26
+ </DxcParagraph>
27
+ <DxcDivider />
28
+ <DxcParagraph>
29
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
30
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
31
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
32
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
33
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
34
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
35
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
36
+ Commodo sagittis volutpat id lorem.
37
+ </DxcParagraph>
38
+ </DxcFlex>
39
+ </ExampleContainer>
40
+ <Title title="Default strong" level={4} />
41
+ <ExampleContainer>
42
+ <DxcFlex gap="1rem" direction="column">
43
+ <DxcParagraph>
44
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
45
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
46
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
47
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
48
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
49
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
50
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
51
+ Commodo sagittis volutpat id lorem.
52
+ </DxcParagraph>
53
+ <DxcDivider weight="strong" />
54
+ <DxcParagraph>
55
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
56
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
57
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
58
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
59
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
60
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
61
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
62
+ Commodo sagittis volutpat id lorem.
63
+ </DxcParagraph>
64
+ </DxcFlex>
65
+ </ExampleContainer>
66
+ <Title title="Default light grey" level={4} />
67
+ <ExampleContainer>
68
+ <DxcFlex gap="1rem" direction="column">
69
+ <DxcParagraph>
70
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
71
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
72
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
73
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
74
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
75
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
76
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
77
+ Commodo sagittis volutpat id lorem.
78
+ </DxcParagraph>
79
+ <DxcDivider color="lightGrey" />
80
+ <DxcParagraph>
81
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
82
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
83
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
84
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
85
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
86
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
87
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
88
+ Commodo sagittis volutpat id lorem.
89
+ </DxcParagraph>
90
+ </DxcFlex>
91
+ </ExampleContainer>
92
+ <Title title="Default dark grey" level={4} />
93
+ <ExampleContainer>
94
+ <DxcFlex gap="1rem" direction="column">
95
+ <DxcParagraph>
96
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
97
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
98
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
99
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
100
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
101
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
102
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
103
+ Commodo sagittis volutpat id lorem.
104
+ </DxcParagraph>
105
+ <DxcDivider color="darkGrey" />
106
+ <DxcParagraph>
107
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
108
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
109
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
110
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
111
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
112
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
113
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
114
+ Commodo sagittis volutpat id lorem.
115
+ </DxcParagraph>
116
+ </DxcFlex>
117
+ </ExampleContainer>
118
+ <Title title="Vertical" level={4} />
119
+ <ExampleContainer>
120
+ <DxcFlex gap="1rem" direction="row">
121
+ <DxcParagraph>
122
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
123
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
124
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
125
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
126
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
127
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
128
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
129
+ Commodo sagittis volutpat id lorem.
130
+ </DxcParagraph>
131
+ <DxcDivider orientation="vertical" />
132
+ <DxcParagraph>
133
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
134
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
135
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
136
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
137
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
138
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
139
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
140
+ Commodo sagittis volutpat id lorem.
141
+ </DxcParagraph>
142
+ </DxcFlex>
143
+ </ExampleContainer>
144
+ <Title title="Vertical strong" level={4} />
145
+ <ExampleContainer>
146
+ <DxcFlex gap="1rem" direction="row">
147
+ <DxcParagraph>
148
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
149
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
150
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
151
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
152
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
153
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
154
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
155
+ Commodo sagittis volutpat id lorem.
156
+ </DxcParagraph>
157
+ <DxcDivider orientation="vertical" weight="strong" />
158
+ <DxcParagraph>
159
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
160
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
161
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
162
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
163
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
164
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
165
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
166
+ Commodo sagittis volutpat id lorem.
167
+ </DxcParagraph>
168
+ </DxcFlex>
169
+ </ExampleContainer>
170
+ <Title title="Vertical light grey" level={4} />
171
+ <ExampleContainer>
172
+ <DxcFlex gap="1rem" direction="row">
173
+ <DxcParagraph>
174
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
175
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
176
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
177
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
178
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
179
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
180
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
181
+ Commodo sagittis volutpat id lorem.
182
+ </DxcParagraph>
183
+ <DxcDivider orientation="vertical" color="lightGrey" />
184
+ <DxcParagraph>
185
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
186
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
187
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
188
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
189
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
190
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
191
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
192
+ Commodo sagittis volutpat id lorem.
193
+ </DxcParagraph>
194
+ </DxcFlex>
195
+ </ExampleContainer>
196
+ <Title title="Vertical dark grey" level={4} />
197
+ <ExampleContainer>
198
+ <DxcFlex gap="1rem" direction="row">
199
+ <DxcParagraph>
200
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
201
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
202
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
203
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
204
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
205
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
206
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
207
+ Commodo sagittis volutpat id lorem.
208
+ </DxcParagraph>
209
+ <DxcDivider orientation="vertical" color="darkGrey" />
210
+ <DxcParagraph>
211
+ Lorem ipsum dolor sit amet consectetur. Tincidunt sed pharetra mollis duis volutpat urna. Hendrerit aliquet et
212
+ arcu purus. Sodales elementum sollicitudin consequat elementum tortor. Lectus eget cursus ut ac pharetra
213
+ lobortis integer eu. Potenti amet ac id risus ac nunc orci nibh. Tempus vitae vitae aenean arcu. Nibh
214
+ tristique porta dui enim eget tristique rutrum. Quisque faucibus suscipit nibh est sed. Netus venenatis congue
215
+ diam in dui morbi dignissim lorem. Urna aliquet sem in tincidunt. Nunc arcu nec fringilla enim purus ut justo
216
+ nisi. Vel mus ut ornare faucibus blandit diam sit vestibulum massa. Semper nullam sit sagittis hendrerit
217
+ augue. In fermentum metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae.
218
+ Commodo sagittis volutpat id lorem.
219
+ </DxcParagraph>
220
+ </DxcFlex>
221
+ </ExampleContainer>
222
+ </>
223
+ );