@dxc-technology/halstack-react 0.0.0-f0f7913 → 0.0.0-f1bbdfe

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 (520) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +47 -0
  3. package/HalstackContext.d.ts +1336 -0
  4. package/HalstackContext.js +335 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +234 -0
  7. package/accordion/Accordion.stories.tsx +395 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +69 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +7 -0
  12. package/accordion-group/AccordionGroup.js +149 -0
  13. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  14. package/accordion-group/AccordionGroup.test.js +126 -0
  15. package/accordion-group/types.d.ts +79 -0
  16. package/accordion-group/types.js +5 -0
  17. package/alert/Alert.d.ts +4 -0
  18. package/alert/Alert.js +291 -0
  19. package/alert/Alert.stories.tsx +198 -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 +61 -0
  25. package/badge/types.d.ts +5 -0
  26. package/badge/types.js +5 -0
  27. package/bleed/Bleed.d.ts +3 -0
  28. package/bleed/Bleed.js +51 -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/box/Box.js +114 -0
  34. package/box/Box.stories.tsx +147 -0
  35. package/box/Box.test.js +18 -0
  36. package/box/types.d.ts +44 -0
  37. package/box/types.js +5 -0
  38. package/bulleted-list/BulletedList.d.ts +7 -0
  39. package/bulleted-list/BulletedList.js +125 -0
  40. package/bulleted-list/BulletedList.stories.tsx +206 -0
  41. package/bulleted-list/types.d.ts +38 -0
  42. package/bulleted-list/types.js +5 -0
  43. package/button/Button.d.ts +4 -0
  44. package/button/Button.js +153 -0
  45. package/button/Button.stories.tsx +425 -0
  46. package/button/Button.test.js +35 -0
  47. package/button/types.d.ts +53 -0
  48. package/button/types.js +5 -0
  49. package/card/Card.d.ts +4 -0
  50. package/card/Card.js +160 -0
  51. package/card/Card.stories.tsx +200 -0
  52. package/card/Card.test.js +50 -0
  53. package/card/ice-cream.jpg +0 -0
  54. package/card/types.d.ts +68 -0
  55. package/card/types.js +5 -0
  56. package/checkbox/Checkbox.d.ts +4 -0
  57. package/checkbox/Checkbox.js +250 -0
  58. package/checkbox/Checkbox.stories.tsx +260 -0
  59. package/checkbox/Checkbox.test.js +155 -0
  60. package/checkbox/types.d.ts +68 -0
  61. package/checkbox/types.js +5 -0
  62. package/chip/Chip.d.ts +4 -0
  63. package/chip/Chip.js +153 -0
  64. package/chip/Chip.stories.tsx +206 -0
  65. package/chip/Chip.test.js +54 -0
  66. package/chip/types.d.ts +45 -0
  67. package/chip/types.js +5 -0
  68. package/common/OpenSans.css +69 -0
  69. package/common/coreTokens.d.ts +146 -0
  70. package/common/coreTokens.js +167 -0
  71. package/common/utils.d.ts +1 -0
  72. package/common/utils.js +22 -0
  73. package/common/variables.d.ts +1482 -0
  74. package/common/variables.js +1361 -0
  75. package/date-input/Calendar.d.ts +4 -0
  76. package/date-input/Calendar.js +258 -0
  77. package/date-input/DateInput.d.ts +4 -0
  78. package/date-input/DateInput.js +269 -0
  79. package/date-input/DateInput.stories.tsx +304 -0
  80. package/date-input/DateInput.test.js +835 -0
  81. package/date-input/DatePicker.d.ts +4 -0
  82. package/date-input/DatePicker.js +146 -0
  83. package/date-input/Icons.d.ts +6 -0
  84. package/date-input/Icons.js +75 -0
  85. package/date-input/YearPicker.d.ts +4 -0
  86. package/date-input/YearPicker.js +126 -0
  87. package/date-input/types.d.ts +158 -0
  88. package/date-input/types.js +5 -0
  89. package/dialog/Dialog.d.ts +4 -0
  90. package/dialog/Dialog.js +149 -0
  91. package/dialog/Dialog.stories.tsx +319 -0
  92. package/dialog/Dialog.test.js +369 -0
  93. package/dialog/types.d.ts +44 -0
  94. package/dialog/types.js +5 -0
  95. package/dropdown/Dropdown.d.ts +4 -0
  96. package/dropdown/Dropdown.js +388 -0
  97. package/dropdown/Dropdown.stories.tsx +438 -0
  98. package/dropdown/Dropdown.test.js +586 -0
  99. package/dropdown/DropdownMenu.d.ts +4 -0
  100. package/dropdown/DropdownMenu.js +74 -0
  101. package/dropdown/DropdownMenuItem.d.ts +4 -0
  102. package/dropdown/DropdownMenuItem.js +79 -0
  103. package/dropdown/types.d.ts +100 -0
  104. package/dropdown/types.js +5 -0
  105. package/file-input/FileInput.d.ts +4 -0
  106. package/file-input/FileInput.js +547 -0
  107. package/file-input/FileInput.stories.tsx +618 -0
  108. package/file-input/FileInput.test.js +457 -0
  109. package/file-input/FileItem.d.ts +4 -0
  110. package/file-input/FileItem.js +162 -0
  111. package/file-input/types.d.ts +129 -0
  112. package/file-input/types.js +5 -0
  113. package/flex/Flex.d.ts +4 -0
  114. package/flex/Flex.js +71 -0
  115. package/flex/Flex.stories.tsx +112 -0
  116. package/flex/types.d.ts +97 -0
  117. package/flex/types.js +5 -0
  118. package/footer/Footer.d.ts +4 -0
  119. package/footer/Footer.js +183 -0
  120. package/footer/Footer.stories.tsx +228 -0
  121. package/footer/Footer.test.js +97 -0
  122. package/footer/Icons.d.ts +2 -0
  123. package/footer/Icons.js +77 -0
  124. package/footer/types.d.ts +66 -0
  125. package/footer/types.js +5 -0
  126. package/grid/Grid.d.ts +7 -0
  127. package/grid/Grid.js +91 -0
  128. package/grid/Grid.stories.tsx +219 -0
  129. package/grid/types.d.ts +115 -0
  130. package/grid/types.js +5 -0
  131. package/header/Header.d.ts +8 -0
  132. package/header/Header.js +303 -0
  133. package/header/Header.stories.tsx +315 -0
  134. package/header/Header.test.js +79 -0
  135. package/header/Icons.d.ts +2 -0
  136. package/header/Icons.js +34 -0
  137. package/header/types.d.ts +48 -0
  138. package/header/types.js +5 -0
  139. package/heading/Heading.d.ts +4 -0
  140. package/heading/Heading.js +159 -0
  141. package/heading/Heading.stories.tsx +54 -0
  142. package/heading/Heading.test.js +186 -0
  143. package/heading/types.d.ts +33 -0
  144. package/heading/types.js +5 -0
  145. package/inset/Inset.d.ts +3 -0
  146. package/inset/Inset.js +51 -0
  147. package/inset/Inset.stories.tsx +230 -0
  148. package/inset/types.d.ts +37 -0
  149. package/inset/types.js +5 -0
  150. package/layout/ApplicationLayout.d.ts +20 -0
  151. package/layout/ApplicationLayout.js +171 -0
  152. package/layout/ApplicationLayout.stories.tsx +162 -0
  153. package/layout/Icons.d.ts +5 -0
  154. package/layout/Icons.js +66 -0
  155. package/layout/SidenavContext.d.ts +5 -0
  156. package/layout/SidenavContext.js +19 -0
  157. package/layout/types.d.ts +41 -0
  158. package/layout/types.js +5 -0
  159. package/link/Link.d.ts +4 -0
  160. package/link/Link.js +136 -0
  161. package/link/Link.stories.tsx +253 -0
  162. package/link/Link.test.js +81 -0
  163. package/link/types.d.ts +54 -0
  164. package/link/types.js +5 -0
  165. package/main.d.ts +45 -0
  166. package/{dist/main.js → main.js} +157 -83
  167. package/nav-tabs/NavTabs.d.ts +8 -0
  168. package/nav-tabs/NavTabs.js +125 -0
  169. package/nav-tabs/NavTabs.stories.tsx +260 -0
  170. package/nav-tabs/NavTabs.test.js +82 -0
  171. package/nav-tabs/Tab.d.ts +4 -0
  172. package/nav-tabs/Tab.js +150 -0
  173. package/nav-tabs/types.d.ts +53 -0
  174. package/nav-tabs/types.js +5 -0
  175. package/number-input/NumberInput.d.ts +4 -0
  176. package/number-input/NumberInput.js +76 -0
  177. package/number-input/NumberInput.stories.tsx +115 -0
  178. package/number-input/NumberInput.test.js +542 -0
  179. package/number-input/NumberInputContext.d.ts +4 -0
  180. package/number-input/NumberInputContext.js +19 -0
  181. package/number-input/numberInputContextTypes.d.ts +19 -0
  182. package/number-input/numberInputContextTypes.js +5 -0
  183. package/number-input/types.d.ts +124 -0
  184. package/number-input/types.js +5 -0
  185. package/package.json +46 -38
  186. package/paginator/Icons.d.ts +5 -0
  187. package/paginator/Icons.js +54 -0
  188. package/paginator/Paginator.d.ts +4 -0
  189. package/paginator/Paginator.js +163 -0
  190. package/paginator/Paginator.stories.tsx +87 -0
  191. package/paginator/Paginator.test.js +305 -0
  192. package/paginator/types.d.ts +38 -0
  193. package/paginator/types.js +5 -0
  194. package/paragraph/Paragraph.d.ts +5 -0
  195. package/paragraph/Paragraph.js +38 -0
  196. package/paragraph/Paragraph.stories.tsx +44 -0
  197. package/password-input/PasswordInput.d.ts +4 -0
  198. package/password-input/PasswordInput.js +166 -0
  199. package/password-input/PasswordInput.stories.tsx +131 -0
  200. package/password-input/PasswordInput.test.js +181 -0
  201. package/password-input/types.d.ts +110 -0
  202. package/password-input/types.js +5 -0
  203. package/progress-bar/ProgressBar.d.ts +4 -0
  204. package/progress-bar/ProgressBar.js +176 -0
  205. package/progress-bar/ProgressBar.stories.jsx +93 -0
  206. package/progress-bar/ProgressBar.test.js +110 -0
  207. package/progress-bar/types.d.ts +37 -0
  208. package/progress-bar/types.js +5 -0
  209. package/quick-nav/QuickNav.d.ts +4 -0
  210. package/quick-nav/QuickNav.js +117 -0
  211. package/quick-nav/QuickNav.stories.tsx +356 -0
  212. package/quick-nav/types.d.ts +21 -0
  213. package/quick-nav/types.js +5 -0
  214. package/radio-group/Radio.d.ts +4 -0
  215. package/radio-group/Radio.js +156 -0
  216. package/radio-group/RadioGroup.d.ts +4 -0
  217. package/radio-group/RadioGroup.js +283 -0
  218. package/radio-group/RadioGroup.stories.tsx +214 -0
  219. package/radio-group/RadioGroup.test.js +722 -0
  220. package/radio-group/types.d.ts +114 -0
  221. package/radio-group/types.js +5 -0
  222. package/resultsetTable/Icons.d.ts +7 -0
  223. package/resultsetTable/Icons.js +51 -0
  224. package/resultsetTable/ResultsetTable.d.ts +4 -0
  225. package/resultsetTable/ResultsetTable.js +195 -0
  226. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  227. package/resultsetTable/ResultsetTable.test.js +325 -0
  228. package/resultsetTable/types.d.ts +67 -0
  229. package/resultsetTable/types.js +5 -0
  230. package/select/Icons.d.ts +10 -0
  231. package/select/Icons.js +93 -0
  232. package/select/Listbox.d.ts +4 -0
  233. package/select/Listbox.js +169 -0
  234. package/select/Option.d.ts +4 -0
  235. package/select/Option.js +97 -0
  236. package/select/Select.d.ts +4 -0
  237. package/select/Select.js +666 -0
  238. package/select/Select.stories.tsx +971 -0
  239. package/select/Select.test.js +2228 -0
  240. package/select/types.d.ts +210 -0
  241. package/select/types.js +5 -0
  242. package/sidenav/Icons.d.ts +7 -0
  243. package/sidenav/Icons.js +51 -0
  244. package/sidenav/Sidenav.d.ts +10 -0
  245. package/sidenav/Sidenav.js +238 -0
  246. package/sidenav/Sidenav.stories.tsx +282 -0
  247. package/sidenav/Sidenav.test.js +44 -0
  248. package/sidenav/types.d.ts +76 -0
  249. package/sidenav/types.js +5 -0
  250. package/slider/Slider.d.ts +4 -0
  251. package/slider/Slider.js +342 -0
  252. package/slider/Slider.stories.tsx +240 -0
  253. package/slider/Slider.test.js +250 -0
  254. package/slider/types.d.ts +86 -0
  255. package/slider/types.js +5 -0
  256. package/spinner/Spinner.d.ts +4 -0
  257. package/spinner/Spinner.js +244 -0
  258. package/spinner/Spinner.stories.jsx +129 -0
  259. package/spinner/Spinner.test.js +64 -0
  260. package/spinner/types.d.ts +32 -0
  261. package/spinner/types.js +5 -0
  262. package/switch/Switch.d.ts +4 -0
  263. package/switch/Switch.js +262 -0
  264. package/switch/Switch.stories.tsx +171 -0
  265. package/switch/Switch.test.js +225 -0
  266. package/switch/types.d.ts +66 -0
  267. package/switch/types.js +5 -0
  268. package/table/Table.d.ts +4 -0
  269. package/table/Table.js +118 -0
  270. package/table/Table.stories.jsx +356 -0
  271. package/table/Table.test.js +26 -0
  272. package/table/types.d.ts +21 -0
  273. package/table/types.js +5 -0
  274. package/tabs/Tab.d.ts +4 -0
  275. package/tabs/Tab.js +132 -0
  276. package/tabs/Tabs.d.ts +4 -0
  277. package/tabs/Tabs.js +461 -0
  278. package/tabs/Tabs.stories.tsx +226 -0
  279. package/tabs/Tabs.test.js +350 -0
  280. package/tabs/types.d.ts +92 -0
  281. package/tabs/types.js +5 -0
  282. package/tag/Tag.d.ts +4 -0
  283. package/tag/Tag.js +181 -0
  284. package/tag/Tag.stories.tsx +155 -0
  285. package/tag/Tag.test.js +60 -0
  286. package/tag/types.d.ts +69 -0
  287. package/tag/types.js +5 -0
  288. package/text-input/Icons.d.ts +8 -0
  289. package/text-input/Icons.js +60 -0
  290. package/text-input/Suggestion.d.ts +4 -0
  291. package/text-input/Suggestion.js +84 -0
  292. package/text-input/Suggestions.d.ts +4 -0
  293. package/text-input/Suggestions.js +134 -0
  294. package/text-input/TextInput.d.ts +4 -0
  295. package/text-input/TextInput.js +673 -0
  296. package/text-input/TextInput.stories.tsx +569 -0
  297. package/text-input/TextInput.test.js +1723 -0
  298. package/text-input/types.d.ts +197 -0
  299. package/text-input/types.js +5 -0
  300. package/textarea/Textarea.d.ts +4 -0
  301. package/textarea/Textarea.js +276 -0
  302. package/textarea/Textarea.stories.jsx +216 -0
  303. package/textarea/Textarea.test.js +435 -0
  304. package/textarea/types.d.ts +137 -0
  305. package/textarea/types.js +5 -0
  306. package/toggle-group/ToggleGroup.d.ts +4 -0
  307. package/toggle-group/ToggleGroup.js +218 -0
  308. package/toggle-group/ToggleGroup.stories.tsx +215 -0
  309. package/toggle-group/ToggleGroup.test.js +156 -0
  310. package/toggle-group/types.d.ts +105 -0
  311. package/toggle-group/types.js +5 -0
  312. package/typography/Typography.d.ts +4 -0
  313. package/typography/Typography.js +32 -0
  314. package/typography/Typography.stories.tsx +198 -0
  315. package/typography/types.d.ts +18 -0
  316. package/typography/types.js +5 -0
  317. package/useTheme.d.ts +1235 -0
  318. package/{dist/useTheme.js → useTheme.js} +3 -3
  319. package/useTranslatedLabels.d.ts +85 -0
  320. package/useTranslatedLabels.js +20 -0
  321. package/utils/BaseTypography.d.ts +21 -0
  322. package/utils/BaseTypography.js +108 -0
  323. package/utils/FocusLock.d.ts +13 -0
  324. package/utils/FocusLock.js +139 -0
  325. package/wizard/Wizard.d.ts +4 -0
  326. package/wizard/Wizard.js +285 -0
  327. package/wizard/Wizard.stories.tsx +253 -0
  328. package/wizard/Wizard.test.js +141 -0
  329. package/wizard/types.d.ts +64 -0
  330. package/wizard/types.js +5 -0
  331. package/README.md +0 -66
  332. package/babel.config.js +0 -8
  333. package/dist/ThemeContext.js +0 -137
  334. package/dist/accordion/Accordion.js +0 -268
  335. package/dist/accordion/Accordion.stories.js +0 -207
  336. package/dist/accordion/readme.md +0 -96
  337. package/dist/accordion-group/AccordionGroup.js +0 -159
  338. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  339. package/dist/accordion-group/readme.md +0 -70
  340. package/dist/alert/Alert.js +0 -303
  341. package/dist/alert/Alert.stories.js +0 -158
  342. package/dist/alert/close.svg +0 -4
  343. package/dist/alert/error.svg +0 -4
  344. package/dist/alert/info.svg +0 -4
  345. package/dist/alert/readme.md +0 -43
  346. package/dist/alert/success.svg +0 -4
  347. package/dist/alert/warning.svg +0 -4
  348. package/dist/badge/Badge.js +0 -42
  349. package/dist/box/Box.js +0 -145
  350. package/dist/button/Button.js +0 -199
  351. package/dist/button/Button.stories.js +0 -224
  352. package/dist/button/readme.md +0 -93
  353. package/dist/card/Card.js +0 -217
  354. package/dist/checkbox/Checkbox.js +0 -240
  355. package/dist/checkbox/Checkbox.stories.js +0 -144
  356. package/dist/checkbox/readme.md +0 -116
  357. package/dist/chip/Chip.js +0 -203
  358. package/dist/common/OpenSans.css +0 -81
  359. package/dist/common/RequiredComponent.js +0 -40
  360. package/dist/common/services/example-service.js +0 -10
  361. package/dist/common/services/example-service.test.js +0 -12
  362. package/dist/common/utils.js +0 -42
  363. package/dist/common/variables.js +0 -393
  364. package/dist/date/Date.js +0 -357
  365. package/dist/date/Date.stories.js +0 -205
  366. package/dist/date/calendar.svg +0 -1
  367. package/dist/date/calendar_dark.svg +0 -1
  368. package/dist/date/readme.md +0 -73
  369. package/dist/dialog/Dialog.js +0 -197
  370. package/dist/dialog/Dialog.stories.js +0 -217
  371. package/dist/dialog/readme.md +0 -32
  372. package/dist/dropdown/Dropdown.js +0 -449
  373. package/dist/dropdown/Dropdown.stories.js +0 -249
  374. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  375. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  376. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  377. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  378. package/dist/dropdown/readme.md +0 -69
  379. package/dist/footer/Footer.js +0 -366
  380. package/dist/footer/Footer.stories.js +0 -94
  381. package/dist/footer/dxc_logo_wht.png +0 -0
  382. package/dist/footer/readme.md +0 -41
  383. package/dist/header/Header.js +0 -373
  384. package/dist/header/Header.stories.js +0 -176
  385. package/dist/header/close_icon.svg +0 -1
  386. package/dist/header/dxc_logo_black.png +0 -0
  387. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  388. package/dist/header/dxc_logo_white.png +0 -0
  389. package/dist/header/hamb_menu_black.svg +0 -1
  390. package/dist/header/hamb_menu_white.svg +0 -1
  391. package/dist/header/readme.md +0 -33
  392. package/dist/heading/Heading.js +0 -153
  393. package/dist/input-text/InputText.js +0 -570
  394. package/dist/input-text/InputText.stories.js +0 -209
  395. package/dist/input-text/error.svg +0 -1
  396. package/dist/input-text/readme.md +0 -91
  397. package/dist/layout/ApplicationLayout.js +0 -332
  398. package/dist/layout/facebook.svg +0 -45
  399. package/dist/layout/linkedin.svg +0 -50
  400. package/dist/layout/twitter.svg +0 -53
  401. package/dist/link/Link.js +0 -192
  402. package/dist/link/readme.md +0 -51
  403. package/dist/paginator/Paginator.js +0 -254
  404. package/dist/paginator/images/next.svg +0 -3
  405. package/dist/paginator/images/nextPage.svg +0 -3
  406. package/dist/paginator/images/previous.svg +0 -3
  407. package/dist/paginator/images/previousPage.svg +0 -3
  408. package/dist/paginator/readme.md +0 -50
  409. package/dist/progress-bar/ProgressBar.js +0 -185
  410. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  411. package/dist/progress-bar/readme.md +0 -63
  412. package/dist/radio/Radio.js +0 -195
  413. package/dist/radio/Radio.stories.js +0 -166
  414. package/dist/radio/readme.md +0 -70
  415. package/dist/resultsetTable/ResultsetTable.js +0 -327
  416. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  417. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  418. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  419. package/dist/select/Select.js +0 -473
  420. package/dist/select/Select.stories.js +0 -235
  421. package/dist/select/readme.md +0 -72
  422. package/dist/sidenav/Sidenav.js +0 -125
  423. package/dist/slider/Slider.js +0 -257
  424. package/dist/slider/Slider.stories.js +0 -241
  425. package/dist/slider/readme.md +0 -64
  426. package/dist/spinner/Spinner.js +0 -192
  427. package/dist/spinner/Spinner.stories.js +0 -183
  428. package/dist/spinner/readme.md +0 -65
  429. package/dist/switch/Switch.js +0 -190
  430. package/dist/switch/Switch.stories.js +0 -134
  431. package/dist/switch/readme.md +0 -133
  432. package/dist/table/Table.js +0 -104
  433. package/dist/tabs/Tabs.js +0 -302
  434. package/dist/tabs/Tabs.stories.js +0 -130
  435. package/dist/tabs/readme.md +0 -78
  436. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  437. package/dist/tabs-for-sections/readme.md +0 -78
  438. package/dist/tag/Tag.js +0 -249
  439. package/dist/textarea/Textarea.js +0 -224
  440. package/dist/toggle/Toggle.js +0 -223
  441. package/dist/toggle/Toggle.stories.js +0 -297
  442. package/dist/toggle/readme.md +0 -80
  443. package/dist/toggle-group/ToggleGroup.js +0 -223
  444. package/dist/toggle-group/readme.md +0 -82
  445. package/dist/upload/Upload.js +0 -200
  446. package/dist/upload/Upload.stories.js +0 -72
  447. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -122
  448. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  449. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  450. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -279
  451. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  452. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  453. package/dist/upload/file-upload/FileToUpload.js +0 -158
  454. package/dist/upload/file-upload/audio-icon.svg +0 -4
  455. package/dist/upload/file-upload/close.svg +0 -4
  456. package/dist/upload/file-upload/file-icon.svg +0 -4
  457. package/dist/upload/file-upload/video-icon.svg +0 -4
  458. package/dist/upload/files-upload/FilesToUpload.js +0 -123
  459. package/dist/upload/readme.md +0 -37
  460. package/dist/upload/transaction/Transaction.js +0 -155
  461. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  462. package/dist/upload/transaction/audio-icon.svg +0 -4
  463. package/dist/upload/transaction/error-icon.svg +0 -4
  464. package/dist/upload/transaction/file-icon-err.svg +0 -4
  465. package/dist/upload/transaction/file-icon.svg +0 -4
  466. package/dist/upload/transaction/image-icon-err.svg +0 -4
  467. package/dist/upload/transaction/image-icon.svg +0 -4
  468. package/dist/upload/transaction/success-icon.svg +0 -4
  469. package/dist/upload/transaction/video-icon-err.svg +0 -4
  470. package/dist/upload/transaction/video-icon.svg +0 -4
  471. package/dist/upload/transactions/Transactions.js +0 -120
  472. package/dist/wizard/Wizard.js +0 -328
  473. package/dist/wizard/invalid_icon.svg +0 -6
  474. package/dist/wizard/valid_icon.svg +0 -6
  475. package/dist/wizard/validation-wrong.svg +0 -6
  476. package/test/Accordion.test.js +0 -33
  477. package/test/AccordionGroup.test.js +0 -109
  478. package/test/Alert.test.js +0 -53
  479. package/test/Box.test.js +0 -10
  480. package/test/Button.test.js +0 -18
  481. package/test/Card.test.js +0 -30
  482. package/test/Checkbox.test.js +0 -45
  483. package/test/Chip.test.js +0 -25
  484. package/test/Date.test.js +0 -393
  485. package/test/Dialog.test.js +0 -23
  486. package/test/Dropdown.test.js +0 -130
  487. package/test/Footer.test.js +0 -99
  488. package/test/Header.test.js +0 -39
  489. package/test/Heading.test.js +0 -35
  490. package/test/InputText.test.js +0 -240
  491. package/test/Link.test.js +0 -42
  492. package/test/Paginator.test.js +0 -177
  493. package/test/ProgressBar.test.js +0 -35
  494. package/test/Radio.test.js +0 -37
  495. package/test/ResultsetTable.test.js +0 -330
  496. package/test/Select.test.js +0 -192
  497. package/test/Sidenav.test.js +0 -45
  498. package/test/Slider.test.js +0 -82
  499. package/test/Spinner.test.js +0 -27
  500. package/test/Switch.test.js +0 -45
  501. package/test/Table.test.js +0 -36
  502. package/test/Tabs.test.js +0 -109
  503. package/test/TabsForSections.test.js +0 -34
  504. package/test/Tag.test.js +0 -32
  505. package/test/TextArea.test.js +0 -52
  506. package/test/ToggleGroup.test.js +0 -81
  507. package/test/Upload.test.js +0 -60
  508. package/test/Wizard.test.js +0 -130
  509. package/test/mocks/pngMock.js +0 -1
  510. package/test/mocks/svgMock.js +0 -1
  511. /package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  512. /package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  513. /package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  514. /package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  515. /package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  516. /package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  517. /package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  518. /package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  519. /package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  520. /package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
