@dxc-technology/halstack-react 4.0.0 → 6.0.0

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 (354) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +7 -6
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +295 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +35 -162
  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 +68 -85
  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/alert/Alert.js +43 -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 +15 -17
  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 +341 -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 +36 -76
  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/bulleted-list/BulletedList.d.ts +7 -0
  39. package/bulleted-list/BulletedList.js +123 -0
  40. package/bulleted-list/BulletedList.stories.tsx +200 -0
  41. package/bulleted-list/types.d.ts +11 -0
  42. package/bulleted-list/types.js +5 -0
  43. package/button/Button.d.ts +4 -0
  44. package/button/Button.js +33 -97
  45. package/button/Button.stories.tsx +274 -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 +44 -137
  51. package/card/Card.stories.tsx +201 -0
  52. package/card/Card.test.js +50 -0
  53. package/card/ice-cream.jpg +0 -0
  54. package/card/types.d.ts +67 -0
  55. package/card/types.js +5 -0
  56. package/checkbox/Checkbox.d.ts +4 -0
  57. package/checkbox/Checkbox.js +52 -94
  58. package/checkbox/Checkbox.stories.tsx +188 -0
  59. package/checkbox/Checkbox.test.js +78 -0
  60. package/checkbox/types.d.ts +64 -0
  61. package/checkbox/types.js +5 -0
  62. package/chip/Chip.d.ts +4 -0
  63. package/chip/Chip.js +26 -130
  64. package/chip/Chip.stories.tsx +119 -0
  65. package/chip/Chip.test.js +56 -0
  66. package/chip/types.d.ts +45 -0
  67. package/chip/types.js +5 -0
  68. package/common/RequiredComponent.js +3 -11
  69. package/common/variables.js +301 -373
  70. package/date-input/DateInput.d.ts +4 -0
  71. package/date-input/DateInput.js +80 -108
  72. package/date-input/DateInput.stories.tsx +138 -0
  73. package/date-input/DateInput.test.js +479 -0
  74. package/date-input/types.d.ts +107 -0
  75. package/date-input/types.js +5 -0
  76. package/dialog/Dialog.d.ts +4 -0
  77. package/dialog/Dialog.js +25 -105
  78. package/dialog/Dialog.stories.tsx +212 -0
  79. package/dialog/Dialog.test.js +40 -0
  80. package/dialog/types.d.ts +43 -0
  81. package/dialog/types.js +5 -0
  82. package/dropdown/Dropdown.d.ts +4 -0
  83. package/dropdown/Dropdown.js +54 -207
  84. package/dropdown/Dropdown.stories.tsx +249 -0
  85. package/dropdown/Dropdown.test.js +189 -0
  86. package/dropdown/types.d.ts +80 -0
  87. package/dropdown/types.js +5 -0
  88. package/file-input/FileInput.d.ts +4 -0
  89. package/file-input/FileInput.js +200 -251
  90. package/file-input/FileInput.stories.tsx +507 -0
  91. package/file-input/FileInput.test.js +457 -0
  92. package/file-input/FileItem.d.ts +14 -0
  93. package/file-input/FileItem.js +44 -145
  94. package/file-input/types.d.ts +112 -0
  95. package/file-input/types.js +5 -0
  96. package/flex/Flex.d.ts +4 -0
  97. package/flex/Flex.js +57 -0
  98. package/flex/Flex.stories.tsx +103 -0
  99. package/flex/types.d.ts +21 -0
  100. package/flex/types.js +5 -0
  101. package/footer/Footer.d.ts +4 -0
  102. package/footer/Footer.js +50 -286
  103. package/footer/Footer.stories.tsx +130 -0
  104. package/footer/Footer.test.js +109 -0
  105. package/footer/Icons.d.ts +2 -0
  106. package/footer/Icons.js +16 -16
  107. package/footer/types.d.ts +65 -0
  108. package/footer/types.js +5 -0
  109. package/header/Header.d.ts +7 -0
  110. package/header/Header.js +82 -249
  111. package/header/Header.stories.tsx +172 -0
  112. package/header/Header.test.js +79 -0
  113. package/header/Icons.d.ts +2 -0
  114. package/header/Icons.js +7 -32
  115. package/header/types.d.ts +47 -0
  116. package/header/types.js +5 -0
  117. package/heading/Heading.d.ts +4 -0
  118. package/heading/Heading.js +25 -96
  119. package/heading/Heading.stories.tsx +54 -0
  120. package/heading/Heading.test.js +186 -0
  121. package/heading/types.d.ts +33 -0
  122. package/heading/types.js +5 -0
  123. package/inset/Inset.d.ts +3 -0
  124. package/inset/Inset.js +51 -0
  125. package/inset/Inset.stories.tsx +229 -0
  126. package/inset/types.d.ts +37 -0
  127. package/inset/types.js +5 -0
  128. package/layout/ApplicationLayout.d.ts +20 -0
  129. package/layout/ApplicationLayout.js +76 -232
  130. package/layout/ApplicationLayout.stories.tsx +161 -0
  131. package/layout/Icons.d.ts +5 -0
  132. package/layout/Icons.js +19 -8
  133. package/layout/SidenavContext.d.ts +5 -0
  134. package/layout/SidenavContext.js +19 -0
  135. package/layout/types.d.ts +42 -0
  136. package/layout/types.js +5 -0
  137. package/link/Link.d.ts +4 -0
  138. package/link/Link.js +64 -165
  139. package/link/Link.stories.tsx +186 -0
  140. package/link/Link.test.js +83 -0
  141. package/link/types.d.ts +54 -0
  142. package/link/types.js +5 -0
  143. package/main.d.ts +44 -40
  144. package/main.js +114 -104
  145. package/number-input/NumberInput.d.ts +4 -0
  146. package/number-input/NumberInput.js +21 -81
  147. package/number-input/NumberInput.stories.tsx +115 -0
  148. package/number-input/NumberInput.test.js +506 -0
  149. package/number-input/NumberInputContext.d.ts +4 -0
  150. package/number-input/NumberInputContext.js +5 -2
  151. package/number-input/numberInputContextTypes.d.ts +19 -0
  152. package/number-input/numberInputContextTypes.js +5 -0
  153. package/number-input/types.d.ts +124 -0
  154. package/number-input/types.js +5 -0
  155. package/package.json +23 -16
  156. package/paginator/Icons.js +9 -9
  157. package/paginator/Paginator.d.ts +4 -0
  158. package/paginator/Paginator.js +32 -166
  159. package/paginator/Paginator.stories.tsx +63 -0
  160. package/paginator/Paginator.test.js +308 -0
  161. package/paginator/types.d.ts +38 -0
  162. package/paginator/types.js +5 -0
  163. package/paragraph/Paragraph.d.ts +6 -0
  164. package/paragraph/Paragraph.js +38 -0
  165. package/paragraph/Paragraph.stories.tsx +44 -0
  166. package/password-input/PasswordInput.d.ts +4 -0
  167. package/password-input/PasswordInput.js +40 -77
  168. package/password-input/PasswordInput.stories.tsx +131 -0
  169. package/password-input/PasswordInput.test.js +180 -0
  170. package/password-input/types.d.ts +110 -0
  171. package/password-input/types.js +5 -0
  172. package/progress-bar/ProgressBar.d.ts +4 -0
  173. package/progress-bar/ProgressBar.js +23 -95
  174. package/progress-bar/ProgressBar.stories.jsx +58 -0
  175. package/progress-bar/ProgressBar.test.js +65 -0
  176. package/progress-bar/types.d.ts +37 -0
  177. package/progress-bar/types.js +5 -0
  178. package/quick-nav/QuickNav.d.ts +4 -0
  179. package/quick-nav/QuickNav.js +118 -0
  180. package/quick-nav/QuickNav.stories.tsx +264 -0
  181. package/quick-nav/types.d.ts +21 -0
  182. package/quick-nav/types.js +5 -0
  183. package/radio-group/Radio.d.ts +4 -0
  184. package/radio-group/Radio.js +141 -0
  185. package/radio-group/RadioGroup.d.ts +4 -0
  186. package/radio-group/RadioGroup.js +283 -0
  187. package/radio-group/RadioGroup.stories.tsx +100 -0
  188. package/radio-group/RadioGroup.test.js +695 -0
  189. package/radio-group/types.d.ts +114 -0
  190. package/radio-group/types.js +5 -0
  191. package/resultsetTable/ResultsetTable.d.ts +4 -0
  192. package/resultsetTable/ResultsetTable.js +43 -147
  193. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  194. package/resultsetTable/ResultsetTable.test.js +348 -0
  195. package/resultsetTable/types.d.ts +67 -0
  196. package/resultsetTable/types.js +5 -0
  197. package/select/Icons.d.ts +10 -0
  198. package/select/Icons.js +93 -0
  199. package/select/Listbox.d.ts +4 -0
  200. package/select/Listbox.js +175 -0
  201. package/select/Option.d.ts +4 -0
  202. package/select/Option.js +110 -0
  203. package/select/Select.d.ts +4 -0
  204. package/select/Select.js +231 -709
  205. package/select/Select.stories.tsx +626 -0
  206. package/select/Select.test.js +2162 -0
  207. package/select/types.d.ts +212 -0
  208. package/select/types.js +5 -0
  209. package/sidenav/Sidenav.d.ts +10 -0
  210. package/sidenav/Sidenav.js +182 -105
  211. package/sidenav/Sidenav.stories.tsx +180 -0
  212. package/sidenav/Sidenav.test.js +44 -0
  213. package/sidenav/types.d.ts +73 -0
  214. package/sidenav/types.js +5 -0
  215. package/slider/Slider.d.ts +4 -0
  216. package/slider/Slider.js +76 -162
  217. package/slider/Slider.stories.tsx +177 -0
  218. package/slider/Slider.test.js +150 -0
  219. package/slider/types.d.ts +82 -0
  220. package/slider/types.js +5 -0
  221. package/spinner/Spinner.d.ts +4 -0
  222. package/spinner/Spinner.js +46 -177
  223. package/spinner/Spinner.stories.jsx +103 -0
  224. package/spinner/Spinner.test.js +64 -0
  225. package/spinner/types.d.ts +32 -0
  226. package/spinner/types.js +5 -0
  227. package/switch/Switch.d.ts +4 -0
  228. package/switch/Switch.js +55 -82
  229. package/switch/Switch.stories.tsx +160 -0
  230. package/switch/Switch.test.js +98 -0
  231. package/switch/types.d.ts +62 -0
  232. package/switch/types.js +5 -0
  233. package/table/Table.d.ts +4 -0
  234. package/table/Table.js +12 -26
  235. package/table/Table.stories.jsx +277 -0
  236. package/table/Table.test.js +26 -0
  237. package/table/types.d.ts +21 -0
  238. package/table/types.js +5 -0
  239. package/tabs/Tabs.d.ts +4 -0
  240. package/tabs/Tabs.js +43 -175
  241. package/tabs/Tabs.stories.tsx +112 -0
  242. package/tabs/Tabs.test.js +140 -0
  243. package/tabs/types.d.ts +82 -0
  244. package/tabs/types.js +5 -0
  245. package/tabs-nav/NavTabs.d.ts +8 -0
  246. package/tabs-nav/NavTabs.js +125 -0
  247. package/tabs-nav/NavTabs.stories.tsx +170 -0
  248. package/tabs-nav/NavTabs.test.js +82 -0
  249. package/tabs-nav/Tab.d.ts +4 -0
  250. package/tabs-nav/Tab.js +132 -0
  251. package/tabs-nav/types.d.ts +53 -0
  252. package/tabs-nav/types.js +5 -0
  253. package/tag/Tag.d.ts +4 -0
  254. package/tag/Tag.js +44 -143
  255. package/tag/Tag.stories.tsx +142 -0
  256. package/tag/Tag.test.js +60 -0
  257. package/tag/types.d.ts +69 -0
  258. package/tag/types.js +5 -0
  259. package/text-input/Suggestion.d.ts +4 -0
  260. package/text-input/Suggestion.js +55 -0
  261. package/text-input/TextInput.d.ts +4 -0
  262. package/text-input/TextInput.js +169 -391
  263. package/text-input/TextInput.stories.tsx +474 -0
  264. package/text-input/TextInput.test.js +1712 -0
  265. package/text-input/types.d.ts +178 -0
  266. package/text-input/types.js +5 -0
  267. package/textarea/Textarea.d.ts +4 -0
  268. package/textarea/Textarea.js +50 -142
  269. package/textarea/Textarea.stories.jsx +157 -0
  270. package/textarea/Textarea.test.js +437 -0
  271. package/textarea/types.d.ts +137 -0
  272. package/textarea/types.js +5 -0
  273. package/toggle-group/ToggleGroup.d.ts +4 -0
  274. package/toggle-group/ToggleGroup.js +36 -148
  275. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  276. package/toggle-group/ToggleGroup.test.js +156 -0
  277. package/toggle-group/types.d.ts +105 -0
  278. package/toggle-group/types.js +5 -0
  279. package/typography/Typography.d.ts +4 -0
  280. package/typography/Typography.js +131 -0
  281. package/typography/Typography.stories.tsx +198 -0
  282. package/typography/types.d.ts +18 -0
  283. package/typography/types.js +5 -0
  284. package/useTheme.d.ts +2 -0
  285. package/useTheme.js +2 -2
  286. package/useTranslatedLabels.d.ts +2 -0
  287. package/useTranslatedLabels.js +20 -0
  288. package/wizard/Wizard.d.ts +4 -0
  289. package/wizard/Wizard.js +132 -252
  290. package/wizard/Wizard.stories.tsx +233 -0
  291. package/wizard/Wizard.test.js +141 -0
  292. package/wizard/types.d.ts +65 -0
  293. package/wizard/types.js +5 -0
  294. package/ThemeContext.js +0 -250
  295. package/V3Select/V3Select.js +0 -549
  296. package/V3Select/index.d.ts +0 -27
  297. package/V3Textarea/V3Textarea.js +0 -264
  298. package/V3Textarea/index.d.ts +0 -27
  299. package/accordion/index.d.ts +0 -28
  300. package/accordion-group/index.d.ts +0 -16
  301. package/alert/index.d.ts +0 -51
  302. package/box/index.d.ts +0 -25
  303. package/button/Button.stories.js +0 -27
  304. package/button/index.d.ts +0 -24
  305. package/card/index.d.ts +0 -22
  306. package/checkbox/index.d.ts +0 -24
  307. package/chip/index.d.ts +0 -22
  308. package/date/Date.js +0 -379
  309. package/date/index.d.ts +0 -27
  310. package/date-input/index.d.ts +0 -95
  311. package/dialog/index.d.ts +0 -18
  312. package/dropdown/index.d.ts +0 -26
  313. package/file-input/index.d.ts +0 -81
  314. package/footer/index.d.ts +0 -25
  315. package/header/index.d.ts +0 -25
  316. package/heading/index.d.ts +0 -17
  317. package/input-text/Icons.js +0 -22
  318. package/input-text/InputText.js +0 -705
  319. package/input-text/index.d.ts +0 -36
  320. package/link/index.d.ts +0 -23
  321. package/number-input/index.d.ts +0 -113
  322. package/paginator/index.d.ts +0 -20
  323. package/password-input/index.d.ts +0 -94
  324. package/progress-bar/index.d.ts +0 -18
  325. package/radio/Radio.js +0 -209
  326. package/radio/index.d.ts +0 -23
  327. package/resultsetTable/index.d.ts +0 -19
  328. package/select/index.d.ts +0 -131
  329. package/sidenav/index.d.ts +0 -13
  330. package/slider/index.d.ts +0 -29
  331. package/spinner/index.d.ts +0 -17
  332. package/switch/index.d.ts +0 -24
  333. package/table/index.d.ts +0 -13
  334. package/tabs/index.d.ts +0 -19
  335. package/tag/index.d.ts +0 -24
  336. package/text-input/index.d.ts +0 -135
  337. package/textarea/index.d.ts +0 -117
  338. package/toggle/Toggle.js +0 -220
  339. package/toggle/index.d.ts +0 -21
  340. package/toggle-group/index.d.ts +0 -21
  341. package/upload/Upload.js +0 -205
  342. package/upload/buttons-upload/ButtonsUpload.js +0 -135
  343. package/upload/buttons-upload/Icons.js +0 -40
  344. package/upload/dragAndDropArea/DragAndDropArea.js +0 -329
  345. package/upload/dragAndDropArea/Icons.js +0 -39
  346. package/upload/file-upload/FileToUpload.js +0 -189
  347. package/upload/file-upload/Icons.js +0 -66
  348. package/upload/files-upload/FilesToUpload.js +0 -123
  349. package/upload/index.d.ts +0 -15
  350. package/upload/transaction/Icons.js +0 -160
  351. package/upload/transaction/Transaction.js +0 -148
  352. package/upload/transactions/Transactions.js +0 -138
  353. package/wizard/Icons.js +0 -65
  354. package/wizard/index.d.ts +0 -18
