@zohodesk/components 1.0.0-test-252 → 1.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 (601) hide show
  1. package/README.md +161 -1
  2. package/assets/Appearance/dark/mode/darkMode.module.css +181 -179
  3. package/assets/Appearance/dark/themes/blue/blueDarkCTAModifyCategory.module.css +452 -0
  4. package/assets/Appearance/dark/themes/blue/blueDarkCTATheme.module.css +31 -31
  5. package/assets/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +3 -0
  6. package/assets/Appearance/dark/themes/green/greenDarkCTAModifyCategory.module.css +452 -0
  7. package/assets/Appearance/dark/themes/green/greenDarkCTATheme.module.css +30 -30
  8. package/assets/Appearance/dark/themes/green/greenDarkComponentTheme.module.css +3 -0
  9. package/assets/Appearance/dark/themes/orange/orangeDarkCTAModifyCategory.module.css +452 -0
  10. package/assets/Appearance/dark/themes/orange/orangeDarkCTATheme.module.css +30 -30
  11. package/assets/Appearance/dark/themes/orange/orangeDarkComponentTheme.module.css +3 -0
  12. package/assets/Appearance/dark/themes/red/redDarkCTAModifyCategory.module.css +452 -0
  13. package/assets/Appearance/dark/themes/red/redDarkCTATheme.module.css +30 -30
  14. package/assets/Appearance/dark/themes/red/redDarkComponentTheme.module.css +3 -0
  15. package/assets/Appearance/dark/themes/yellow/yellowDarkCTAModifyCategory.module.css +452 -0
  16. package/assets/Appearance/dark/themes/yellow/yellowDarkCTATheme.module.css +30 -30
  17. package/assets/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module.css +3 -0
  18. package/assets/Appearance/default/mode/defaultMode.module.css +177 -175
  19. package/assets/Appearance/default/themes/blue/blueDefaultCTAModifyCategory.module.css +452 -0
  20. package/assets/Appearance/default/themes/blue/blueDefaultCTATheme.module.css +31 -31
  21. package/assets/Appearance/default/themes/blue/blueDefaultComponentTheme.module.css +3 -0
  22. package/assets/Appearance/default/themes/green/greenDefaultCTAModifyCategory.module.css +452 -0
  23. package/assets/Appearance/default/themes/green/greenDefaultCTATheme.module.css +30 -30
  24. package/assets/Appearance/default/themes/green/greenDefaultComponentTheme.module.css +3 -0
  25. package/assets/Appearance/default/themes/orange/orangeDefaultCTAModifyCategory.module.css +452 -0
  26. package/assets/Appearance/default/themes/orange/orangeDefaultCTATheme.module.css +30 -30
  27. package/assets/Appearance/default/themes/orange/orangeDefaultComponentTheme.module.css +3 -0
  28. package/assets/Appearance/default/themes/red/redDefaultCTAModifyCategory.module.css +452 -0
  29. package/assets/Appearance/default/themes/red/redDefaultCTATheme.module.css +30 -30
  30. package/assets/Appearance/default/themes/red/redDefaultComponentTheme.module.css +3 -0
  31. package/assets/Appearance/default/themes/yellow/yellowDefaultCTAModifyCategory.module.css +452 -0
  32. package/assets/Appearance/default/themes/yellow/yellowDefaultCTATheme.module.css +30 -30
  33. package/assets/Appearance/default/themes/yellow/yellowDefaultComponentTheme.module.css +3 -0
  34. package/assets/Appearance/pureDark/mode/pureDarkMode.module.css +182 -180
  35. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTAModifyCategory.module.css +452 -0
  36. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTATheme.module.css +31 -31
  37. package/assets/Appearance/pureDark/themes/blue/bluePureDarkComponentTheme.module.css +3 -0
  38. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTAModifyCategory.module.css +452 -0
  39. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTATheme.module.css +30 -30
  40. package/assets/Appearance/pureDark/themes/green/greenPureDarkComponentTheme.module.css +3 -0
  41. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTAModifyCategory.module.css +452 -0
  42. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTATheme.module.css +30 -30
  43. package/assets/Appearance/pureDark/themes/orange/orangePureDarkComponentTheme.module.css +3 -0
  44. package/assets/Appearance/pureDark/themes/red/redPureDarkCTAModifyCategory.module.css +452 -0
  45. package/assets/Appearance/pureDark/themes/red/redPureDarkCTATheme.module.css +30 -30
  46. package/assets/Appearance/pureDark/themes/red/redPureDarkComponentTheme.module.css +3 -0
  47. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTAModifyCategory.module.css +452 -0
  48. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTATheme.module.css +30 -30
  49. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkComponentTheme.module.css +3 -0
  50. package/assets/Contrast/darkContrastLightness.module.css +39 -0
  51. package/assets/Contrast/defaultContrastLightness.module.css +39 -0
  52. package/assets/Contrast/pureDarkContrastLightness.module.css +39 -0
  53. package/css_error.log +1 -0
  54. package/es/Accordion/Accordion.js +19 -9
  55. package/es/Accordion/AccordionItem.js +13 -8
  56. package/es/Accordion/props/defaultProps.js +6 -2
  57. package/es/Accordion/props/propTypes.js +3 -0
  58. package/es/Animation/Animation.js +10 -9
  59. package/es/AppContainer/AppContainer.js +38 -15
  60. package/es/AppContainer/AppContainer.module.css +2 -2
  61. package/es/AppContainer/props/defaultProps.js +3 -1
  62. package/es/AppContainer/props/propTypes.js +2 -0
  63. package/es/Avatar/Avatar.js +48 -25
  64. package/es/Avatar/Avatar.module.css +59 -18
  65. package/es/Avatar/props/defaultProps.js +4 -1
  66. package/es/Avatar/props/propTypes.js +5 -2
  67. package/es/AvatarTeam/AvatarTeam.js +21 -11
  68. package/es/AvatarTeam/AvatarTeam.module.css +49 -21
  69. package/es/AvatarTeam/props/defaultProps.js +5 -1
  70. package/es/AvatarTeam/props/propTypes.js +5 -1
  71. package/es/Button/Button.js +55 -51
  72. package/{lib/Button → es/Button/css}/Button.module.css +62 -58
  73. package/es/Button/css/cssJSLogic.js +53 -0
  74. package/es/Button/index.js +2 -0
  75. package/es/Button/props/defaultProps.js +3 -1
  76. package/es/Button/props/propTypes.js +6 -2
  77. package/es/Buttongroup/Buttongroup.js +24 -16
  78. package/es/Buttongroup/Buttongroup.module.css +45 -28
  79. package/es/Buttongroup/props/defaultProps.js +3 -1
  80. package/es/Buttongroup/props/propTypes.js +3 -1
  81. package/es/Card/Card.js +48 -26
  82. package/es/Card/props/defaultProps.js +12 -2
  83. package/es/Card/props/propTypes.js +2 -2
  84. package/es/CheckBox/CheckBox.js +13 -9
  85. package/es/CheckBox/CheckBox.module.css +16 -16
  86. package/es/CheckBox/props/propTypes.js +1 -0
  87. package/es/DateTime/CalendarView.js +46 -19
  88. package/es/DateTime/DateTime.js +139 -77
  89. package/es/DateTime/DateTime.module.css +51 -48
  90. package/es/DateTime/DateTimePopupFooter.js +4 -2
  91. package/es/DateTime/DateTimePopupHeader.js +30 -11
  92. package/es/DateTime/DateWidget.js +122 -51
  93. package/es/DateTime/DateWidget.module.css +5 -5
  94. package/es/DateTime/DaysRow.js +6 -3
  95. package/es/DateTime/Time.js +10 -2
  96. package/es/DateTime/YearView.js +41 -9
  97. package/es/DateTime/YearView.module.css +33 -15
  98. package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
  99. package/es/DateTime/__tests__/DateTime.spec.js +1 -0
  100. package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
  101. package/es/DateTime/common.js +3 -0
  102. package/es/DateTime/constants.js +1 -0
  103. package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
  104. package/es/DateTime/dateFormatUtils/dateFormats.js +42 -0
  105. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  106. package/es/DateTime/dateFormatUtils/index.js +59 -2
  107. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  108. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  109. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  110. package/es/DateTime/index.js +1 -1
  111. package/es/DateTime/objectUtils.js +14 -20
  112. package/es/DateTime/props/defaultProps.js +2 -1
  113. package/es/DateTime/props/propTypes.js +5 -2
  114. package/es/DateTime/typeChecker.js +3 -0
  115. package/es/DateTime/validator.js +58 -6
  116. package/es/DropBox/DropBox.js +82 -218
  117. package/es/DropBox/DropBoxElement/DropBoxElement.js +132 -0
  118. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  119. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +91 -0
  120. package/es/DropBox/DropBoxElement/props/defaultProps.js +18 -0
  121. package/es/DropBox/DropBoxElement/props/propTypes.js +45 -0
  122. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +54 -0
  123. package/es/DropBox/__tests__/DropBox.spec.js +2 -2
  124. package/es/DropBox/css/DropBox.module.css +59 -0
  125. package/es/DropBox/css/cssJSLogic.js +14 -0
  126. package/es/DropBox/props/defaultProps.js +9 -15
  127. package/es/DropBox/props/propTypes.js +9 -41
  128. package/es/DropDown/DropDown.js +16 -9
  129. package/es/DropDown/DropDown.module.css +2 -2
  130. package/es/DropDown/DropDownHeading.js +18 -11
  131. package/es/DropDown/DropDownHeading.module.css +3 -3
  132. package/es/DropDown/DropDownItem.js +8 -1
  133. package/es/DropDown/DropDownItem.module.css +9 -9
  134. package/es/DropDown/DropDownSearch.js +4 -0
  135. package/es/DropDown/DropDownSeparator.js +1 -0
  136. package/es/DropDown/DropDownSeparator.module.css +2 -2
  137. package/es/DropDown/__tests__/DropDown.spec.js +1 -2
  138. package/es/DropDown/index.js +7 -0
  139. package/es/DropDown/props/defaultProps.js +3 -1
  140. package/es/DropDown/props/propTypes.js +2 -1
  141. package/es/Heading/Heading.js +8 -7
  142. package/es/Heading/Heading.module.css +2 -2
  143. package/es/Label/Label.js +14 -9
  144. package/es/Label/Label.module.css +1 -1
  145. package/es/Label/props/defaultProps.js +2 -1
  146. package/es/Label/props/propTypes.js +1 -0
  147. package/es/Layout/Box.js +19 -4
  148. package/es/Layout/Container.js +18 -5
  149. package/es/Layout/Layout.module.css +15 -15
  150. package/es/Layout/index.js +9 -10
  151. package/es/Layout/props/defaultProps.js +6 -2
  152. package/es/Layout/props/propTypes.js +7 -3
  153. package/es/Layout/utils.js +5 -1
  154. package/es/ListItem/ListContainer.js +21 -9
  155. package/es/ListItem/ListItem.js +30 -14
  156. package/es/ListItem/ListItem.module.css +37 -30
  157. package/es/ListItem/ListItemWithAvatar.js +30 -15
  158. package/es/ListItem/ListItemWithCheckBox.js +22 -10
  159. package/es/ListItem/ListItemWithIcon.js +29 -14
  160. package/es/ListItem/ListItemWithRadio.js +22 -10
  161. package/es/ListItem/index.js +6 -0
  162. package/es/ListItem/props/defaultProps.js +18 -6
  163. package/es/ListItem/props/propTypes.js +13 -1
  164. package/es/Modal/Modal.js +35 -17
  165. package/es/MultiSelect/AdvancedGroupMultiSelect.js +100 -20
  166. package/es/MultiSelect/AdvancedMultiSelect.js +45 -19
  167. package/es/MultiSelect/EmptyState.js +6 -0
  168. package/es/MultiSelect/MultiSelect.js +129 -46
  169. package/es/MultiSelect/MultiSelect.module.css +32 -31
  170. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  171. package/es/MultiSelect/MultiSelectWithAvatar.js +43 -19
  172. package/es/MultiSelect/SelectedOptions.js +6 -3
  173. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  174. package/es/MultiSelect/Suggestions.js +13 -6
  175. package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
  176. package/es/MultiSelect/index.js +4 -0
  177. package/es/MultiSelect/props/defaultProps.js +11 -4
  178. package/es/MultiSelect/props/propTypes.js +17 -5
  179. package/es/PopOver/PopOver.js +25 -9
  180. package/es/PopOver/__tests__/PopOver.spec.js +2 -1
  181. package/es/PopOver/index.js +3 -0
  182. package/es/Popup/Popup.js +80 -31
  183. package/es/Popup/__tests__/Popup.spec.js +17 -5
  184. package/es/Popup/viewPort.js +16 -4
  185. package/es/Provider/AvatarSize.js +1 -0
  186. package/es/Provider/IdProvider.js +16 -10
  187. package/es/Provider/LibraryContext.js +6 -4
  188. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  189. package/es/Provider/ZindexProvider.js +9 -2
  190. package/es/Provider/index.js +4 -0
  191. package/es/Radio/Radio.js +9 -7
  192. package/es/Radio/Radio.module.css +3 -3
  193. package/es/Responsive/CustomResponsive.js +37 -21
  194. package/es/Responsive/RefWrapper.js +6 -7
  195. package/es/Responsive/ResizeComponent.js +35 -25
  196. package/es/Responsive/ResizeObserver.js +26 -6
  197. package/es/Responsive/Responsive.js +34 -20
  198. package/es/Responsive/index.js +9 -8
  199. package/es/Responsive/sizeObservers.js +28 -7
  200. package/es/Responsive/utils/index.js +7 -5
  201. package/es/Responsive/utils/shallowCompare.js +7 -2
  202. package/es/Responsive/windowResizeObserver.js +7 -0
  203. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  204. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  205. package/es/Ribbon/Ribbon.js +21 -15
  206. package/es/Ribbon/Ribbon.module.css +133 -55
  207. package/es/Ribbon/props/defaultProps.js +2 -1
  208. package/es/Ribbon/props/propTypes.js +2 -1
  209. package/es/RippleEffect/RippleEffect.js +6 -7
  210. package/es/Select/GroupSelect.js +71 -23
  211. package/es/Select/Select.js +115 -50
  212. package/es/Select/Select.module.css +23 -23
  213. package/es/Select/SelectWithAvatar.js +31 -12
  214. package/es/Select/SelectWithIcon.js +60 -14
  215. package/es/Select/__tests__/Select.spec.js +6 -8
  216. package/es/Select/index.js +4 -0
  217. package/es/Select/props/defaultProps.js +6 -1
  218. package/es/Select/props/propTypes.js +10 -4
  219. package/es/Stencils/Stencils.js +10 -9
  220. package/es/Stencils/Stencils.module.css +2 -2
  221. package/es/Switch/Switch.js +14 -8
  222. package/es/Switch/Switch.module.css +49 -32
  223. package/es/Switch/props/defaultProps.js +2 -1
  224. package/es/Switch/props/propTypes.js +1 -0
  225. package/es/Tab/Tab.js +14 -11
  226. package/es/Tab/Tab.module.css +14 -15
  227. package/es/Tab/TabContent.js +6 -3
  228. package/es/Tab/TabContentWrapper.js +6 -2
  229. package/es/Tab/TabWrapper.js +9 -4
  230. package/es/Tab/Tabs.js +85 -21
  231. package/es/Tab/Tabs.module.css +36 -40
  232. package/es/Tab/__tests__/Tab.spec.js +4 -12
  233. package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
  234. package/es/Tab/props/defaultProps.js +10 -5
  235. package/es/Tab/props/propTypes.js +10 -5
  236. package/es/Tag/Tag.js +16 -10
  237. package/es/Tag/Tag.module.css +10 -10
  238. package/es/Tag/props/defaultProps.js +2 -1
  239. package/es/Tag/props/propTypes.js +2 -1
  240. package/es/TextBox/TextBox.js +26 -10
  241. package/es/TextBox/TextBox.module.css +6 -5
  242. package/es/TextBox/__tests__/TextBox.spec.js +1 -4
  243. package/es/TextBox/props/defaultProps.js +2 -1
  244. package/es/TextBox/props/propTypes.js +2 -1
  245. package/es/TextBoxIcon/TextBoxIcon.js +39 -13
  246. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -6
  247. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
  248. package/es/TextBoxIcon/props/defaultProps.js +2 -1
  249. package/es/TextBoxIcon/props/propTypes.js +1 -0
  250. package/es/Textarea/Textarea.js +23 -10
  251. package/es/Textarea/Textarea.module.css +6 -6
  252. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  253. package/es/Textarea/props/defaultProps.js +2 -1
  254. package/es/Textarea/props/propTypes.js +1 -0
  255. package/es/Tooltip/Tooltip.js +67 -21
  256. package/es/Tooltip/Tooltip.module.css +40 -8
  257. package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
  258. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +7 -6
  259. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +11 -8
  260. package/es/VelocityAnimation/index.js +2 -0
  261. package/es/common/a11y.module.css +4 -0
  262. package/es/common/animation.module.css +8 -8
  263. package/es/common/avatarsizes.module.css +6 -2
  264. package/es/common/basicReset.module.css +3 -3
  265. package/es/common/boxShadow.module.css +34 -0
  266. package/es/common/common.module.css +24 -24
  267. package/es/common/customscroll.module.css +4 -2
  268. package/es/common/reset.module.css +1 -0
  269. package/es/css.js +2 -1
  270. package/es/deprecated/AdvancedMultiSelect.module.css +18 -18
  271. package/es/deprecated/PortalLayer/PortalLayer.js +30 -24
  272. package/es/index.js +30 -146
  273. package/es/semantic/Button/Button.js +9 -7
  274. package/es/semantic/Button/semanticButton.module.css +1 -1
  275. package/es/semantic/index.js +1 -0
  276. package/es/utils/Common.js +74 -7
  277. package/es/utils/ContextOptimizer.js +4 -5
  278. package/es/utils/__tests__/debounce.spec.js +2 -2
  279. package/es/utils/constructFullName.js +2 -0
  280. package/es/utils/css/compileClassNames.js +28 -0
  281. package/es/utils/css/mergeStyle.js +57 -0
  282. package/es/utils/css/utils.js +24 -0
  283. package/es/utils/datetime/GMTZones.js +48 -0
  284. package/es/utils/datetime/common.js +31 -7
  285. package/es/utils/debounce.js +5 -1
  286. package/es/utils/dropDownUtils.js +71 -13
  287. package/es/utils/getInitial.js +4 -0
  288. package/es/utils/index.js +3 -0
  289. package/es/utils/shallowEqual.js +6 -0
  290. package/install.md +10 -0
  291. package/lib/Accordion/Accordion.js +50 -18
  292. package/lib/Accordion/AccordionItem.js +47 -20
  293. package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
  294. package/lib/Accordion/index.js +3 -0
  295. package/lib/Accordion/props/defaultProps.js +6 -2
  296. package/lib/Accordion/props/propTypes.js +6 -0
  297. package/lib/Animation/Animation.js +44 -21
  298. package/lib/Animation/__tests__/Animation.spec.js +11 -7
  299. package/lib/Animation/props/propTypes.js +3 -0
  300. package/lib/AppContainer/AppContainer.js +75 -27
  301. package/lib/AppContainer/AppContainer.module.css +2 -2
  302. package/lib/AppContainer/props/defaultProps.js +3 -1
  303. package/lib/AppContainer/props/propTypes.js +5 -0
  304. package/lib/Avatar/Avatar.js +97 -44
  305. package/lib/Avatar/Avatar.module.css +59 -18
  306. package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
  307. package/lib/Avatar/props/defaultProps.js +4 -1
  308. package/lib/Avatar/props/propTypes.js +8 -2
  309. package/lib/AvatarTeam/AvatarTeam.js +64 -30
  310. package/lib/AvatarTeam/AvatarTeam.module.css +49 -21
  311. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
  312. package/lib/AvatarTeam/props/defaultProps.js +5 -1
  313. package/lib/AvatarTeam/props/propTypes.js +8 -1
  314. package/lib/Button/Button.js +64 -74
  315. package/{es/Button → lib/Button/css}/Button.module.css +62 -58
  316. package/lib/Button/css/cssJSLogic.js +41 -0
  317. package/lib/Button/index.js +23 -0
  318. package/lib/Button/props/defaultProps.js +5 -1
  319. package/lib/Button/props/propTypes.js +11 -3
  320. package/lib/Buttongroup/Buttongroup.js +49 -19
  321. package/lib/Buttongroup/Buttongroup.module.css +45 -28
  322. package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
  323. package/lib/Buttongroup/props/defaultProps.js +3 -1
  324. package/lib/Buttongroup/props/propTypes.js +6 -1
  325. package/lib/Card/Card.js +119 -55
  326. package/lib/Card/__tests__/Card.spec.js +10 -1
  327. package/lib/Card/index.js +4 -0
  328. package/lib/Card/props/defaultProps.js +16 -4
  329. package/lib/Card/props/propTypes.js +5 -2
  330. package/lib/CheckBox/CheckBox.js +76 -48
  331. package/lib/CheckBox/CheckBox.module.css +16 -16
  332. package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
  333. package/lib/CheckBox/props/propTypes.js +4 -0
  334. package/lib/DateTime/CalendarView.js +95 -38
  335. package/lib/DateTime/DateTime.js +309 -216
  336. package/lib/DateTime/DateTime.module.css +51 -48
  337. package/lib/DateTime/DateTimePopupFooter.js +30 -5
  338. package/lib/DateTime/DateTimePopupHeader.js +69 -23
  339. package/lib/DateTime/DateWidget.js +370 -260
  340. package/lib/DateTime/DateWidget.module.css +5 -5
  341. package/lib/DateTime/DaysRow.js +28 -3
  342. package/lib/DateTime/Time.js +72 -29
  343. package/lib/DateTime/YearView.js +89 -30
  344. package/lib/DateTime/YearView.module.css +33 -15
  345. package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
  346. package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
  347. package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
  348. package/lib/DateTime/common.js +6 -0
  349. package/lib/DateTime/constants.js +1 -0
  350. package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
  351. package/lib/DateTime/dateFormatUtils/dateFormats.js +50 -0
  352. package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
  353. package/lib/DateTime/dateFormatUtils/index.js +99 -13
  354. package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
  355. package/lib/DateTime/dateFormatUtils/timeChange.js +52 -20
  356. package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
  357. package/lib/DateTime/index.js +3 -1
  358. package/lib/DateTime/objectUtils.js +24 -20
  359. package/lib/DateTime/props/defaultProps.js +2 -1
  360. package/lib/DateTime/props/propTypes.js +21 -2
  361. package/lib/DateTime/typeChecker.js +4 -0
  362. package/lib/DateTime/validator.js +69 -6
  363. package/lib/DropBox/DropBox.js +102 -249
  364. package/lib/DropBox/DropBoxElement/DropBoxElement.js +145 -0
  365. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  366. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +81 -0
  367. package/lib/DropBox/DropBoxElement/props/defaultProps.js +25 -0
  368. package/lib/DropBox/DropBoxElement/props/propTypes.js +56 -0
  369. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +60 -0
  370. package/lib/DropBox/__tests__/DropBox.spec.js +8 -4
  371. package/lib/DropBox/css/DropBox.module.css +59 -0
  372. package/lib/DropBox/css/cssJSLogic.js +20 -0
  373. package/lib/DropBox/props/defaultProps.js +20 -17
  374. package/lib/DropBox/props/propTypes.js +22 -43
  375. package/lib/DropDown/DropDown.js +58 -10
  376. package/lib/DropDown/DropDown.module.css +2 -2
  377. package/lib/DropDown/DropDownHeading.js +47 -18
  378. package/lib/DropDown/DropDownHeading.module.css +3 -3
  379. package/lib/DropDown/DropDownItem.js +43 -18
  380. package/lib/DropDown/DropDownItem.module.css +9 -9
  381. package/lib/DropDown/DropDownSearch.js +39 -14
  382. package/lib/DropDown/DropDownSeparator.js +23 -1
  383. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  384. package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
  385. package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
  386. package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
  387. package/lib/DropDown/index.js +65 -0
  388. package/lib/DropDown/props/defaultProps.js +3 -1
  389. package/lib/DropDown/props/propTypes.js +7 -1
  390. package/lib/Heading/Heading.js +42 -16
  391. package/lib/Heading/Heading.module.css +2 -2
  392. package/lib/Heading/props/propTypes.js +3 -0
  393. package/lib/Label/Label.js +47 -19
  394. package/lib/Label/Label.module.css +1 -1
  395. package/lib/Label/__tests__/Label.spec.js +14 -1
  396. package/lib/Label/props/defaultProps.js +2 -1
  397. package/lib/Label/props/propTypes.js +4 -0
  398. package/lib/Layout/Box.js +41 -16
  399. package/lib/Layout/Container.js +39 -15
  400. package/lib/Layout/Layout.module.css +15 -15
  401. package/lib/Layout/__tests__/Box.spec.js +65 -49
  402. package/lib/Layout/__tests__/Container.spec.js +67 -50
  403. package/lib/Layout/index.js +4 -11
  404. package/lib/Layout/props/defaultProps.js +6 -2
  405. package/lib/Layout/props/propTypes.js +10 -3
  406. package/lib/Layout/utils.js +15 -1
  407. package/lib/ListItem/ListContainer.js +61 -34
  408. package/lib/ListItem/ListItem.js +92 -50
  409. package/lib/ListItem/ListItem.module.css +37 -30
  410. package/lib/ListItem/ListItemWithAvatar.js +98 -54
  411. package/lib/ListItem/ListItemWithCheckBox.js +82 -41
  412. package/lib/ListItem/ListItemWithIcon.js +92 -50
  413. package/lib/ListItem/ListItemWithRadio.js +83 -42
  414. package/lib/ListItem/index.js +55 -0
  415. package/lib/ListItem/props/defaultProps.js +18 -6
  416. package/lib/ListItem/props/propTypes.js +18 -3
  417. package/lib/Modal/Modal.js +51 -13
  418. package/lib/Modal/props/propTypes.js +3 -0
  419. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +300 -167
  420. package/lib/MultiSelect/AdvancedMultiSelect.js +212 -130
  421. package/lib/MultiSelect/EmptyState.js +48 -21
  422. package/lib/MultiSelect/MultiSelect.js +341 -205
  423. package/lib/MultiSelect/MultiSelect.module.css +32 -31
  424. package/lib/MultiSelect/MultiSelectHeader.js +29 -5
  425. package/lib/MultiSelect/MultiSelectWithAvatar.js +126 -65
  426. package/lib/MultiSelect/SelectedOptions.js +42 -14
  427. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  428. package/lib/MultiSelect/Suggestions.js +66 -29
  429. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
  430. package/lib/MultiSelect/index.js +39 -0
  431. package/lib/MultiSelect/props/defaultProps.js +13 -4
  432. package/lib/MultiSelect/props/propTypes.js +20 -5
  433. package/lib/PopOver/PopOver.js +101 -53
  434. package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
  435. package/lib/PopOver/index.js +31 -0
  436. package/lib/PopOver/props/propTypes.js +3 -0
  437. package/lib/Popup/Popup.js +158 -83
  438. package/lib/Popup/__tests__/Popup.spec.js +42 -5
  439. package/lib/Popup/viewPort.js +28 -14
  440. package/lib/Provider/AvatarSize.js +5 -0
  441. package/lib/Provider/Config.js +2 -0
  442. package/lib/Provider/CssProvider.js +4 -0
  443. package/lib/Provider/IdProvider.js +23 -12
  444. package/lib/Provider/LibraryContext.js +32 -10
  445. package/lib/Provider/LibraryContextInit.js +4 -0
  446. package/lib/Provider/NumberGenerator/NumberGenerator.js +43 -14
  447. package/lib/Provider/ZindexProvider.js +15 -3
  448. package/lib/Provider/index.js +81 -0
  449. package/lib/Radio/Radio.js +65 -40
  450. package/lib/Radio/Radio.module.css +3 -3
  451. package/lib/Radio/__tests__/Radiospec.js +9 -5
  452. package/lib/Radio/props/propTypes.js +3 -0
  453. package/lib/Responsive/CustomResponsive.js +76 -26
  454. package/lib/Responsive/RefWrapper.js +15 -7
  455. package/lib/Responsive/ResizeComponent.js +58 -27
  456. package/lib/Responsive/ResizeObserver.js +23 -6
  457. package/lib/Responsive/Responsive.js +76 -24
  458. package/lib/Responsive/index.js +49 -22
  459. package/lib/Responsive/props/propTypes.js +3 -0
  460. package/lib/Responsive/sizeObservers.js +51 -13
  461. package/lib/Responsive/utils/index.js +11 -3
  462. package/lib/Responsive/utils/shallowCompare.js +11 -2
  463. package/lib/Responsive/windowResizeObserver.js +8 -0
  464. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +44 -14
  465. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  466. package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
  467. package/lib/Ribbon/Ribbon.js +48 -21
  468. package/lib/Ribbon/Ribbon.module.css +133 -55
  469. package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
  470. package/lib/Ribbon/props/defaultProps.js +2 -1
  471. package/lib/Ribbon/props/propTypes.js +5 -1
  472. package/lib/RippleEffect/RippleEffect.js +23 -14
  473. package/lib/RippleEffect/props/propTypes.js +3 -0
  474. package/lib/Select/GroupSelect.js +240 -137
  475. package/lib/Select/Select.js +320 -220
  476. package/lib/Select/Select.module.css +23 -23
  477. package/lib/Select/SelectWithAvatar.js +112 -59
  478. package/lib/Select/SelectWithIcon.js +145 -82
  479. package/lib/Select/__tests__/Select.spec.js +131 -89
  480. package/lib/Select/index.js +39 -0
  481. package/lib/Select/props/defaultProps.js +10 -2
  482. package/lib/Select/props/propTypes.js +13 -4
  483. package/lib/Stencils/Stencils.js +35 -13
  484. package/lib/Stencils/Stencils.module.css +2 -2
  485. package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
  486. package/lib/Stencils/props/propTypes.js +3 -0
  487. package/lib/Switch/Switch.js +64 -35
  488. package/lib/Switch/Switch.module.css +49 -32
  489. package/lib/Switch/props/defaultProps.js +2 -1
  490. package/lib/Switch/props/propTypes.js +4 -0
  491. package/lib/Tab/Tab.js +49 -33
  492. package/lib/Tab/Tab.module.css +14 -15
  493. package/lib/Tab/TabContent.js +15 -6
  494. package/lib/Tab/TabContentWrapper.js +15 -6
  495. package/lib/Tab/TabWrapper.js +37 -17
  496. package/lib/Tab/Tabs.js +193 -94
  497. package/lib/Tab/Tabs.module.css +36 -40
  498. package/lib/Tab/__tests__/Tab.spec.js +74 -70
  499. package/lib/Tab/__tests__/TabContent.spec.js +10 -6
  500. package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
  501. package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
  502. package/lib/Tab/__tests__/Tabs.spec.js +53 -39
  503. package/lib/Tab/index.js +6 -0
  504. package/lib/Tab/props/defaultProps.js +10 -5
  505. package/lib/Tab/props/propTypes.js +13 -5
  506. package/lib/Tag/Tag.js +82 -48
  507. package/lib/Tag/Tag.module.css +10 -10
  508. package/lib/Tag/__tests__/Tag.spec.js +14 -8
  509. package/lib/Tag/props/defaultProps.js +2 -1
  510. package/lib/Tag/props/propTypes.js +5 -1
  511. package/lib/TextBox/TextBox.js +93 -61
  512. package/lib/TextBox/TextBox.module.css +6 -5
  513. package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
  514. package/lib/TextBox/props/defaultProps.js +2 -1
  515. package/lib/TextBox/props/propTypes.js +6 -1
  516. package/lib/TextBoxIcon/TextBoxIcon.js +108 -60
  517. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -6
  518. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
  519. package/lib/TextBoxIcon/props/defaultProps.js +2 -1
  520. package/lib/TextBoxIcon/props/propTypes.js +4 -0
  521. package/lib/Textarea/Textarea.js +63 -32
  522. package/lib/Textarea/Textarea.module.css +6 -6
  523. package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
  524. package/lib/Textarea/props/defaultProps.js +2 -1
  525. package/lib/Textarea/props/propTypes.js +4 -0
  526. package/lib/Tooltip/Tooltip.js +102 -35
  527. package/lib/Tooltip/Tooltip.module.css +40 -8
  528. package/lib/Tooltip/__tests__/Tooltip.spec.js +23 -0
  529. package/lib/Tooltip/props/propTypes.js +3 -0
  530. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +43 -17
  531. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  532. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +55 -24
  533. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  534. package/lib/VelocityAnimation/index.js +23 -0
  535. package/lib/common/a11y.module.css +4 -0
  536. package/lib/common/animation.module.css +8 -8
  537. package/lib/common/avatarsizes.module.css +6 -2
  538. package/lib/common/basicReset.module.css +3 -3
  539. package/lib/common/boxShadow.module.css +34 -0
  540. package/lib/common/common.module.css +24 -24
  541. package/lib/common/customscroll.module.css +4 -2
  542. package/lib/common/reset.module.css +1 -0
  543. package/lib/css.js +42 -1
  544. package/lib/deprecated/AdvancedMultiSelect.module.css +18 -18
  545. package/lib/deprecated/PortalLayer/PortalLayer.js +50 -24
  546. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  547. package/lib/index.js +214 -210
  548. package/lib/semantic/Button/Button.js +47 -24
  549. package/lib/semantic/Button/props/propTypes.js +3 -0
  550. package/lib/semantic/Button/semanticButton.module.css +1 -1
  551. package/lib/semantic/index.js +15 -0
  552. package/lib/utils/Common.js +136 -17
  553. package/lib/utils/ContextOptimizer.js +16 -10
  554. package/lib/utils/__tests__/constructFullName.spec.js +1 -0
  555. package/lib/utils/__tests__/debounce.spec.js +3 -2
  556. package/lib/utils/__tests__/getInitial.spec.js +1 -0
  557. package/lib/utils/constructFullName.js +11 -2
  558. package/lib/utils/css/compileClassNames.js +37 -0
  559. package/lib/utils/css/mergeStyle.js +69 -0
  560. package/lib/utils/css/utils.js +41 -0
  561. package/lib/utils/datetime/GMTZones.js +55 -0
  562. package/lib/utils/datetime/common.js +52 -7
  563. package/lib/utils/debounce.js +6 -1
  564. package/lib/utils/dropDownUtils.js +177 -56
  565. package/lib/utils/dummyFunction.js +2 -0
  566. package/lib/utils/getHTMLFontSize.js +1 -0
  567. package/lib/utils/getInitial.js +6 -0
  568. package/lib/utils/index.js +121 -0
  569. package/lib/utils/scrollTo.js +2 -0
  570. package/lib/utils/shallowEqual.js +8 -0
  571. package/package.json +61 -26
  572. package/postPublish.js +8 -0
  573. package/prePublish.js +70 -0
  574. package/docs/external/active-line.js +0 -72
  575. package/docs/external/autorefresh.js +0 -47
  576. package/docs/external/codemirror.js +0 -9681
  577. package/docs/external/css/hopscotch.css +0 -576
  578. package/docs/external/css/styleGuide.css +0 -1100
  579. package/docs/external/css.js +0 -466
  580. package/docs/external/designTokens.js +0 -1
  581. package/docs/external/foldcode.js +0 -152
  582. package/docs/external/format.js +0 -129
  583. package/docs/external/htmlmixed.js +0 -84
  584. package/docs/external/images/bottom.png +0 -0
  585. package/docs/external/images/bottombg.jpg +0 -0
  586. package/docs/external/images/desk.png +0 -0
  587. package/docs/external/images/desklogo.png +0 -0
  588. package/docs/external/images/menu.png +0 -0
  589. package/docs/external/index.html +0 -127
  590. package/docs/external/javascript.js +0 -422
  591. package/docs/external/jsx.js +0 -148
  592. package/docs/external/matchbrackets.js +0 -145
  593. package/docs/external/xml.js +0 -322
  594. package/docs/package.json +0 -41
  595. package/docs/src/index.js +0 -1311
  596. package/es/Button/__tests__/Button.spec.js +0 -190
  597. package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  598. package/es/DropBox/DropBox.module.css +0 -406
  599. package/lib/Button/__tests__/Button.spec.js +0 -193
  600. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  601. package/lib/DropBox/DropBox.module.css +0 -406