package/tabs/Tabs.js ADDED
@@ -0,0 +1,461 @@
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");
23
+
24
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
25
+
26
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
27
+
28
+ var _Tab = _interopRequireDefault(require("./Tab"));
29
+
30
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
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 arrowIcons = {
37
+ left: /*#__PURE__*/_react["default"].createElement("svg", {
38
+ focusable: "false",
39
+ viewBox: "0 0 24 24",
40
+ "aria-hidden": "true"
41
+ }, /*#__PURE__*/_react["default"].createElement("path", {
42
+ d: "M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"
43
+ })),
44
+ right: /*#__PURE__*/_react["default"].createElement("svg", {
45
+ focusable: "false",
46
+ viewBox: "0 0 24 24",
47
+ "aria-hidden": "true"
48
+ }, /*#__PURE__*/_react["default"].createElement("path", {
49
+ d: "M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"
50
+ }))
51
+ };
52
+
53
+ var useResize = function useResize(refTabList) {
54
+ var _useState = (0, _react.useState)(0),
55
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
56
+ viewWidth = _useState2[0],
57
+ setViewWidth = _useState2[1];
58
+
59
+ var handleWindowSizeChange = (0, _react.useCallback)(function () {
60
+ var _refTabList$current;
61
+
62
+ setViewWidth(refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current = refTabList.current) === null || _refTabList$current === void 0 ? void 0 : _refTabList$current.offsetWidth);
63
+ }, [refTabList]);
64
+ (0, _react.useEffect)(function () {
65
+ window.addEventListener("load", handleWindowSizeChange);
66
+ window.addEventListener("resize", handleWindowSizeChange);
67
+ return function () {
68
+ window.removeEventListener("load", handleWindowSizeChange);
69
+ window.removeEventListener("resize", handleWindowSizeChange);
70
+ };
71
+ }, [handleWindowSizeChange]);
72
+ return viewWidth;
73
+ };
74
+
75
+ var DxcTabs = function DxcTabs(_ref) {
76
+ var defaultActiveTabIndex = _ref.defaultActiveTabIndex,
77
+ activeTabIndex = _ref.activeTabIndex,
78
+ tabs = _ref.tabs,
79
+ onTabClick = _ref.onTabClick,
80
+ onTabHover = _ref.onTabHover,
81
+ margin = _ref.margin,
82
+ _ref$iconPosition = _ref.iconPosition,
83
+ iconPosition = _ref$iconPosition === void 0 ? "top" : _ref$iconPosition,
84
+ _ref$tabIndex = _ref.tabIndex,
85
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
86
+ var colorsTheme = (0, _useTheme["default"])();
87
+ var hasLabelAndIcon = tabs && tabs.filter(function (tab) {
88
+ return tab.label && tab.icon;
89
+ }).length > 0;
90
+ var firstFocus = tabs && tabs.findIndex(function (tab) {
91
+ return !tab.isDisabled;
92
+ });
93
+
94
+ var _useState3 = (0, _react.useState)(tabs && defaultActiveTabIndex && !tabs[defaultActiveTabIndex].isDisabled ? defaultActiveTabIndex : firstFocus),
95
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
96
+ innerActiveTabIndex = _useState4[0],
97
+ setInnerActiveTabIndex = _useState4[1];
98
+
99
+ var _useState5 = (0, _react.useState)(0),
100
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
101
+ activeIndicatorWidth = _useState6[0],
102
+ setActiveIndicatorWidth = _useState6[1];
103
+
104
+ var _useState7 = (0, _react.useState)(0),
105
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
106
+ activeIndicatorLeft = _useState8[0],
107
+ setActiveIndicatorLeft = _useState8[1];
108
+
109
+ var _useState9 = (0, _react.useState)(0),
110
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
111
+ translateScroll = _useState10[0],
112
+ setTranslateScroll = _useState10[1];
113
+
114
+ var _useState11 = (0, _react.useState)(true),
115
+ _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
116
+ scrollRightEnabled = _useState12[0],
117
+ setScrollRightEnabled = _useState12[1];
118
+
119
+ var _useState13 = (0, _react.useState)(false),
120
+ _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
121
+ scrollLeftEnabled = _useState14[0],
122
+ setScrollLeftEnabled = _useState14[1];
123
+
124
+ var _useState15 = (0, _react.useState)(0),
125
+ _useState16 = (0, _slicedToArray2["default"])(_useState15, 2),
126
+ countClick = _useState16[0],
127
+ setCountClick = _useState16[1];
128
+
129
+ var _useState17 = (0, _react.useState)(0),
130
+ _useState18 = (0, _slicedToArray2["default"])(_useState17, 2),
131
+ totalTabsWidth = _useState18[0],
132
+ setTotalTabsWidth = _useState18[1];
133
+
134
+ var _useState19 = (0, _react.useState)(activeTabIndex !== null && activeTabIndex !== void 0 ? activeTabIndex : innerActiveTabIndex),
135
+ _useState20 = (0, _slicedToArray2["default"])(_useState19, 2),
136
+ currentFocusIndex = _useState20[0],
137
+ setCurrentFocusIndex = _useState20[1];
138
+
139
+ var _useState21 = (0, _react.useState)(activeTabIndex !== null && activeTabIndex !== void 0 ? activeTabIndex : innerActiveTabIndex),
140
+ _useState22 = (0, _slicedToArray2["default"])(_useState21, 2),
141
+ temporalFocusIndex = _useState22[0],
142
+ setTemporalFocusIndex = _useState22[1];
143
+
144
+ var _useState23 = (0, _react.useState)(0),
145
+ _useState24 = (0, _slicedToArray2["default"])(_useState23, 2),
146
+ minHeightTabs = _useState24[0],
147
+ setMinHeightTabs = _useState24[1];
148
+
149
+ var refTabs = (0, _react.useRef)([]);
150
+ var refTabList = (0, _react.useRef)(null);
151
+ var viewWidth = useResize(refTabList);
152
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
153
+ var enabledIndicator = (0, _react.useMemo)(function () {
154
+ return viewWidth < totalTabsWidth;
155
+ }, [viewWidth]);
156
+ (0, _react.useEffect)(function () {
157
+ var _refTabs$current, _refTabs$current2, _refTabs$current3;
158
+
159
+ var sumWidth = refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current = refTabs.current) === null || _refTabs$current === void 0 ? void 0 : _refTabs$current.reduce(function (count, obj) {
160
+ return count + obj.offsetWidth;
161
+ }, 0);
162
+ setTotalTabsWidth(sumWidth);
163
+ setActiveIndicatorWidth(refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current2 = refTabs.current[activeTabIndex !== null && activeTabIndex !== void 0 ? activeTabIndex : innerActiveTabIndex]) === null || _refTabs$current2 === void 0 ? void 0 : _refTabs$current2.offsetWidth);
164
+ setActiveIndicatorLeft(refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current3 = refTabs.current[activeTabIndex !== null && activeTabIndex !== void 0 ? activeTabIndex : innerActiveTabIndex]) === null || _refTabs$current3 === void 0 ? void 0 : _refTabs$current3.offsetLeft);
165
+ }, [refTabs]);
166
+ (0, _react.useEffect)(function () {
167
+ var _refTabList$current2;
168
+
169
+ setMinHeightTabs((refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current2 = refTabList.current) === null || _refTabList$current2 === void 0 ? void 0 : _refTabList$current2.offsetHeight) + 1);
170
+ }, [refTabList]);
171
+ (0, _react.useEffect)(function () {
172
+ if (activeTabIndex >= 0) {
173
+ var _refTabs$current$acti, _refTabs$current$acti2;
174
+
175
+ setActiveIndicatorWidth(refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current$acti = refTabs.current[activeTabIndex]) === null || _refTabs$current$acti === void 0 ? void 0 : _refTabs$current$acti.offsetWidth);
176
+ setActiveIndicatorLeft(refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current$acti2 = refTabs.current[activeTabIndex]) === null || _refTabs$current$acti2 === void 0 ? void 0 : _refTabs$current$acti2.offsetLeft);
177
+ }
178
+ }, [activeTabIndex]);
179
+
180
+ var handleSelected = function handleSelected(newValue) {
181
+ activeTabIndex !== null && activeTabIndex !== void 0 ? activeTabIndex : setInnerActiveTabIndex(newValue);
182
+ onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(newValue);
183
+
184
+ if (activeTabIndex === undefined) {
185
+ var _refTabs$current$newV, _refTabs$current$newV2;
186
+
187
+ setActiveIndicatorWidth(refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current$newV = refTabs.current[newValue]) === null || _refTabs$current$newV === void 0 ? void 0 : _refTabs$current$newV.offsetWidth);
188
+ setActiveIndicatorLeft(refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current$newV2 = refTabs.current[newValue]) === null || _refTabs$current$newV2 === void 0 ? void 0 : _refTabs$current$newV2.offsetLeft);
189
+ }
190
+ };
191
+
192
+ var scrollLeft = function scrollLeft() {
193
+ var _refTabList$current3;
194
+
195
+ var scrollWidth = (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current3 = refTabList.current) === null || _refTabList$current3 === void 0 ? void 0 : _refTabList$current3.offsetWidth) * 0.75;
196
+ var moveX = 0;
197
+
198
+ if (countClick <= scrollWidth) {
199
+ moveX = 0;
200
+ setScrollLeftEnabled(false);
201
+ setScrollRightEnabled(true);
202
+ } else {
203
+ moveX = countClick - scrollWidth;
204
+ setScrollRightEnabled(true);
205
+ setScrollLeftEnabled(true);
206
+ }
207
+
208
+ setTranslateScroll(-moveX);
209
+ setCountClick(moveX);
210
+ };
211
+
212
+ var scrollRight = function scrollRight() {
213
+ var _refTabList$current4, _refTabList$current5;
214
+
215
+ var scrollWidth = (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current4 = refTabList.current) === null || _refTabList$current4 === void 0 ? void 0 : _refTabList$current4.offsetWidth) * 0.75;
216
+ var moveX = 0;
217
+
218
+ if (countClick + scrollWidth + (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current5 = refTabList.current) === null || _refTabList$current5 === void 0 ? void 0 : _refTabList$current5.offsetWidth) >= totalTabsWidth) {
219
+ var _refTabList$current6;
220
+
221
+ moveX = totalTabsWidth - (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current6 = refTabList.current) === null || _refTabList$current6 === void 0 ? void 0 : _refTabList$current6.offsetWidth);
222
+ setScrollRightEnabled(false);
223
+ setScrollLeftEnabled(true);
224
+ } else {
225
+ moveX = countClick + scrollWidth;
226
+ setScrollLeftEnabled(true);
227
+ setScrollRightEnabled(true);
228
+ }
229
+
230
+ setTranslateScroll(-moveX);
231
+ setCountClick(moveX);
232
+ };
233
+
234
+ var setPreviousTabFocus = function setPreviousTabFocus() {
235
+ setTemporalFocusIndex(function (temporalFocusIndex) {
236
+ var index = temporalFocusIndex === 0 ? tabs.length - 1 : temporalFocusIndex - 1;
237
+
238
+ while (tabs[index].isDisabled) {
239
+ index = index === 0 ? tabs.length - 1 : index - 1;
240
+ }
241
+
242
+ refTabs === null || refTabs === void 0 ? void 0 : refTabs.current[index].focus({
243
+ preventScroll: true
244
+ });
245
+ setScrollFocus(index);
246
+ return index;
247
+ });
248
+ };
249
+
250
+ var setNextTabFocus = function setNextTabFocus() {
251
+ setTemporalFocusIndex(function (temporalFocusIndex) {
252
+ var index = temporalFocusIndex === tabs.length - 1 ? 0 : temporalFocusIndex + 1;
253
+
254
+ while (tabs[index].isDisabled) {
255
+ index = index === tabs.length - 1 ? 0 : index + 1;
256
+ }
257
+
258
+ refTabs === null || refTabs === void 0 ? void 0 : refTabs.current[index].focus({
259
+ preventScroll: true
260
+ });
261
+ setScrollFocus(index);
262
+ return index;
263
+ });
264
+ };
265
+
266
+ var setScrollFocus = function setScrollFocus(actualIndex) {
267
+ var _refTabs$current4, _refTabList$current8;
268
+
269
+ var sumPrev = 0;
270
+ refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current4 = refTabs.current) === null || _refTabs$current4 === void 0 ? void 0 : _refTabs$current4.map(function (item, index) {
271
+ if (index <= actualIndex) {
272
+ sumPrev += item.offsetWidth;
273
+ }
274
+ });
275
+ var moveX = 0;
276
+
277
+ if (actualIndex === tabs.length - 1) {
278
+ var _refTabList$current7;
279
+
280
+ moveX = totalTabsWidth - (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current7 = refTabList.current) === null || _refTabList$current7 === void 0 ? void 0 : _refTabList$current7.offsetWidth);
281
+ setScrollLeftEnabled(true);
282
+ setScrollRightEnabled(false);
283
+ } else if (sumPrev > (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current8 = refTabList.current) === null || _refTabList$current8 === void 0 ? void 0 : _refTabList$current8.offsetWidth)) {
284
+ var _refTabList$current9;
285
+
286
+ moveX = sumPrev - (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current9 = refTabList.current) === null || _refTabList$current9 === void 0 ? void 0 : _refTabList$current9.offsetWidth) + 1; //plus 1px for the outline
287
+
288
+ setScrollLeftEnabled(true);
289
+ setScrollRightEnabled(true);
290
+ } else {
291
+ setScrollLeftEnabled(false);
292
+ setScrollRightEnabled(true);
293
+ }
294
+
295
+ setTranslateScroll(-moveX);
296
+ setCountClick(moveX);
297
+ };
298
+
299
+ var handleOnKeyDown = function handleOnKeyDown(event) {
300
+ switch (event.key) {
301
+ case "Left":
302
+ case "ArrowLeft":
303
+ event.preventDefault();
304
+ setPreviousTabFocus();
305
+ break;
306
+
307
+ case "Right":
308
+ case "ArrowRight":
309
+ event.preventDefault();
310
+ setNextTabFocus();
311
+ break;
312
+
313
+ case "Enter":
314
+ case " ":
315
+ event.preventDefault();
316
+ setCurrentFocusIndex(temporalFocusIndex);
317
+ handleSelected(temporalFocusIndex);
318
+ break;
319
+
320
+ case "Tab":
321
+ if (temporalFocusIndex !== currentFocusIndex) {
322
+ event.preventDefault();
323
+ setTemporalFocusIndex(currentFocusIndex);
324
+ refTabs === null || refTabs === void 0 ? void 0 : refTabs.current[currentFocusIndex].focus();
325
+ }
326
+
327
+ handleSelected(currentFocusIndex);
328
+ break;
329
+ }
330
+ };
331
+
332
+ var isTabActive = function isTabActive(index) {
333
+ return activeTabIndex >= 0 ? activeTabIndex === index : innerActiveTabIndex === index;
334
+ };
335
+
336
+ var isActiveIndicatorDisabled = firstFocus === -1 || tabs && activeTabIndex >= 0 && tabs[activeTabIndex].isDisabled;
337
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
338
+ theme: colorsTheme.tabs
339
+ }, /*#__PURE__*/_react["default"].createElement(TabsContainer, {
340
+ margin: margin
341
+ }, /*#__PURE__*/_react["default"].createElement(Underline, null), /*#__PURE__*/_react["default"].createElement(Tabs, {
342
+ hasLabelAndIcon: hasLabelAndIcon,
343
+ iconPosition: iconPosition
344
+ }, /*#__PURE__*/_react["default"].createElement(ScrollIndicator, {
345
+ onClick: scrollLeft,
346
+ enabled: enabledIndicator,
347
+ disabled: !scrollLeftEnabled,
348
+ "aria-label": translatedLabels.tabs.scrollLeft,
349
+ tabIndex: scrollLeftEnabled ? tabIndex : -1,
350
+ minHeightTabs: minHeightTabs
351
+ }, arrowIcons.left), /*#__PURE__*/_react["default"].createElement(TabsContent, null, /*#__PURE__*/_react["default"].createElement(TabsContentScroll, {
352
+ translateScroll: translateScroll,
353
+ ref: refTabList,
354
+ enabled: enabledIndicator
355
+ }, /*#__PURE__*/_react["default"].createElement(TabList, {
356
+ role: "tablist",
357
+ onKeyDown: handleOnKeyDown,
358
+ minHeightTabs: minHeightTabs
359
+ }, tabs.map(function (tab, i) {
360
+ return /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
361
+ tab: tab,
362
+ key: "tab".concat(i).concat(tab.label),
363
+ active: isTabActive(i),
364
+ tabIndex: isTabActive(i) && !tab.isDisabled ? tabIndex : -1,
365
+ hasLabelAndIcon: hasLabelAndIcon,
366
+ iconPosition: iconPosition,
367
+ ref: function ref(el) {
368
+ return refTabs.current[i] = el;
369
+ },
370
+ onClick: function onClick() {
371
+ setCurrentFocusIndex(i);
372
+ setTemporalFocusIndex(i);
373
+ handleSelected(i);
374
+ },
375
+ onMouseEnter: function onMouseEnter() {
376
+ onTabHover === null || onTabHover === void 0 ? void 0 : onTabHover(i);
377
+ },
378
+ onMouseLeave: function onMouseLeave() {
379
+ onTabHover === null || onTabHover === void 0 ? void 0 : onTabHover(null);
380
+ }
381
+ });
382
+ })), /*#__PURE__*/_react["default"].createElement(ActiveIndicator, {
383
+ tabWidth: activeIndicatorWidth,
384
+ tabLeft: activeIndicatorLeft,
385
+ "aria-disabled": isActiveIndicatorDisabled
386
+ }))), /*#__PURE__*/_react["default"].createElement(ScrollIndicator, {
387
+ onClick: scrollRight,
388
+ enabled: enabledIndicator,
389
+ disabled: !scrollRightEnabled,
390
+ "aria-label": translatedLabels.tabs.scrollRight,
391
+ tabIndex: scrollRightEnabled ? tabIndex : -1,
392
+ minHeightTabs: minHeightTabs
393
+ }, arrowIcons.right))));
394
+ };
395
+
396
+ var Underline = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n left: 0;\n bottom: 0;\n width: 100%;\n height: ", ";\n background-color: ", ";\n"])), function (props) {
397
+ return props.theme.dividerThickness;
398
+ }, function (props) {
399
+ return props.theme.dividerColor;
400
+ });
401
+
402
+ var TabsContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
403
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
404
+ }, function (props) {
405
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
406
+ }, function (props) {
407
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
408
+ }, function (props) {
409
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
410
+ }, function (props) {
411
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
412
+ });
413
+
414
+ var Tabs = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: ", ";\n height: ", ";\n display: flex;\n overflow: hidden;\n background-color: ", ";\n"])), function (props) {
415
+ return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "48px" || "72px";
416
+ }, function (props) {
417
+ return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "48px" || "72px";
418
+ }, function (props) {
419
+ return props.theme.unselectedBackgroundColor;
420
+ });
421
+
422
+ var ScrollIndicator = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: ", ";\n justify-content: center;\n min-width: ", ";\n height: ", "px;\n padding: 0;\n border: none;\n background-color: #ffffff;\n font-size: 1.25rem;\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n &:focus {\n outline: ", " solid 1px;\n outline-offset: -1px;\n }\n &:active {\n background-color: ", ";\n }\n &:disabled {\n cursor: default;\n svg {\n visibility: hidden;\n }\n &:focus {\n outline: none;\n }\n &:hover,\n &:active {\n background-color: transparent !important;\n }\n }\n\n svg {\n align-self: center;\n height: 20px;\n width: 20px;\n fill: ", ";\n }\n"])), function (props) {
423
+ return props.enabled ? "flex" : "none";
424
+ }, function (props) {
425
+ return props.theme.scrollButtonsWidth;
426
+ }, function (props) {
427
+ return props.minHeightTabs - 1;
428
+ }, function (props) {
429
+ return "".concat(props.theme.hoverBackgroundColor, " !important");
430
+ }, function (props) {
431
+ return props.theme.focusOutline;
432
+ }, function (props) {
433
+ return "".concat(props.theme.pressedBackgroundColor, " !important");
434
+ }, function (props) {
435
+ return props.theme.unselectedFontColor;
436
+ });
437
+
438
+ var ActiveIndicator = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n bottom: 0;\n left: ", ";\n width: ", ";\n height: ", ";\n background-color: ", ";\n &[aria-disabled=\"true\"] {\n background-color: ", ";\n display: none;\n }\n"])), function (props) {
439
+ return "".concat(props.tabLeft, "px");
440
+ }, function (props) {
441
+ return "".concat(props.tabWidth, "px");
442
+ }, function (props) {
443
+ return props.theme.selectedUnderlineThickness;
444
+ }, function (props) {
445
+ return props.theme.selectedUnderlineColor;
446
+ }, function (props) {
447
+ return props.theme.disabledFontColor;
448
+ });
449
+
450
+ var TabsContent = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n flex: 1 1 auto;\n display: inline-block;\n position: relative;\n white-space: nowrap;\n overflow-x: scroll;\n ::-webkit-scrollbar {\n display: none;\n }\n"])));
451
+
452
+ var TabList = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n min-height: ", "px;\n"])), function (props) {
453
+ return props.minHeightTabs;
454
+ });
455
+
456
+ var TabsContentScroll = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n ", ";\n transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n"])), function (props) {
457
+ return props.enabled ? "transform: translateX(".concat(props.translateScroll, "px)") : "transform: translateX(0px)";
458
+ });
459
+
460
+ var _default = DxcTabs;
461
+ exports["default"] = _default;
@@ -0,0 +1,226 @@
1
+ import React from "react";
2
+ import DxcTabs from "./Tabs";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { HalstackProvider } from "../HalstackContext";
6
+
7
+ export default {
8
+ title: "Tabs",
9
+ component: DxcTabs,
10
+ };
11
+
12
+ const iconSVG = (
13
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" height="20" width="20" fill="currentColor">
14
+ <path d="m10 17-1.042-.938q-2.083-1.854-3.437-3.177-1.354-1.323-2.136-2.354Q2.604 9.5 2.302 8.646 2 7.792 2 6.896q0-1.854 1.271-3.125T6.396 2.5q1.021 0 1.979.438.958.437 1.625 1.229.667-.792 1.625-1.229.958-.438 1.979-.438 1.854 0 3.125 1.271T18 6.896q0 .896-.292 1.729-.291.833-1.073 1.854-.781 1.021-2.145 2.365-1.365 1.344-3.49 3.26Zm0-2.021q1.938-1.729 3.188-2.948 1.25-1.219 1.989-2.125.74-.906 1.031-1.614.292-.709.292-1.396 0-1.229-.833-2.063Q14.833 4 13.604 4q-.729 0-1.364.302-.636.302-1.094.844L10.417 6h-.834l-.729-.854q-.458-.542-1.114-.844Q7.083 4 6.396 4q-1.229 0-2.063.833-.833.834-.833 2.063 0 .687.271 1.364.271.678.989 1.573.719.896 1.98 2.125Q8 13.188 10 14.979Zm0-5.5Z" />
15
+ </svg>
16
+ );
17
+
18
+ const tabs: any = [
19
+ {
20
+ label: "Tab 1",
21
+ },
22
+ {
23
+ label: "Tab 2",
24
+ },
25
+ {
26
+ label: "Tab 3",
27
+ isDisabled: true,
28
+ },
29
+ {
30
+ label: "Tab 4",
31
+ },
32
+ {
33
+ label: "Tab 5",
34
+ },
35
+ {
36
+ label: "Tab 6",
37
+ },
38
+ {
39
+ label: "Tab 7",
40
+ },
41
+ ];
42
+
43
+ const disabledTabs: any = [
44
+ {
45
+ label: "Tab 1",
46
+ isDisabled: true,
47
+ },
48
+ {
49
+ label: "Tab 2",
50
+ isDisabled: true,
51
+ },
52
+ {
53
+ label: "Tab 3",
54
+ isDisabled: true,
55
+ },
56
+ ];
57
+
58
+ const firstDisabledTabs: any = [
59
+ {
60
+ label: "Tab 1",
61
+ isDisabled: true,
62
+ },
63
+ {
64
+ label: "Tab 2",
65
+ isDisabled: true,
66
+ },
67
+ {
68
+ label: "Tab 3",
69
+ },
70
+ ];
71
+
72
+ const tabsNotification = tabs.map((tab, index) => ({
73
+ ...tab,
74
+ notificationNumber: (index === 0 && true) || (index === 1 && 5) || (index === 2 && 200),
75
+ }));
76
+
77
+ const tabsIcon = tabs.map((tab, index) =>
78
+ index <= tabs.length / 2
79
+ ? { ...tab, icon: "https://cdn-icons-png.flaticon.com/512/5039/5039041.png" }
80
+ : { ...tab, icon: iconSVG }
81
+ );
82
+
83
+ const tabsNotificationIcon = tabsNotification.map((tab) => ({ ...tab, icon: iconSVG }));
84
+
85
+ const opinionatedTheme = {
86
+ tabs: {
87
+ baseColor: "#5f249f",
88
+ },
89
+ };
90
+
91
+ export const Chromatic = () => (
92
+ <>
93
+ <ExampleContainer>
94
+ <Title title="Only label" theme="light" level={4} />
95
+ <DxcTabs tabs={tabs} />
96
+ </ExampleContainer>
97
+ <ExampleContainer>
98
+ <Title title="Disabled tabs" theme="light" level={4} />
99
+ <DxcTabs activeTabIndex={0} tabs={disabledTabs} />
100
+ </ExampleContainer>
101
+ <ExampleContainer>
102
+ <Title title="First two tabs disabled" theme="light" level={4} />
103
+ <DxcTabs tabs={firstDisabledTabs} />
104
+ </ExampleContainer>
105
+ <ExampleContainer pseudoState="pseudo-hover">
106
+ <Title title="Hovered tabs" theme="light" level={4} />
107
+ <DxcTabs tabs={tabs} />
108
+ </ExampleContainer>
109
+ <ExampleContainer pseudoState="pseudo-focus">
110
+ <Title title="Focused tabs" theme="light" level={4} />
111
+ <DxcTabs tabs={tabs} />
112
+ </ExampleContainer>
113
+ <ExampleContainer pseudoState="pseudo-active">
114
+ <Title title="Actived tabs" theme="light" level={4} />
115
+ <DxcTabs tabs={tabs} />
116
+ </ExampleContainer>
117
+ <ExampleContainer>
118
+ <Title title="With notification number" theme="light" level={4} />
119
+ <DxcTabs tabs={tabsNotification} />
120
+ </ExampleContainer>
121
+ <ExampleContainer>
122
+ <Title title="With icon position top" theme="light" level={4} />
123
+ <DxcTabs tabs={tabsIcon} />
124
+ </ExampleContainer>
125
+ <ExampleContainer>
126
+ <Title title="With icon position left" theme="light" level={4} />
127
+ <DxcTabs tabs={tabsIcon} iconPosition="left" />
128
+ </ExampleContainer>
129
+ <ExampleContainer>
130
+ <Title title="With icon and notification number" theme="light" level={4} />
131
+ <DxcTabs tabs={tabsNotificationIcon} />
132
+ </ExampleContainer>
133
+ <ExampleContainer>
134
+ <Title title="With icon on the left and notification number" theme="light" level={4} />
135
+ <DxcTabs tabs={tabsNotificationIcon} iconPosition="left" />
136
+ </ExampleContainer>
137
+ <Title title="Margins" theme="light" level={2} />
138
+ <ExampleContainer>
139
+ <Title title="Xxsmall margin" theme="light" level={4} />
140
+ <DxcTabs tabs={tabs} margin="xxsmall" />
141
+ </ExampleContainer>
142
+ <ExampleContainer>
143
+ <Title title="Xsmall margin" theme="light" level={4} />
144
+ <DxcTabs tabs={tabs} margin="xsmall" />
145
+ </ExampleContainer>
146
+ <ExampleContainer>
147
+ <Title title="Small margin" theme="light" level={4} />
148
+ <DxcTabs tabs={tabs} margin="small" />
149
+ </ExampleContainer>
150
+ <ExampleContainer>
151
+ <Title title="Medium margin" theme="light" level={4} />
152
+ <DxcTabs tabs={tabs} margin="medium" />
153
+ </ExampleContainer>
154
+ <ExampleContainer>
155
+ <Title title="Large margin" theme="light" level={4} />
156
+ <DxcTabs tabs={tabs} margin="large" />
157
+ </ExampleContainer>
158
+ <ExampleContainer>
159
+ <Title title="Xlarge margin" theme="light" level={4} />
160
+ <DxcTabs tabs={tabs} margin="xlarge" />
161
+ </ExampleContainer>
162
+ <ExampleContainer>
163
+ <Title title="Xxlarge margin" theme="light" level={4} />
164
+ <DxcTabs tabs={tabs} margin="xxlarge" />
165
+ </ExampleContainer>
166
+ <Title title="Opinionated theme" theme="light" level={2} />
167
+ <ExampleContainer>
168
+ <Title title="With icon and notification" theme="light" level={4} />
169
+ <HalstackProvider theme={opinionatedTheme}>
170
+ <DxcTabs tabs={tabsNotificationIcon} />
171
+ </HalstackProvider>
172
+ </ExampleContainer>
173
+ <ExampleContainer>
174
+ <Title title="Disabled" theme="light" level={4} />
175
+ <HalstackProvider theme={opinionatedTheme}>
176
+ <DxcTabs activeTabIndex={0} tabs={disabledTabs} />
177
+ </HalstackProvider>
178
+ </ExampleContainer>
179
+ <ExampleContainer pseudoState="pseudo-hover">
180
+ <Title title="Hovered" theme="light" level={4} />
181
+ <HalstackProvider theme={opinionatedTheme}>
182
+ <DxcTabs tabs={tabs} />
183
+ </HalstackProvider>
184
+ </ExampleContainer>
185
+ <ExampleContainer pseudoState="pseudo-focus">
186
+ <Title title="Focused" theme="light" level={4} />
187
+ <HalstackProvider theme={opinionatedTheme}>
188
+ <DxcTabs tabs={tabs} />
189
+ </HalstackProvider>
190
+ </ExampleContainer>
191
+ <ExampleContainer pseudoState="pseudo-active">
192
+ <Title title="Actived" theme="light" level={4} />
193
+ <HalstackProvider theme={opinionatedTheme}>
194
+ <DxcTabs tabs={tabs} />
195
+ </HalstackProvider>
196
+ </ExampleContainer>
197
+ </>
198
+ );
199
+
200
+ export const ScrollableTabs = () => (
201
+ <>
202
+ <ExampleContainer>
203
+ <Title title="Only label" theme="light" level={4} />
204
+ <DxcTabs tabs={tabs} />
205
+ </ExampleContainer>
206
+ <ExampleContainer pseudoState="pseudo-hover">
207
+ <Title title="Hovered tabs" theme="light" level={4} />
208
+ <DxcTabs tabs={tabs} />
209
+ </ExampleContainer>
210
+ <ExampleContainer pseudoState="pseudo-focus">
211
+ <Title title="Focused tabs" theme="light" level={4} />
212
+ <DxcTabs tabs={tabs} />
213
+ </ExampleContainer>
214
+ <ExampleContainer pseudoState="pseudo-active">
215
+ <Title title="Actived tabs" theme="light" level={4} />
216
+ <DxcTabs tabs={tabs} />
217
+ </ExampleContainer>
218
+ </>
219
+ );
220
+
221
+ ScrollableTabs.parameters = {
222
+ viewport: {
223
+ defaultViewport: "iphonex",
224
+ },
225
+ chromatic: { viewports: [375], delay: 5000 },
226
+ };