package/tabs/Tabs.js CHANGED
@@ -1,25 +1,21 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
13
 
14
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
15
 
16
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
-
18
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
19
-
20
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
21
17
 
22
- var _react = _interopRequireDefault(require("react"));
18
+ var _react = _interopRequireWildcard(require("react"));
23
19
 
24
20
  var _Tabs = _interopRequireDefault(require("@material-ui/core/Tabs"));
25
21
 
@@ -27,120 +23,34 @@ var _Tab = _interopRequireDefault(require("@material-ui/core/Tab"));
27
23
 
28
24
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
29
25
 
30
- var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
26
  var _variables = require("../common/variables.js");
33
27
 
34
28
  var _Badge = _interopRequireDefault(require("../badge/Badge"));
35
29
 
36
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
30
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
37
31
 
38
- function _templateObject9() {
39
- var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 22px;\n max-width: 22px;\n margin-bottom: ", ";\n margin-right: ", ";\n overflow: hidden;\n display: flex;\n align-items: center;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"]);
40
-
41
- _templateObject9 = function _templateObject9() {
42
- return data;
43
- };
44
-
45
- return data;
46
- }
47
-
48
- function _templateObject8() {
49
- var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 22px;\n max-width: 22px;\n"]);
50
-
51
- _templateObject8 = function _templateObject8() {
52
- return data;
53
- };
54
-
55
- return data;
56
- }
57
-
58
- function _templateObject7() {
59
- var data = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n .MuiTabs-root {\n background: white;\n min-height: ", ";\n\n .MuiTabs-scroller {\n .MuiTabs-flexContainer + span {\n z-index: 4;\n }\n }\n .MuiTab-root {\n text-transform: ", " !important;\n }\n .MuiButtonBase-root {\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n\n padding: ", ";\n height: ", ";\n min-width: 90px;\n max-width: 360px;\n min-height: ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n font-weight: ", ";\n }\n &:not(.Mui-selected) {\n background-color: ", ";\n color: ", ";\n svg {\n color: ", ";\n }\n }\n &.Mui-selected {\n background-color: ", ";\n color: ", ";\n svg {\n color: ", ";\n }\n }\n &.Mui-disabled {\n cursor: not-allowed !important;\n pointer-events: all;\n color: ", ";\n font-style: ", ";\n svg {\n color: ", ";\n }\n }\n &:focus {\n outline: ", " auto 1px;\n }\n }\n .MuiTabs-indicator {\n background-color: ", ";\n height: ", ";\n }\n .MuiTabs-scrollButtons {\n min-width: ", ";\n width: ", ";\n padding: 0;\n }\n @media (max-width: 599.95px) {\n .MuiTabs-scrollButtonsDesktop {\n display: flex;\n }\n }\n }\n"]);
60
-
61
- _templateObject7 = function _templateObject7() {
62
- return data;
63
- };
64
-
65
- return data;
66
- }
67
-
68
- function _templateObject6() {
69
- var data = (0, _taggedTemplateLiteral2["default"])(["\n left: 0px;\n bottom: 0;\n width: 100%;\n height: ", ";\n position: absolute;\n background-color: ", ";\n"]);
70
-
71
- _templateObject6 = function _templateObject6() {
72
- return data;
73
- };
74
-
75
- return data;
76
- }
77
-
78
- function _templateObject5() {
79
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n margin-left: ", ";\n margin-right: ", ";\n"]);
80
-
81
- _templateObject5 = function _templateObject5() {
82
- return data;
83
- };
32
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
84
33
 
85
- return data;
86
- }
34
+ 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); }
87
35
 
