@zohodesk/components 1.2.19 → 1.2.21

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 (335) hide show
  1. package/.cli/PropUnificationExcludeFilesArray.js +231 -0
  2. package/.cli/propValidation_report.html +24 -2
  3. package/PropValidationExcludeFilesArray.js +1 -0
  4. package/README.md +10 -0
  5. package/es/Avatar/Avatar.js +2 -1
  6. package/es/AvatarTeam/__tests__/__snapshots__/AvatarTeam.spec.js.snap +1 -0
  7. package/es/DateTime/DateTime.module.css +2 -2
  8. package/es/DateTime/YearView.module.css +1 -1
  9. package/es/Label/Label.module.css +6 -1
  10. package/es/ListItem/ListContainer.js +3 -2
  11. package/es/ListItem/ListItem.module.css +1 -1
  12. package/es/MultiSelect/Suggestions.js +2 -1
  13. package/es/Ribbon/Ribbon.module.css +49 -3
  14. package/es/Select/Select.js +13 -4
  15. package/es/Select/Select.module.css +27 -1
  16. package/es/Switch/Switch.js +2 -2
  17. package/es/Switch/__tests__/__snapshots__/Switch.spec.js.snap +22 -22
  18. package/es/Tab/Tab.module.css +3 -3
  19. package/es/TextBox/TextBox.js +8 -1
  20. package/es/TextBox/TextBox.module.css +45 -6
  21. package/es/TextBox/props/defaultProps.js +1 -0
  22. package/es/TextBox/props/propTypes.js +1 -0
  23. package/es/TextBoxIcon/TextBoxIcon.js +2 -0
  24. package/es/TextBoxIcon/props/defaultProps.js +1 -0
  25. package/es/TextBoxIcon/props/propTypes.js +1 -0
  26. package/es/Textarea/Textarea.module.css +4 -3
  27. package/es/Tooltip/Tooltip.js +4 -2
  28. package/es/Tooltip/Tooltip.module.css +1 -1
  29. package/es/v1/Accordion/Accordion.js +2 -2
  30. package/es/v1/Accordion/AccordionItem.js +2 -2
  31. package/es/v1/Accordion/props/defaultProps.js +12 -0
  32. package/es/v1/Accordion/props/propTypes.js +33 -0
  33. package/es/v1/Animation/Animation.js +2 -2
  34. package/es/v1/Animation/props/defaultProps.js +7 -0
  35. package/es/v1/Animation/props/propTypes.js +12 -0
  36. package/es/v1/AppContainer/AppContainer.js +2 -2
  37. package/es/v1/AppContainer/props/defaultProps.js +10 -0
  38. package/es/v1/AppContainer/props/propTypes.js +17 -0
  39. package/es/v1/Avatar/Avatar.js +4 -3
  40. package/es/v1/Avatar/props/defaultProps.js +17 -0
  41. package/es/v1/Avatar/props/propTypes.js +26 -0
  42. package/es/v1/AvatarTeam/AvatarTeam.js +3 -3
  43. package/es/v1/AvatarTeam/props/defaultProps.js +17 -0
  44. package/es/v1/AvatarTeam/props/propTypes.js +27 -0
  45. package/es/v1/Button/Button.js +2 -2
  46. package/es/v1/Button/props/defaultProps.js +18 -0
  47. package/es/v1/Button/props/propTypes.js +27 -0
  48. package/es/v1/Buttongroup/Buttongroup.js +2 -2
  49. package/es/v1/Buttongroup/props/defaultProps.js +6 -0
  50. package/es/v1/Buttongroup/props/propTypes.js +9 -0
  51. package/es/v1/Card/Card.js +3 -3
  52. package/es/v1/Card/props/defaultProps.js +25 -0
  53. package/es/v1/Card/props/propTypes.js +48 -0
  54. package/es/v1/CheckBox/CheckBox.js +5 -5
  55. package/es/v1/CheckBox/props/defaultProps.js +18 -0
  56. package/es/v1/CheckBox/props/propTypes.js +40 -0
  57. package/es/v1/DropBox/DropBox.js +2 -2
  58. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +2 -2
  59. package/es/v1/DropBox/DropBoxElement/props/defaultProps.js +18 -0
  60. package/es/v1/DropBox/DropBoxElement/props/propTypes.js +51 -0
  61. package/es/v1/DropBox/props/defaultProps.js +14 -0
  62. package/es/v1/DropBox/props/propTypes.js +16 -0
  63. package/es/v1/DropDown/DropDown.js +2 -2
  64. package/es/v1/DropDown/DropDownHeading.js +2 -2
  65. package/es/v1/DropDown/DropDownItem.js +2 -2
  66. package/es/v1/DropDown/DropDownSearch.js +2 -2
  67. package/es/v1/DropDown/DropDownSeparator.js +1 -1
  68. package/es/v1/DropDown/props/defaultProps.js +20 -0
  69. package/es/v1/DropDown/props/propTypes.js +65 -0
  70. package/es/v1/Heading/Heading.js +2 -2
  71. package/es/v1/Heading/props/defaultProps.js +5 -0
  72. package/es/v1/Heading/props/propTypes.js +11 -0
  73. package/es/v1/Label/Label.js +2 -2
  74. package/es/v1/Label/props/defaultProps.js +11 -0
  75. package/es/v1/Label/props/propTypes.js +19 -0
  76. package/es/v1/Layout/Box.js +2 -2
  77. package/es/v1/Layout/Container.js +2 -2
  78. package/es/v1/Layout/props/defaultProps.js +16 -0
  79. package/es/v1/Layout/props/propTypes.js +46 -0
  80. package/es/v1/ListItem/ListContainer.js +5 -4
  81. package/es/v1/ListItem/ListItem.js +2 -2
  82. package/es/v1/ListItem/ListItemWithAvatar.js +2 -2
  83. package/es/v1/ListItem/ListItemWithCheckBox.js +2 -2
  84. package/es/v1/ListItem/ListItemWithIcon.js +2 -2
  85. package/es/v1/ListItem/ListItemWithRadio.js +2 -2
  86. package/es/v1/ListItem/props/defaultProps.js +97 -0
  87. package/es/v1/ListItem/props/propTypes.js +202 -0
  88. package/es/v1/Modal/Modal.js +2 -2
  89. package/es/v1/Modal/props/defaultProps.js +3 -0
  90. package/es/v1/Modal/props/propTypes.js +7 -0
  91. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +2 -2
  92. package/es/v1/MultiSelect/AdvancedMultiSelect.js +2 -2
  93. package/es/v1/MultiSelect/EmptyState.js +2 -2
  94. package/es/v1/MultiSelect/MobileHeader/MobileHeader.js +2 -2
  95. package/es/v1/MultiSelect/MobileHeader/props/defaultProps.js +7 -0
  96. package/es/v1/MultiSelect/MobileHeader/props/propTypes.js +7 -0
  97. package/es/v1/MultiSelect/MultiSelect.js +3 -3
  98. package/es/v1/MultiSelect/MultiSelectHeader.js +2 -2
  99. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +3 -3
  100. package/es/v1/MultiSelect/SelectedOptions.js +2 -2
  101. package/es/v1/MultiSelect/Suggestions.js +4 -3
  102. package/es/v1/MultiSelect/props/defaultProps.js +153 -0
  103. package/es/v1/MultiSelect/props/propTypes.js +312 -0
  104. package/es/v1/PopOver/PopOver.js +2 -2
  105. package/es/v1/PopOver/props/defaultProps.js +7 -0
  106. package/es/v1/PopOver/props/propTypes.js +53 -0
  107. package/es/v1/Radio/Radio.js +4 -4
  108. package/es/v1/Radio/props/defaultProps.js +14 -0
  109. package/es/v1/Radio/props/propTypes.js +33 -0
  110. package/es/v1/Responsive/CustomResponsive.js +2 -2
  111. package/es/v1/Responsive/Responsive.js +2 -2
  112. package/es/v1/Responsive/props/defaultProps.js +13 -0
  113. package/es/v1/Responsive/props/propTypes.js +25 -0
  114. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +2 -2
  115. package/es/v1/ResponsiveDropBox/props/defaultProps.js +4 -0
  116. package/es/v1/ResponsiveDropBox/props/propTypes.js +8 -0
  117. package/es/v1/Ribbon/Ribbon.js +3 -3
  118. package/es/v1/Ribbon/props/defaultProps.js +9 -0
  119. package/es/v1/Ribbon/props/propTypes.js +11 -0
  120. package/es/v1/RippleEffect/RippleEffect.js +2 -2
  121. package/es/v1/RippleEffect/props/defaultProps.js +9 -0
  122. package/es/v1/RippleEffect/props/propTypes.js +11 -0
  123. package/es/v1/Select/GroupSelect.js +2 -2
  124. package/es/v1/Select/Select.js +15 -6
  125. package/es/v1/Select/SelectWithAvatar.js +2 -2
  126. package/es/v1/Select/SelectWithIcon.js +2 -2
  127. package/es/v1/Select/props/defaultProps.js +119 -0
  128. package/es/v1/Select/props/propTypes.js +288 -0
  129. package/es/v1/Stencils/Stencils.js +2 -2
  130. package/es/v1/Stencils/props/defaultProps.js +6 -0
  131. package/es/v1/Stencils/props/propTypes.js +7 -0
  132. package/es/v1/Switch/Switch.js +4 -4
  133. package/es/v1/Switch/props/defaultProps.js +11 -0
  134. package/es/v1/Switch/props/propTypes.js +28 -0
  135. package/es/v1/Tab/Tab.js +3 -4
  136. package/es/v1/Tab/TabContent.js +3 -3
  137. package/es/v1/Tab/TabContentWrapper.js +2 -2
  138. package/es/v1/Tab/TabWrapper.js +2 -2
  139. package/es/v1/Tab/Tabs.js +184 -273
  140. package/es/v1/Tab/props/defaultProps.js +44 -0
  141. package/es/v1/Tab/props/propTypes.js +106 -0
  142. package/es/v1/Tab/v1Tab.module.css +100 -0
  143. package/es/v1/Tab/v1TabContent.module.css +4 -0
  144. package/es/v1/Tab/v1Tabs.module.css +137 -0
  145. package/es/v1/Tag/Tag.js +2 -2
  146. package/es/v1/Tag/props/defaultProps.js +14 -0
  147. package/es/v1/Tag/props/propTypes.js +35 -0
  148. package/es/v1/TextBox/TextBox.js +10 -4
  149. package/es/v1/TextBox/props/defaultProps.js +20 -0
  150. package/es/v1/TextBox/props/propTypes.js +56 -0
  151. package/es/v1/TextBoxIcon/TextBoxIcon.js +5 -3
  152. package/es/v1/TextBoxIcon/props/defaultProps.js +23 -0
  153. package/es/v1/TextBoxIcon/props/propTypes.js +52 -0
  154. package/es/v1/Textarea/Textarea.js +2 -2
  155. package/es/v1/Textarea/props/defaultProps.js +17 -0
  156. package/es/v1/Textarea/props/propTypes.js +31 -0
  157. package/es/v1/Tooltip/Tooltip.js +6 -4
  158. package/es/v1/Tooltip/props/defaultProps.js +4 -0
  159. package/es/v1/Tooltip/props/propTypes.js +5 -0
  160. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +2 -2
  161. package/es/v1/VelocityAnimation/VelocityAnimation/props/defaultProps.js +7 -0
  162. package/es/v1/VelocityAnimation/VelocityAnimation/props/propTypes.js +12 -0
  163. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +2 -2
  164. package/es/v1/VelocityAnimation/VelocityAnimationGroup/props/defaultProps.js +15 -0
  165. package/es/v1/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +19 -0
  166. package/es/v1/semantic/Button/Button.js +2 -2
  167. package/es/v1/semantic/Button/props/defaultProps.js +12 -0
  168. package/es/v1/semantic/Button/props/propTypes.js +22 -0
  169. package/lib/Avatar/Avatar.js +2 -1
  170. package/lib/AvatarTeam/__tests__/__snapshots__/AvatarTeam.spec.js.snap +1 -0
  171. package/lib/DateTime/DateTime.module.css +2 -2
  172. package/lib/DateTime/YearView.module.css +1 -1
  173. package/lib/Label/Label.module.css +6 -1
  174. package/lib/ListItem/ListContainer.js +10 -2
  175. package/lib/ListItem/ListItem.module.css +1 -1
  176. package/lib/MultiSelect/Suggestions.js +2 -1
  177. package/lib/Ribbon/Ribbon.module.css +49 -3
  178. package/lib/Select/Select.js +17 -4
  179. package/lib/Select/Select.module.css +27 -1
  180. package/lib/Switch/Switch.js +2 -2
  181. package/lib/Switch/__tests__/__snapshots__/Switch.spec.js.snap +22 -22
  182. package/lib/Tab/Tab.module.css +3 -3
  183. package/lib/TextBox/TextBox.js +9 -1
  184. package/lib/TextBox/TextBox.module.css +45 -6
  185. package/lib/TextBox/props/defaultProps.js +1 -0
  186. package/lib/TextBox/props/propTypes.js +1 -1
  187. package/lib/TextBoxIcon/TextBoxIcon.js +2 -0
  188. package/lib/TextBoxIcon/props/defaultProps.js +1 -0
  189. package/lib/TextBoxIcon/props/propTypes.js +1 -0
  190. package/lib/Textarea/Textarea.module.css +4 -3
  191. package/lib/Tooltip/Tooltip.js +4 -2
  192. package/lib/Tooltip/Tooltip.module.css +1 -1
  193. package/lib/v1/Accordion/Accordion.js +2 -2
  194. package/lib/v1/Accordion/AccordionItem.js +2 -2
  195. package/lib/v1/Accordion/props/defaultProps.js +20 -0
  196. package/lib/v1/Accordion/props/propTypes.js +45 -0
  197. package/lib/v1/Animation/Animation.js +2 -2
  198. package/lib/v1/Animation/props/defaultProps.js +14 -0
  199. package/lib/v1/Animation/props/propTypes.js +23 -0
  200. package/lib/v1/AppContainer/AppContainer.js +2 -2
  201. package/lib/v1/AppContainer/props/defaultProps.js +17 -0
  202. package/lib/v1/AppContainer/props/propTypes.js +28 -0
  203. package/lib/v1/Avatar/Avatar.js +4 -3
  204. package/lib/v1/Avatar/props/defaultProps.js +24 -0
  205. package/lib/v1/Avatar/props/propTypes.js +37 -0
  206. package/lib/v1/AvatarTeam/AvatarTeam.js +3 -3
  207. package/lib/v1/AvatarTeam/props/defaultProps.js +24 -0
  208. package/lib/v1/AvatarTeam/props/propTypes.js +38 -0
  209. package/lib/v1/Button/Button.js +2 -2
  210. package/lib/v1/Button/props/defaultProps.js +27 -0
  211. package/lib/v1/Button/props/propTypes.js +39 -0
  212. package/lib/v1/Buttongroup/Buttongroup.js +2 -2
  213. package/lib/v1/Buttongroup/props/defaultProps.js +13 -0
  214. package/lib/v1/Buttongroup/props/propTypes.js +20 -0
  215. package/lib/v1/Card/Card.js +3 -3
  216. package/lib/v1/Card/props/defaultProps.js +35 -0
  217. package/lib/v1/Card/props/propTypes.js +62 -0
  218. package/lib/v1/CheckBox/CheckBox.js +5 -5
  219. package/lib/v1/CheckBox/props/defaultProps.js +25 -0
  220. package/lib/v1/CheckBox/props/propTypes.js +51 -0
  221. package/lib/v1/DropBox/DropBox.js +2 -2
  222. package/lib/v1/DropBox/DropBoxElement/DropBoxElement.js +2 -2
  223. package/lib/v1/DropBox/DropBoxElement/props/defaultProps.js +25 -0
  224. package/lib/v1/DropBox/DropBoxElement/props/propTypes.js +62 -0
  225. package/lib/v1/DropBox/props/defaultProps.js +30 -0
  226. package/lib/v1/DropBox/props/propTypes.js +35 -0
  227. package/lib/v1/DropDown/DropDown.js +2 -2
  228. package/lib/v1/DropDown/DropDownHeading.js +2 -2
  229. package/lib/v1/DropDown/DropDownItem.js +2 -2
  230. package/lib/v1/DropDown/DropDownSearch.js +2 -2
  231. package/lib/v1/DropDown/DropDownSeparator.js +1 -1
  232. package/lib/v1/DropDown/props/defaultProps.js +30 -0
  233. package/lib/v1/DropDown/props/propTypes.js +87 -0
  234. package/lib/v1/Heading/Heading.js +2 -2
  235. package/lib/v1/Heading/props/defaultProps.js +12 -0
  236. package/lib/v1/Heading/props/propTypes.js +22 -0
  237. package/lib/v1/Label/Label.js +2 -2
  238. package/lib/v1/Label/props/defaultProps.js +18 -0
  239. package/lib/v1/Label/props/propTypes.js +30 -0
  240. package/lib/v1/Layout/Box.js +2 -2
  241. package/lib/v1/Layout/Container.js +2 -2
  242. package/lib/v1/Layout/props/defaultProps.js +24 -0
  243. package/lib/v1/Layout/props/propTypes.js +58 -0
  244. package/lib/v1/ListItem/ListContainer.js +12 -4
  245. package/lib/v1/ListItem/ListItem.js +2 -2
  246. package/lib/v1/ListItem/ListItemWithAvatar.js +2 -2
  247. package/lib/v1/ListItem/ListItemWithCheckBox.js +2 -2
  248. package/lib/v1/ListItem/ListItemWithIcon.js +2 -2
  249. package/lib/v1/ListItem/ListItemWithRadio.js +2 -2
  250. package/lib/v1/ListItem/props/defaultProps.js +109 -0
  251. package/lib/v1/ListItem/props/propTypes.js +196 -0
  252. package/lib/v1/Modal/Modal.js +2 -2
  253. package/lib/v1/Modal/props/defaultProps.js +10 -0
  254. package/lib/v1/Modal/props/propTypes.js +18 -0
  255. package/lib/v1/MultiSelect/AdvancedGroupMultiSelect.js +2 -2
  256. package/lib/v1/MultiSelect/AdvancedMultiSelect.js +2 -2
  257. package/lib/v1/MultiSelect/EmptyState.js +2 -2
  258. package/lib/v1/MultiSelect/MobileHeader/MobileHeader.js +2 -2
  259. package/lib/v1/MultiSelect/MobileHeader/props/defaultProps.js +14 -0
  260. package/lib/v1/MultiSelect/MobileHeader/props/propTypes.js +18 -0
  261. package/lib/v1/MultiSelect/MultiSelect.js +3 -3
  262. package/lib/v1/MultiSelect/MultiSelectHeader.js +2 -2
  263. package/lib/v1/MultiSelect/MultiSelectWithAvatar.js +3 -3
  264. package/lib/v1/MultiSelect/SelectedOptions.js +2 -2
  265. package/lib/v1/MultiSelect/Suggestions.js +4 -3
  266. package/lib/v1/MultiSelect/props/defaultProps.js +169 -0
  267. package/lib/v1/MultiSelect/props/propTypes.js +340 -0
  268. package/lib/v1/PopOver/PopOver.js +2 -2
  269. package/lib/v1/PopOver/props/defaultProps.js +15 -0
  270. package/lib/v1/PopOver/props/propTypes.js +66 -0
  271. package/lib/v1/Radio/Radio.js +4 -4
  272. package/lib/v1/Radio/props/defaultProps.js +21 -0
  273. package/lib/v1/Radio/props/propTypes.js +44 -0
  274. package/lib/v1/Responsive/CustomResponsive.js +2 -2
  275. package/lib/v1/Responsive/Responsive.js +2 -2
  276. package/lib/v1/Responsive/props/defaultProps.js +23 -0
  277. package/lib/v1/Responsive/props/propTypes.js +39 -0
  278. package/lib/v1/ResponsiveDropBox/ResponsiveDropBox.js +2 -2
  279. package/lib/v1/ResponsiveDropBox/props/defaultProps.js +11 -0
  280. package/lib/v1/ResponsiveDropBox/props/propTypes.js +27 -0
  281. package/lib/v1/Ribbon/Ribbon.js +3 -3
  282. package/lib/v1/Ribbon/props/defaultProps.js +16 -0
  283. package/lib/v1/Ribbon/props/propTypes.js +22 -0
  284. package/lib/v1/RippleEffect/RippleEffect.js +2 -2
  285. package/lib/v1/RippleEffect/props/defaultProps.js +16 -0
  286. package/lib/v1/RippleEffect/props/propTypes.js +22 -0
  287. package/lib/v1/Select/GroupSelect.js +2 -2
  288. package/lib/v1/Select/Select.js +19 -6
  289. package/lib/v1/Select/SelectWithAvatar.js +2 -2
  290. package/lib/v1/Select/SelectWithIcon.js +2 -2
  291. package/lib/v1/Select/props/defaultProps.js +120 -0
  292. package/lib/v1/Select/props/propTypes.js +310 -0
  293. package/lib/v1/Stencils/Stencils.js +2 -2
  294. package/lib/v1/Stencils/props/defaultProps.js +13 -0
  295. package/lib/v1/Stencils/props/propTypes.js +18 -0
  296. package/lib/v1/Switch/Switch.js +4 -4
  297. package/lib/v1/Switch/props/defaultProps.js +18 -0
  298. package/lib/v1/Switch/props/propTypes.js +39 -0
  299. package/lib/v1/Tab/Tab.js +8 -8
  300. package/lib/v1/Tab/TabContent.js +4 -4
  301. package/lib/v1/Tab/TabContentWrapper.js +2 -2
  302. package/lib/v1/Tab/TabWrapper.js +2 -2
  303. package/lib/v1/Tab/Tabs.js +480 -569
  304. package/lib/v1/Tab/props/defaultProps.js +55 -0
  305. package/lib/v1/Tab/props/propTypes.js +121 -0
  306. package/lib/v1/Tab/v1Tab.module.css +100 -0
  307. package/lib/v1/Tab/v1TabContent.module.css +4 -0
  308. package/lib/v1/Tab/v1Tabs.module.css +137 -0
  309. package/lib/v1/Tag/Tag.js +2 -2
  310. package/lib/v1/Tag/props/defaultProps.js +21 -0
  311. package/lib/v1/Tag/props/propTypes.js +46 -0
  312. package/lib/v1/TextBox/TextBox.js +12 -4
  313. package/lib/v1/TextBox/props/defaultProps.js +27 -0
  314. package/lib/v1/TextBox/props/propTypes.js +62 -0
  315. package/lib/v1/TextBoxIcon/TextBoxIcon.js +5 -3
  316. package/lib/v1/TextBoxIcon/props/defaultProps.js +30 -0
  317. package/lib/v1/TextBoxIcon/props/propTypes.js +71 -0
  318. package/lib/v1/Textarea/Textarea.js +2 -2
  319. package/lib/v1/Textarea/props/defaultProps.js +24 -0
  320. package/lib/v1/Textarea/props/propTypes.js +42 -0
  321. package/lib/v1/Tooltip/Tooltip.js +6 -4
  322. package/lib/v1/Tooltip/props/defaultProps.js +11 -0
  323. package/lib/v1/Tooltip/props/propTypes.js +16 -0
  324. package/lib/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +2 -2
  325. package/lib/v1/VelocityAnimation/VelocityAnimation/props/defaultProps.js +14 -0
  326. package/lib/v1/VelocityAnimation/VelocityAnimation/props/propTypes.js +23 -0
  327. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +2 -2
  328. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/props/defaultProps.js +22 -0
  329. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +30 -0
  330. package/lib/v1/semantic/Button/Button.js +2 -2
  331. package/lib/v1/semantic/Button/props/defaultProps.js +19 -0
  332. package/lib/v1/semantic/Button/props/propTypes.js +33 -0
  333. package/package.json +13 -11
  334. package/propValidationArg.json +8 -0
  335. package/result.json +1 -1