package/es/Tab/Tabs.js CHANGED
@@ -1,9 +1,11 @@
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
+
3
5
  /* eslint css-modules/no-unused-class: [2, {
4
6
  markAsUsed: [
5
- 'hidden','alpha','gamma','beta','delta','zeta','special','text','maxWidth','widgetList','menuContainer','border','tabText','block','tabAlpha','alphaActive','gammaActive','betaActive','zetaActive','deltaActive','tabGamma','tabBeta','tabDelta','tabZeta','specialActive','tabSpecial',
6
- 'alpha_padding','alpha_border','gamma_padding','gamma_border','beta_padding','beta_border','delta_padding','delta_border','zeta_padding','zeta_border','textContainer','disabled','alphaActive_border','gammaActive_border','betaActive_border','zetaActive_border','deltaActive_border'
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'
7
9
  ]
8
10
  }]
9
11
  */
@@ -11,15 +13,17 @@ import React from 'react';
11
13
  import Tab from './Tab';
12
14
  import { Tabs_defaultProps } from './props/defaultProps';
13
15
  import { Tabs_propTypes } from './props/propTypes';
14
- import { remConvert, getTotalDimension, cs, bind, throttle } from '../utils/Common';
16
+ import { remConvert, getTotalDimension, cs, bind, throttle, cancelBubblingEffect } from '../utils/Common';
15
17
  import { Box, Container } from '../Layout';