88
- function _templateObject4() {
89
- var data = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n right: 0;\n top: ", ";\n width: 23px;\n height: 17px;\n"]);
90
-
91
- _templateObject4 = function _templateObject4() {
92
- return data;
93
- };
94
-
95
- return data;
96
- }
97
-
98
- function _templateObject3() {
99
- var data = (0, _taggedTemplateLiteral2["default"])([""]);
100
-
101
- _templateObject3 = function _templateObject3() {
102
- return data;
103
- };
104
-
105
- return data;
106
- }
107
-
108
- function _templateObject2() {
109
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n align-items: center;\n"]);
110
-
111
- _templateObject2 = function _templateObject2() {
112
- return data;
113
- };
114
-
115
- return data;
116
- }
117
-
118
- function _templateObject() {
119
- var data = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n"]);
120
-
121
- _templateObject = function _templateObject() {
122
- return data;
123
- };
124
-
125
- return data;
126
- }
36
+ 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; }
127
37
 
128
38
  var DxcTabs = function DxcTabs(_ref) {
129
- var activeTabIndex = _ref.activeTabIndex,
130
- _ref$tabs = _ref.tabs,
131
- tabs = _ref$tabs === void 0 ? [] : _ref$tabs,
39
+ var defaultActiveTabIndex = _ref.defaultActiveTabIndex,
40
+ activeTabIndex = _ref.activeTabIndex,
41
+ tabs = _ref.tabs,
132
42
  onTabClick = _ref.onTabClick,
133
43
  onTabHover = _ref.onTabHover,
134
44
  margin = _ref.margin,
135
45
  _ref$iconPosition = _ref.iconPosition,
136
- iconPosition = _ref$iconPosition === void 0 ? "left" : _ref$iconPosition,
46
+ iconPosition = _ref$iconPosition === void 0 ? "top" : _ref$iconPosition,
137
47
  _ref$tabIndex = _ref.tabIndex,
138
48
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
139
49
 
140
- var _React$useState = _react["default"].useState(0),
141
- _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
142
- innerActiveTabIndex = _React$useState2[0],
143
- setInnerActiveTabIndex = _React$useState2[1];
50
+ var _useState = (0, _react.useState)(defaultActiveTabIndex !== null && defaultActiveTabIndex !== void 0 ? defaultActiveTabIndex : 0),
51
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
52
+ innerActiveTabIndex = _useState2[0],
53
+ setInnerActiveTabIndex = _useState2[1];
144
54
 
145
55
  var colorsTheme = (0, _useTheme["default"])();
146
56
  var hasLabelAndIcon = tabs && tabs.filter(function (tab) {
@@ -148,99 +58,82 @@ var DxcTabs = function DxcTabs(_ref) {
148
58
  }).length > 0;
149
59
 
150
60
  var handleChange = function handleChange(event, newValue) {
151
- if (activeTabIndex == null) {
152
- setInnerActiveTabIndex(newValue);
153
- }
154
-
155
- if (typeof onTabClick === "function") {
156
- onTabClick(newValue);
157
- }
158
- };
159
-
160
- var getTabIndex = function getTabIndex(index, disabled) {
161
- return (activeTabIndex === index || innerActiveTabIndex === index) && !disabled ? tabIndex : -1;
61
+ activeTabIndex !== null && activeTabIndex !== void 0 ? activeTabIndex : setInnerActiveTabIndex(newValue);
62
+ onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(newValue);
162
63
  };
163
64
 
164
65
  var getLabelForTab = function getLabelForTab(tab) {
165
- return _react["default"].createElement(ParentLabelSpan, null, _react["default"].createElement(MainLabelContainer, {
66
+ return /*#__PURE__*/_react["default"].createElement(ParentLabelSpan, null, /*#__PURE__*/_react["default"].createElement(MainLabelContainer, {
166
67
  hasBadge: tab.notificationNumber
167
- }, _react["default"].createElement(TabLabelContainer, {
68
+ }, /*#__PURE__*/_react["default"].createElement(TabLabelContainer, {
168
69
  hasLabelAndIcon: hasLabelAndIcon,
169
70
  iconPosition: iconPosition
170
- }, tab.icon ? _react["default"].createElement(TabIconContainer, {
71
+ }, tab.icon && /*#__PURE__*/_react["default"].createElement(TabIconContainer, {
171
72
  hasLabelAndIcon: hasLabelAndIcon,
172
73
  iconPosition: iconPosition
173
- }, (0, _typeof2["default"])(tab.icon) === "object" ? tab.icon : _react["default"].createElement(tab.icon)) : tab.iconSrc && _react["default"].createElement(TabIcon, {
174
- src: tab.iconSrc
175
- }), _react["default"].createElement(LabelTextContainer, null, tab.label))), tab.notificationNumber && tab.notificationNumber !== false && _react["default"].createElement(BadgeContainer, {
74
+ }, typeof tab.icon === "string" ? /*#__PURE__*/_react["default"].createElement(TabIcon, {
75
+ src: tab.icon
76
+ }) : tab.icon), /*#__PURE__*/_react["default"].createElement(LabelTextContainer, null, tab.label))), tab.notificationNumber && tab.notificationNumber !== false && /*#__PURE__*/_react["default"].createElement(BadgeContainer, {
176
77
  hasLabelAndIcon: hasLabelAndIcon,
177
78
  iconPosition: iconPosition
178
- }, _react["default"].createElement(_Badge["default"], {
79
+ }, /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
179
80
  notificationText: tab.notificationNumber > 99 ? "+99" : tab.notificationNumber
180
81
  })));
181
82
  };
182
83
 
183
- return _react["default"].createElement(_styledComponents.ThemeProvider, {
84
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
184
85
  theme: colorsTheme.tabs
185
- }, _react["default"].createElement(DxCTabs, {
86
+ }, /*#__PURE__*/_react["default"].createElement(DxCTabs, {
186
87
  margin: margin,
187
88
  hasLabelAndIcon: hasLabelAndIcon,
188
89
  iconPosition: iconPosition
189
- }, _react["default"].createElement(Underline, null), _react["default"].createElement(_Tabs["default"], {
190
- value: activeTabIndex != null ? activeTabIndex : innerActiveTabIndex,
90
+ }, /*#__PURE__*/_react["default"].createElement(Underline, null), /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
91
+ value: activeTabIndex !== null && activeTabIndex !== void 0 ? activeTabIndex : innerActiveTabIndex,
191
92
  onChange: handleChange,
192
93
  variant: "scrollable",
193
94
  scrollButtons: "auto"
194
95
  }, tabs.map(function (tab, i) {
195
- var tabContent = _react["default"].forwardRef(function (props, ref) {
196
- return _react["default"].createElement("div", (0, _extends2["default"])({
197
- role: "button"
198
- }, props, {
199
- ref: ref
200
- }));
201
- });
202
-
203
- return _react["default"].createElement(_Tab["default"], {
96
+ return /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
204
97
  tabIndex: (activeTabIndex === i || innerActiveTabIndex === i) && !tab.isDisabled ? tabIndex : -1,
205
98
  key: "tab".concat(i).concat(tab.label),
206
99
  label: getLabelForTab(tab),
207
100
  disabled: tab.isDisabled,
208
101
  disableRipple: true,
209
102
  onMouseEnter: function onMouseEnter() {
210
- onTabHover(i);
103
+ onTabHover === null || onTabHover === void 0 ? void 0 : onTabHover(i);
211
104
  },
212
105
  onMouseLeave: function onMouseLeave() {
213
- onTabHover(null);
106
+ onTabHover === null || onTabHover === void 0 ? void 0 : onTabHover(null);
214
107
  }
215
108
  });
216
109
  }))));
217
110
  };
218
111
 
219
- var ParentLabelSpan = _styledComponents["default"].div(_templateObject());
112
+ var ParentLabelSpan = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n"])));
220
113
 
221
- var TabLabelContainer = _styledComponents["default"].div(_templateObject2(), function (props) {
114
+ var TabLabelContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n align-items: center;\n"])), function (props) {
222
115
  return props.hasLabelAndIcon && props.iconPosition === "top" && "column" || "row";
223
116
  });
224
117
 
225
- var LabelTextContainer = _styledComponents["default"].div(_templateObject3());
118
+ var LabelTextContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])([""])));
226
119
 