package/es/v1/Tab/Tabs.js CHANGED
@@ -1,51 +1,60 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
 
3
- /* eslint-disable react/forbid-component-props */
4
-
5
- /* eslint css-modules/no-unused-class: [2, {
6
- markAsUsed: [
7
- 'hidden','alpha','gamma','beta','delta','special','text','maxWidth','widgetList','menuContainer','border','tabText','block','tabAlpha','alphaActive','gammaActive','betaActive','deltaActive','tabGamma','tabBeta','tabDelta','specialActive','tabSpecial',
8
- 'alpha_padding','alpha_border','gamma_padding','gamma_border','beta_padding','beta_border','delta_padding','delta_border','textContainer','disabled','alphaActive_border','gammaActive_border','betaActive_border','deltaActive_border'
9
- ]
10
- }]
11
- */
12
- import React from 'react';
3
+ import React, { useState, useRef, useEffect, useCallback } from 'react';
4
+ import useEffectCallOnlyAfterState from '@zohodesk/hooks/es/utils/useEffectCallOnlyAfterState';
13
5
  import Tab from './Tab';
14
- import { Tabs_defaultProps } from '../../Tab/props/defaultProps';
15
- import { Tabs_propTypes } from '../../Tab/props/propTypes';
16
- import { remConvert, getTotalDimension, cs, bind, throttle, cancelBubblingEffect } from '../../utils/Common';
6
+ import { Tabs_defaultProps } from './props/defaultProps';
7
+ import { Tabs_propTypes } from './props/propTypes';
8
+ import { remConvert, getTotalDimension, cs, throttle, cancelBubblingEffect } from '../../utils/Common';
17
9
  import { Box, Container } from '../Layout';