16
18
  import ResizeObserver from '../Responsive/ResizeObserver';
17
19
  import ListItem from '../ListItem/ListItem';
18
- import Icon from '@zohodesk/icons/lib/Icon';
20
+ import { Icon } from '@zohodesk/icons';
19
21
  import tabsStyle from './Tabs.module.css';
20
22
  import Popup from '../Popup/Popup';
21
23
  import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
22
24
  import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
25
+ import btnstyle from '../semantic/Button/semanticButton.module.css';
26
+
23
27
  class Tabs extends React.Component {
24
28
  constructor(props) {
25
29
  super(props);
@@ -34,6 +38,7 @@ class Tabs extends React.Component {
34
38
  this.tabsObserver = new ResizeObserver(this.onResize);
35
39
  this.tabObserver = {};
36
40
  }
41
+
37
42
  onTabResize(size, target) {
38
43
  let {
39
44
  align
@@ -43,13 +48,16 @@ class Tabs extends React.Component {
43
48
  } = this.state;
44
49
  let newDim = Object.assign({}, tabDimensions);
45
50
  let elemDim = getTotalDimension(target, align);
51
+
46
52
  if (elemDim !== 0) {
47
53
  newDim[target.dataset.key] = elemDim;
48
54
  }
55
+
49
56
  this.setState({
50
57
  tabDimensions: newDim
51
58
  });
52
59
  }
60
+
53
61
  componentDidMount() {
54
62
  let {
55
63
  children,
@@ -58,9 +66,14 @@ class Tabs extends React.Component {
58
66
  let totalDimension = this.getTotalDimension();
59
67
  let tabDimensions = this.getTabDimensions();
60
68
  let tabKeys = [];
69
+ let restrictedKeys = ['state', 'props', 'refs', 'context'];
61
70
  React.Children.toArray(children).forEach(child => {
62
71
  if (child && child.props.id && child.type === childType) {
63
- tabKeys.push(child.props.id);
72
+ if (restrictedKeys.includes(child.props.id)) {
73
+ throw new Error('Restricted id name found in Tabs, Please avoid these names => ' + restrictedKeys.toString());
74
+ } else {
75
+ tabKeys.push(child.props.id);
76
+ }
64
77
  }
65
78
  });
66
79
  this.setState({
@@ -75,11 +88,13 @@ class Tabs extends React.Component {
75
88
  this.moveHighlight();
76
89
  });
77
90
  }
91
+
78
92
  componentWillUnmount() {
79
93
  if (this.tabsObserver) {
80
94
  this.tabsObserver.disconnect();
81
95
  this.tabsObserver = null;
82
96
  }
97
+
83
98
  if (this.tabObserver) {
84
99
  Object.keys(this.tabObserver).forEach(observer => {
85
100
  this.tabObserver[observer] && this.tabObserver[observer].disconnect();
@@ -87,15 +102,16 @@ class Tabs extends React.Component {
87
102
  this.tabObserver = null;
88
103
  }
89
104
  }
105
+
90
106
  setMaxDim() {
91
107
  let totalDimension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
92
108
  let {
93
109
  selectedTab
94
- } = this.props;
95
- // let actual = Object.keys(tabDimensions).reduce(
110
+ } = this.props; // let actual = Object.keys(tabDimensions).reduce(
96
111
  // (sum, tab) => sum + (tabDimensions[tab] || 0),
97
112
  // 0
98
113
  // );
114
+
99
115
  if (totalDimension && this[selectedTab]) {
100
116
  let {
101
117
  align
@@ -104,12 +120,14 @@ class Tabs extends React.Component {
104
120
  align === 'vertical' ? this[selectedTab].style.maxWidth = newDim : this[selectedTab].style.maxHeight = newDim;
105
121
  }
106
122
  }
123
+
107
124
  getHighlightDim() {
108
125
  let {
109
126
  align
110
127
  } = this.props;
111
128
  return align === 'vertical' ? this.highlight.offsetLeft : this.highlight.offsetTop;
112
129
  }
130
+
113
131
  componentDidUpdate(prevProps) {
114
132
  let {
115
133
  children,
@@ -121,12 +139,12 @@ class Tabs extends React.Component {
121
139
  totalDimension,
122
140
  tabKeys
123
141
  } = this.state;
142
+
124
143
  if (prevProps.children && children) {
125
144
  /**
126
145
  * To recalculate the dimensions of tabs we are checking the children length.
127
146
  * and also checking the tab id and their order.
128
147
  */
129
-
130
148
  let newTabKeys = [];
131
149
  React.Children.toArray(children).forEach(child => {
132
150
  if (child && child.props.id && child.type === childType) {
@@ -134,6 +152,7 @@ class Tabs extends React.Component {
134
152
  }
135
153
  });
136
154
  let isSameTabKeys = newTabKeys.every((current, index) => tabKeys[index] === current);
155
+
137
156
  if (newTabKeys.length !== tabKeys.length || !isSameTabKeys) {
138
157
  this.setState({
139
158
  renderVirtualTabs: true,
@@ -148,11 +167,13 @@ class Tabs extends React.Component {
148
167
  });
149
168
  });
150
169
  }
170
+
151
171
  if (prevProps.selectedTab !== selectedTab || newTabKeys.length === 1) {
152
172
  this.moveHighlight();
153
173
  }
154
174
  }
155
175
  }
176
+
156
177
  moveHighlight() {
157
178
  let {
158
179
  isAnimate,
@@ -164,10 +185,13 @@ class Tabs extends React.Component {
164
185
  highlightInitialDimension
165
186
  } = this.state;
166
187
  let node = this.highlight;
188
+
167
189
  if (isAnimate && needTabBorder && node) {
168
190
  let tabActive = this[selectedTab];
191
+
169
192
  if (tabActive) {
170
193
  let position, dimension;
194
+
171
195
  if (align === 'vertical') {
172
196
  position = tabActive.offsetLeft;
173
197
  dimension = tabActive.offsetWidth;
@@ -182,17 +206,21 @@ class Tabs extends React.Component {
182
206
  }
183
207
  }
184
208
  }
209
+
185
210
  getHighlightRef(ele) {
186
211
  this.highlight = ele;
187
212
  }
213
+
188
214
  getTabsRef(ele) {
189
215
  this.tabsEle = ele;
216
+
190
217
  if (ele) {
191
218
  this.tabsObserver.observe(ele);
192
219
  } else {
193
220
  this.tabsObserver && this.tabsObserver.disconnect();
194
221
  }
195
222
  }
223
+
196
224
  onSizeChange() {
197
225
  let totalDimension = this.getTotalDimension();
198
226
  this.setState({
@@ -204,10 +232,12 @@ class Tabs extends React.Component {
204
232
  this.moveHighlight();
205
233
  });
206
234
  }
235
+
207
236
  onResize(timer) {
208
237
  let {
209
238
  isResponsive
210
239
  } = this.props;
240
+
211
241
  if (this.tabsEle && isResponsive) {
212
242
  if (!timer) {
213
243
  this.onSizeChange();
@@ -218,6 +248,7 @@ class Tabs extends React.Component {
218
248
  }
219
249
  }
220
250
  }
251
+
221
252
  getTotalDimension() {
222
253
  let {
223
254
  align
@@ -225,6 +256,7 @@ class Tabs extends React.Component {
225
256
  let totalDimension = this.tabsEle && getTotalDimension(this.tabsEle, align);
226
257
  return totalDimension;
227
258
  }
259
+
228
260
  getTabDimensions() {
229
261
  let {
230
262
  children,
@@ -237,6 +269,7 @@ class Tabs extends React.Component {
237
269
  }));
238
270
  return tabDimensions;
239
271
  }
272
+
240
273
  responsiveTab(totalDimension, tabDimensions) {
241
274
  let {
242
275
  children,
@@ -245,8 +278,9 @@ class Tabs extends React.Component {
245
278
  isResponsive
246
279
  } = this.props;
247
280
  let mainTabs = [],
248
- moreTabs = [],
249
- otherTabs = [];
281
+ moreTabs = [],
282
+ otherTabs = [];
283
+
250
284
  if (totalDimension && isResponsive) {
251
285
  let {
252
286
  childType,
@@ -261,6 +295,7 @@ class Tabs extends React.Component {
261
295
  const elemDimension = tabDimensions[child.props.id];
262
296
  let isMaxCountExceeded = maxTabsTobeVisible <= 0 ? true : false;
263
297
  let isMinCountNotExceeded = minTabsToBeVisible < minTabsCount ? true : false;
298
+
264
299
  if (child.props.id === selectedTab) {
265
300
  mainTabs.push(child);
266
301
  } else if (isMinCountNotExceeded) {
@@ -279,6 +314,7 @@ class Tabs extends React.Component {
279
314
  otherTabs.push(child);
280
315
  }
281
316
  });
317
+
282
318
  if (selectedTabDimension > totalDimension) {
283
319
  /* let { align } = this.props;
284
320
  let newDim = `${remConvert(totalDimension)}rem`;
@@ -305,15 +341,18 @@ class Tabs extends React.Component {
305
341
  } else {
306
342
  moreTabs = children;
307
343
  }
344
+
308
345
  return {
309
346
  mainTabs,
310
347
  moreTabs,
311
348
  otherTabs
312
349
  };
313
350
  }
351
+
314
352
  getTabRef(refName, ele, isVirtual) {
315
353
  this[refName] = ele;
316
354
  let key = isVirtual ? `virtual_${refName}` : refName;
355
+
317
356
  if (ele) {
318
357
  this.tabObserver[key] = new ResizeObserver(this.onTabResize);
319
358
  this.tabObserver[key].observe(ele);
@@ -323,17 +362,21 @@ class Tabs extends React.Component {
323
362
  }
324
363
  }
325
364
  }
365
+
326
366
  moreTabSelect(tab, value, index, e) {
327
367
  let {
328
368
  onSelect
329
369
  } = this.props;
370
+
330
371
  if (e && e.target && e.target.parentElement.tagName === 'A' && (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)) {
331
- e && e.stopPropagation();
372
+ cancelBubblingEffect(e);
332
373
  return;
333
374
  }
375
+
334
376
  e.preventDefault();
335
377
  onSelect(tab);
336
378
  }
379
+
337
380
  onScroll(e) {
338
381
  e.persist();
339
382
  let {
@@ -341,6 +384,7 @@ class Tabs extends React.Component {
341
384
  } = this.props;
342
385
  onScroll && throttle(onScroll, 100, e);
343
386
  }
387
+
344
388
  togglePopup(e) {
345
389
  let {
346
390
  boxPosition,
@@ -353,6 +397,7 @@ class Tabs extends React.Component {
353
397
  boxPosition = boxPosition ? boxPosition : popupPosition;
354
398
  togglePopup(e, boxPosition);
355
399
  }
400
+
356
401
  responsiveFunc(_ref) {
357
402
  let {
358
403
  mediaQueryOR
@@ -363,6 +408,7 @@ class Tabs extends React.Component {
363
408
  }])
364
409
  };
365
410
  }
411
+
366
412
  renderTabs(mainTabs, moreTabs, isVirtual) {
367
413
  let {
368
414
  selectedTab,
@@ -388,7 +434,8 @@ class Tabs extends React.Component {
388
434
  getTargetRef,
389
435
  position,
390
436
  customProps,
391
- getCustomDropBoxHeaderPlaceHolder
437
+ getCustomDropBoxHeaderPlaceHolder,
438
+ dataSelectorId
392
439
  } = this.props;
393
440
  let {
394
441
  DropBoxProps = {},
@@ -400,14 +447,18 @@ class Tabs extends React.Component {
400
447
  if (!child) {
401
448
  return null;
402
449
  }
450
+
403
451
  let MainTab = child.type;
404
452
  let classProps = {};
453
+
405
454
  if (itemActiveClass) {
406
455
  classProps.activeClass = itemActiveClass;
407
456
  }
457
+
408
458
  if (itemClass) {
409
459
  classProps.className = itemClass;
410
460
  }
461
+
411
462
  return /*#__PURE__*/React.isValidElement(child) && /*#__PURE__*/React.createElement(MainTab, _extends({}, child.props, {
412
463
  key: child.props.id,
413
464
  getTabRef: this.getTabRef,
@@ -422,14 +473,19 @@ class Tabs extends React.Component {
422
473
  isVirtual: isVirtual
423
474
  }, classProps));
424
475
  }), React.Children.count(moreTabs) ? /*#__PURE__*/React.createElement(Box, {
425
- className: `${tabsStyle.menu} `
476
+ className: `${tabsStyle.menu} `,
477
+ dataSelectorId: `${dataSelectorId}_moreIcon`
426
478
  }, /*#__PURE__*/React.createElement(Container, _extends({
427
- className: `${moreButtonClass} ${isPopupOpen ? moreButtonActiveClass : ''}`,
479
+ className: `${btnstyle.buttonReset} ${moreButtonClass} ${isPopupOpen ? moreButtonActiveClass : ''}`,
428
480
  align: "both",
429
481
  onClick: this.togglePopup,
430
482
  dataId: "moreTabs",
431
483
  eleRef: getTargetRef
432
- }, MoreButtonProps), /*#__PURE__*/React.createElement(Icon, {
484
+ }, MoreButtonProps, {
485
+ "aria-label": "MoreTabs",
486
+ role: "link",
487
+ tagName: "button"
488
+ }), /*#__PURE__*/React.createElement(Icon, {
433
489
  name: iconName,
434
490
  size: iconSize
435
491
  })), isPopupOpen && /*#__PURE__*/React.createElement(ResponsiveReceiver, {
@@ -451,7 +507,9 @@ class Tabs extends React.Component {
451
507
  isBoxPaddingNeed: true,
452
508
  isArrow: false
453
509
  }, DropBoxProps, {
454
- isResponsivePadding: true
510
+ isResponsivePadding: true,
511
+ needFocusScope: true,
512
+ onClose: this.togglePopup
455
513
  }), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(this.props), /*#__PURE__*/React.createElement(Box, {
456
514
  flexible: true,
457
515
  shrink: true,
@@ -462,6 +520,7 @@ class Tabs extends React.Component {
462
520
  if (!child) {
463
521
  return null;
464
522
  }
523
+
465
524
  let {
466
525
  text,
467
526
  id,
@@ -490,6 +549,7 @@ class Tabs extends React.Component {
490
549
  })));
491
550
  })) : null);
492
551
  }
552
+
493
553
  render() {
494
554
  let {
495
555
  style,
@@ -504,7 +564,8 @@ class Tabs extends React.Component {
504
564
  align,
505
565
  needAppearance,
506
566
  children,
507
- containerClass
567
+ containerClass,
568
+ dataSelectorId
508
569
  } = this.props;
509
570
  let {
510
571
  totalDimension,
@@ -520,7 +581,8 @@ class Tabs extends React.Component {
520
581
  let tabsClass = cs([tabsStyle.tab, className, needAppearance && appearanceClass]);
521
582
  let hlClass = cs([tabsStyle.highlight, highlightClass, isAnimate && tabsStyle.lineAnimate]);
522
583
  return /*#__PURE__*/React.createElement(Box, {
523
- className: containerClass
584
+ className: containerClass,
585
+ dataSelectorId: dataSelectorId
524
586
  }, /*#__PURE__*/React.createElement(Container, {
525
587
  alignBox: align === 'vertical' ? 'row' : 'column',
526
588
  className: tabsClass,
@@ -536,13 +598,15 @@ class Tabs extends React.Component {
536
598
  }, this.renderTabs(mainTabs, moreTabs, false))), otherTabs.length ? /*#__PURE__*/React.createElement(Box, null, otherTabs) : null, isAnimate && needTabBorder && needAppearance && /*#__PURE__*/React.createElement("div", {
537
599
  className: hlClass,
538
600
  ref: this.getHighlightRef,
539
- "data-id": dataId
601
+ "data-id": dataId,
602
+ "data-test-id": dataId
540
603
  })));
541
604
  }
605
+
542
606
  }
607
+
543
608
  Tabs.propTypes = Tabs_propTypes;
544
- Tabs.defaultProps = {
545
- ...Tabs_defaultProps,
609
+ Tabs.defaultProps = { ...Tabs_defaultProps,
546
610
  childType: Tab
547
611
  };
548
612
  export default Popup(Tabs);
@@ -1,20 +1,20 @@
1
1
  .tab {
2
2
  position: relative;
3
- composes: offSelection from '../common/common.module.css';
4
3
  z-index: 1;
5
- --tab_position_gap: var(--zd_size22);
4
+ --tab_position_gap: 22px;
6
5
  }
6
+
7
7
  .alpha {
8
- height: var(--zd_size35);
8
+ height: var(--zd_size35) ;
9
9
  background-color: var(--zdt_tabs_alpha_bg);
10
10
  }
11
11
 
12
12
  [dir=ltr] .alpha_padding {
13
- padding-left: var(--zd_size15);
13
+ padding-left: var(--zd_size15) ;
14
14
  }
15
15
 
16
16
  [dir=rtl] .alpha_padding {
17
- padding-right: var(--zd_size15);
17
+ padding-right: var(--zd_size15) ;
18
18
  }
19
19
 
20
20
  .alpha_border {
@@ -27,50 +27,50 @@
27
27
  content: '';
28
28
  position: absolute;
29
29
  z-index: -2;
30
- width: 76%;
31
- bottom: 0;
32
- height: var(--zd_size10);
30
+ width: 76% ;
31
+ bottom: 0 ;
32
+ height: var(--zd_size10) ;
33
33
  border-radius: 100px / 5px;
34
- box-shadow: 0 -2px 9px var(--zdt_tabs_alpha_box_shadow);
34
+ box-shadow: var(--zd_bs_tabs_shadow);
35
35
  }
36
36
 
37
37
  [dir=ltr] .alpha::after {
38
- left: 12%;
38
+ left: 12% ;
39
39
  }
40
40
 
41
41
  [dir=rtl] .alpha::after {
42
- right: 12%;
42
+ right: 12% ;
43
43
  }
44
44
 
45
45
  .alpha:before {
46
46
  content: '';
47
47
  position: absolute;
48
48
  z-index: -1;
49
- width: 100%;
50
- height: 100%;
51
- top: 0;
49
+ width: 100% ;
50
+ height: 100% ;
51
+ top: 0 ;
52
52
  background: inherit;
53
53
  }
54
54
 
55
55
  [dir=ltr] .alpha:before {
56
- left: 0;
56
+ left: 0 ;
57
57
  }
58
58
 
59
59
  [dir=rtl] .alpha:before {
60
- right: 0;
60
+ right: 0 ;
61
61
  }
62
62
 
63
63
  .beta {
64
- height: var(--zd_size61);
64
+ height: var(--zd_size61) ;
65
65
  background-color: var(--zdt_tabs_alpha_bg);
66
66
  }
67
67
 
68
68
  [dir=ltr] .beta_padding {
69
- padding-left: var(--zd_size13);
69
+ padding-left: var(--zd_size13) ;
70
70
  }
71
71
 
72
72
  [dir=rtl] .beta_padding {
73
- padding-right: var(--zd_size13);
73
+ padding-right: var(--zd_size13) ;
74
74
  }
75
75
 
76
76
  .beta_border {
@@ -78,16 +78,16 @@
78
78
  }
79
79
 
80
80
  .delta {
81
- height: var(--zd_size35);
81
+ height: var(--zd_size35) ;
82
82
  background-color: var(--zdt_tabs_alpha_bg);
83
83
  }
84
84
 
85
85
  [dir=ltr] .delta_padding {
86
- padding-left: var(--zd_size10);
86
+ padding-left: var(--zd_size10) ;
87
87
  }
88
88
 
89
89
  [dir=rtl] .delta_padding {
90
- padding-right: var(--zd_size10);
90
+ padding-right: var(--zd_size10) ;
91
91
  }
92
92
 
93
93
  .delta_border {
@@ -99,12 +99,12 @@
99
99
  }
100
100
 
101
101
  .maxWidth {
102
- max-width: 100%;
102
+ max-width: 100% ;
103
103
  }
104
104
 
105
105
  .highlight {
106
106
  position: absolute;
107
- bottom: 0;
107
+ bottom: 0 ;
108
108
  border-bottom: 1px solid var(--zdt_tabs_highlight_border);
109
109
  }
110
110
 
@@ -116,26 +116,22 @@
116
116
  position: relative;
117
117
  cursor: pointer;
118
118
  }
119
+
119
120
  .menuBox {
120
- max-height: var(--zd_size220);
121
+ max-height: var(--zd_size220) ;
121
122
  }
122
-
123
-
124
- [dir=ltr] .bottomRightToLeft, [dir=ltr] .topRightToLeft, [dir=ltr] .bottomCenterToLeft {
125
- right: calc(var(--tab_position_gap) * -1);
123
+ .bottomRightToLeft,
124
+ .topRightToLeft,
125
+ .bottomCenterToLeft {
126
+ right: calc(var(--tab_position_gap) * -1);
126
127
  }
127
128
 
128
-
129
- [dir=rtl] .bottomRightToLeft, [dir=rtl] .topRightToLeft, [dir=rtl] .bottomCenterToLeft {
130
- left: calc(var(--tab_position_gap) * -1);
131
- }
132
- [dir=ltr] .bottomLeftToRight, [dir=ltr] .topLeftToRight, [dir=ltr] .bottomCenterToRight {
133
- left: calc(var(--tab_position_gap) * -1);
134
- }
135
- [dir=rtl] .bottomLeftToRight, [dir=rtl] .topLeftToRight, [dir=rtl] .bottomCenterToRight {
136
- right: calc(var(--tab_position_gap) * -1);
129
+ .bottomLeftToRight,
130
+ .topLeftToRight,
131
+ .bottomCenterToRight {
132
+ left: calc(var(--tab_position_gap) * -1);
137
133
  }
138
134
 
139
- .hidden{
135
+ .hidden {
140
136
  visibility: hidden;
141
- }
137
+ }
@@ -44,18 +44,10 @@ describe('Tab Component', () => {
44
44
  getActiveRef: () => {}
45
45
  });
46
46
  expect(TestUtils.findRenderedComponentsWithTestid(renderedDOM, 'tabMenu_Tab').className.contains('tabDelta')).toBe(true);
47
- });
48
- it('Is Contains zeta class', () => {
49
- const {
50
- props,
51
- renderedDOM
52
- } = setup(Tab, {
53
- type: 'zeta',
54
- needAppearance: true,
55
- getActiveRef: () => {}
56
- });
57
- expect(TestUtils.findRenderedComponentsWithTestid(renderedDOM, 'tabMenu_Tab').className.contains('tab')).toBe(true);
58
- });
47
+ }); // it('Is Contains zeta class', () => {
48
+ // const { props, renderedDOM } = setup(Tab, { type: 'zeta', needAppearance: true, getActiveRef: () => { } });
49
+ // expect(TestUtils.findRenderedComponentsWithTestid(renderedDOM, 'tabMenu_Tab').className.contains('tab')).toBe(true);
50
+ // });
59
51
  // it('Is Contains special class', () => {
60
52
  // const { props, renderedDOM } = setup(Tab, { type: 'special', getActiveRef: () => {} });
61
53
  // expect(TestUtils.findRenderedComponentsWithTestid(renderedDOM, 'tabMenu_Tab').className.contains('special')).toBe(true);
@@ -67,6 +67,7 @@ describe('TabWrapper Component', () => {
67
67
  id: "1"
68
68
  }, "Two"));
69
69
  /*eslint-disable */
70
+
70
71
  let renderedDOM = ReactDOM.render( /*#__PURE__*/React.createElement(TabWrapper, {
71
72
  defaultTab: '0',
72
73
  type: "alpha",
@@ -1,12 +1,15 @@
1
1
  export const Tab_defaultProps = {
2
2
  dataId: 'tabMenu',
3
- customProps: {}
3
+ customProps: {},
4
+ dataSelectorId: 'tab'
4
5
  };
5
6
  export const TabContent_defaultProps = {
6
- dataId: 'tabContent'
7
+ dataId: 'tabContent',
8
+ dataSelectorId: 'tabContent'
7
9
  };
8
10
  export const TabContentWrapper_defaultProps = {
9
- children: []
11
+ children: [],
12
+ dataSelectorId: 'tabContentWrapper'
10
13
  };
11
14
  export const Tabs_defaultProps = {
12
15
  isAnimate: false,
@@ -25,7 +28,8 @@ export const Tabs_defaultProps = {
25
28
  iconName: 'ZD-TB-menu',
26
29
  iconSize: '7',
27
30
  containerClass: '',
28
- customProps: {}
31
+ customProps: {},
32
+ dataSelectorId: 'tabs'
29
33
  };
30
34
  export const TabWrapper_defaultProps = {
31
35
  hookToDisableInternalState: false,
@@ -35,5 +39,6 @@ export const TabWrapper_defaultProps = {
35
39
  needTabBorder: false,
36
40
  type: 'alpha',
37
41
  align: 'vertical',
38
- needAppearance: true
42
+ needAppearance: true,
43
+ dataSelectorId: 'tabWrapper'
39
44
  };