227
- var BadgeContainer = _styledComponents["default"].div(_templateObject4(), function (props) {
120
+ var BadgeContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n right: 0;\n top: ", ";\n width: 23px;\n height: 17px;\n"])), function (props) {
228
121
  return props.hasLabelAndIcon && props.iconPosition === "top" && "0" || "5px";
229
122
  });
230
123
 
231
- var MainLabelContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
124
+ var MainLabelContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n margin-left: ", ";\n margin-right: ", ";\n"])), function (props) {
232
125
  return props.hasBadge && "35px" || "unset";
233
126
  }, function (props) {
234
127
  return props.hasBadge && "35px" || "unset";
235
128
  });
236
129
 
237
- var Underline = _styledComponents["default"].div(_templateObject6(), function (props) {
130
+ var Underline = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n left: 0px;\n bottom: 0;\n width: 100%;\n height: ", ";\n position: absolute;\n background-color: ", ";\n"])), function (props) {
238
131
  return props.theme.dividerThickness;
239
132
  }, function (props) {
240
133
  return props.theme.dividerColor;
241
134
  });
242
135
 
243
- var DxCTabs = _styledComponents["default"].div(_templateObject7(), function (props) {
136
+ var DxCTabs = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n .MuiTabs-root {\n background: white;\n min-height: ", ";\n\n .MuiTabs-scroller {\n .MuiTabs-flexContainer + span {\n z-index: 4;\n }\n }\n .MuiTab-root {\n text-transform: ", " !important;\n }\n .MuiButtonBase-root {\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n\n padding: ", ";\n height: ", ";\n min-width: 90px;\n max-width: 360px;\n min-height: ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n font-weight: ", ";\n }\n &:not(.Mui-selected) {\n background-color: ", ";\n color: ", ";\n svg {\n color: ", ";\n }\n }\n &.Mui-selected {\n background-color: ", ";\n color: ", ";\n svg {\n color: ", ";\n }\n }\n &.Mui-disabled {\n background-color: ", " !important;\n cursor: not-allowed !important;\n pointer-events: all;\n color: ", ";\n font-style: ", ";\n svg {\n color: ", ";\n }\n outline: none !important;\n }\n &:focus {\n outline: ", " auto 1px;\n }\n }\n .MuiTabs-indicator {\n background-color: ", ";\n height: ", ";\n }\n .MuiTabs-scrollButtons {\n min-width: ", ";\n width: ", ";\n padding: 0;\n }\n @media (max-width: 599.95px) {\n .MuiTabs-scrollButtonsDesktop {\n display: flex;\n }\n }\n }\n"])), function (props) {
244
137
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
245
138
  }, function (props) {
246
139
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -286,6 +179,8 @@ var DxCTabs = _styledComponents["default"].div(_templateObject7(), function (pro
286
179
  return props.theme.selectedFontColor;
287
180
  }, function (props) {
288
181
  return props.theme.selectedIconColor;
182
+ }, function (props) {
183
+ return props.theme.unselectedBackgroundColor;
289
184
  }, function (props) {
290
185
  return props.theme.disabledFontColor;
291
186
  }, function (props) {
@@ -304,40 +199,13 @@ var DxCTabs = _styledComponents["default"].div(_templateObject7(), function (pro
304
199
  return props.theme.scrollButtonsWidth;
305
200
  });
306
201
 
307
- var TabIcon = _styledComponents["default"].img(_templateObject8());
202
+ var TabIcon = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])([""])));
308
203
 