18
10
  import ResizeObserver from '../Responsive/ResizeObserver';
19
11
  import ListItem from '../ListItem/ListItem';
20
12
  import { Icon } from '@zohodesk/icons';
21
- import tabsStyle from '../../Tab/Tabs.module.css';
13
+ import tabsStyle from './v1Tabs.module.css';
22
14
  import Popup from '../Popup/Popup';
23
15
  import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
24
16
  import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
25
17
  import btnstyle from '../../semantic/Button/semanticButton.module.css';
26
18
 
27
- class Tabs extends React.Component {
28
- constructor(props) {
29
- super(props);
30
- this.state = {
31
- totalDimension: null,
32
- tabDimensions: {},
33
- highlightInitialDimension: null,
34
- renderVirtualTabs: true,
35
- tabKeys: []
36
- };
37
- bind.apply(this, ['moreTabSelect', 'onResize', 'onTabResize', 'getHighlightRef', 'getTabsRef', 'getTabRef', 'getHighlightDim', 'onSizeChange', 'onScroll', 'togglePopup', 'setMaxDim']);
38
- this.tabsObserver = new ResizeObserver(this.onResize);
39
- this.tabObserver = {};
40
- }
41
-
42
- onTabResize(size, target) {
43
- let {
44
- align
45
- } = this.props;
46
- let {
47
- tabDimensions
48
- } = this.state;
19
+ const Tabs = props => {
20
+ const [totalDimension, setTotalDimension] = useState(null);
21
+ const [tabDimensions, setTabDimensions] = useState({});
22
+ const highlightInitialDimension = useRef(null);
23
+ const [renderVirtualTabs, setRenderVirtualTabs] = useState(true);
24
+ const [tabKeys, setTabKeys] = useState([]);
25
+ const tabsObserver = useRef(new ResizeObserver(onResize));
26
+ const tabObserver = useRef({});
27
+ const highlight = useRef(null);
28
+ const tabsEle = useRef(null);
29
+ const tabElement = useRef({});
30
+ let {
31
+ style,
32
+ className,
33
+ dataId,
34
+ highlightClass,
35
+ type,
36
+ isAnimate,
37
+ needTabBorder,
38
+ needBorder,
39
+ needPadding,
40
+ align,
41
+ boxPosition,
42
+ removeClose,
43
+ togglePopup,
44
+ needAppearance,
45
+ children,
46
+ onSelect,
47
+ onScroll,
48
+ isResponsive,
49
+ maxTabsCount,
50
+ minTabsCount,
51
+ childType,
52
+ containerClass,
53
+ dataSelectorId,
54
+ selectedTab
55
+ } = props;
56
+
57
+ function onTabResize(size, target) {
49
58
  let newDim = Object.assign({}, tabDimensions);
50
59
  let elemDim = getTotalDimension(target, align);
51
60
 
@@ -53,18 +62,12 @@ class Tabs extends React.Component {
53
62
  newDim[target.dataset.key] = elemDim;
54
63
  }
55
64
 
56
- this.setState({
57
- tabDimensions: newDim
58
- });
65
+ setTabDimensions(newDim);
59
66
  }
60
67
 
61
- componentDidMount() {
62
- let {
63
- children,
64
- childType
65
- } = this.props;
66
- let totalDimension = this.getTotalDimension();
67
- let tabDimensions = this.getTabDimensions();
68
+ useEffect(() => {
69
+ let totalDimension = getTotalDimensionLocal();
70
+ let tabDimensions = getTabDimensions();
68
71
  let tabKeys = [];
69
72
  let restrictedKeys = ['state', 'props', 'refs', 'context'];
70
73
  React.Children.toArray(children).forEach(child => {
@@ -76,71 +79,50 @@ class Tabs extends React.Component {
76
79
  }
77
80
  }
78
81
  });
79
- this.setState({
80
- totalDimension,
81
- tabDimensions,
82
- renderVirtualTabs: false,
83
- tabKeys
84
- });
85
- this.highlight && this.setState({
86
- highlightInitialDimension: this.getHighlightDim()
87
- }, () => {
88
- this.moveHighlight();
89
- });
90
- }
91
-
92
- componentWillUnmount() {
93
- if (this.tabsObserver) {
94
- this.tabsObserver.disconnect();
95
- this.tabsObserver = null;
82
+ setTotalDimension(totalDimension);
83
+ setTabDimensions(tabDimensions);
84
+ setRenderVirtualTabs(false);
85
+ setTabKeys(tabKeys);
86
+
87
+ if (highlight.current) {
88
+ highlightInitialDimension.current = getHighlightDim();
89
+ moveHighlight();
96
90
  }
97
91
 
98
- if (this.tabObserver) {
99
- Object.keys(this.tabObserver).forEach(observer => {
100
- this.tabObserver[observer] && this.tabObserver[observer].disconnect();
101
- });
102
- this.tabObserver = null;
103
- }
104
- }
92
+ return () => {
93
+ if (tabsObserver.current) {
94
+ tabsObserver.current.disconnect();
95
+ tabsObserver.current = null;
96
+ }
97
+
98
+ if (tabObserver.current) {
99
+ Object.keys(tabObserver.current).forEach(observer => {
100
+ tabObserver.current[observer] && tabObserver.current[observer].disconnect();
101
+ });
102
+ tabObserver.current = null;
103
+ }
104
+ };
105
+ }, []);
105
106
 
106
- setMaxDim() {
107
+ function setMaxDim() {
107
108
  let totalDimension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
108
- let {
109
- selectedTab
110
- } = this.props; // let actual = Object.keys(tabDimensions).reduce(
109
+
110
+ // let actual = Object.keys(tabDimensions).reduce(
111
111
  // (sum, tab) => sum + (tabDimensions[tab] || 0),
112
112
  // 0
113
113
  // );
114
-
115
- if (totalDimension && this[selectedTab]) {
116
- let {
117
- align
118
- } = this.props;
114
+ if (totalDimension && tabElement.current[selectedTab]) {
119
115
  let newDim = `${remConvert(totalDimension)}rem`;
120
- align === 'vertical' ? this[selectedTab].style.maxWidth = newDim : this[selectedTab].style.maxHeight = newDim;
116
+ align === 'vertical' ? tabElement.current[selectedTab].style.maxWidth = newDim : tabElement.current[selectedTab].style.maxHeight = newDim;
121
117
  }
122
118
  }
123
119
 
124
- getHighlightDim() {
125
- let {
126
- align
127
- } = this.props;
128
- return align === 'vertical' ? this.highlight.offsetLeft : this.highlight.offsetTop;
120
+ function getHighlightDim() {
121
+ return align === 'vertical' ? highlight.current.offsetLeft : highlight.current.offsetTop;
129
122
  }
130
123
 
131
- componentDidUpdate(prevProps) {
132
- let {
133
- children,
134
- selectedTab,
135
- childType
136
- } = this.props;
137
- let {
138
- tabDimensions,
139
- totalDimension,
140
- tabKeys
141
- } = this.state;
142
-
143
- if (prevProps.children && children) {
124
+ useEffectCallOnlyAfterState(() => {
125
+ if (children) {
144
126
  /**
145
127
  * To recalculate the dimensions of tabs we are checking the children length.
146
128
  * and also checking the tab id and their order.
@@ -154,40 +136,33 @@ class Tabs extends React.Component {
154
136
  let isSameTabKeys = newTabKeys.every((current, index) => tabKeys[index] === current);
155
137
 
156
138
  if (newTabKeys.length !== tabKeys.length || !isSameTabKeys) {
157
- this.setState({
158
- renderVirtualTabs: true,
159
- tabKeys: newTabKeys
160
- }, () => {
161
- totalDimension = this.getTotalDimension();
162
- tabDimensions = this.getTabDimensions();
163
- this.setState({
164
- tabDimensions,
165
- totalDimension,
166
- renderVirtualTabs: false
167
- });
139
+ setRenderVirtualTabs(true);
140
+ setTabKeys(newTabKeys);
141
+ setTimeout(() => {
142
+ setTabDimensions(getTabDimensions());
143
+ setTotalDimension(getTotalDimensionLocal());
144
+ setRenderVirtualTabs(false);
168
145
  });
169
146
  }
170
147
 
171
- if (prevProps.selectedTab !== selectedTab || newTabKeys.length === 1) {
172
- this.moveHighlight();
148
+ if (newTabKeys.length === 1) {
149
+ moveHighlight();
173
150
  }
174
151
  }
175
- }
152
+ });
153
+ useEffectCallOnlyAfterState(() => {
154
+ tabsObserver.current && tabsObserver.current.replaceResizeHandler(onResize);
176
155
 
177
- moveHighlight() {
178
- let {
179
- isAnimate,
180
- needTabBorder,
181
- selectedTab,
182
- align
183
- } = this.props;
184
- let {
185
- highlightInitialDimension
186
- } = this.state;
187
- let node = this.highlight;
156
+ if (children) {
157
+ moveHighlight();
158
+ }
159
+ }, [selectedTab]);
160
+
161
+ function moveHighlight() {
162
+ let node = highlight.current;
188
163
 
189
164
  if (isAnimate && needTabBorder && node) {
190
- let tabActive = this[selectedTab];
165
+ let tabActive = tabElement.current[selectedTab];
191
166
 
192
167
  if (tabActive) {
193
168
  let position, dimension;
@@ -195,97 +170,72 @@ class Tabs extends React.Component {
195
170
  if (align === 'vertical') {
196
171
  position = tabActive.offsetLeft;
197
172
  dimension = tabActive.offsetWidth;
198
- node.style.transform = `translateX(${remConvert(position - highlightInitialDimension)}rem)`;
173
+ node.style.transform = `translateX(${remConvert(position - highlightInitialDimension.current)}rem)`;
199
174
  node.style.width = `${remConvert(dimension)}rem`;
200
175
  } else if (align === 'horizontal') {
201
176
  position = tabActive.offsetTop;
202
177
  dimension = tabActive.offsetHeight;
203
- node.style.transform = `translateY(${remConvert(position - highlightInitialDimension)}rem)`;
178
+ node.style.transform = `translateY(${remConvert(position - highlightInitialDimension.current)}rem)`;
204
179
  node.style.height = `${remConvert(dimension)}rem`;
205
180
  }
206
181
  }
207
182
  }
208
183
  }
209
184
 
210
- getHighlightRef(ele) {
211
- this.highlight = ele;
212
- }
213
-
214
- getTabsRef(ele) {
215
- this.tabsEle = ele;
185
+ const getHighlightRef = useCallback(ele => {
186
+ highlight.current = ele;
187
+ }, []);
188
+ const getTabsRef = useCallback(ele => {
189
+ tabsEle.current = ele;
216
190
 
217
191
  if (ele) {
218
- this.tabsObserver.observe(ele);
192
+ tabsObserver.current.observe(ele);
219
193
  } else {
220
- this.tabsObserver && this.tabsObserver.disconnect();
194
+ tabsObserver.current && tabsObserver.current.disconnect();
221
195
  }
222
- }
196
+ }, []);
223
197
 
224
- onSizeChange() {
225
- let totalDimension = this.getTotalDimension();
226
- this.setState({
227
- totalDimension
228
- });
229
- this.highlight && this.setState({
230
- highlightInitialDimension: this.getHighlightDim()
231
- }, () => {
232
- this.moveHighlight();
233
- });
234
- }
198
+ function onSizeChange() {
199
+ let totalDimension = getTotalDimensionLocal();
200
+ setTotalDimension(totalDimension);
235
201
 
236
- onResize(timer) {
237
- let {
238
- isResponsive
239
- } = this.props;
202
+ if (highlight.current) {
203
+ highlightInitialDimension.current = getHighlightDim();
204
+ moveHighlight();
205
+ }
206
+ }
240
207
 
241
- if (this.tabsEle && isResponsive) {
208
+ function onResize(timer) {
209
+ if (tabsEle.current && isResponsive) {
242
210
  if (!timer) {
243
- this.onSizeChange();
211
+ onSizeChange();
244
212
  } else {
245
213
  setTimeout(() => {
246
- this.onSizeChange();
214
+ onSizeChange();
247
215
  }, timer);
248
216
  }
249
217
  }
250
218
  }
251
219
 
252
- getTotalDimension() {
253
- let {
254
- align
255
- } = this.props;
256
- let totalDimension = this.tabsEle && getTotalDimension(this.tabsEle, align);
220
+ function getTotalDimensionLocal() {
221
+ let totalDimension = tabsEle.current && getTotalDimension(tabsEle.current, align);
257
222
  return totalDimension;
258
223
  }
259
224
 
260
- getTabDimensions() {
261
- let {
262
- children,
263
- align,
264
- childType
265
- } = this.props;
225
+ function getTabDimensions() {
266
226
  let tabDimensions = {};
267
- React.Children.forEach(children, child => /*#__PURE__*/React.isValidElement(child) && child.type === childType && this[child.props.id] && Object.assign(tabDimensions, {
268
- [child.props.id]: this[child.props.id] && getTotalDimension(this[child.props.id], align)
227
+ React.Children.forEach(children, child => /*#__PURE__*/React.isValidElement(child) && child.type === childType && tabElement.current[child.props.id] && Object.assign(tabDimensions, {
228
+ [child.props.id]: tabElement.current[child.props.id] && getTotalDimension(tabElement.current[child.props.id], align)
269
229
  }));
270
230
  return tabDimensions;
271
231
  }
272
232
 
273
- responsiveTab(totalDimension, tabDimensions) {
274
- let {
275
- children,
276
- maxTabsCount,
277
- minTabsCount,
278
- isResponsive
279
- } = this.props;
233
+ function responsiveTab(totalDimension, tabDimensions) {
280
234
  let mainTabs = [],
281
235
  moreTabs = [],
282
236
  otherTabs = [];
283
237
 
284
238
  if (totalDimension && isResponsive) {
285
- let {
286
- childType,
287
- selectedTab
288
- } = this.props;
289
239
  let selectedTabDimension = tabDimensions[selectedTab] || 0;
290
240
  let remainingDimension = totalDimension - selectedTabDimension;
291
241
  let maxTabsTobeVisible = maxTabsCount - 1;
@@ -325,12 +275,9 @@ class Tabs extends React.Component {
325
275
  newTabs = mainTabs.map(tab => React.cloneElement(tab, { style: { maxHeight: newDim } }));
326
276
  }
327
277
  mainTabs = newTabs; */
328
- this.setMaxDim(totalDimension);
278
+ setMaxDim(totalDimension);
329
279
  }
330
280
  } else if (!isResponsive) {
331
- let {
332
- childType
333
- } = this.props;
334
281
  React.Children.forEach(children, child => {
335
282
  if (child && child.type === childType && child.props.id) {
336
283
  mainTabs.push(child);
@@ -349,25 +296,25 @@ class Tabs extends React.Component {
349
296
  };
350
297
  }
351
298
 
352
- getTabRef(refName, ele, isVirtual) {
353
- this[refName] = ele;
299
+ function getTabRef(refName, ele, isVirtual) {
300
+ if (ele) {
301
+ tabElement.current[refName] = ele;
302
+ } // tabElement.current[refName] = ele
303
+
304
+
354
305
  let key = isVirtual ? `virtual_${refName}` : refName;
355
306
 
356
307
  if (ele) {
357
- this.tabObserver[key] = new ResizeObserver(this.onTabResize);
358
- this.tabObserver[key].observe(ele);
308
+ tabObserver.current[key] = new ResizeObserver(onTabResize);
309
+ tabObserver.current[key].observe(ele);
359
310
  } else {
360
- if (this.tabObserver && this.tabObserver[key]) {
361
- this.tabObserver[key].disconnect();
311
+ if (tabObserver.current && tabObserver.current[key]) {
312
+ tabObserver.current[key].disconnect();
362
313
  }
363
314
  }
364
315
  }
365
316
 
366
- moreTabSelect(tab, value, index, e) {
367
- let {
368
- onSelect
369
- } = this.props;
370
-
317
+ function moreTabSelect(tab, value, index, e) {
371
318
  if (e && e.target && e.target.parentElement.tagName === 'A' && (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)) {
372
319
  cancelBubblingEffect(e);
373
320
  return;
@@ -377,28 +324,19 @@ class Tabs extends React.Component {
377
324
  onSelect(tab);
378
325
  }
379
326
 
380
- onScroll(e) {
327
+ function onScrollLocal(e) {
381
328
  e.persist();
382
- let {
383
- onScroll
384
- } = this.props;
385
329
  onScroll && throttle(onScroll, 100, e);
386
330
  }
387
331
 
388
- togglePopup(e) {
389
- let {
390
- boxPosition,
391
- togglePopup,
392
- align,
393
- removeClose
394
- } = this.props;
332
+ function togglePopupLocal(e) {
395
333
  removeClose && removeClose(e);
396
334
  let popupPosition = align === 'vertical' ? 'bottomLeft' : 'rightTop';
397
335
  boxPosition = boxPosition ? boxPosition : popupPosition;
398
336
  togglePopup(e, boxPosition);
399
337
  }
400
338
 
401
- responsiveFunc(_ref) {
339
+ function responsiveFunc(_ref) {
402
340
  let {
403
341
  mediaQueryOR
404
342
  } = _ref;
@@ -409,9 +347,8 @@ class Tabs extends React.Component {
409
347
  };
410
348
  }
411
349
 
412
- renderTabs(mainTabs, moreTabs, isVirtual) {
350
+ function renderTabs(mainTabs, moreTabs, isVirtual) {
413
351
  let {
414
- selectedTab,
415
352
  moreButtonClass,
416
353
  moreButtonActiveClass,
417
354
  moreBoxClass,
@@ -423,7 +360,6 @@ class Tabs extends React.Component {
423
360
  isPopupOpen,
424
361
  getContainerRef,
425
362
  showTitleInMoreOptions,
426
- onSelect,
427
363
  moreContainerClass,
428
364
  align,
429
365
  type,
@@ -434,9 +370,8 @@ class Tabs extends React.Component {
434
370
  getTargetRef,
435
371
  position,
436
372
  customProps,
437
- getCustomDropBoxHeaderPlaceHolder,
438
- dataSelectorId
439
- } = this.props;
373
+ getCustomDropBoxHeaderPlaceHolder
374
+ } = props;
440
375
  let {
441
376
  DropBoxProps = {},
442
377
  ListItemProps = {},
@@ -461,9 +396,9 @@ class Tabs extends React.Component {
461
396
 
462
397
  return /*#__PURE__*/React.isValidElement(child) && /*#__PURE__*/React.createElement(MainTab, _extends({}, child.props, {
463
398
  key: child.props.id,
464
- getTabRef: this.getTabRef,
465
- onSelect: onSelect,
466
- recalculateDimension: this.recalculateDimension,
399
+ getTabRef: getTabRef,
400
+ onSelect: onSelect // recalculateDimension={tabElement.current[recalculateDimension]}
401
+ ,
467
402
  isActive: child.props.id === selectedTab,
468
403
  type: type,
469
404
  isAnimate: isAnimate,
@@ -478,7 +413,7 @@ class Tabs extends React.Component {
478
413
  }, /*#__PURE__*/React.createElement(Container, _extends({
479
414
  className: `${btnstyle.buttonReset} ${moreButtonClass} ${isPopupOpen ? moreButtonActiveClass : ''}`,
480
415
  align: "both",
481
- onClick: this.togglePopup,
416
+ onClick: togglePopupLocal,
482
417
  dataId: "moreTabs",
483
418
  eleRef: getTargetRef
484
419
  }, MoreButtonProps, {
@@ -489,7 +424,7 @@ class Tabs extends React.Component {
489
424
  name: iconName,
490
425
  size: iconSize
491
426
  })), isPopupOpen && /*#__PURE__*/React.createElement(ResponsiveReceiver, {
492
- query: this.responsiveFunc,
427
+ query: responsiveFunc,
493
428
  responsiveId: "Helmet"
494
429
  }, _ref2 => {
495
430
  let {
@@ -509,13 +444,13 @@ class Tabs extends React.Component {
509
444
  }, DropBoxProps, {
510
445
  isResponsivePadding: true,
511
446
  needFocusScope: true,
512
- onClose: this.togglePopup
513
- }), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(this.props), /*#__PURE__*/React.createElement(Box, {
447
+ onClose: togglePopupLocal
448
+ }), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(props), /*#__PURE__*/React.createElement(Box, {
514
449
  flexible: true,
515
450
  shrink: true,
516
451
  scroll: "vertical",
517
452
  className: `${tabletMode ? '' : tabsStyle.menuBox} ${moreBoxClass}`,
518
- onScroll: this.onScroll
453
+ onScroll: onScrollLocal
519
454
  }, React.Children.map(moreTabs, child => {
520
455
  if (!child) {
521
456
  return null;
@@ -534,7 +469,7 @@ class Tabs extends React.Component {
534
469
  return /*#__PURE__*/React.isValidElement(child) && /*#__PURE__*/React.createElement(ListItem, _extends({
535
470
  key: id,
536
471
  value: value,
537
- onClick: this.moreTabSelect,
472
+ onClick: moreTabSelect,
538
473
  id: id,
539
474
  title: title || text,
540
475
  isLink: isLink,
@@ -550,60 +485,36 @@ class Tabs extends React.Component {
550
485
  })) : null);
551
486
  }
552
487
 
553
- render() {
554
- let {
555
- style,
556
- className,
557
- dataId,
558
- highlightClass,
559
- type,
560
- isAnimate,
561
- needTabBorder,
562
- needBorder,
563
- needPadding,
564
- align,
565
- needAppearance,
566
- children,
567
- containerClass,
568
- dataSelectorId
569
- } = this.props;
570
- let {
571
- totalDimension,
572
- tabDimensions,
573
- renderVirtualTabs
574
- } = this.state;
575
- let {
576
- mainTabs,
577
- moreTabs,
578
- otherTabs
579
- } = this.responsiveTab(totalDimension, tabDimensions);
580
- let appearanceClass = cs([tabsStyle[type], needBorder && tabsStyle[`${type}_border`], needPadding && tabsStyle[`${type}_padding`]]);
581
- let tabsClass = cs([tabsStyle.tab, className, needAppearance && appearanceClass]);
582
- let hlClass = cs([tabsStyle.highlight, highlightClass, isAnimate && tabsStyle.lineAnimate]);
583
- return /*#__PURE__*/React.createElement(Box, {
584
- className: containerClass,
585
- dataSelectorId: dataSelectorId
586
- }, /*#__PURE__*/React.createElement(Container, {
587
- alignBox: align === 'vertical' ? 'row' : 'column',
588
- className: tabsClass,
589
- style: style
590
- }, /*#__PURE__*/React.createElement(Box, {
591
- eleRef: this.getTabsRef,
592
- flexible: true
593
- }, renderVirtualTabs && /*#__PURE__*/React.createElement(Container, {
594
- alignBox: align === 'vertical' ? 'row' : 'column',
595
- className: tabsStyle.hidden
596
- }, this.renderTabs(children, [], true)), /*#__PURE__*/React.createElement(Container, {
597
- alignBox: align === 'vertical' ? 'row' : 'column'
598
- }, this.renderTabs(mainTabs, moreTabs, false))), otherTabs.length ? /*#__PURE__*/React.createElement(Box, null, otherTabs) : null, isAnimate && needTabBorder && needAppearance && /*#__PURE__*/React.createElement("div", {
599
- className: hlClass,
600
- ref: this.getHighlightRef,
601
- "data-id": dataId,
602
- "data-test-id": dataId
603
- })));
604
- }
605
-
606
- }
488
+ let {
489
+ mainTabs,
490
+ moreTabs,
491
+ otherTabs
492
+ } = responsiveTab(totalDimension, tabDimensions);
493
+ let appearanceClass = cs([tabsStyle[type], needBorder && tabsStyle[`${type}_border`], needPadding && tabsStyle[`${type}_padding`]]);
494
+ let tabsClass = cs([tabsStyle.tab, className, needAppearance && appearanceClass]);
495
+ let hlClass = cs([tabsStyle.highlight, highlightClass, isAnimate && tabsStyle.lineAnimate]);
496
+ return /*#__PURE__*/React.createElement(Box, {
497
+ className: containerClass,
498
+ dataSelectorId: dataSelectorId
499
+ }, /*#__PURE__*/React.createElement(Container, {
500
+ alignBox: align === 'vertical' ? 'row' : 'column',
501
+ className: tabsClass,
502
+ style: style
503
+ }, /*#__PURE__*/React.createElement(Box, {
504
+ eleRef: getTabsRef,
505
+ flexible: true
506
+ }, renderVirtualTabs && /*#__PURE__*/React.createElement(Container, {
507
+ alignBox: align === 'vertical' ? 'row' : 'column',
508
+ className: tabsStyle.hidden
509
+ }, renderTabs(children, [], true)), /*#__PURE__*/React.createElement(Container, {
510
+ alignBox: align === 'vertical' ? 'row' : 'column'
511
+ }, renderTabs(mainTabs, moreTabs, false))), otherTabs.length ? /*#__PURE__*/React.createElement(Box, null, otherTabs) : null, isAnimate && needTabBorder && needAppearance && /*#__PURE__*/React.createElement("div", {
512
+ className: hlClass,
513
+ ref: getHighlightRef,
514
+ "data-id": dataId,
515
+ "data-test-id": dataId
516
+ })));
517
+ };
607
518
 
608
519
  Tabs.propTypes = Tabs_propTypes;
609
520
  Tabs.defaultProps = { ...Tabs_defaultProps,