@dxc-technology/halstack-react 0.0.0-081eeee → 0.0.0-0af2013

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 (448) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +47 -0
  3. package/HalstackContext.d.ts +10 -0
  4. package/HalstackContext.js +243 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +226 -0
  7. package/accordion/Accordion.stories.tsx +307 -0
  8. package/accordion/Accordion.test.js +72 -0
  9. package/accordion/types.d.ts +68 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +7 -0
  12. package/accordion-group/AccordionGroup.js +168 -0
  13. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  14. package/accordion-group/AccordionGroup.test.js +151 -0
  15. package/accordion-group/types.d.ts +72 -0
  16. package/accordion-group/types.js +5 -0
  17. package/alert/Alert.d.ts +4 -0
  18. package/{dist/alert → alert}/Alert.js +40 -153
  19. package/alert/Alert.stories.tsx +170 -0
  20. package/alert/Alert.test.js +92 -0
  21. package/alert/types.d.ts +49 -0
  22. package/alert/types.js +5 -0
  23. package/badge/Badge.d.ts +4 -0
  24. package/badge/Badge.js +59 -0
  25. package/badge/types.d.ts +4 -0
  26. package/badge/types.js +5 -0
  27. package/bleed/Bleed.d.ts +3 -0
  28. package/bleed/Bleed.js +84 -0
  29. package/bleed/Bleed.stories.tsx +342 -0
  30. package/bleed/types.d.ts +37 -0
  31. package/bleed/types.js +5 -0
  32. package/box/Box.d.ts +4 -0
  33. package/{dist/box → box}/Box.js +15 -45
  34. package/box/Box.stories.tsx +132 -0
  35. package/box/Box.test.js +18 -0
  36. package/box/types.d.ts +43 -0
  37. package/box/types.js +5 -0
  38. package/button/Button.d.ts +4 -0
  39. package/{dist/button → button}/Button.js +34 -98
  40. package/button/Button.stories.tsx +274 -0
  41. package/button/Button.test.js +35 -0
  42. package/button/types.d.ts +53 -0
  43. package/button/types.js +5 -0
  44. package/card/Card.d.ts +4 -0
  45. package/card/Card.js +163 -0
  46. package/card/Card.stories.tsx +201 -0
  47. package/card/Card.test.js +50 -0
  48. package/card/ice-cream.jpg +0 -0
  49. package/card/types.d.ts +67 -0
  50. package/card/types.js +5 -0
  51. package/checkbox/Checkbox.d.ts +4 -0
  52. package/{dist/checkbox → checkbox}/Checkbox.js +53 -99
  53. package/checkbox/Checkbox.stories.tsx +188 -0
  54. package/checkbox/Checkbox.test.js +78 -0
  55. package/checkbox/types.d.ts +64 -0
  56. package/checkbox/types.js +5 -0
  57. package/chip/Chip.d.ts +4 -0
  58. package/chip/Chip.js +161 -0
  59. package/chip/Chip.stories.tsx +119 -0
  60. package/chip/Chip.test.js +56 -0
  61. package/chip/types.d.ts +45 -0
  62. package/chip/types.js +5 -0
  63. package/{dist/common → common}/OpenSans.css +0 -0
  64. package/{dist/common → common}/RequiredComponent.js +3 -11
  65. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  66. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  67. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  68. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  69. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  70. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  71. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  72. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  73. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  74. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  75. package/{dist/common → common}/utils.js +0 -0
  76. package/{dist/common → common}/variables.js +153 -350
  77. package/date-input/DateInput.d.ts +4 -0
  78. package/date-input/DateInput.js +369 -0
  79. package/date-input/DateInput.stories.tsx +138 -0
  80. package/date-input/DateInput.test.js +479 -0
  81. package/date-input/types.d.ts +107 -0
  82. package/date-input/types.js +5 -0
  83. package/dialog/Dialog.d.ts +4 -0
  84. package/dialog/Dialog.js +138 -0
  85. package/dialog/Dialog.stories.tsx +212 -0
  86. package/dialog/Dialog.test.js +40 -0
  87. package/dialog/types.d.ts +43 -0
  88. package/dialog/types.js +5 -0
  89. package/dropdown/Dropdown.d.ts +4 -0
  90. package/{dist/dropdown → dropdown}/Dropdown.js +54 -207
  91. package/dropdown/Dropdown.stories.tsx +249 -0
  92. package/dropdown/Dropdown.test.js +189 -0
  93. package/dropdown/types.d.ts +80 -0
  94. package/dropdown/types.js +5 -0
  95. package/file-input/FileInput.d.ts +4 -0
  96. package/file-input/FileInput.js +590 -0
  97. package/file-input/FileInput.stories.tsx +507 -0
  98. package/file-input/FileInput.test.js +457 -0
  99. package/file-input/FileItem.d.ts +14 -0
  100. package/file-input/FileItem.js +184 -0
  101. package/file-input/types.d.ts +112 -0
  102. package/file-input/types.js +5 -0
  103. package/footer/Footer.d.ts +4 -0
  104. package/footer/Footer.js +183 -0
  105. package/footer/Footer.stories.tsx +130 -0
  106. package/footer/Footer.test.js +109 -0
  107. package/footer/Icons.d.ts +2 -0
  108. package/footer/Icons.js +77 -0
  109. package/footer/types.d.ts +65 -0
  110. package/footer/types.js +5 -0
  111. package/header/Header.d.ts +7 -0
  112. package/header/Header.js +300 -0
  113. package/header/Header.stories.tsx +172 -0
  114. package/header/Header.test.js +79 -0
  115. package/header/Icons.d.ts +2 -0
  116. package/header/Icons.js +34 -0
  117. package/header/types.d.ts +47 -0
  118. package/header/types.js +5 -0
  119. package/heading/Heading.d.ts +4 -0
  120. package/{dist/heading → heading}/Heading.js +31 -90
  121. package/heading/Heading.stories.tsx +54 -0
  122. package/heading/Heading.test.js +186 -0
  123. package/heading/types.d.ts +33 -0
  124. package/heading/types.js +5 -0
  125. package/inset/Inset.d.ts +3 -0
  126. package/inset/Inset.js +84 -0
  127. package/inset/Inset.stories.tsx +229 -0
  128. package/inset/types.d.ts +37 -0
  129. package/inset/types.js +5 -0
  130. package/layout/ApplicationLayout.d.ts +10 -0
  131. package/layout/ApplicationLayout.js +218 -0
  132. package/layout/ApplicationLayout.stories.tsx +171 -0
  133. package/layout/Icons.js +55 -0
  134. package/layout/types.d.ts +57 -0
  135. package/layout/types.js +5 -0
  136. package/link/Link.d.ts +4 -0
  137. package/link/Link.js +162 -0
  138. package/link/Link.stories.tsx +186 -0
  139. package/link/Link.test.js +83 -0
  140. package/link/types.d.ts +55 -0
  141. package/link/types.js +5 -0
  142. package/list/List.d.ts +4 -0
  143. package/list/List.js +47 -0
  144. package/list/List.stories.tsx +95 -0
  145. package/list/types.d.ts +7 -0
  146. package/list/types.js +5 -0
  147. package/main.d.ts +47 -0
  148. package/{dist/main.js → main.js} +123 -103
  149. package/number-input/NumberInput.d.ts +4 -0
  150. package/number-input/NumberInput.js +76 -0
  151. package/number-input/NumberInput.stories.tsx +115 -0
  152. package/number-input/NumberInput.test.js +506 -0
  153. package/number-input/NumberInputContext.d.ts +4 -0
  154. package/{dist/number-input → number-input}/NumberInputContext.js +5 -2
  155. package/number-input/numberInputContextTypes.d.ts +19 -0
  156. package/number-input/numberInputContextTypes.js +5 -0
  157. package/number-input/types.d.ts +124 -0
  158. package/number-input/types.js +5 -0
  159. package/package.json +38 -28
  160. package/paginator/Icons.js +66 -0
  161. package/paginator/Paginator.d.ts +4 -0
  162. package/paginator/Paginator.js +192 -0
  163. package/paginator/Paginator.stories.tsx +63 -0
  164. package/paginator/Paginator.test.js +266 -0
  165. package/paginator/types.d.ts +38 -0
  166. package/paginator/types.js +5 -0
  167. package/password-input/PasswordInput.d.ts +4 -0
  168. package/{dist/password-input → password-input}/PasswordInput.js +43 -78
  169. package/password-input/PasswordInput.stories.tsx +131 -0
  170. package/password-input/PasswordInput.test.js +181 -0
  171. package/password-input/types.d.ts +110 -0
  172. package/password-input/types.js +5 -0
  173. package/progress-bar/ProgressBar.d.ts +4 -0
  174. package/{dist/progress-bar → progress-bar}/ProgressBar.js +22 -94
  175. package/progress-bar/ProgressBar.stories.jsx +58 -0
  176. package/progress-bar/ProgressBar.test.js +65 -0
  177. package/progress-bar/types.d.ts +37 -0
  178. package/progress-bar/types.js +5 -0
  179. package/quick-nav/QuickNav.d.ts +4 -0
  180. package/quick-nav/QuickNav.js +64 -0
  181. package/quick-nav/QuickNav.stories.tsx +237 -0
  182. package/quick-nav/types.d.ts +21 -0
  183. package/quick-nav/types.js +5 -0
  184. package/radio/Radio.d.ts +4 -0
  185. package/{dist/radio → radio}/Radio.js +23 -59
  186. package/radio/Radio.stories.tsx +192 -0
  187. package/radio/Radio.test.js +71 -0
  188. package/radio/types.d.ts +54 -0
  189. package/radio/types.js +5 -0
  190. package/radio-group/Radio.d.ts +4 -0
  191. package/radio-group/Radio.js +141 -0
  192. package/radio-group/RadioGroup.d.ts +4 -0
  193. package/radio-group/RadioGroup.js +280 -0
  194. package/radio-group/RadioGroup.stories.tsx +100 -0
  195. package/radio-group/RadioGroup.test.js +695 -0
  196. package/radio-group/types.d.ts +114 -0
  197. package/radio-group/types.js +5 -0
  198. package/resultsetTable/ResultsetTable.d.ts +4 -0
  199. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +43 -147
  200. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  201. package/resultsetTable/ResultsetTable.test.js +306 -0
  202. package/resultsetTable/types.d.ts +67 -0
  203. package/resultsetTable/types.js +5 -0
  204. package/row/Row.d.ts +3 -0
  205. package/row/Row.js +127 -0
  206. package/row/Row.stories.tsx +237 -0
  207. package/row/types.d.ts +28 -0
  208. package/row/types.js +5 -0
  209. package/select/Icons.d.ts +10 -0
  210. package/select/Icons.js +93 -0
  211. package/select/Listbox.d.ts +4 -0
  212. package/select/Listbox.js +148 -0
  213. package/select/Option.d.ts +4 -0
  214. package/select/Option.js +110 -0
  215. package/select/Select.d.ts +4 -0
  216. package/select/Select.js +655 -0
  217. package/select/Select.stories.tsx +582 -0
  218. package/select/Select.test.js +2057 -0
  219. package/select/types.d.ts +213 -0
  220. package/select/types.js +5 -0
  221. package/sidenav/Sidenav.d.ts +9 -0
  222. package/{dist/sidenav → sidenav}/Sidenav.js +21 -64
  223. package/sidenav/Sidenav.stories.tsx +182 -0
  224. package/sidenav/Sidenav.test.js +56 -0
  225. package/sidenav/types.d.ts +50 -0
  226. package/sidenav/types.js +5 -0
  227. package/slider/Slider.d.ts +4 -0
  228. package/{dist/slider → slider}/Slider.js +80 -156
  229. package/slider/Slider.stories.tsx +177 -0
  230. package/slider/Slider.test.js +150 -0
  231. package/slider/types.d.ts +82 -0
  232. package/slider/types.js +5 -0
  233. package/spinner/Spinner.d.ts +4 -0
  234. package/spinner/Spinner.js +250 -0
  235. package/spinner/Spinner.stories.jsx +103 -0
  236. package/spinner/Spinner.test.js +64 -0
  237. package/spinner/types.d.ts +32 -0
  238. package/spinner/types.js +5 -0
  239. package/stack/Stack.d.ts +3 -0
  240. package/stack/Stack.js +97 -0
  241. package/stack/Stack.stories.tsx +164 -0
  242. package/stack/types.d.ts +24 -0
  243. package/stack/types.js +5 -0
  244. package/switch/Switch.d.ts +4 -0
  245. package/switch/Switch.js +192 -0
  246. package/switch/Switch.stories.tsx +160 -0
  247. package/switch/Switch.test.js +98 -0
  248. package/switch/types.d.ts +62 -0
  249. package/switch/types.js +5 -0
  250. package/table/Table.d.ts +4 -0
  251. package/{dist/table → table}/Table.js +12 -26
  252. package/table/Table.stories.jsx +277 -0
  253. package/table/Table.test.js +26 -0
  254. package/table/types.d.ts +21 -0
  255. package/table/types.js +5 -0
  256. package/tabs/Tabs.d.ts +4 -0
  257. package/tabs/Tabs.js +211 -0
  258. package/tabs/Tabs.stories.tsx +112 -0
  259. package/tabs/Tabs.test.js +140 -0
  260. package/tabs/types.d.ts +82 -0
  261. package/tabs/types.js +5 -0
  262. package/tag/Tag.d.ts +4 -0
  263. package/tag/Tag.js +183 -0
  264. package/tag/Tag.stories.tsx +142 -0
  265. package/tag/Tag.test.js +60 -0
  266. package/tag/types.d.ts +69 -0
  267. package/tag/types.js +5 -0
  268. package/text/Text.d.ts +7 -0
  269. package/text/Text.js +30 -0
  270. package/text/Text.stories.tsx +19 -0
  271. package/text-input/TextInput.d.ts +4 -0
  272. package/{dist/text-input → text-input}/TextInput.js +288 -463
  273. package/text-input/TextInput.stories.tsx +474 -0
  274. package/text-input/TextInput.test.js +1712 -0
  275. package/text-input/types.d.ts +166 -0
  276. package/text-input/types.js +5 -0
  277. package/textarea/Textarea.d.ts +4 -0
  278. package/{dist/new-textarea/NewTextarea.js → textarea/Textarea.js} +50 -133
  279. package/textarea/Textarea.stories.jsx +157 -0
  280. package/textarea/Textarea.test.js +437 -0
  281. package/textarea/types.d.ts +137 -0
  282. package/textarea/types.js +5 -0
  283. package/toggle-group/ToggleGroup.d.ts +4 -0
  284. package/{dist/toggle-group → toggle-group}/ToggleGroup.js +36 -148
  285. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  286. package/toggle-group/ToggleGroup.test.js +156 -0
  287. package/toggle-group/types.d.ts +105 -0
  288. package/toggle-group/types.js +5 -0
  289. package/useTheme.d.ts +2 -0
  290. package/{dist/useTheme.js → useTheme.js} +2 -2
  291. package/wizard/Wizard.d.ts +4 -0
  292. package/wizard/Wizard.js +290 -0
  293. package/wizard/Wizard.stories.tsx +214 -0
  294. package/wizard/Wizard.test.js +141 -0
  295. package/wizard/types.d.ts +64 -0
  296. package/wizard/types.js +5 -0
  297. package/README.md +0 -66
  298. package/babel.config.js +0 -8
  299. package/dist/BackgroundColorContext.js +0 -46
  300. package/dist/ThemeContext.js +0 -248
  301. package/dist/accordion/Accordion.js +0 -353
  302. package/dist/accordion-group/AccordionGroup.js +0 -186
  303. package/dist/alert/index.d.ts +0 -51
  304. package/dist/badge/Badge.js +0 -63
  305. package/dist/card/Card.js +0 -254
  306. package/dist/checkbox/Checkbox.stories.js +0 -144
  307. package/dist/checkbox/readme.md +0 -116
  308. package/dist/chip/Chip.js +0 -265
  309. package/dist/date/Date.js +0 -379
  310. package/dist/date/Date.stories.js +0 -205
  311. package/dist/date/readme.md +0 -73
  312. package/dist/dialog/Dialog.js +0 -218
  313. package/dist/file-input/FileInput.js +0 -644
  314. package/dist/file-input/FileItem.js +0 -280
  315. package/dist/file-input/index.d.ts +0 -81
  316. package/dist/footer/Footer.js +0 -395
  317. package/dist/footer/dxc_logo.svg +0 -15
  318. package/dist/footer/readme.md +0 -41
  319. package/dist/header/Header.js +0 -403
  320. package/dist/header/Header.stories.js +0 -176
  321. package/dist/header/close_icon.svg +0 -1
  322. package/dist/header/dxc_logo_black.svg +0 -8
  323. package/dist/header/hamb_menu_black.svg +0 -1
  324. package/dist/header/hamb_menu_white.svg +0 -1
  325. package/dist/header/readme.md +0 -33
  326. package/dist/input-text/InputText.js +0 -707
  327. package/dist/input-text/error.svg +0 -1
  328. package/dist/input-text/readme.md +0 -91
  329. package/dist/layout/ApplicationLayout.js +0 -331
  330. package/dist/layout/facebook.svg +0 -45
  331. package/dist/layout/linkedin.svg +0 -50
  332. package/dist/layout/twitter.svg +0 -53
  333. package/dist/link/Link.js +0 -237
  334. package/dist/link/readme.md +0 -51
  335. package/dist/main.d.ts +0 -8
  336. package/dist/new-date/NewDate.js +0 -400
  337. package/dist/new-date/index.d.ts +0 -95
  338. package/dist/new-select/NewSelect.js +0 -836
  339. package/dist/new-select/index.d.ts +0 -53
  340. package/dist/new-textarea/index.d.ts +0 -117
  341. package/dist/number-input/NumberInput.js +0 -136
  342. package/dist/number-input/index.d.ts +0 -113
  343. package/dist/paginator/Paginator.js +0 -289
  344. package/dist/paginator/images/next.svg +0 -3
  345. package/dist/paginator/images/nextPage.svg +0 -3
  346. package/dist/paginator/images/previous.svg +0 -3
  347. package/dist/paginator/images/previousPage.svg +0 -3
  348. package/dist/paginator/readme.md +0 -50
  349. package/dist/password-input/index.d.ts +0 -94
  350. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  351. package/dist/progress-bar/readme.md +0 -63
  352. package/dist/radio/Radio.stories.js +0 -166
  353. package/dist/radio/readme.md +0 -70
  354. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  355. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  356. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  357. package/dist/select/Select.js +0 -549
  358. package/dist/slider/Slider.stories.js +0 -241
  359. package/dist/slider/readme.md +0 -64
  360. package/dist/spinner/Spinner.js +0 -381
  361. package/dist/spinner/Spinner.stories.js +0 -183
  362. package/dist/spinner/readme.md +0 -65
  363. package/dist/switch/Switch.js +0 -222
  364. package/dist/switch/Switch.stories.js +0 -134
  365. package/dist/switch/readme.md +0 -133
  366. package/dist/tabs/Tabs.js +0 -343
  367. package/dist/tabs/Tabs.stories.js +0 -130
  368. package/dist/tabs/readme.md +0 -78
  369. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  370. package/dist/tabs-for-sections/readme.md +0 -78
  371. package/dist/tag/Tag.js +0 -282
  372. package/dist/text-input/index.d.ts +0 -135
  373. package/dist/textarea/Textarea.js +0 -264
  374. package/dist/toggle/Toggle.js +0 -220
  375. package/dist/toggle/Toggle.stories.js +0 -297
  376. package/dist/toggle/readme.md +0 -80
  377. package/dist/upload/Upload.js +0 -205
  378. package/dist/upload/Upload.stories.js +0 -72
  379. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -139
  380. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  381. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  382. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -329
  383. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  384. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  385. package/dist/upload/file-upload/FileToUpload.js +0 -184
  386. package/dist/upload/file-upload/audio-icon.svg +0 -4
  387. package/dist/upload/file-upload/close.svg +0 -4
  388. package/dist/upload/file-upload/file-icon.svg +0 -4
  389. package/dist/upload/file-upload/video-icon.svg +0 -4
  390. package/dist/upload/files-upload/FilesToUpload.js +0 -123
  391. package/dist/upload/readme.md +0 -37
  392. package/dist/upload/transaction/Transaction.js +0 -175
  393. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  394. package/dist/upload/transaction/audio-icon.svg +0 -4
  395. package/dist/upload/transaction/error-icon.svg +0 -4
  396. package/dist/upload/transaction/file-icon-err.svg +0 -4
  397. package/dist/upload/transaction/file-icon.svg +0 -4
  398. package/dist/upload/transaction/image-icon-err.svg +0 -4
  399. package/dist/upload/transaction/image-icon.svg +0 -4
  400. package/dist/upload/transaction/success-icon.svg +0 -4
  401. package/dist/upload/transaction/video-icon-err.svg +0 -4
  402. package/dist/upload/transaction/video-icon.svg +0 -4
  403. package/dist/upload/transactions/Transactions.js +0 -138
  404. package/dist/wizard/Wizard.js +0 -411
  405. package/dist/wizard/invalid_icon.svg +0 -5
  406. package/dist/wizard/valid_icon.svg +0 -5
  407. package/dist/wizard/validation-wrong.svg +0 -6
  408. package/test/Accordion.test.js +0 -33
  409. package/test/AccordionGroup.test.js +0 -125
  410. package/test/Alert.test.js +0 -53
  411. package/test/Box.test.js +0 -10
  412. package/test/Button.test.js +0 -18
  413. package/test/Card.test.js +0 -30
  414. package/test/Checkbox.test.js +0 -45
  415. package/test/Chip.test.js +0 -25
  416. package/test/Date.test.js +0 -393
  417. package/test/Dialog.test.js +0 -23
  418. package/test/Dropdown.test.js +0 -145
  419. package/test/FileInput.test.js +0 -201
  420. package/test/Footer.test.js +0 -99
  421. package/test/Header.test.js +0 -39
  422. package/test/Heading.test.js +0 -35
  423. package/test/InputText.test.js +0 -240
  424. package/test/Link.test.js +0 -43
  425. package/test/NewDate.test.js +0 -232
  426. package/test/NewTextarea.test.js +0 -195
  427. package/test/NumberInput.test.js +0 -259
  428. package/test/Paginator.test.js +0 -177
  429. package/test/PasswordInput.test.js +0 -83
  430. package/test/ProgressBar.test.js +0 -35
  431. package/test/Radio.test.js +0 -37
  432. package/test/ResultsetTable.test.js +0 -329
  433. package/test/Select.test.js +0 -212
  434. package/test/Sidenav.test.js +0 -45
  435. package/test/Slider.test.js +0 -82
  436. package/test/Spinner.test.js +0 -32
  437. package/test/Switch.test.js +0 -45
  438. package/test/Table.test.js +0 -36
  439. package/test/Tabs.test.js +0 -109
  440. package/test/TabsForSections.test.js +0 -34
  441. package/test/Tag.test.js +0 -32
  442. package/test/TextArea.test.js +0 -52
  443. package/test/TextInput.test.js +0 -732
  444. package/test/ToggleGroup.test.js +0 -85
  445. package/test/Upload.test.js +0 -60
  446. package/test/Wizard.test.js +0 -130
  447. package/test/mocks/pngMock.js +0 -1
  448. package/test/mocks/svgMock.js +0 -1
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _Tabs = _interopRequireDefault(require("./Tabs"));
10
+
11
+ var sampleTabs = [{
12
+ label: "Tab-1"
13
+ }, {
14
+ label: "Tab-2"
15
+ }, {
16
+ label: "Tab-3"
17
+ }];
18
+ var sampleTabsWithBadge = [{
19
+ label: "Tab-1",
20
+ notificationNumber: "10"
21
+ }, {
22
+ label: "Tab-2",
23
+ notificationNumber: "20"
24
+ }, {
25
+ label: "Tab-3",
26
+ notificationNumber: "101"
27
+ }];
28
+ describe("Tabs component tests", function () {
29
+ test("Tabs render with correct labels", function () {
30
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
31
+ tabs: sampleTabs
32
+ })),
33
+ getByText = _render.getByText,
34
+ getAllByRole = _render.getAllByRole;
35
+
36
+ var tabs = getAllByRole("tab");
37
+ expect(getByText("Tab-1")).toBeTruthy();
38
+ expect(getByText("Tab-2")).toBeTruthy();
39
+ expect(getByText("Tab-3")).toBeTruthy();
40
+ expect(tabs[0].getAttribute("aria-selected")).toBe("true");
41
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
42
+ expect(tabs[2].getAttribute("aria-selected")).toBe("false");
43
+ });
44
+ test("Tabs render with correct labels and badges", function () {
45
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
46
+ tabs: sampleTabsWithBadge
47
+ })),
48
+ getByText = _render2.getByText;
49
+
50
+ expect(getByText("10")).toBeTruthy();
51
+ expect(getByText("20")).toBeTruthy();
52
+ expect(getByText("+99")).toBeTruthy();
53
+ });
54
+ test("Tabs render with an initially active tab", function () {
55
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
56
+ defaultActiveTabIndex: 2,
57
+ tabs: sampleTabsWithBadge
58
+ })),
59
+ getAllByRole = _render3.getAllByRole;
60
+
61
+ var tabs = getAllByRole("tab");
62
+ expect(tabs[0].getAttribute("aria-selected")).toBe("false");
63
+ expect(tabs[1].getAttribute("aria-selected")).toBe("false");
64
+ expect(tabs[2].getAttribute("aria-selected")).toBe("true");
65
+ });
66
+ test("Tabs render with correct icons", function () {
67
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
68
+ tabs: [{
69
+ label: "Tab-1",
70
+ icon: "/testIcon1.png"
71
+ }, {
72
+ label: "Tab-2",
73
+ icon: "/testIcon2.png"
74
+ }, {
75
+ label: "Tab-3",
76
+ icon: "/testIcon3.png"
77
+ }]
78
+ })),
79
+ getAllByRole = _render4.getAllByRole;
80
+
81
+ expect(getAllByRole("img")[0].getAttribute("src")).toBe("/testIcon1.png");
82
+ expect(getAllByRole("img")[1].getAttribute("src")).toBe("/testIcon2.png");
83
+ expect(getAllByRole("img")[2].getAttribute("src")).toBe("/testIcon3.png");
84
+ });
85
+ test("Tabs render with disabled tab", function () {
86
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
87
+ tabs: [{
88
+ label: "Tab-1",
89
+ isDisabled: true
90
+ }, {
91
+ label: "Tab-2"
92
+ }]
93
+ })),
94
+ getAllByRole = _render5.getAllByRole;
95
+
96
+ expect(getAllByRole("tab")[0].hasAttribute("disabled")).toBeTruthy();
97
+ expect(getAllByRole("tab")[1].hasAttribute("disabled")).toBeFalsy();
98
+ });
99
+ test("Uncontrolled tabs", function () {
100
+ var onTabClick = jest.fn();
101
+
102
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
103
+ tabs: sampleTabs,
104
+ onTabClick: onTabClick
105
+ })),
106
+ getByText = _render6.getByText;
107
+
108
+ var tab1 = getByText("Tab-1");
109
+ var tab2 = getByText("Tab-2");
110
+
111
+ _react2.fireEvent.click(tab2);
112
+
113
+ expect(onTabClick).toHaveBeenCalledWith(1);
114
+
115
+ _react2.fireEvent.click(tab1);
116
+
117
+ expect(onTabClick).toHaveBeenCalledWith(0);
118
+ });
119
+ test("Controlled tabs", function () {
120
+ var onTabClick = jest.fn();
121
+
122
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
123
+ tabs: sampleTabs,
124
+ onTabClick: onTabClick,
125
+ activeTabIndex: 0
126
+ })),
127
+ getByText = _render7.getByText;
128
+
129
+ var tab2 = getByText("Tab-2");
130
+ var tab3 = getByText("Tab-3");
131
+
132
+ _react2.fireEvent.click(tab2);
133
+
134
+ expect(onTabClick).toHaveBeenCalledWith(1);
135
+
136
+ _react2.fireEvent.click(tab3);
137
+
138
+ expect(onTabClick).toHaveBeenCalledWith(2);
139
+ });
140
+ });
@@ -0,0 +1,82 @@
1
+ /// <reference types="react" />
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ declare type Margin = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+ declare type SVG = React.SVGProps<SVGSVGElement>;
10
+ declare type TabCommonProps = {
11
+ /**
12
+ * Whether the tab is disabled or not.
13
+ */
14
+ isDisabled?: boolean;
15
+ /**
16
+ * If the value is 'true', an empty badge will appear.
17
+ * If it is 'false', no badge will appear.
18
+ * If a number is put it will be shown as the label of the notification
19
+ * in the tab, taking into account that if that number is greater than 99,
20
+ * it will appear as '+99' in the badge.
21
+ */
22
+ notificationNumber?: boolean | number;
23
+ };
24
+ declare type TabLabelProps = TabCommonProps & {
25
+ /**
26
+ * Tab label.
27
+ */
28
+ label: string;
29
+ /**
30
+ * Element or path used as the icon that will be displayed in the tab.
31
+ */
32
+ icon?: string | SVG;
33
+ };
34
+ declare type TabIconProps = TabCommonProps & {
35
+ /**
36
+ * Tab label.
37
+ */
38
+ label?: string;
39
+ /**
40
+ * Element or path used as the icon that will be displayed in the tab.
41
+ */
42
+ icon: string | SVG;
43
+ };
44
+ declare type Props = {
45
+ /**
46
+ * An array of objects representing the tabs.
47
+ */
48
+ tabs: (TabLabelProps | TabIconProps)[];
49
+ /**
50
+ * Whether the icon should appear above or to the left of the label.
51
+ */
52
+ iconPosition?: "top" | "left";
53
+ /**
54
+ * Initially active tab, only when it is uncontrolled.
55
+ */
56
+ defaultActiveTabIndex?: number;
57
+ /**
58
+ * The index of the active tab. If undefined, the component will be
59
+ * uncontrolled and the active tab will be managed internally by the component.
60
+ */
61
+ activeTabIndex?: number;
62
+ /**
63
+ * This function will be called when the user clicks on a tab. The index of the
64
+ * clicked tab will be passed as a parameter.
65
+ */
66
+ onTabClick?: (tabIndex: number) => void;
67
+ /**
68
+ * This function will be called when the user hovers a tab.The index of the
69
+ * hovered tab will be passed as a parameter.
70
+ */
71
+ onTabHover?: (tabIndex: number) => void;
72
+ /**
73
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
74
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
75
+ */
76
+ margin?: Space | Margin;
77
+ /**
78
+ * Value of the tabindex for each tab.
79
+ */
80
+ tabIndex?: number;
81
+ };
82
+ export default Props;
package/tabs/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
package/tag/Tag.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import TagPropsType from "./types";
3
+ declare const DxcTag: ({ icon, label, linkHref, onClick, iconBgColor, labelPosition, newWindow, margin, size, tabIndex, }: TagPropsType) => JSX.Element;
4
+ export default DxcTag;
package/tag/Tag.js ADDED
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
+
22
+ var _variables = require("../common/variables.js");
23
+
24
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
25
+
26
+ var _utils = require("../common/utils.js");
27
+
28
+ var _Box = _interopRequireDefault(require("../box/Box"));
29
+
30
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
31
+
32
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
+
34
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
+
36
+ var DxcTag = function DxcTag(_ref) {
37
+ var icon = _ref.icon,
38
+ _ref$label = _ref.label,
39
+ label = _ref$label === void 0 ? "" : _ref$label,
40
+ linkHref = _ref.linkHref,
41
+ onClick = _ref.onClick,
42
+ _ref$iconBgColor = _ref.iconBgColor,
43
+ iconBgColor = _ref$iconBgColor === void 0 ? "#5f249f" : _ref$iconBgColor,
44
+ _ref$labelPosition = _ref.labelPosition,
45
+ labelPosition = _ref$labelPosition === void 0 ? "after" : _ref$labelPosition,
46
+ _ref$newWindow = _ref.newWindow,
47
+ newWindow = _ref$newWindow === void 0 ? false : _ref$newWindow,
48
+ margin = _ref.margin,
49
+ _ref$size = _ref.size,
50
+ size = _ref$size === void 0 ? "fitContent" : _ref$size,
51
+ _ref$tabIndex = _ref.tabIndex,
52
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
53
+ var colorsTheme = (0, _useTheme["default"])();
54
+
55
+ var _useState = (0, _react.useState)(false),
56
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
57
+ isHovered = _useState2[0],
58
+ changeIsHovered = _useState2[1];
59
+
60
+ var clickHandler = function clickHandler() {
61
+ onClick && onClick();
62
+ };
63
+
64
+ var tagContent = /*#__PURE__*/_react["default"].createElement(_Box["default"], {
65
+ size: size,
66
+ shadowDepth: isHovered && (onClick || linkHref) && 2 || 1
67
+ }, /*#__PURE__*/_react["default"].createElement(TagContent, {
68
+ labelPosition: labelPosition
69
+ }, labelPosition === "before" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
70
+ iconBgColor: iconBgColor
71
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(TagIcon, {
72
+ src: icon
73
+ }) : icon), labelPosition === "after" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label)));
74
+
75
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
76
+ theme: colorsTheme.tag
77
+ }, /*#__PURE__*/_react["default"].createElement(StyledDxcTag, {
78
+ margin: margin,
79
+ size: size,
80
+ onMouseEnter: function onMouseEnter() {
81
+ return changeIsHovered(true);
82
+ },
83
+ onMouseLeave: function onMouseLeave() {
84
+ return changeIsHovered(false);
85
+ },
86
+ onClick: clickHandler,
87
+ hasAction: onClick || linkHref
88
+ }, onClick ? /*#__PURE__*/_react["default"].createElement(StyledButton, {
89
+ tabIndex: tabIndex
90
+ }, tagContent) : linkHref ? /*#__PURE__*/_react["default"].createElement(StyledLink, {
91
+ tabIndex: tabIndex,
92
+ href: linkHref,
93
+ target: newWindow ? "_blank" : "_self"
94
+ }, tagContent) : tagContent));
95
+ };
96
+
97
+ var sizes = {
98
+ small: "42px",
99
+ medium: "240px",
100
+ large: "480px",
101
+ fillParent: "100%",
102
+ fitContent: "unset"
103
+ };
104
+
105
+ var calculateWidth = function calculateWidth(margin, size) {
106
+ return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
107
+ };
108
+
109
+ var StyledDxcTag = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n cursor: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n height: ", ";\n"])), function (_ref2) {
110
+ var hasAction = _ref2.hasAction;
111
+ return hasAction && "pointer" || "unset";
112
+ }, function (_ref3) {
113
+ var margin = _ref3.margin;
114
+ return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
115
+ }, function (_ref4) {
116
+ var margin = _ref4.margin;
117
+ return margin && margin.top ? _variables.spaces[margin.top] : "";
118
+ }, function (_ref5) {
119
+ var margin = _ref5.margin;
120
+ return margin && margin.right ? _variables.spaces[margin.right] : "";
121
+ }, function (_ref6) {
122
+ var margin = _ref6.margin;
123
+ return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
124
+ }, function (_ref7) {
125
+ var margin = _ref7.margin;
126
+ return margin && margin.left ? _variables.spaces[margin.left] : "";
127
+ }, function (props) {
128
+ return calculateWidth(props.margin, props.size);
129
+ }, function (props) {
130
+ return props.theme.height;
131
+ });
132
+
133
+ var TagContent = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n width: 100%;\n height: ", ";\n"])), function (props) {
134
+ return props.theme.height;
135
+ });
136
+
137
+ var StyledLink = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: none;\n border-radius: 4px;\n width: 100%;\n :focus {\n outline: 2px solid ", ";\n outline-offset: 0px;\n }\n"])), function (props) {
138
+ return props.theme.focusColor;
139
+ });
140
+
141
+ var StyledButton = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n background: none;\n border-radius: 4px;\n border: none;\n padding: 0;\n cursor: pointer;\n font-family: inherit;\n width: 100%;\n :focus {\n outline: 2px solid ", ";\n }\n"])), function (props) {
142
+ return props.theme.focusColor;
143
+ });
144
+
145
+ var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n background: ", ";\n width: ", ";\n height: 100%;\n justify-content: center;\n align-items: center;\n color: ", ";\n min-width: ", ";\n overflow: hidden;\n img,\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (_ref8) {
146
+ var iconBgColor = _ref8.iconBgColor;
147
+ return iconBgColor;
148
+ }, function (props) {
149
+ return props.theme.iconSectionWidth;
150
+ }, function (props) {
151
+ return props.theme.iconColor;
152
+ }, function (props) {
153
+ return props.theme.iconSectionWidth;
154
+ }, function (props) {
155
+ return props.theme.iconWidth;
156
+ }, function (props) {
157
+ return props.theme.iconHeight;
158
+ });
159
+
160
+ var TagIcon = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])([""])));
161
+
162
+ var TagLabel = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n flex-grow: 1;\n text-align: center;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n"])), function (props) {
163
+ return props.theme.fontFamily;
164
+ }, function (props) {
165
+ return props.theme.fontSize;
166
+ }, function (props) {
167
+ return props.theme.fontStyle;
168
+ }, function (props) {
169
+ return props.theme.fontWeight;
170
+ }, function (props) {
171
+ return props.theme.fontColor;
172
+ }, function (props) {
173
+ return props.theme.labelPaddingTop;
174
+ }, function (props) {
175
+ return props.theme.labelPaddingBottom;
176
+ }, function (props) {
177
+ return props.theme.labelPaddingLeft;
178
+ }, function (props) {
179
+ return props.theme.labelPaddingRight;
180
+ });
181
+
182
+ var _default = DxcTag;
183
+ exports["default"] = _default;
@@ -0,0 +1,142 @@
1
+ import React from "react";
2
+ import { userEvent, within } from "@storybook/testing-library";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import DxcTag from "./Tag";
6
+
7
+ export default {
8
+ title: "Tag",
9
+ component: DxcTag,
10
+ };
11
+
12
+ const icon = (
13
+ <svg viewBox="0 0 24 24" fill="currentColor">
14
+ <path d="M0 0h24v24H0z" fill="none" />
15
+ <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
16
+ </svg>
17
+ );
18
+
19
+ const largeIcon = (
20
+ <svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 0 24 24" width="48px" fill="currentColor">
21
+ <path d="M0 0h24v24H0V0z" fill="none" />
22
+ <path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z" />
23
+ </svg>
24
+ );
25
+
26
+ export const Chromatic = () => (
27
+ <>
28
+ <ExampleContainer>
29
+ <Title title="With icon" theme="light" level={4} />
30
+ <DxcTag icon={icon} />
31
+ </ExampleContainer>
32
+ <ExampleContainer>
33
+ <Title title="With large icon" theme="light" level={4} />
34
+ <DxcTag icon={largeIcon} />
35
+ </ExampleContainer>
36
+ <ExampleContainer>
37
+ <Title title="With label" theme="light" level={4} />
38
+ <DxcTag label="Tag" />
39
+ </ExampleContainer>
40
+ <ExampleContainer>
41
+ <Title title="With label and icon" theme="light" level={4} />
42
+ <DxcTag
43
+ label="Tag"
44
+ icon="https://iconape.com/wp-content/files/yd/367773/svg/logo-linkedin-logo-icon-png-svg.png"
45
+ />
46
+ </ExampleContainer>
47
+ <ExampleContainer>
48
+ <Title title="With right icon" theme="light" level={4} />
49
+ <DxcTag label="Tag" icon={icon} labelPosition="before" />
50
+ </ExampleContainer>
51
+ <ExampleContainer>
52
+ <Title title="Icon background color" theme="light" level={4} />
53
+ <DxcTag label="Tag" icon={icon} iconBgColor="#fabada" />
54
+ </ExampleContainer>
55
+ <ExampleContainer pseudoState="pseudo-focus">
56
+ <Title title="With link focused" theme="light" level={4} />
57
+ <DxcTag icon={icon} label="Tag" linkHref="https://www.dxc.com" />
58
+ </ExampleContainer>
59
+ <ExampleContainer pseudoState="pseudo-focus">
60
+ <Title title="With action focused" theme="light" level={4} />
61
+ <DxcTag
62
+ icon={icon}
63
+ label="Tag"
64
+ onClick={() => {
65
+ console.log("click");
66
+ }}
67
+ />
68
+ </ExampleContainer>
69
+ <Title title="Margins" theme="light" level={2} />
70
+ <ExampleContainer>
71
+ <Title title="Xxsmall margin" theme="light" level={4} />
72
+ <DxcTag label="Xxsmall" margin="xxsmall" />
73
+ </ExampleContainer>
74
+ <ExampleContainer>
75
+ <Title title="Xsmall margin" theme="light" level={4} />
76
+ <DxcTag label="Xsmall" margin="xsmall" />
77
+ </ExampleContainer>
78
+ <ExampleContainer>
79
+ <Title title="Small margin" theme="light" level={4} />
80
+ <DxcTag label="Small" margin="small" />
81
+ </ExampleContainer>
82
+ <ExampleContainer>
83
+ <Title title="Medium margin" theme="light" level={4} />
84
+ <DxcTag label="Medium" margin="medium" />
85
+ </ExampleContainer>
86
+ <ExampleContainer>
87
+ <Title title="Large margin" theme="light" level={4} />
88
+ <DxcTag label="Large" margin="large" />
89
+ </ExampleContainer>
90
+ <ExampleContainer>
91
+ <Title title="Xlarge margin" theme="light" level={4} />
92
+ <DxcTag label="Xlarge" margin="xlarge" />
93
+ </ExampleContainer>
94
+ <ExampleContainer>
95
+ <Title title="Xxlarge margin" theme="light" level={4} />
96
+ <DxcTag label="Xxlarge" margin="xxlarge" />
97
+ </ExampleContainer>
98
+ <Title title="Sizes" theme="light" level={2} />
99
+ <ExampleContainer>
100
+ <Title title="Small size" theme="light" level={4} />
101
+ <DxcTag label="Small" size="small" icon={icon} />
102
+ </ExampleContainer>
103
+ <ExampleContainer>
104
+ <Title title="Medium size" theme="light" level={4} />
105
+ <DxcTag label="Medium size medium s" size="medium" icon={icon} />
106
+ </ExampleContainer>
107
+ <ExampleContainer>
108
+ <Title title="Medium size with ellipsis" theme="light" level={4} />
109
+ <DxcTag label="Medium size medium si medium" size="medium" icon={icon} />
110
+ </ExampleContainer>
111
+ <ExampleContainer>
112
+ <Title title="Large size" theme="light" level={4} />
113
+ <DxcTag label="Large size large size large size large size large size" size="large" icon={icon} />
114
+ </ExampleContainer>
115
+ <ExampleContainer>
116
+ <Title title="Large size with ellipsis" theme="light" level={4} />
117
+ <DxcTag label="Large size large size large size large size large size large size" size="large" icon={icon} />
118
+ </ExampleContainer>
119
+ <ExampleContainer>
120
+ <Title title="FillParent size" theme="light" level={4} />
121
+ <DxcTag label="FillParent" size="fillParent" icon={icon} />
122
+ </ExampleContainer>
123
+ <ExampleContainer>
124
+ <Title title="FitContent size" theme="light" level={4} />
125
+ <DxcTag label="FitContent" size="fitContent" icon={icon} />
126
+ </ExampleContainer>
127
+ <hr />
128
+ </>
129
+ );
130
+
131
+ const LinkTag = () => (
132
+ <ExampleContainer expanded>
133
+ <Title title="Hover link tag" theme="light" level={4} />
134
+ <DxcTag label="Tag" icon={icon} linkHref="https://www.dxc.com" />
135
+ </ExampleContainer>
136
+ );
137
+
138
+ export const HoverLinkTag = LinkTag.bind({});
139
+ HoverLinkTag.play = async ({ canvasElement }) => {
140
+ const canvas = within(canvasElement);
141
+ await userEvent.hover(canvas.getByText("Tag"));
142
+ };
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _Tag = _interopRequireDefault(require("./Tag"));
10
+
11
+ describe("Tag component tests", function () {
12
+ test("Tag renders with correct label", function () {
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
14
+ label: "tag-test"
15
+ })),
16
+ getByText = _render.getByText;
17
+
18
+ expect(getByText("tag-test")).toBeTruthy();
19
+ });
20
+ test("Tag renders with correct label before", function () {
21
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
22
+ label: "tag-test",
23
+ labelPosition: "before"
24
+ })),
25
+ getByText = _render2.getByText;
26
+
27
+ expect(getByText("tag-test")).toBeTruthy();
28
+ });
29
+ test("Tag renders with correct icon", function () {
30
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
31
+ label: "tag-test",
32
+ icon: "/test-icon.jpg"
33
+ })),
34
+ getByRole = _render3.getByRole;
35
+
36
+ expect(getByRole("img").getAttribute("src")).toBe("/test-icon.jpg");
37
+ });
38
+ test("Tag renders with link href", function () {
39
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
40
+ label: "tag-test",
41
+ linkHref: "/test/page"
42
+ })),
43
+ getByRole = _render4.getByRole;
44
+
45
+ expect(getByRole("link").getAttribute("href")).toBe("/test/page");
46
+ });
47
+ test("Call correct function on click", function () {
48
+ var onClick = jest.fn();
49
+
50
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
51
+ label: "tag-test",
52
+ onClick: onClick
53
+ })),
54
+ getByText = _render5.getByText;
55
+
56
+ _react2.fireEvent.click(getByText("tag-test"));
57
+
58
+ expect(onClick).toHaveBeenCalled();
59
+ });
60
+ });