309
- var TabIconContainer = _styledComponents["default"].div(_templateObject9(), function (props) {
204
+ var TabIconContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 22px;\n max-width: 22px;\n margin-bottom: ", ";\n margin-right: ", ";\n overflow: hidden;\n display: flex;\n align-items: center;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
310
205
  return props.hasLabelAndIcon && props.iconPosition === "top" && "8px" || "";
311
206
  }, function (props) {
312
207
  return props.hasLabelAndIcon && props.iconPosition === "left" && "12px" || "";
313
208
  });
314
209
 
315
- DxcTabs.propTypes = {
316
- activeTabIndex: _propTypes["default"].number,
317
- onTabClick: _propTypes["default"].func,
318
- onTabHover: _propTypes["default"].func,
319
- tabs: _propTypes["default"].arrayOf(_propTypes["default"].shape({
320
- label: _propTypes["default"].string,
321
- icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
322
- iconSrc: _propTypes["default"].string,
323
- isDisabled: _propTypes["default"].bool,
324
- notificationNumber: _propTypes["default"].oneOfType([_propTypes["default"].bool, _propTypes["default"].string, _propTypes["default"].number])
325
- })),
326
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
327
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
328
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
329
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
330
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
331
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
332
- iconPosition: _propTypes["default"].oneOf(["top", "left"]),
333
- tabIndex: _propTypes["default"].number
334
- };
335
- DxcTabs.defaultProps = {
336
- activeTabIndex: null,
337
- tabs: [],
338
- onTabClick: function onTabClick() {},
339
- onTabHover: function onTabHover() {},
340
- iconPosition: "top"
341
- };
342
210
  var _default = DxcTabs;
