@zohodesk/components 1.0.0-temp-252.4 → 1.0.0-temp-256.1

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 (419) hide show
  1. package/README.md +70 -3
  2. package/assets/Appearance/dark/mode/Component_DarkMode.module.css +323 -330
  3. package/assets/Appearance/dark/mode/Component_v1_DarkMode.module.css +79 -79
  4. package/assets/Appearance/dark/themes/blue/blue_ComponentTheme_DarkTheme.module.css +29 -33
  5. package/assets/Appearance/dark/themes/blue/blue_componentsCTA_DarkModifyCategory.module.css +15 -0
  6. package/assets/Appearance/dark/themes/green/green_ComponentTheme_DarkTheme.module.css +29 -33
  7. package/assets/Appearance/dark/themes/green/green_componentsCTA_DarkModifyCategory.module.css +15 -0
  8. package/assets/Appearance/dark/themes/orange/orange_ComponentTheme_DarkTheme.module.css +29 -33
  9. package/assets/Appearance/dark/themes/orange/orange_componentsCTA_DarkModifyCategory.module.css +15 -0
  10. package/assets/Appearance/dark/themes/red/red_ComponentTheme_DarkTheme.module.css +29 -33
  11. package/assets/Appearance/dark/themes/red/red_componentsCTA_DarkModifyCategory.module.css +15 -0
  12. package/assets/Appearance/dark/themes/yellow/yellow_ComponentTheme_DarkTheme.module.css +29 -33
  13. package/assets/Appearance/dark/themes/yellow/yellow_componentsCTA_DarkModifyCategory.module.css +15 -0
  14. package/assets/Appearance/light/mode/Component_LightMode.module.css +323 -330
  15. package/assets/Appearance/light/mode/Component_v1_LightMode.module.css +79 -79
  16. package/assets/Appearance/light/themes/blue/blue_ComponentTheme_LightTheme.module.css +29 -33
  17. package/assets/Appearance/light/themes/blue/blue_componentsCTA_LightModifyCategory.module.css +15 -0
  18. package/assets/Appearance/light/themes/green/green_ComponentTheme_LightTheme.module.css +29 -33
  19. package/assets/Appearance/light/themes/green/green_componentsCTA_LightModifyCategory.module.css +15 -0
  20. package/assets/Appearance/light/themes/orange/orange_ComponentTheme_LightTheme.module.css +29 -33
  21. package/assets/Appearance/light/themes/orange/orange_componentsCTA_LightModifyCategory.module.css +15 -0
  22. package/assets/Appearance/light/themes/red/red_ComponentTheme_LightTheme.module.css +29 -33
  23. package/assets/Appearance/light/themes/red/red_componentsCTA_LightModifyCategory.module.css +15 -0
  24. package/assets/Appearance/light/themes/yellow/yellow_ComponentTheme_LightTheme.module.css +29 -33
  25. package/assets/Appearance/light/themes/yellow/yellow_componentsCTA_LightModifyCategory.module.css +15 -0
  26. package/assets/Appearance/pureDark/mode/Component_PureDarkMode.module.css +323 -330
  27. package/assets/Appearance/pureDark/mode/Component_v1_PureDarkMode.module.css +79 -79
  28. package/assets/Appearance/pureDark/themes/blue/blue_ComponentTheme_PureDarkTheme.module.css +29 -33
  29. package/assets/Appearance/pureDark/themes/blue/blue_componentsCTA_PureDarkModifyCategory.module.css +15 -0
  30. package/assets/Appearance/pureDark/themes/green/green_ComponentTheme_PureDarkTheme.module.css +29 -33
  31. package/assets/Appearance/pureDark/themes/green/green_componentsCTA_PureDarkModifyCategory.module.css +15 -0
  32. package/assets/Appearance/pureDark/themes/orange/orange_ComponentTheme_PureDarkTheme.module.css +29 -33
  33. package/assets/Appearance/pureDark/themes/orange/orange_componentsCTA_PureDarkModifyCategory.module.css +15 -0
  34. package/assets/Appearance/pureDark/themes/red/red_ComponentTheme_PureDarkTheme.module.css +29 -33
  35. package/assets/Appearance/pureDark/themes/red/red_componentsCTA_PureDarkModifyCategory.module.css +15 -0
  36. package/assets/Appearance/pureDark/themes/yellow/yellow_ComponentTheme_PureDarkTheme.module.css +29 -33
  37. package/assets/Appearance/pureDark/themes/yellow/yellow_componentsCTA_PureDarkModifyCategory.module.css +15 -0
  38. package/cbt.config.js +12 -3
  39. package/es/Accordion/Accordion.js +2 -1
  40. package/es/Accordion/AccordionItem.js +3 -2
  41. package/es/Accordion/__tests__/__snapshots__/Accordion.spec.js.snap +1 -1
  42. package/es/Accordion/__tests__/__snapshots__/AccordionItem.spec.js.snap +1 -1
  43. package/es/Animation/__tests__/__snapshots__/Animation.spec.js.snap +1 -1
  44. package/es/AppContainer/AppContainer.js +2 -1
  45. package/es/AppContainer/AppContainer.module.css +9 -3
  46. package/es/AppContainer/__tests__/__snapshots__/AppContainer.spec.js.snap +23 -23
  47. package/es/Avatar/Avatar.js +6 -6
  48. package/es/Avatar/__tests__/__snapshots__/Avatar.spec.js.snap +43 -43
  49. package/es/AvatarTeam/AvatarTeam.js +4 -3
  50. package/es/AvatarTeam/__tests__/__snapshots__/AvatarTeam.spec.js.snap +74 -98
  51. package/es/Button/Button.js +5 -4
  52. package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +4 -4
  53. package/es/Button/css/cssJSLogic.js +10 -11
  54. package/es/Buttongroup/Buttongroup.js +4 -3
  55. package/es/Buttongroup/__tests__/__snapshots__/Buttongroup.spec.js.snap +9 -9
  56. package/es/Card/__tests__/__snapshots__/Card.spec.js.snap +18 -18
  57. package/es/Card/__tests__/__snapshots__/CardContent.spec.js.snap +13 -13
  58. package/es/Card/__tests__/__snapshots__/CardHeader.spec.js.snap +5 -5
  59. package/es/CheckBox/CheckBox.js +9 -8
  60. package/es/CheckBox/__tests__/__snapshots__/CheckBox.spec.js.snap +154 -251
  61. package/es/ColorSelect/__tests__/__snapshots__/ColorMultiSelect.spec.js.snap +72 -81
  62. package/es/ColorSelect/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +62 -62
  63. package/es/ColorSelect/_shared/ColorIndicator/ColorIndicator.js +2 -1
  64. package/es/ColorSelect/_shared/ColorIndicator/__tests__/__snapshots__/ColorIndicator.spec.js.snap +10 -10
  65. package/es/ColorSelect/_shared/ColoredTag/__tests__/__snapshots__/ColoredTag.spec.js.snap +14 -14
  66. package/es/DateTime/CalendarView.js +4 -3
  67. package/es/DateTime/DateTime.js +8 -10
  68. package/es/DateTime/DateTimePopupFooter.js +2 -1
  69. package/es/DateTime/DateWidget.js +38 -14
  70. package/es/DateTime/Time.js +2 -1
  71. package/es/DateTime/YearView.js +5 -6
  72. package/es/DateTime/__tests__/__snapshots__/CalendarView.spec.js.snap +50 -50
  73. package/es/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +103 -103
  74. package/es/DateTime/__tests__/__snapshots__/DateTimePopupFooter.spec.js.snap +2 -2
  75. package/es/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +10 -10
  76. package/es/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +10 -10
  77. package/es/DateTime/__tests__/__snapshots__/DaysRow.spec.js.snap +2 -2
  78. package/es/DateTime/__tests__/__snapshots__/Time.spec.js.snap +35 -35
  79. package/es/DateTime/common.js +2 -9
  80. package/es/DateTime/dateFormatUtils/dateFormat.js +55 -76
  81. package/es/DateTime/dateFormatUtils/index.js +7 -12
  82. package/es/DateTime/dateFormatUtils/timeChange.js +3 -4
  83. package/es/DateTime/dateFormatUtils/yearChange.js +3 -4
  84. package/es/DropBox/DropBox.js +13 -5
  85. package/es/DropBox/DropBoxElement/DropBoxElement.js +21 -8
  86. package/es/DropBox/DropBoxElement/__tests__/__snapshots__/DropBoxElement.spec.js.snap +1 -1
  87. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +11 -12
  88. package/es/DropBox/DropBoxElement/props/propTypes.js +2 -1
  89. package/es/DropBox/__tests__/__snapshots__/DropBox.spec.js.snap +1 -1
  90. package/es/DropDown/DropDown.js +2 -1
  91. package/es/DropDown/DropDownHeading.js +2 -1
  92. package/es/DropDown/DropDownItem.js +6 -5
  93. package/es/DropDown/DropDownSearch.js +2 -1
  94. package/es/DropDown/DropDownSeparator.js +2 -1
  95. package/es/DropDown/__tests__/__snapshots__/DropDown.spec.js.snap +3 -3
  96. package/es/DropDown/__tests__/__snapshots__/DropDownHeading.spec.js.snap +2 -2
  97. package/es/DropDown/__tests__/__snapshots__/DropDownItem.spec.js.snap +2 -2
  98. package/es/DropDown/__tests__/__snapshots__/DropDownSearch.spec.js.snap +3 -3
  99. package/es/DropDown/__tests__/__snapshots__/DropDownSeparator.spec.js.snap +2 -2
  100. package/es/Heading/__tests__/__snapshots__/Heading.spec.js.snap +8 -8
  101. package/es/Label/Label.js +3 -2
  102. package/es/Label/__tests__/__snapshots__/Label.spec.js.snap +25 -49
  103. package/es/Layout/Box.js +1 -115
  104. package/es/Layout/Container.js +1 -132
  105. package/es/Layout/props/defaultProps.js +1 -16
  106. package/es/Layout/props/propTypes.js +1 -46
  107. package/es/ListItem/ListContainer.js +4 -5
  108. package/es/ListItem/ListItem.js +2 -1
  109. package/es/ListItem/ListItemWithAvatar.js +11 -4
  110. package/es/ListItem/ListItemWithCheckBox.js +11 -4
  111. package/es/ListItem/ListItemWithIcon.js +11 -4
  112. package/es/ListItem/ListItemWithRadio.js +11 -4
  113. package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +19 -0
  114. package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +19 -0
  115. package/es/ListItem/__tests__/ListItemWithIcon.spec.js +17 -0
  116. package/es/ListItem/__tests__/ListItemWithRadio.spec.js +19 -0
  117. package/es/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +3 -3
  118. package/es/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +17 -17
  119. package/es/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +150 -42
  120. package/es/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +282 -77
  121. package/es/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +150 -42
  122. package/es/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +273 -70
  123. package/es/ListItem/props/defaultProps.js +1 -0
  124. package/es/ListItem/props/propTypes.js +12 -3
  125. package/es/Modal/Portal/Portal.js +4 -5
  126. package/es/Modal/Portal/__tests__/__snapshots__/Portal.spec.js.snap +1 -1
  127. package/es/Modal/__tests__/__snapshots__/Modal.spec.js.snap +1 -1
  128. package/es/MultiSelect/AdvancedGroupMultiSelect.js +95 -106
  129. package/es/MultiSelect/AdvancedMultiSelect.js +80 -83
  130. package/es/MultiSelect/EmptyState.js +5 -4
  131. package/es/MultiSelect/MobileHeader/MobileHeader.js +2 -1
  132. package/es/MultiSelect/MobileHeader/__tests__/__snapshots__/MobileHeader.spec.js.snap +5 -5
  133. package/es/MultiSelect/MultiSelect.js +22 -26
  134. package/es/MultiSelect/MultiSelectWithAvatar.js +7 -4
  135. package/es/MultiSelect/Suggestions.js +14 -17
  136. package/es/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +10 -11
  137. package/es/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +60 -63
  138. package/es/MultiSelect/__tests__/__snapshots__/EmptyState.spec.js.snap +2 -2
  139. package/es/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +57 -66
  140. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +8 -8
  141. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +12 -13
  142. package/es/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +8 -8
  143. package/es/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +48 -48
  144. package/es/MultiSelect/props/defaultProps.js +3 -0
  145. package/es/MultiSelect/props/propTypes.js +1 -0
  146. package/es/PopOver/PopOver.js +3 -2
  147. package/es/PopOver/__tests__/__snapshots__/PopOver.spec.js.snap +1 -1
  148. package/es/Popup/Popup.js +1 -4
  149. package/es/Provider/IdProvider.js +4 -5
  150. package/es/Provider/LibraryContext.js +15 -12
  151. package/es/Provider/NumberGenerator/NumberGenerator.js +15 -17
  152. package/es/Provider/ZindexProvider.js +4 -5
  153. package/es/Radio/Radio.js +5 -4
  154. package/es/Radio/__tests__/__snapshots__/Radio.spec.js.snap +118 -198
  155. package/es/Responsive/CustomResponsive.js +8 -11
  156. package/es/Responsive/ResizeComponent.js +1 -3
  157. package/es/Responsive/Responsive.js +9 -12
  158. package/es/Responsive/sizeObservers.js +1 -5
  159. package/es/ResponsiveDropBox/ResponsiveDropBox.js +10 -14
  160. package/es/ResponsiveDropBox/__tests__/__snapshots__/ResponsiveDropBox.spec.js.snap +2 -2
  161. package/es/Ribbon/Ribbon.js +8 -20
  162. package/es/Ribbon/__tests__/__snapshots__/Ribbon.spec.js.snap +22 -25
  163. package/es/RippleEffect/RippleEffect.js +1 -1
  164. package/es/RippleEffect/__tests__/__snapshots__/RippleEffect.spec.js.snap +17 -17
  165. package/es/Select/GroupSelect.js +103 -105
  166. package/es/Select/Select.js +120 -121
  167. package/es/Select/SelectWithAvatar.js +96 -97
  168. package/es/Select/SelectWithIcon.js +109 -111
  169. package/es/Select/__tests__/Select.spec.js +6 -9
  170. package/es/Select/__tests__/SelectWithIcon.spec.js +3 -1
  171. package/es/Select/__tests__/__snapshots__/GroupSelect.spec.js.snap +10 -10
  172. package/es/Select/__tests__/__snapshots__/Select.spec.js.snap +1056 -1046
  173. package/es/Select/__tests__/__snapshots__/SelectWithAvatar.spec.js.snap +5 -5
  174. package/es/Select/__tests__/__snapshots__/SelectWithIcon.spec.js.snap +13 -13
  175. package/es/Select/props/defaultProps.js +4 -0
  176. package/es/Select/props/propTypes.js +3 -0
  177. package/es/Stencils/Stencils.js +2 -1
  178. package/es/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +13 -13
  179. package/es/Switch/Switch.js +4 -3
  180. package/es/Switch/__tests__/__snapshots__/Switch.spec.js.snap +99 -111
  181. package/es/Tab/Tab.js +83 -41
  182. package/es/Tab/Tab.module.css +72 -4
  183. package/es/Tab/TabContent.js +16 -19
  184. package/es/Tab/TabContentWrapper.js +19 -22
  185. package/es/Tab/TabWrapper.js +20 -17
  186. package/es/Tab/Tabs.js +133 -93
  187. package/es/Tab/Tabs.module.css +84 -15
  188. package/es/Tab/__tests__/Tab.spec.js +87 -0
  189. package/es/Tab/__tests__/Tabs.spec.js +11 -0
  190. package/es/Tab/__tests__/__snapshots__/Tab.spec.js.snap +289 -2
  191. package/es/Tab/__tests__/__snapshots__/TabContent.spec.js.snap +2 -2
  192. package/es/Tab/__tests__/__snapshots__/TabContentWrapper.spec.js.snap +2 -2
  193. package/es/Tab/__tests__/__snapshots__/TabLayout.spec.js.snap +41 -41
  194. package/es/Tab/__tests__/__snapshots__/TabWrapper.spec.js.snap +2 -2
  195. package/es/Tab/__tests__/__snapshots__/Tabs.spec.js.snap +37 -5
  196. package/es/Tab/props/defaultProps.js +10 -3
  197. package/es/Tab/props/propTypes.js +26 -4
  198. package/es/Tab/utils/tabConfigs.js +11 -0
  199. package/es/Tag/Tag.js +6 -6
  200. package/es/Tag/__tests__/__snapshots__/Tag.spec.js.snap +243 -335
  201. package/es/TextBox/TextBox.js +2 -1
  202. package/es/TextBox/__tests__/__snapshots__/TextBox.spec.js.snap +45 -45
  203. package/es/TextBoxIcon/TextBoxIcon.js +1 -1
  204. package/es/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +207 -207
  205. package/es/Textarea/Textarea.js +2 -1
  206. package/es/Textarea/__tests__/__snapshots__/Textarea.spec.js.snap +47 -47
  207. package/es/Tooltip/Tooltip.js +5 -4
  208. package/es/Typography/__tests__/__snapshots__/Typography.spec.js.snap +8 -8
  209. package/es/Typography/css/cssJSLogic.js +6 -7
  210. package/es/VelocityAnimation/VelocityAnimation/__tests__/__snapshots__/VelocityAnimation.spec.js.snap +1 -1
  211. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +1 -2
  212. package/es/VelocityAnimation/VelocityAnimationGroup/__tests__/__snapshots__/VelocityAnimationGroup.spec.js.snap +1 -1
  213. package/es/common/basic.module.css +9 -8
  214. package/es/css.js +0 -1
  215. package/es/deprecated/Switch/Switch.js +4 -3
  216. package/es/semantic/Button/Button.js +2 -1
  217. package/es/semantic/Button/__tests__/__snapshots__/Button.spec.js.snap +2 -2
  218. package/es/shared/ArrowIcon/__tests__/__snapshots__/ArrowIcon.spec.js.snap +21 -21
  219. package/es/shared/InputFieldLine/__tests__/__snapshots__/InputFieldLine.spec.js.snap +20 -20
  220. package/es/utils/Common.js +10 -31
  221. package/es/utils/datetime/common.js +12 -9
  222. package/es/utils/dropDownUtils.js +7 -11
  223. package/es/utils/getInitial.js +1 -3
  224. package/es/v1/Button/Button.js +3 -1
  225. package/es/v1/Button/__tests__/__snapshots__/Button.spec.js.snap +9 -9
  226. package/es/v1/Button/css/cssJSLogic.js +4 -8
  227. package/es/v1/Label/__tests__/__snapshots__/Label.spec.js.snap +1 -1
  228. package/es/v1/Label/css/cssJSLogic.js +4 -5
  229. package/es/v1/Switch/Switch.js +4 -3
  230. package/es/v1/Switch/__tests__/__snapshots__/Switch.spec.js.snap +1 -1
  231. package/es/v1/Switch/css/cssJSLogic.js +4 -5
  232. package/es/v1/helpers/colorHelpers/colorHelper.js +28 -39
  233. package/es/v1/shared/Loader/Loader.js +4 -3
  234. package/es/v1/shared/Loader/__tests__/__snapshots__/Loader.spec.js.snap +2 -2
  235. package/es/v1/shared/SuccessTick/SuccessTick.js +2 -1
  236. package/es/v1/shared/SuccessTick/__tests__/__snapshots__/SuccessTick.spec.js.snap +2 -2
  237. package/lib/Accordion/Accordion.js +3 -1
  238. package/lib/Accordion/AccordionItem.js +4 -2
  239. package/lib/Accordion/__tests__/__snapshots__/Accordion.spec.js.snap +1 -1
  240. package/lib/Accordion/__tests__/__snapshots__/AccordionItem.spec.js.snap +1 -1
  241. package/lib/Animation/__tests__/__snapshots__/Animation.spec.js.snap +1 -1
  242. package/lib/AppContainer/AppContainer.js +3 -1
  243. package/lib/AppContainer/AppContainer.module.css +9 -3
  244. package/lib/AppContainer/__tests__/__snapshots__/AppContainer.spec.js.snap +23 -23
  245. package/lib/Avatar/Avatar.js +6 -4
  246. package/lib/Avatar/__tests__/__snapshots__/Avatar.spec.js.snap +43 -43
  247. package/lib/AvatarTeam/AvatarTeam.js +4 -2
  248. package/lib/AvatarTeam/__tests__/__snapshots__/AvatarTeam.spec.js.snap +74 -98
  249. package/lib/Button/Button.js +6 -4
  250. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +4 -4
  251. package/lib/Button/css/cssJSLogic.js +3 -3
  252. package/lib/Buttongroup/Buttongroup.js +5 -3
  253. package/lib/Buttongroup/__tests__/__snapshots__/Buttongroup.spec.js.snap +9 -9
  254. package/lib/Card/__tests__/__snapshots__/Card.spec.js.snap +18 -18
  255. package/lib/Card/__tests__/__snapshots__/CardContent.spec.js.snap +13 -13
  256. package/lib/Card/__tests__/__snapshots__/CardHeader.spec.js.snap +5 -5
  257. package/lib/CheckBox/CheckBox.js +10 -8
  258. package/lib/CheckBox/__tests__/__snapshots__/CheckBox.spec.js.snap +154 -251
  259. package/lib/ColorSelect/__tests__/__snapshots__/ColorMultiSelect.spec.js.snap +72 -81
  260. package/lib/ColorSelect/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +62 -62
  261. package/lib/ColorSelect/_shared/ColorIndicator/ColorIndicator.js +3 -1
  262. package/lib/ColorSelect/_shared/ColorIndicator/__tests__/__snapshots__/ColorIndicator.spec.js.snap +10 -10
  263. package/lib/ColorSelect/_shared/ColoredTag/__tests__/__snapshots__/ColoredTag.spec.js.snap +14 -14
  264. package/lib/DateTime/CalendarView.js +5 -3
  265. package/lib/DateTime/DateTime.js +6 -4
  266. package/lib/DateTime/DateTimePopupFooter.js +3 -1
  267. package/lib/DateTime/DateWidget.js +38 -9
  268. package/lib/DateTime/Time.js +3 -1
  269. package/lib/DateTime/__tests__/__snapshots__/CalendarView.spec.js.snap +50 -50
  270. package/lib/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +103 -103
  271. package/lib/DateTime/__tests__/__snapshots__/DateTimePopupFooter.spec.js.snap +2 -2
  272. package/lib/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +10 -10
  273. package/lib/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +10 -10
  274. package/lib/DateTime/__tests__/__snapshots__/DaysRow.spec.js.snap +2 -2
  275. package/lib/DateTime/__tests__/__snapshots__/Time.spec.js.snap +35 -35
  276. package/lib/DropBox/DropBox.js +14 -5
  277. package/lib/DropBox/DropBoxElement/DropBoxElement.js +28 -8
  278. package/lib/DropBox/DropBoxElement/__tests__/__snapshots__/DropBoxElement.spec.js.snap +1 -1
  279. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +2 -2
  280. package/lib/DropBox/DropBoxElement/props/propTypes.js +2 -1
  281. package/lib/DropBox/__tests__/__snapshots__/DropBox.spec.js.snap +1 -1
  282. package/lib/DropDown/DropDown.js +3 -1
  283. package/lib/DropDown/DropDownHeading.js +3 -1
  284. package/lib/DropDown/DropDownItem.js +7 -5
  285. package/lib/DropDown/DropDownSearch.js +3 -1
  286. package/lib/DropDown/DropDownSeparator.js +3 -1
  287. package/lib/DropDown/__tests__/__snapshots__/DropDown.spec.js.snap +3 -3
  288. package/lib/DropDown/__tests__/__snapshots__/DropDownHeading.spec.js.snap +2 -2
  289. package/lib/DropDown/__tests__/__snapshots__/DropDownItem.spec.js.snap +2 -2
  290. package/lib/DropDown/__tests__/__snapshots__/DropDownSearch.spec.js.snap +3 -3
  291. package/lib/DropDown/__tests__/__snapshots__/DropDownSeparator.spec.js.snap +2 -2
  292. package/lib/Heading/__tests__/__snapshots__/Heading.spec.js.snap +8 -8
  293. package/lib/Label/Label.js +3 -1
  294. package/lib/Label/__tests__/__snapshots__/Label.spec.js.snap +25 -49
  295. package/lib/Layout/Box.js +7 -120
  296. package/lib/Layout/Container.js +7 -137
  297. package/lib/Layout/props/defaultProps.js +14 -19
  298. package/lib/Layout/props/propTypes.js +13 -52
  299. package/lib/ListItem/ListItem.js +3 -1
  300. package/lib/ListItem/ListItemWithAvatar.js +14 -4
  301. package/lib/ListItem/ListItemWithCheckBox.js +14 -4
  302. package/lib/ListItem/ListItemWithIcon.js +12 -4
  303. package/lib/ListItem/ListItemWithRadio.js +14 -4
  304. package/lib/ListItem/__tests__/ListItemWithAvatar.spec.js +23 -0
  305. package/lib/ListItem/__tests__/ListItemWithCheckBox.spec.js +23 -0
  306. package/lib/ListItem/__tests__/ListItemWithIcon.spec.js +21 -0
  307. package/lib/ListItem/__tests__/ListItemWithRadio.spec.js +23 -0
  308. package/lib/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +3 -3
  309. package/lib/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +17 -17
  310. package/lib/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +150 -42
  311. package/lib/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +282 -77
  312. package/lib/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +150 -42
  313. package/lib/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +273 -70
  314. package/lib/ListItem/props/defaultProps.js +1 -0
  315. package/lib/ListItem/props/propTypes.js +12 -4
  316. package/lib/Modal/Portal/__tests__/__snapshots__/Portal.spec.js.snap +1 -1
  317. package/lib/Modal/__tests__/__snapshots__/Modal.spec.js.snap +1 -1
  318. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +8 -6
  319. package/lib/MultiSelect/AdvancedMultiSelect.js +8 -4
  320. package/lib/MultiSelect/EmptyState.js +6 -4
  321. package/lib/MultiSelect/MobileHeader/MobileHeader.js +3 -1
  322. package/lib/MultiSelect/MobileHeader/__tests__/__snapshots__/MobileHeader.spec.js.snap +5 -5
  323. package/lib/MultiSelect/MultiSelect.js +57 -50
  324. package/lib/MultiSelect/MultiSelectWithAvatar.js +8 -4
  325. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +10 -11
  326. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +60 -63
  327. package/lib/MultiSelect/__tests__/__snapshots__/EmptyState.spec.js.snap +2 -2
  328. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +57 -66
  329. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +8 -8
  330. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +12 -13
  331. package/lib/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +8 -8
  332. package/lib/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +48 -48
  333. package/lib/MultiSelect/props/defaultProps.js +3 -0
  334. package/lib/MultiSelect/props/propTypes.js +1 -0
  335. package/lib/PopOver/PopOver.js +4 -2
  336. package/lib/PopOver/__tests__/__snapshots__/PopOver.spec.js.snap +1 -1
  337. package/lib/Provider/LibraryContext.js +5 -1
  338. package/lib/Radio/Radio.js +6 -4
  339. package/lib/Radio/__tests__/__snapshots__/Radio.spec.js.snap +118 -198
  340. package/lib/ResponsiveDropBox/__tests__/__snapshots__/ResponsiveDropBox.spec.js.snap +2 -2
  341. package/lib/Ribbon/Ribbon.js +8 -19
  342. package/lib/Ribbon/__tests__/__snapshots__/Ribbon.spec.js.snap +22 -25
  343. package/lib/RippleEffect/RippleEffect.js +1 -1
  344. package/lib/RippleEffect/__tests__/__snapshots__/RippleEffect.spec.js.snap +17 -17
  345. package/lib/Select/GroupSelect.js +10 -6
  346. package/lib/Select/Select.js +14 -8
  347. package/lib/Select/SelectWithAvatar.js +10 -6
  348. package/lib/Select/SelectWithIcon.js +9 -5
  349. package/lib/Select/__tests__/SelectWithIcon.spec.js +3 -1
  350. package/lib/Select/__tests__/__snapshots__/GroupSelect.spec.js.snap +10 -10
  351. package/lib/Select/__tests__/__snapshots__/Select.spec.js.snap +1056 -1046
  352. package/lib/Select/__tests__/__snapshots__/SelectWithAvatar.spec.js.snap +5 -5
  353. package/lib/Select/__tests__/__snapshots__/SelectWithIcon.spec.js.snap +13 -13
  354. package/lib/Select/props/defaultProps.js +5 -2
  355. package/lib/Select/props/propTypes.js +3 -0
  356. package/lib/Stencils/Stencils.js +3 -1
  357. package/lib/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +13 -13
  358. package/lib/Switch/Switch.js +5 -3
  359. package/lib/Switch/__tests__/__snapshots__/Switch.spec.js.snap +99 -111
  360. package/lib/Tab/Tab.js +59 -11
  361. package/lib/Tab/Tab.module.css +72 -4
  362. package/lib/Tab/TabWrapper.js +6 -2
  363. package/lib/Tab/Tabs.js +62 -14
  364. package/lib/Tab/Tabs.module.css +84 -15
  365. package/lib/Tab/__tests__/Tab.spec.js +88 -0
  366. package/lib/Tab/__tests__/Tabs.spec.js +12 -0
  367. package/lib/Tab/__tests__/__snapshots__/Tab.spec.js.snap +289 -2
  368. package/lib/Tab/__tests__/__snapshots__/TabContent.spec.js.snap +2 -2
  369. package/lib/Tab/__tests__/__snapshots__/TabContentWrapper.spec.js.snap +2 -2
  370. package/lib/Tab/__tests__/__snapshots__/TabLayout.spec.js.snap +41 -41
  371. package/lib/Tab/__tests__/__snapshots__/TabWrapper.spec.js.snap +2 -2
  372. package/lib/Tab/__tests__/__snapshots__/Tabs.spec.js.snap +37 -5
  373. package/lib/Tab/props/defaultProps.js +10 -3
  374. package/lib/Tab/props/propTypes.js +28 -4
  375. package/lib/Tab/utils/tabConfigs.js +15 -2
  376. package/lib/Tag/Tag.js +7 -5
  377. package/lib/Tag/__tests__/__snapshots__/Tag.spec.js.snap +243 -335
  378. package/lib/TextBox/TextBox.js +3 -1
  379. package/lib/TextBox/__tests__/__snapshots__/TextBox.spec.js.snap +45 -45
  380. package/lib/TextBoxIcon/TextBoxIcon.js +1 -1
  381. package/lib/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +207 -207
  382. package/lib/Textarea/Textarea.js +3 -1
  383. package/lib/Textarea/__tests__/__snapshots__/Textarea.spec.js.snap +47 -47
  384. package/lib/Tooltip/Tooltip.js +6 -4
  385. package/lib/Typography/__tests__/__snapshots__/Typography.spec.js.snap +8 -8
  386. package/lib/Typography/css/cssJSLogic.js +1 -1
  387. package/lib/VelocityAnimation/VelocityAnimation/__tests__/__snapshots__/VelocityAnimation.spec.js.snap +1 -1
  388. package/lib/VelocityAnimation/VelocityAnimationGroup/__tests__/__snapshots__/VelocityAnimationGroup.spec.js.snap +1 -1
  389. package/lib/common/basic.module.css +9 -8
  390. package/lib/css.js +0 -2
  391. package/lib/deprecated/Switch/Switch.js +5 -3
  392. package/lib/semantic/Button/Button.js +3 -1
  393. package/lib/semantic/Button/__tests__/__snapshots__/Button.spec.js.snap +2 -2
  394. package/lib/shared/ArrowIcon/__tests__/__snapshots__/ArrowIcon.spec.js.snap +21 -21
  395. package/lib/shared/InputFieldLine/__tests__/__snapshots__/InputFieldLine.spec.js.snap +20 -20
  396. package/lib/utils/datetime/common.js +10 -2
  397. package/lib/v1/Button/Button.js +3 -1
  398. package/lib/v1/Button/__tests__/__snapshots__/Button.spec.js.snap +9 -9
  399. package/lib/v1/Label/__tests__/__snapshots__/Label.spec.js.snap +1 -1
  400. package/lib/v1/Switch/Switch.js +5 -3
  401. package/lib/v1/Switch/__tests__/__snapshots__/Switch.spec.js.snap +1 -1
  402. package/lib/v1/shared/Loader/Loader.js +5 -3
  403. package/lib/v1/shared/Loader/__tests__/__snapshots__/Loader.spec.js.snap +2 -2
  404. package/lib/v1/shared/SuccessTick/SuccessTick.js +3 -1
  405. package/lib/v1/shared/SuccessTick/__tests__/__snapshots__/SuccessTick.spec.js.snap +2 -2
  406. package/package.json +31 -28
  407. package/ut.config.js +106 -0
  408. package/es/Layout/Layout.module.css +0 -336
  409. package/es/Layout/__tests__/Box.spec.js +0 -11
  410. package/es/Layout/__tests__/Container.spec.js +0 -11
  411. package/es/Layout/__tests__/__snapshots__/Box.spec.js.snap +0 -16
  412. package/es/Layout/__tests__/__snapshots__/Container.spec.js.snap +0 -16
  413. package/es/Layout/utils.js +0 -30
  414. package/lib/Layout/Layout.module.css +0 -336
  415. package/lib/Layout/__tests__/Box.spec.js +0 -18
  416. package/lib/Layout/__tests__/Container.spec.js +0 -18
  417. package/lib/Layout/__tests__/__snapshots__/Box.spec.js.snap +0 -16
  418. package/lib/Layout/__tests__/__snapshots__/Container.spec.js.snap +0 -16
  419. package/lib/Layout/utils.js +0 -59