343
211
  exports["default"] = _default;
@@ -0,0 +1,112 @@
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
+
6
+ export default {
7
+ title: "Tabs",
8
+ component: DxcTabs,
9
+ };
10
+
11
+ const iconSVG = (
12
+ <svg viewBox="0 0 24 24" fill="currentColor">
13
+ <path d="M0 0h24v24H0z" fill="none" />
14
+ <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" />
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
+
34
+ const tabsNotification = tabs.map((tab, index) => ({
35
+ ...tab,
36
+ notificationNumber: (index === 0 && true) || (index === 1 && 5) || (index === 2 && 200),
37
+ }));
38
+
39
+ const tabsIcon = tabs.map((tab) => ({ ...tab, icon: iconSVG }));
40
+
41
+ const tabsNotificationIcon = tabsNotification.map((tab) => ({ ...tab, icon: iconSVG }));
42
+
43
+ export const Chromatic = () => (
44
+ <>
45
+ <ExampleContainer>
46
+ <Title title="Only label" theme="light" level={4} />
47
+ <DxcTabs tabs={tabs} />
48
+ </ExampleContainer>
49
+ <ExampleContainer pseudoState="pseudo-hover">
50
+ <Title title="Hovered tabs" theme="light" level={4} />
51
+ <DxcTabs tabs={tabs} />
52
+ </ExampleContainer>
53
+ <ExampleContainer pseudoState="pseudo-focus">
54
+ <Title title="Focused tabs" theme="light" level={4} />
55
+ <DxcTabs tabs={tabs} />
56
+ </ExampleContainer>
57
+ <ExampleContainer pseudoState="pseudo-active">
58
+ <Title title="Actived tabs" theme="light" level={4} />
59
+ <DxcTabs tabs={tabs} />
60
+ </ExampleContainer>
61
+ <ExampleContainer>
62
+ <Title title="With notification number" theme="light" level={4} />
63
+ <DxcTabs tabs={tabsNotification} />
64
+ </ExampleContainer>
65
+ <ExampleContainer>
66
+ <Title title="With icon position top" theme="light" level={4} />
67
+ <DxcTabs tabs={tabsIcon} />
68
+ </ExampleContainer>
69
+ <ExampleContainer>
70
+ <Title title="With icon position left" theme="light" level={4} />
71
+ <DxcTabs tabs={tabsIcon} iconPosition="left" />
72
+ </ExampleContainer>
73
+ <ExampleContainer>
74
+ <Title title="With icon and notification number" theme="light" level={4} />
75
+ <DxcTabs tabs={tabsNotificationIcon} />
76
+ </ExampleContainer>
77
+ <ExampleContainer>
78
+ <Title title="With icon on the left and notification number" theme="light" level={4} />
79
+ <DxcTabs tabs={tabsNotificationIcon} iconPosition="left" />
80
+ </ExampleContainer>
81
+ <Title title="Margins" theme="light" level={2} />
82
+ <ExampleContainer>
83
+ <Title title="Xxsmall margin" theme="light" level={4} />
84
+ <DxcTabs tabs={tabs} margin="xxsmall" />
85
+ </ExampleContainer>
86
+ <ExampleContainer>
87
+ <Title title="Xsmall margin" theme="light" level={4} />
88
+ <DxcTabs tabs={tabs} margin="xsmall" />
89
+ </ExampleContainer>
90
+ <ExampleContainer>
91
+ <Title title="Small margin" theme="light" level={4} />
92
+ <DxcTabs tabs={tabs} margin="small" />
93
+ </ExampleContainer>
94
+ <ExampleContainer>
95
+ <Title title="Medium margin" theme="light" level={4} />
96
+ <DxcTabs tabs={tabs} margin="medium" />
97
+ </ExampleContainer>
98
+ <ExampleContainer>
99
+ <Title title="Large margin" theme="light" level={4} />
100
+ <DxcTabs tabs={tabs} margin="large" />
101
+ </ExampleContainer>
102
+ <ExampleContainer>
103
+ <Title title="Xlarge margin" theme="light" level={4} />
104
+ <DxcTabs tabs={tabs} margin="xlarge" />
105
+ </ExampleContainer>
106
+ <ExampleContainer>
107
+ <Title title="Xxlarge margin" theme="light" level={4} />
108
+ <DxcTabs tabs={tabs} margin="xxlarge" />
109
+ <hr />
110
+ </ExampleContainer>
111
+ </>
112
+ );
@@ -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
+ });