package/es/Tab/Tabs.js CHANGED
@@ -4,8 +4,10 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
4
4
 
5
5
  /* eslint css-modules/no-unused-class: [2, {
6
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'
7
+ 'hidden','alpha','gamma','beta','delta','default','special','text','maxWidth','widgetList','menuContainer','border','tabText','block','tabAlpha','alphaActive','gammaActive','betaActive','deltaActive','tabGamma','tabBeta','tabDelta','specialActive','tabSpecial',
8
+ 'alpha_inline','alpha_block','alpha_border','gamma_inline','gamma_block','gamma_border','beta_inline','beta_block','beta_border','delta_inline','delta_block','delta_border','default_inline','default_block','default_border','textContainer','disabled','alphaActive_border','gammaActive_border','betaActive_border','deltaActive_border',
9
+ 'defaultMoreButton','defaultMoreButtonActive','defaultMenuListItem',
10
+ 'left_borderContainer','right_borderContainer','top_borderContainer','bottom_borderContainer'
9
11
  ]
10
12
  }]
11
13
  */
@@ -18,13 +20,16 @@ import { remConvert, getTotalDimension, cs, bind, throttle, cancelBubblingEffect
18
20
  import { Box, Container } from "../Layout";
19
21
  import ResizeObserver from "../Responsive/ResizeObserver";
20
22
  import ListItem from "../ListItem/ListItem";
23
+ import ListItemWithIcon from "../ListItem/ListItemWithIcon";
21
24
  import { Icon } from '@zohodesk/icons';
25
+ import { cn } from "@dot-system/css-utility";
22
26
  import tabsStyle from "./Tabs.module.css";
23
27
  import Popup from "../Popup/Popup";
24
28
  import TextBoxIcon from "../TextBoxIcon/TextBoxIcon";
25
29
  import ResponsiveDropBox from "../ResponsiveDropBox/ResponsiveDropBox";
26
30
  import { ResponsiveReceiver } from "../Responsive/CustomResponsive";
27
- import { TAB_DIRECTION_MAPPING, TAB_POPUP_POSITION_MAPPING } from "./utils/tabConfigs";
31
+ import { TAB_DIRECTION_MAPPING, TAB_POPUP_POSITION_MAPPING, BORDER_POSITION_BY_ALIGN, VARIANT } from "./utils/tabConfigs";
32
+ import { renderNode, isRenderable } from '@zohodesk/utils';
28
33
  import btnstyle from "../semantic/Button/semanticButton.module.css";
29
34
 
30
35
  class Tabs extends React.Component {
@@ -107,8 +112,7 @@ class Tabs extends React.Component {
107
112
  }
108
113
  }
109
114
 
110
- setMaxDim() {
111
- let totalDimension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
115
+ setMaxDim(totalDimension = 0) {
112
116
  let {
113
117
  selectedTab
114
118
  } = this.props; // let actual = Object.keys(tabDimensions).reduce(
@@ -409,10 +413,9 @@ class Tabs extends React.Component {
409
413
  togglePopup(e, boxPosition);
410
414
  }
411
415
 
412
- responsiveFunc(_ref) {
413
- let {
414
- mediaQueryOR
415
- } = _ref;
416
+ responsiveFunc({
417
+ mediaQueryOR
418
+ }) {
416
419
  return {
417
420
  tabletMode: mediaQueryOR([{
418
421
  maxWidth: 700
@@ -432,10 +435,9 @@ class Tabs extends React.Component {
432
435
  });
433
436
  }
434
437
 
435
- getMoreList(_ref2) {
436
- let {
437
- moreTabs
438
- } = _ref2;
438
+ getMoreList({
439
+ moreTabs
440
+ }) {
439
441
  const validElements = [];
440
442
  React.Children.map(moreTabs, child => {
441
443
  const isValidElement = /*#__PURE__*/React.isValidElement(child);
@@ -447,10 +449,9 @@ class Tabs extends React.Component {
447
449
  return validElements;
448
450
  }
449
451
 
450
- handleFilterSuggestions(_ref3) {
451
- let {
452
- moreTabs
453
- } = _ref3;
452
+ handleFilterSuggestions({
453
+ moreTabs
454
+ }) {
454
455
  const {
455
456
  showTitleInMoreOptions
456
457
  } = this.props;
@@ -476,15 +477,15 @@ class Tabs extends React.Component {
476
477
  searchErrorText
477
478
  } = this.props;
478
479
  return /*#__PURE__*/React.createElement("div", {
479
- className: tabsStyle.emptyStateContainer
480
+ className: cn(tabsStyle.emptyStateContainer)
480
481
  }, /*#__PURE__*/React.createElement(EmptySearch, {
481
482
  size: "small"
482
483
  }), /*#__PURE__*/React.createElement("div", {
483
- className: tabsStyle.emptyStateTitle
484
+ className: cn(tabsStyle.emptyStateTitle)
484
485
  }, searchErrorText));
485
486
  }
486
487
 
487
- renderTabs(mainTabs, moreTabs, isVirtual) {
488
+ renderTabs(mainTabs, moreTabs, isVirtual, borderPosition) {
488
489
  let {
489
490
  selectedTab,
490
491
  moreButtonClass,
@@ -506,6 +507,7 @@ class Tabs extends React.Component {
506
507
  needTabBorder,
507
508
  needAppearance,
508
509
  iconSize,
510
+ renderMoreTarget,
509
511
  getTargetRef,
510
512
  position,
511
513
  customProps,
@@ -534,6 +536,10 @@ class Tabs extends React.Component {
534
536
  moreTabs
535
537
  });
536
538
  const hasSearch = moreTabs.length > 4;
539
+ const isDefaultType = type === 'default';
540
+ const defaultMoreClass = isDefaultType ? tabsStyle.defaultMoreButton : '';
541
+ const defaultMoreActiveClass = isDefaultType ? tabsStyle.defaultMoreButtonActive : '';
542
+ const effectiveMenuItemClass = isDefaultType ? `${tabsStyle.defaultMenuListItem}${menuItemClass ? ` ${menuItemClass}` : ''}` : menuItemClass;
537
543
  return /*#__PURE__*/React.createElement(React.Fragment, null, React.Children.map(mainTabs, child => {
538
544
  if (!child) {
539
545
  return null;
@@ -561,13 +567,14 @@ class Tabs extends React.Component {
561
567
  needBorder: needTabBorder,
562
568
  needAppearance: needAppearance,
563
569
  align: align,
564
- isVirtual: isVirtual
570
+ isVirtual: isVirtual,
571
+ borderPosition: borderPosition
565
572
  }, classProps));
566
573
  }), React.Children.count(moreTabs) ? /*#__PURE__*/React.createElement(Box, {
567
574
  className: `${tabsStyle.menu} `,
568
575
  dataSelectorId: `${dataSelectorId}_moreIcon`
569
576
  }, /*#__PURE__*/React.createElement(Container, _extends({
570
- className: `${btnstyle.buttonReset} ${moreButtonClass} ${isPopupOpen ? moreButtonActiveClass : ''}`,
577
+ className: `${btnstyle.buttonReset} ${defaultMoreClass} ${moreButtonClass} ${isPopupOpen ? `${defaultMoreActiveClass} ${moreButtonActiveClass}` : ''}`,
571
578
  align: "both",
572
579
  onClick: this.togglePopup,
573
580
  dataId: "moreTabs",
@@ -576,72 +583,78 @@ class Tabs extends React.Component {
576
583
  "aria-label": "MoreTabs",
577
584
  role: "link",
578
585
  tagName: "button"
579
- }), /*#__PURE__*/React.createElement(Icon, {
586
+ }), isRenderable(renderMoreTarget) ? renderNode(renderMoreTarget) : /*#__PURE__*/React.createElement(Icon, {
580
587
  name: iconName,
581
588
  size: iconSize
582
589
  })), isPopupOpen && /*#__PURE__*/React.createElement(ResponsiveReceiver, {
583
590
  query: this.responsiveFunc,
584
591
  responsiveId: "Helmet"
585
- }, _ref4 => {
592
+ }, ({
593
+ tabletMode
594
+ }) => /*#__PURE__*/React.createElement(ResponsiveDropBox, _extends({
595
+ isActive: isPopupReady,
596
+ isAnimate: true,
597
+ size: "medium",
598
+ customClass: {
599
+ customDropBoxWrap: `${moreContainerClass} ${popupClass}`
600
+ },
601
+ boxPosition: position,
602
+ getRef: getContainerRef,
603
+ isBoxPaddingNeed: false,
604
+ isArrow: false,
605
+ isAbsolutePositioningNeeded: isAbsolutePositioningNeeded,
606
+ isRestrictScroll: isRestrictScroll,
607
+ positionsOffset: positionsOffset,
608
+ targetOffset: targetOffset
609
+ }, DropBoxProps, {
610
+ isResponsivePadding: true,
611
+ needFocusScope: true,
612
+ dataId: `${dataId}_dropbox`,
613
+ onClick: removeClose,
614
+ onClose: this.togglePopup
615
+ }), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(this.props), hasSearch ? /*#__PURE__*/React.createElement(Box, {
616
+ className: tabsStyle.search
617
+ }, /*#__PURE__*/React.createElement(TextBoxIcon, _extends({
618
+ placeHolder: placeHolderText,
619
+ onChange: this.handleChange,
620
+ value: searchValue,
621
+ onClear: this.handleSearchValueClear,
622
+ size: searchBoxSize,
623
+ customProps: {
624
+ TextBoxProps: {
625
+ 'data-a11y-autofocus': true
626
+ }
627
+ },
628
+ dataId: `${dataId}_search`,
629
+ autoComplete: false,
630
+ name: "search"
631
+ }, TextBoxIconProps))) : null, /*#__PURE__*/React.createElement(Box, {
632
+ flexible: true,
633
+ shrink: true,
634
+ scroll: "vertical",
635
+ className: `${tabsStyle.listWrapper} ${tabletMode ? '' : tabsStyle.menuBox} ${moreBoxClass}`,
636
+ onScroll: this.onScroll,
637
+ dataId: `${dataId}_Tabs`
638
+ }, moreTabsListItems.length ? moreTabsListItems.map(data => {
586
639
  let {
587
- tabletMode
588
- } = _ref4;
589
- return /*#__PURE__*/React.createElement(ResponsiveDropBox, _extends({
590
- isActive: isPopupReady,
591
- isAnimate: true,
592
- size: "medium",
593
- customClass: {
594
- customDropBoxWrap: `${moreContainerClass} ${popupClass}`
595
- },
596
- boxPosition: position,
597
- getRef: getContainerRef,
598
- isBoxPaddingNeed: false,
599
- isArrow: false,
600
- isAbsolutePositioningNeeded: isAbsolutePositioningNeeded,
601
- isRestrictScroll: isRestrictScroll,
602
- positionsOffset: positionsOffset,
603
- targetOffset: targetOffset
604
- }, DropBoxProps, {
605
- isResponsivePadding: true,
606
- needFocusScope: true,
607
- dataId: `${dataId}_dropbox`,
608
- onClick: removeClose,
609
- onClose: this.togglePopup
610
- }), getCustomDropBoxHeaderPlaceHolder && getCustomDropBoxHeaderPlaceHolder(this.props), hasSearch ? /*#__PURE__*/React.createElement(Box, {
611
- className: tabsStyle.search
612
- }, /*#__PURE__*/React.createElement(TextBoxIcon, _extends({
613
- placeHolder: placeHolderText,
614
- onChange: this.handleChange,
615
- value: searchValue,
616
- onClear: this.handleSearchValueClear,
617
- size: searchBoxSize,
618
- customProps: {
619
- TextBoxProps: {
620
- 'data-a11y-autofocus': true
621
- }
622
- },
623
- dataId: `${dataId}_search`,
624
- autoComplete: false,
625
- name: "search"
626
- }, TextBoxIconProps))) : null, /*#__PURE__*/React.createElement(Box, {
627
- flexible: true,
628
- shrink: true,
629
- scroll: "vertical",
630
- className: `${tabsStyle.listWrapper} ${tabletMode ? '' : tabsStyle.menuBox} ${moreBoxClass}`,
631
- onScroll: this.onScroll,
632
- dataId: `${dataId}_Tabs`
633
- }, moreTabsListItems.length ? moreTabsListItems.map(data => {
634
- let {
635
- text,
636
- id,
637
- title,
638
- isLink,
639
- href,
640
- children,
641
- dataId
642
- } = data;
643
- const value = text ? text : showTitleInMoreOptions ? title : null;
644
- return /*#__PURE__*/React.createElement(ListItem, _extends({
640
+ text,
641
+ id,
642
+ title,
643
+ isLink,
644
+ href,
645
+ children,
646
+ dataId,
647
+ variant,
648
+ iconName,
649
+ iconSize,
650
+ renderBefore,
651
+ renderAfter
652
+ } = data;
653
+ const value = text ? text : showTitleInMoreOptions ? title : null;
654
+ const showIconInDropdown = variant !== VARIANT.TEXT && iconName;
655
+
656
+ if (showIconInDropdown) {
657
+ return /*#__PURE__*/React.createElement(ListItemWithIcon, _extends({
645
658
  key: id,
646
659
  value: value,
647
660
  onClick: this.moreTabSelect,
@@ -650,14 +663,37 @@ class Tabs extends React.Component {
650
663
  isLink: isLink,
651
664
  href: href,
652
665
  autoHover: true,
653
- customClass: {
654
- customListItem: menuItemClass
655
- },
666
+ iconName: iconName,
667
+ iconSize: iconSize,
668
+ renderLeftValuePlaceholderNode: renderBefore,
669
+ renderValueRightPlaceholderNode: isRenderable(renderAfter) ? renderAfter : !showTitleInMoreOptions ? children : null,
670
+ customClass: effectiveMenuItemClass,
671
+ customTitleBoxClass: tabsStyle.listItemTitleBox,
656
672
  target: "self",
657
673
  dataId: `${dataId}_Tab`
658
- }, ListItemProps), !showTitleInMoreOptions ? children : null);
659
- }) : this.renderEmptyState()));
660
- })) : null);
674
+ }, ListItemProps));
675
+ }
676
+
677
+ return /*#__PURE__*/React.createElement(ListItem, _extends({
678
+ key: id,
679
+ value: value,
680
+ onClick: this.moreTabSelect,
681
+ id: id,
682
+ title: title || text,
683
+ isLink: isLink,
684
+ href: href,
685
+ autoHover: true,
686
+ renderBeforeChildren: renderBefore,
687
+ renderValueRightPlaceholderNode: isRenderable(renderAfter) ? renderAfter : !showTitleInMoreOptions ? children : null,
688
+ customClass: {
689
+ customListItem: effectiveMenuItemClass,
690
+ customTitleBox: tabsStyle.listItemTitleBox,
691
+ customLeftValuePlaceholder: tabsStyle.listItemLeftValuePlaceholder
692
+ },
693
+ target: "self",
694
+ dataId: `${dataId}_Tab`
695
+ }, ListItemProps));
696
+ }) : this.renderEmptyState())))) : null);
661
697
  }
662
698
 
663
699
  render() {
@@ -672,11 +708,15 @@ class Tabs extends React.Component {
672
708
  needBorder,
673
709
  needPadding,
674
710
  align,
711
+ alignBorderPosition,
675
712
  needAppearance,
676
713
  children,
677
714
  containerClass,
678
- dataSelectorId
715
+ dataSelectorId,
716
+ borderPosition
679
717
  } = this.props;
718
+ const effectiveBorderPosition = alignBorderPosition && (needBorder || needTabBorder) ? BORDER_POSITION_BY_ALIGN[align] : borderPosition;
719
+ const isVerticalAlign = TAB_DIRECTION_MAPPING[align] === 'column';
680
720
  let {
681
721
  totalDimension,
682
722
  tabDimensions,
@@ -687,7 +727,7 @@ class Tabs extends React.Component {
687
727
  moreTabs,
688
728
  otherTabs
689
729
  } = this.responsiveTab(totalDimension, tabDimensions);
690
- let appearanceClass = cs([tabsStyle[type], needBorder && tabsStyle[`${type}_border`], needPadding && tabsStyle[`${type}_padding`]]);
730
+ let appearanceClass = cs([tabsStyle[type], needBorder && tabsStyle[`${type}_border`], needBorder && tabsStyle.border, needBorder && effectiveBorderPosition && tabsStyle[`${effectiveBorderPosition}_borderContainer`], needPadding && tabsStyle[`${type}_${isVerticalAlign ? 'block' : 'inline'}`]]);
691
731
  let tabsClass = cs([tabsStyle.tab, className, needAppearance && appearanceClass]);
692
732
  let hlClass = cs([tabsStyle.highlight, highlightClass, isAnimate && tabsStyle.lineAnimate]);
693
733
  return /*#__PURE__*/React.createElement(Box, {
@@ -703,10 +743,10 @@ class Tabs extends React.Component {
703
743
  }, renderVirtualTabs && /*#__PURE__*/React.createElement(Container, {
704
744
  alignBox: TAB_DIRECTION_MAPPING[align] === 'column' ? 'row' : 'column',
705
745
  className: tabsStyle.hidden
706
- }, this.renderTabs(children, [], true)), /*#__PURE__*/React.createElement(Container, {
746
+ }, this.renderTabs(children, [], true, effectiveBorderPosition)), /*#__PURE__*/React.createElement(Container, {
707
747
  alignBox: TAB_DIRECTION_MAPPING[align] === 'column' ? 'row' : 'column'
708
- }, this.renderTabs(mainTabs, moreTabs, false))), otherTabs.length ? /*#__PURE__*/React.createElement(Box, null, otherTabs) : null, isAnimate && needTabBorder && needAppearance && /*#__PURE__*/React.createElement("div", {
709
- className: hlClass,
748
+ }, this.renderTabs(mainTabs, moreTabs, false, effectiveBorderPosition))), otherTabs.length ? /*#__PURE__*/React.createElement(Box, null, otherTabs) : null, isAnimate && needTabBorder && needAppearance && /*#__PURE__*/React.createElement("div", {
749
+ className: cn(hlClass),
710
750
  ref: this.getHighlightRef,
711
751
  "data-id": dataId,
712
752
  "data-test-id": dataId
@@ -9,14 +9,16 @@
9
9
  background-color: var(--zdt_tabs_alpha_bg);
10
10
  }
11
11
 
12
- .alpha_padding {
13
- padding-inline-start: var(--zd_size15) ;
12
+ .alpha_inline { padding-block-start: var(--zd_size15) ; }
13
+ .alpha_block { padding-inline-start: var(--zd_size15) ; }
14
+
15
+ .border {
16
+ border-width: 0;
17
+ border-style: solid;
14
18
  }
15
19
 
16
20
  .alpha_border {
17
- border-width: 0 0 1px 0;
18
21
  border-color: var(--zdt_tabs_alpha_border);
19
- border-style: solid;
20
22
  }
21
23
 
22
24
  .alpha::after {
@@ -61,12 +63,11 @@
61
63
  background-color: var(--zdt_tabs_alpha_bg);
62
64
  }
63
65
 
64
- .beta_padding {
65
- padding-inline-start: var(--zd_size13) ;
66
- }
66
+ .beta_inline { padding-block-start: var(--zd_size13) ; }
67
+ .beta_block { padding-inline-start: var(--zd_size13) ; }
67
68
 
68
69
  .beta_border {
69
- border-bottom: 1px solid var(--zdt_tabs_alpha_border);
70
+ border-color: var(--zdt_tabs_alpha_border);
70
71
  }
71
72
 
72
73
  .delta {
@@ -74,12 +75,55 @@
74
75
  background-color: var(--zdt_tabs_alpha_bg);
75
76
  }
76
77
 
77
- .delta_padding {
78
- padding-inline-start: var(--zd_size10) ;
79
- }
78
+ .delta_inline { padding-block-start: var(--zd_size10) ; }
79
+ .delta_block { padding-inline-start: var(--zd_size10) ; }
80
80
 
81
81
  .delta_border {
82
- border-bottom: 1px dotted var(--zdt_tabs_alpha_border);
82
+ border-color: var(--zdt_tabs_alpha_border);
83
+ }
84
+
85
+ .default {
86
+ height: var(--zd_size35) ;
87
+ transition: padding var(--zd_transition3);
88
+ z-index: 2;
89
+ background-color: var(--zd-bg-secondary);
90
+ }
91
+
92
+ .default_inline { padding-block-start: var(--zd_size10) ; }
93
+ .default_block { padding-inline-start: var(--zd_size10) ; }
94
+
95
+ .default_border {
96
+ border-color: var(--zd-border-primary);
97
+ }
98
+
99
+ .defaultMoreButton {
100
+ max-height: var(--zd_size28) ;
101
+ color: var(--zd-text-secondary);
102
+ padding: var(--zd_size6) ;
103
+ border: 1px solid var(--zd-border-transparent);
104
+ border-radius: 4px;
105
+ margin-top: var(--zd_size3) ;
106
+ cursor: pointer;
107
+ }
108
+
109
+ .defaultMoreButton:hover {
110
+ border-color: var(--zdt_rippleeffect_navy_border);
111
+ }
112
+
113
+ .defaultMoreButtonActive {
114
+ border-color: var(--zdt_cta_secondary_light_border);
115
+ background: var(--zd-bg-brandLight);
116
+ }
117
+
118
+ .defaultMoreButtonActive:hover {
119
+ border-color: var(--zdt_cta_secondary_light_border);
120
+ background: var(--zd-bg-brandLight);
121
+ }
122
+
123
+ .defaultMenuListItem {
124
+ font-size: var(--zd_font_size11) ;
125
+ text-transform: uppercase;
126
+ letter-spacing: 0.4px;
83
127
  }
84
128
 
85
129
  .delta .highlight {
@@ -93,7 +137,7 @@
93
137
  .highlight {
94
138
  position: absolute;
95
139
  bottom: 0 ;
96
- border-bottom: 1px solid var(--zdt_tabs_highlight_border);
140
+ border-block-end: 1px solid var(--zdt_tabs_highlight_border);
97
141
  }
98
142
 
99
143
  .lineAnimate {
@@ -126,7 +170,7 @@
126
170
 
127
171
  .search {
128
172
  padding-block: var(--zd_size6) 0 ;
129
- padding-inline:var(--zd_size20) ;
173
+ padding-inline: var(--zd_size20) ;
130
174
  }
131
175
 
132
176
  .emptyStateContainer {
@@ -153,5 +197,30 @@
153
197
 
154
198
  .listWrapper {
155
199
  padding-block: var(--zd_size10) ;
156
- padding-inline:0 ;
200
+ padding-inline: 0 ;
201
+ }
202
+
203
+ .listItemTitleBox {
204
+ gap: var(--zd_size4) ;
157
205
  }
206
+
207
+ .left_borderContainer {
208
+ border-inline-start-width: 1px;
209
+ }
210
+
211
+ .right_borderContainer {
212
+ border-inline-end-width: 1px;
213
+ }
214
+
215
+ .top_borderContainer {
216
+ border-block-start-width: 1px;
217
+ }
218
+
219
+ .bottom_borderContainer {
220
+ border-block-end-width: 1px;
221
+ }
222
+
223
+ .listItemLeftValuePlaceholder {
224
+ height: auto ;
225
+ margin: 0 ;
226
+ }
@@ -1,6 +1,9 @@
1
1
  import React from 'react';
2
2
  import { render } from '@testing-library/react';
3
3
  import Tab from "../Tab";
4
+
5
+ const noop = () => {};
6
+
4
7
  describe('Tab', () => {
5
8
  test('rendering the defult props', () => {
6
9
  const {
@@ -8,4 +11,88 @@ describe('Tab', () => {
8
11
  } = render( /*#__PURE__*/React.createElement(Tab, null));
9
12
  expect(asFragment()).toMatchSnapshot();
10
13
  });
14
+ describe('variant-based label rendering', () => {
15
+ test('variant="text" renders text only', () => {
16
+ const {
17
+ asFragment
18
+ } = render( /*#__PURE__*/React.createElement(Tab, {
19
+ id: "t1",
20
+ text: "Home",
21
+ variant: "text",
22
+ onSelect: noop
23
+ }));
24
+ expect(asFragment()).toMatchSnapshot();
25
+ });
26
+ test('variant="icon" renders icon and suppresses text label', () => {
27
+ const {
28
+ asFragment
29
+ } = render( /*#__PURE__*/React.createElement(Tab, {
30
+ id: "t2",
31
+ text: "Home",
32
+ variant: "icon",
33
+ iconName: "ZD-TB-menu",
34
+ onSelect: noop
35
+ }));
36
+ expect(asFragment()).toMatchSnapshot();
37
+ });
38
+ test('variant="iconWithText" renders icon followed by text', () => {
39
+ const {
40
+ asFragment
41
+ } = render( /*#__PURE__*/React.createElement(Tab, {
42
+ id: "t3",
43
+ text: "Home",
44
+ variant: "iconWithText",
45
+ iconName: "ZD-TB-menu",
46
+ onSelect: noop
47
+ }));
48
+ expect(asFragment()).toMatchSnapshot();
49
+ });
50
+ });
51
+ describe('renderBefore / renderAfter slots', () => {
52
+ test('renderBefore renders a node to the left of the label', () => {
53
+ const {
54
+ asFragment
55
+ } = render( /*#__PURE__*/React.createElement(Tab, {
56
+ id: "t6",
57
+ text: "Home",
58
+ renderBefore: /*#__PURE__*/React.createElement("span", null, "\u25C0"),
59
+ onSelect: noop
60
+ }));
61
+ expect(asFragment()).toMatchSnapshot();
62
+ });
63
+ test('renderAfter renders a node to the right of the label', () => {
64
+ const {
65
+ asFragment
66
+ } = render( /*#__PURE__*/React.createElement(Tab, {
67
+ id: "t7",
68
+ text: "Home",
69
+ renderAfter: /*#__PURE__*/React.createElement("span", null, "3"),
70
+ onSelect: noop
71
+ }));
72
+ expect(asFragment()).toMatchSnapshot();
73
+ });
74
+ test('renderBefore and renderAfter both render around the label', () => {
75
+ const {
76
+ asFragment
77
+ } = render( /*#__PURE__*/React.createElement(Tab, {
78
+ id: "t8",
79
+ text: "Home",
80
+ renderBefore: /*#__PURE__*/React.createElement("span", null, "\u25C0"),
81
+ renderAfter: /*#__PURE__*/React.createElement("span", null, "\u25B6"),
82
+ onSelect: noop
83
+ }));
84
+ expect(asFragment()).toMatchSnapshot();
85
+ });
86
+ test('renderBefore as function renders custom node', () => {
87
+ const {
88
+ asFragment
89
+ } = render( /*#__PURE__*/React.createElement(Tab, {
90
+ id: "t9",
91
+ text: "Home",
92
+ renderBefore: () => /*#__PURE__*/React.createElement("span", null, "\u25C0"),
93
+ onSelect: noop
94
+ }));
95
+ expect(asFragment()).toMatchSnapshot();
96
+ });
97
+ });
11
98
  });
@@ -8,4 +8,15 @@ describe('Tabs', () => {
8
8
  } = render( /*#__PURE__*/React.createElement(Tabs, null));
9
9
  expect(asFragment()).toMatchSnapshot();
10
10
  });
11
+ test('renders custom more-button icon via renderMoreTarget', () => {
12
+ const customIcon = /*#__PURE__*/React.createElement("span", {
13
+ "data-testid": "custom-more-icon"
14
+ }, "\u2022\u2022\u2022");
15
+ const {
16
+ asFragment
17
+ } = render( /*#__PURE__*/React.createElement(Tabs, {
18
+ renderMoreTarget: customIcon
19
+ }));
20
+ expect(asFragment()).toMatchSnapshot();
21
+ });
11
22
  });