@zohodesk/components 1.0.0-temp-256 → 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 (385) hide show
  1. package/README.md +51 -1
  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 +14 -13
  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 +14 -13
  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 +14 -13
  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 +14 -13
  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 +14 -13
  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 +14 -13
  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 +14 -13
  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 +14 -13
  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 +14 -13
  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 +14 -13
  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 +14 -13
  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 +14 -13
  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 +14 -13
  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 +14 -13
  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 +14 -13
  38. package/es/Accordion/Accordion.js +2 -1
  39. package/es/Accordion/AccordionItem.js +3 -2
  40. package/es/Accordion/__tests__/__snapshots__/Accordion.spec.js.snap +1 -1
  41. package/es/Accordion/__tests__/__snapshots__/AccordionItem.spec.js.snap +1 -1
  42. package/es/Animation/__tests__/__snapshots__/Animation.spec.js.snap +1 -1
  43. package/es/AppContainer/AppContainer.js +2 -1
  44. package/es/AppContainer/AppContainer.module.css +9 -3
  45. package/es/AppContainer/__tests__/__snapshots__/AppContainer.spec.js.snap +23 -23
  46. package/es/Avatar/Avatar.js +5 -4
  47. package/es/Avatar/__tests__/__snapshots__/Avatar.spec.js.snap +43 -43
  48. package/es/AvatarTeam/AvatarTeam.js +4 -3
  49. package/es/AvatarTeam/__tests__/__snapshots__/AvatarTeam.spec.js.snap +74 -98
  50. package/es/Button/Button.js +5 -4
  51. package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +4 -4
  52. package/es/Button/css/cssJSLogic.js +6 -6
  53. package/es/Buttongroup/Buttongroup.js +4 -3
  54. package/es/Buttongroup/__tests__/__snapshots__/Buttongroup.spec.js.snap +9 -9
  55. package/es/Card/__tests__/__snapshots__/Card.spec.js.snap +18 -18
  56. package/es/Card/__tests__/__snapshots__/CardContent.spec.js.snap +13 -13
  57. package/es/Card/__tests__/__snapshots__/CardHeader.spec.js.snap +5 -5
  58. package/es/CheckBox/CheckBox.js +9 -8
  59. package/es/CheckBox/__tests__/__snapshots__/CheckBox.spec.js.snap +154 -251
  60. package/es/ColorSelect/__tests__/__snapshots__/ColorMultiSelect.spec.js.snap +72 -81
  61. package/es/ColorSelect/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +62 -62
  62. package/es/ColorSelect/_shared/ColorIndicator/ColorIndicator.js +2 -1
  63. package/es/ColorSelect/_shared/ColorIndicator/__tests__/__snapshots__/ColorIndicator.spec.js.snap +10 -10
  64. package/es/ColorSelect/_shared/ColoredTag/__tests__/__snapshots__/ColoredTag.spec.js.snap +14 -14
  65. package/es/DateTime/CalendarView.js +4 -3
  66. package/es/DateTime/DateTime.js +5 -4
  67. package/es/DateTime/DateTimePopupFooter.js +2 -1
  68. package/es/DateTime/DateWidget.js +4 -3
  69. package/es/DateTime/Time.js +2 -1
  70. package/es/DateTime/__tests__/__snapshots__/CalendarView.spec.js.snap +50 -50
  71. package/es/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +103 -103
  72. package/es/DateTime/__tests__/__snapshots__/DateTimePopupFooter.spec.js.snap +2 -2
  73. package/es/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +10 -10
  74. package/es/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +10 -10
  75. package/es/DateTime/__tests__/__snapshots__/DaysRow.spec.js.snap +2 -2
  76. package/es/DateTime/__tests__/__snapshots__/Time.spec.js.snap +35 -35
  77. package/es/DropBox/DropBox.js +13 -5
  78. package/es/DropBox/DropBoxElement/DropBoxElement.js +21 -8
  79. package/es/DropBox/DropBoxElement/__tests__/__snapshots__/DropBoxElement.spec.js.snap +1 -1
  80. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +6 -6
  81. package/es/DropBox/DropBoxElement/props/propTypes.js +2 -1
  82. package/es/DropBox/__tests__/__snapshots__/DropBox.spec.js.snap +1 -1
  83. package/es/DropDown/DropDown.js +2 -1
  84. package/es/DropDown/DropDownHeading.js +2 -1
  85. package/es/DropDown/DropDownItem.js +6 -5
  86. package/es/DropDown/DropDownSearch.js +2 -1
  87. package/es/DropDown/DropDownSeparator.js +2 -1
  88. package/es/DropDown/__tests__/__snapshots__/DropDown.spec.js.snap +3 -3
  89. package/es/DropDown/__tests__/__snapshots__/DropDownHeading.spec.js.snap +2 -2
  90. package/es/DropDown/__tests__/__snapshots__/DropDownItem.spec.js.snap +2 -2
  91. package/es/DropDown/__tests__/__snapshots__/DropDownSearch.spec.js.snap +3 -3
  92. package/es/DropDown/__tests__/__snapshots__/DropDownSeparator.spec.js.snap +2 -2
  93. package/es/Heading/__tests__/__snapshots__/Heading.spec.js.snap +8 -8
  94. package/es/Label/Label.js +3 -2
  95. package/es/Label/__tests__/__snapshots__/Label.spec.js.snap +25 -49
  96. package/es/Layout/Box.js +1 -115
  97. package/es/Layout/Container.js +1 -132
  98. package/es/Layout/props/defaultProps.js +1 -16
  99. package/es/Layout/props/propTypes.js +1 -46
  100. package/es/ListItem/ListItem.js +2 -1
  101. package/es/ListItem/ListItemWithAvatar.js +11 -4
  102. package/es/ListItem/ListItemWithCheckBox.js +11 -4
  103. package/es/ListItem/ListItemWithIcon.js +11 -4
  104. package/es/ListItem/ListItemWithRadio.js +11 -4
  105. package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +19 -0
  106. package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +19 -0
  107. package/es/ListItem/__tests__/ListItemWithIcon.spec.js +17 -0
  108. package/es/ListItem/__tests__/ListItemWithRadio.spec.js +19 -0
  109. package/es/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +3 -3
  110. package/es/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +17 -17
  111. package/es/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +150 -42
  112. package/es/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +282 -77
  113. package/es/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +150 -42
  114. package/es/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +273 -70
  115. package/es/ListItem/props/defaultProps.js +1 -0
  116. package/es/ListItem/props/propTypes.js +12 -3
  117. package/es/Modal/Portal/__tests__/__snapshots__/Portal.spec.js.snap +1 -1
  118. package/es/Modal/__tests__/__snapshots__/Modal.spec.js.snap +1 -1
  119. package/es/MultiSelect/AdvancedGroupMultiSelect.js +8 -7
  120. package/es/MultiSelect/AdvancedMultiSelect.js +8 -5
  121. package/es/MultiSelect/EmptyState.js +5 -4
  122. package/es/MultiSelect/MobileHeader/MobileHeader.js +2 -1
  123. package/es/MultiSelect/MobileHeader/__tests__/__snapshots__/MobileHeader.spec.js.snap +5 -5
  124. package/es/MultiSelect/MultiSelect.js +18 -13
  125. package/es/MultiSelect/MultiSelectWithAvatar.js +7 -4
  126. package/es/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +10 -11
  127. package/es/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +60 -63
  128. package/es/MultiSelect/__tests__/__snapshots__/EmptyState.spec.js.snap +2 -2
  129. package/es/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +57 -66
  130. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +8 -8
  131. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +12 -13
  132. package/es/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +8 -8
  133. package/es/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +48 -48
  134. package/es/MultiSelect/props/defaultProps.js +3 -0
  135. package/es/MultiSelect/props/propTypes.js +1 -0
  136. package/es/PopOver/PopOver.js +3 -2
  137. package/es/PopOver/__tests__/__snapshots__/PopOver.spec.js.snap +1 -1
  138. package/es/Radio/Radio.js +5 -4
  139. package/es/Radio/__tests__/__snapshots__/Radio.spec.js.snap +118 -198
  140. package/es/ResponsiveDropBox/__tests__/__snapshots__/ResponsiveDropBox.spec.js.snap +2 -2
  141. package/es/Ribbon/Ribbon.js +8 -20
  142. package/es/Ribbon/__tests__/__snapshots__/Ribbon.spec.js.snap +22 -25
  143. package/es/RippleEffect/RippleEffect.js +1 -1
  144. package/es/RippleEffect/__tests__/__snapshots__/RippleEffect.spec.js.snap +17 -17
  145. package/es/Select/GroupSelect.js +9 -6
  146. package/es/Select/Select.js +13 -8
  147. package/es/Select/SelectWithAvatar.js +9 -6
  148. package/es/Select/SelectWithIcon.js +8 -5
  149. package/es/Select/__tests__/SelectWithIcon.spec.js +3 -1
  150. package/es/Select/__tests__/__snapshots__/GroupSelect.spec.js.snap +10 -10
  151. package/es/Select/__tests__/__snapshots__/Select.spec.js.snap +1056 -1046
  152. package/es/Select/__tests__/__snapshots__/SelectWithAvatar.spec.js.snap +5 -5
  153. package/es/Select/__tests__/__snapshots__/SelectWithIcon.spec.js.snap +13 -13
  154. package/es/Select/props/defaultProps.js +4 -0
  155. package/es/Select/props/propTypes.js +3 -0
  156. package/es/Stencils/Stencils.js +2 -1
  157. package/es/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +13 -13
  158. package/es/Switch/Switch.js +4 -3
  159. package/es/Switch/__tests__/__snapshots__/Switch.spec.js.snap +99 -111
  160. package/es/Tab/Tab.js +35 -43
  161. package/es/Tab/Tab.module.css +58 -15
  162. package/es/Tab/TabWrapper.js +6 -2
  163. package/es/Tab/Tabs.js +35 -19
  164. package/es/Tab/Tabs.module.css +41 -17
  165. package/es/Tab/__tests__/Tab.spec.js +0 -25
  166. package/es/Tab/__tests__/Tabs.spec.js +11 -0
  167. package/es/Tab/__tests__/__snapshots__/Tab.spec.js.snap +53 -82
  168. package/es/Tab/__tests__/__snapshots__/TabContent.spec.js.snap +2 -2
  169. package/es/Tab/__tests__/__snapshots__/TabContentWrapper.spec.js.snap +2 -2
  170. package/es/Tab/__tests__/__snapshots__/TabLayout.spec.js.snap +41 -41
  171. package/es/Tab/__tests__/__snapshots__/TabWrapper.spec.js.snap +2 -2
  172. package/es/Tab/__tests__/__snapshots__/Tabs.spec.js.snap +37 -5
  173. package/es/Tab/props/defaultProps.js +8 -2
  174. package/es/Tab/props/propTypes.js +16 -3
  175. package/es/Tab/utils/tabConfigs.js +6 -0
  176. package/es/Tag/Tag.js +6 -6
  177. package/es/Tag/__tests__/__snapshots__/Tag.spec.js.snap +243 -335
  178. package/es/TextBox/TextBox.js +2 -1
  179. package/es/TextBox/__tests__/__snapshots__/TextBox.spec.js.snap +45 -45
  180. package/es/TextBoxIcon/TextBoxIcon.js +1 -1
  181. package/es/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +207 -207
  182. package/es/Textarea/Textarea.js +2 -1
  183. package/es/Textarea/__tests__/__snapshots__/Textarea.spec.js.snap +47 -47
  184. package/es/Tooltip/Tooltip.js +5 -4
  185. package/es/Typography/__tests__/__snapshots__/Typography.spec.js.snap +8 -8
  186. package/es/Typography/css/cssJSLogic.js +2 -2
  187. package/es/VelocityAnimation/VelocityAnimation/__tests__/__snapshots__/VelocityAnimation.spec.js.snap +1 -1
  188. package/es/VelocityAnimation/VelocityAnimationGroup/__tests__/__snapshots__/VelocityAnimationGroup.spec.js.snap +1 -1
  189. package/es/common/basic.module.css +9 -8
  190. package/es/css.js +0 -1
  191. package/es/deprecated/Switch/Switch.js +4 -3
  192. package/es/semantic/Button/Button.js +2 -1
  193. package/es/semantic/Button/__tests__/__snapshots__/Button.spec.js.snap +2 -2
  194. package/es/shared/ArrowIcon/__tests__/__snapshots__/ArrowIcon.spec.js.snap +21 -21
  195. package/es/shared/InputFieldLine/__tests__/__snapshots__/InputFieldLine.spec.js.snap +20 -20
  196. package/es/v1/Button/Button.js +3 -1
  197. package/es/v1/Button/__tests__/__snapshots__/Button.spec.js.snap +9 -9
  198. package/es/v1/Label/__tests__/__snapshots__/Label.spec.js.snap +1 -1
  199. package/es/v1/Switch/Switch.js +4 -3
  200. package/es/v1/Switch/__tests__/__snapshots__/Switch.spec.js.snap +1 -1
  201. package/es/v1/shared/Loader/Loader.js +4 -3
  202. package/es/v1/shared/Loader/__tests__/__snapshots__/Loader.spec.js.snap +2 -2
  203. package/es/v1/shared/SuccessTick/SuccessTick.js +2 -1
  204. package/es/v1/shared/SuccessTick/__tests__/__snapshots__/SuccessTick.spec.js.snap +2 -2
  205. package/lib/Accordion/Accordion.js +3 -1
  206. package/lib/Accordion/AccordionItem.js +4 -2
  207. package/lib/Accordion/__tests__/__snapshots__/Accordion.spec.js.snap +1 -1
  208. package/lib/Accordion/__tests__/__snapshots__/AccordionItem.spec.js.snap +1 -1
  209. package/lib/Animation/__tests__/__snapshots__/Animation.spec.js.snap +1 -1
  210. package/lib/AppContainer/AppContainer.js +3 -1
  211. package/lib/AppContainer/AppContainer.module.css +9 -3
  212. package/lib/AppContainer/__tests__/__snapshots__/AppContainer.spec.js.snap +23 -23
  213. package/lib/Avatar/Avatar.js +6 -4
  214. package/lib/Avatar/__tests__/__snapshots__/Avatar.spec.js.snap +43 -43
  215. package/lib/AvatarTeam/AvatarTeam.js +4 -2
  216. package/lib/AvatarTeam/__tests__/__snapshots__/AvatarTeam.spec.js.snap +74 -98
  217. package/lib/Button/Button.js +6 -4
  218. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +4 -4
  219. package/lib/Button/css/cssJSLogic.js +3 -3
  220. package/lib/Buttongroup/Buttongroup.js +5 -3
  221. package/lib/Buttongroup/__tests__/__snapshots__/Buttongroup.spec.js.snap +9 -9
  222. package/lib/Card/__tests__/__snapshots__/Card.spec.js.snap +18 -18
  223. package/lib/Card/__tests__/__snapshots__/CardContent.spec.js.snap +13 -13
  224. package/lib/Card/__tests__/__snapshots__/CardHeader.spec.js.snap +5 -5
  225. package/lib/CheckBox/CheckBox.js +10 -8
  226. package/lib/CheckBox/__tests__/__snapshots__/CheckBox.spec.js.snap +154 -251
  227. package/lib/ColorSelect/__tests__/__snapshots__/ColorMultiSelect.spec.js.snap +72 -81
  228. package/lib/ColorSelect/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +62 -62
  229. package/lib/ColorSelect/_shared/ColorIndicator/ColorIndicator.js +3 -1
  230. package/lib/ColorSelect/_shared/ColorIndicator/__tests__/__snapshots__/ColorIndicator.spec.js.snap +10 -10
  231. package/lib/ColorSelect/_shared/ColoredTag/__tests__/__snapshots__/ColoredTag.spec.js.snap +14 -14
  232. package/lib/DateTime/CalendarView.js +5 -3
  233. package/lib/DateTime/DateTime.js +6 -4
  234. package/lib/DateTime/DateTimePopupFooter.js +3 -1
  235. package/lib/DateTime/DateWidget.js +5 -3
  236. package/lib/DateTime/Time.js +3 -1
  237. package/lib/DateTime/__tests__/__snapshots__/CalendarView.spec.js.snap +50 -50
  238. package/lib/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +103 -103
  239. package/lib/DateTime/__tests__/__snapshots__/DateTimePopupFooter.spec.js.snap +2 -2
  240. package/lib/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +10 -10
  241. package/lib/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +10 -10
  242. package/lib/DateTime/__tests__/__snapshots__/DaysRow.spec.js.snap +2 -2
  243. package/lib/DateTime/__tests__/__snapshots__/Time.spec.js.snap +35 -35
  244. package/lib/DropBox/DropBox.js +14 -5
  245. package/lib/DropBox/DropBoxElement/DropBoxElement.js +28 -8
  246. package/lib/DropBox/DropBoxElement/__tests__/__snapshots__/DropBoxElement.spec.js.snap +1 -1
  247. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +2 -2
  248. package/lib/DropBox/DropBoxElement/props/propTypes.js +2 -1
  249. package/lib/DropBox/__tests__/__snapshots__/DropBox.spec.js.snap +1 -1
  250. package/lib/DropDown/DropDown.js +3 -1
  251. package/lib/DropDown/DropDownHeading.js +3 -1
  252. package/lib/DropDown/DropDownItem.js +7 -5
  253. package/lib/DropDown/DropDownSearch.js +3 -1
  254. package/lib/DropDown/DropDownSeparator.js +3 -1
  255. package/lib/DropDown/__tests__/__snapshots__/DropDown.spec.js.snap +3 -3
  256. package/lib/DropDown/__tests__/__snapshots__/DropDownHeading.spec.js.snap +2 -2
  257. package/lib/DropDown/__tests__/__snapshots__/DropDownItem.spec.js.snap +2 -2
  258. package/lib/DropDown/__tests__/__snapshots__/DropDownSearch.spec.js.snap +3 -3
  259. package/lib/DropDown/__tests__/__snapshots__/DropDownSeparator.spec.js.snap +2 -2
  260. package/lib/Heading/__tests__/__snapshots__/Heading.spec.js.snap +8 -8
  261. package/lib/Label/Label.js +3 -1
  262. package/lib/Label/__tests__/__snapshots__/Label.spec.js.snap +25 -49
  263. package/lib/Layout/Box.js +7 -120
  264. package/lib/Layout/Container.js +7 -137
  265. package/lib/Layout/props/defaultProps.js +14 -19
  266. package/lib/Layout/props/propTypes.js +13 -52
  267. package/lib/ListItem/ListItem.js +3 -1
  268. package/lib/ListItem/ListItemWithAvatar.js +14 -4
  269. package/lib/ListItem/ListItemWithCheckBox.js +14 -4
  270. package/lib/ListItem/ListItemWithIcon.js +12 -4
  271. package/lib/ListItem/ListItemWithRadio.js +14 -4
  272. package/lib/ListItem/__tests__/ListItemWithAvatar.spec.js +23 -0
  273. package/lib/ListItem/__tests__/ListItemWithCheckBox.spec.js +23 -0
  274. package/lib/ListItem/__tests__/ListItemWithIcon.spec.js +21 -0
  275. package/lib/ListItem/__tests__/ListItemWithRadio.spec.js +23 -0
  276. package/lib/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +3 -3
  277. package/lib/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +17 -17
  278. package/lib/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +150 -42
  279. package/lib/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +282 -77
  280. package/lib/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +150 -42
  281. package/lib/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +273 -70
  282. package/lib/ListItem/props/defaultProps.js +1 -0
  283. package/lib/ListItem/props/propTypes.js +12 -4
  284. package/lib/Modal/Portal/__tests__/__snapshots__/Portal.spec.js.snap +1 -1
  285. package/lib/Modal/__tests__/__snapshots__/Modal.spec.js.snap +1 -1
  286. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +8 -6
  287. package/lib/MultiSelect/AdvancedMultiSelect.js +8 -4
  288. package/lib/MultiSelect/EmptyState.js +6 -4
  289. package/lib/MultiSelect/MobileHeader/MobileHeader.js +3 -1
  290. package/lib/MultiSelect/MobileHeader/__tests__/__snapshots__/MobileHeader.spec.js.snap +5 -5
  291. package/lib/MultiSelect/MultiSelect.js +57 -50
  292. package/lib/MultiSelect/MultiSelectWithAvatar.js +8 -4
  293. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +10 -11
  294. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +60 -63
  295. package/lib/MultiSelect/__tests__/__snapshots__/EmptyState.spec.js.snap +2 -2
  296. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +57 -66
  297. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +8 -8
  298. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +12 -13
  299. package/lib/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +8 -8
  300. package/lib/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +48 -48
  301. package/lib/MultiSelect/props/defaultProps.js +3 -0
  302. package/lib/MultiSelect/props/propTypes.js +1 -0
  303. package/lib/PopOver/PopOver.js +4 -2
  304. package/lib/PopOver/__tests__/__snapshots__/PopOver.spec.js.snap +1 -1
  305. package/lib/Radio/Radio.js +6 -4
  306. package/lib/Radio/__tests__/__snapshots__/Radio.spec.js.snap +118 -198
  307. package/lib/ResponsiveDropBox/__tests__/__snapshots__/ResponsiveDropBox.spec.js.snap +2 -2
  308. package/lib/Ribbon/Ribbon.js +8 -19
  309. package/lib/Ribbon/__tests__/__snapshots__/Ribbon.spec.js.snap +22 -25
  310. package/lib/RippleEffect/RippleEffect.js +1 -1
  311. package/lib/RippleEffect/__tests__/__snapshots__/RippleEffect.spec.js.snap +17 -17
  312. package/lib/Select/GroupSelect.js +10 -6
  313. package/lib/Select/Select.js +14 -8
  314. package/lib/Select/SelectWithAvatar.js +10 -6
  315. package/lib/Select/SelectWithIcon.js +9 -5
  316. package/lib/Select/__tests__/SelectWithIcon.spec.js +3 -1
  317. package/lib/Select/__tests__/__snapshots__/GroupSelect.spec.js.snap +10 -10
  318. package/lib/Select/__tests__/__snapshots__/Select.spec.js.snap +1056 -1046
  319. package/lib/Select/__tests__/__snapshots__/SelectWithAvatar.spec.js.snap +5 -5
  320. package/lib/Select/__tests__/__snapshots__/SelectWithIcon.spec.js.snap +13 -13
  321. package/lib/Select/props/defaultProps.js +5 -2
  322. package/lib/Select/props/propTypes.js +3 -0
  323. package/lib/Stencils/Stencils.js +3 -1
  324. package/lib/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +13 -13
  325. package/lib/Switch/Switch.js +5 -3
  326. package/lib/Switch/__tests__/__snapshots__/Switch.spec.js.snap +99 -111
  327. package/lib/Tab/Tab.js +40 -45
  328. package/lib/Tab/Tab.module.css +58 -15
  329. package/lib/Tab/TabWrapper.js +6 -2
  330. package/lib/Tab/Tabs.js +33 -16
  331. package/lib/Tab/Tabs.module.css +41 -17
  332. package/lib/Tab/__tests__/Tab.spec.js +8 -35
  333. package/lib/Tab/__tests__/Tabs.spec.js +12 -0
  334. package/lib/Tab/__tests__/__snapshots__/Tab.spec.js.snap +53 -82
  335. package/lib/Tab/__tests__/__snapshots__/TabContent.spec.js.snap +2 -2
  336. package/lib/Tab/__tests__/__snapshots__/TabContentWrapper.spec.js.snap +2 -2
  337. package/lib/Tab/__tests__/__snapshots__/TabLayout.spec.js.snap +41 -41
  338. package/lib/Tab/__tests__/__snapshots__/TabWrapper.spec.js.snap +2 -2
  339. package/lib/Tab/__tests__/__snapshots__/Tabs.spec.js.snap +37 -5
  340. package/lib/Tab/props/defaultProps.js +8 -2
  341. package/lib/Tab/props/propTypes.js +16 -3
  342. package/lib/Tab/utils/tabConfigs.js +9 -2
  343. package/lib/Tag/Tag.js +7 -5
  344. package/lib/Tag/__tests__/__snapshots__/Tag.spec.js.snap +243 -335
  345. package/lib/TextBox/TextBox.js +3 -1
  346. package/lib/TextBox/__tests__/__snapshots__/TextBox.spec.js.snap +45 -45
  347. package/lib/TextBoxIcon/TextBoxIcon.js +1 -1
  348. package/lib/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +207 -207
  349. package/lib/Textarea/Textarea.js +3 -1
  350. package/lib/Textarea/__tests__/__snapshots__/Textarea.spec.js.snap +47 -47
  351. package/lib/Tooltip/Tooltip.js +6 -4
  352. package/lib/Typography/__tests__/__snapshots__/Typography.spec.js.snap +8 -8
  353. package/lib/Typography/css/cssJSLogic.js +1 -1
  354. package/lib/VelocityAnimation/VelocityAnimation/__tests__/__snapshots__/VelocityAnimation.spec.js.snap +1 -1
  355. package/lib/VelocityAnimation/VelocityAnimationGroup/__tests__/__snapshots__/VelocityAnimationGroup.spec.js.snap +1 -1
  356. package/lib/common/basic.module.css +9 -8
  357. package/lib/css.js +0 -2
  358. package/lib/deprecated/Switch/Switch.js +5 -3
  359. package/lib/semantic/Button/Button.js +3 -1
  360. package/lib/semantic/Button/__tests__/__snapshots__/Button.spec.js.snap +2 -2
  361. package/lib/shared/ArrowIcon/__tests__/__snapshots__/ArrowIcon.spec.js.snap +21 -21
  362. package/lib/shared/InputFieldLine/__tests__/__snapshots__/InputFieldLine.spec.js.snap +20 -20
  363. package/lib/v1/Button/Button.js +3 -1
  364. package/lib/v1/Button/__tests__/__snapshots__/Button.spec.js.snap +9 -9
  365. package/lib/v1/Label/__tests__/__snapshots__/Label.spec.js.snap +1 -1
  366. package/lib/v1/Switch/Switch.js +5 -3
  367. package/lib/v1/Switch/__tests__/__snapshots__/Switch.spec.js.snap +1 -1
  368. package/lib/v1/shared/Loader/Loader.js +5 -3
  369. package/lib/v1/shared/Loader/__tests__/__snapshots__/Loader.spec.js.snap +2 -2
  370. package/lib/v1/shared/SuccessTick/SuccessTick.js +3 -1
  371. package/lib/v1/shared/SuccessTick/__tests__/__snapshots__/SuccessTick.spec.js.snap +2 -2
  372. package/package.json +26 -24
  373. package/ut.config.js +106 -0
  374. package/es/Layout/Layout.module.css +0 -336
  375. package/es/Layout/__tests__/Box.spec.js +0 -11
  376. package/es/Layout/__tests__/Container.spec.js +0 -11
  377. package/es/Layout/__tests__/__snapshots__/Box.spec.js.snap +0 -16
  378. package/es/Layout/__tests__/__snapshots__/Container.spec.js.snap +0 -16
  379. package/es/Layout/utils.js +0 -29
  380. package/lib/Layout/Layout.module.css +0 -336
  381. package/lib/Layout/__tests__/Box.spec.js +0 -18
  382. package/lib/Layout/__tests__/Container.spec.js +0 -18
  383. package/lib/Layout/__tests__/__snapshots__/Box.spec.js.snap +0 -16
  384. package/lib/Layout/__tests__/__snapshots__/Container.spec.js.snap +0 -16
  385. package/lib/Layout/utils.js +0 -59
package/es/Tab/Tab.js CHANGED
@@ -2,16 +2,16 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
2
2
 
3
3
  /* eslint-disable react/forbid-component-props */
4
4
 
5
- /* eslint css-modules/no-unused-class: [2, { markAsUsed: ['text', 'tabAlpha', 'alphaActive', 'gammaActive', 'betaActive', 'deltaActive', 'tabGamma', 'tabBeta', 'tabDelta',', 'specialActive', 'tabSpecial', 'alphaActive_border', 'gammaActive_border', 'betaActive_border', 'deltaActive_border', 'tabDefault', 'defaultHover', 'defaultActive', 'defaultActive_border'] }] */
5
+ /* eslint css-modules/no-unused-class: [2, { markAsUsed: ['text', 'icon', 'iconWithText', 'iconWrapper', 'tabAlpha', 'alphaActive', 'gammaActive', 'betaActive', 'deltaActive', 'tabGamma', 'tabBeta', 'tabDelta',', 'specialActive', 'tabSpecial', 'alphaActive_border', 'gammaActive_border', 'betaActive_border', 'deltaActive_border', 'tabDefault', 'defaultHover', 'defaultActive', 'defaultActive_border', 'left_borderTab', 'right_borderTab', 'top_borderTab', 'bottom_borderTab', 'alpha_inline', 'beta_inline', 'delta_inline', 'default_inline', 'alpha_block', 'beta_block', 'delta_block', 'default_block', 'icon_inline', 'icon_block', 'iconWithText_block', 'text_block'] }] */
6
6
  import React, { useMemo, useCallback } from 'react';
7
7
  import { Tab_defaultProps } from "./props/defaultProps";
8
8
  import { Tab_propTypes } from "./props/propTypes";
9
9
  import { Box, Container } from "../Layout";
10
+ import { Icon } from '@zohodesk/icons';
11
+ import { renderNode, isRenderable } from '@zohodesk/utils';
10
12
  import { cs } from "../utils/Common";
11
13
  import { TAB_DIRECTION_MAPPING, VARIANT } from "./utils/tabConfigs";
12
14
  import styles from "./Tab.module.css";
13
- import { renderNode, isRenderable } from '@zohodesk/utils';
14
- import { Icon } from '@zohodesk/icons';
15
15
  const tabTypes = {
16
16
  alpha: {
17
17
  active: 'alphaActive',
@@ -53,19 +53,28 @@ export default function Tab({
53
53
  isAnimate,
54
54
  needBorder,
55
55
  needAppearance,
56
+ needHover,
57
+ hoverOnActive,
56
58
  align,
57
59
  isVirtual,
58
60
  contentAlign,
59
61
  contentAlignBox,
60
62
  customProps,
63
+ customClass,
61
64
  variant,
62
- iconPlacement,
63
65
  iconName,
64
66
  iconSize,
65
- renderIcon,
66
67
  renderBefore,
67
- renderAfter
68
+ renderAfter,
69
+ borderPosition
68
70
  }) {
71
+ let {
72
+ customTextContainer = '',
73
+ customText = '',
74
+ customHover = '',
75
+ customIconContainer = '',
76
+ customIcon = ''
77
+ } = customClass;
69
78
  let clickListener = useCallback(event => {
70
79
  if (isLink && event && (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey)) {
71
80
  event && event.stopPropagation();
@@ -81,49 +90,30 @@ export default function Tab({
81
90
  tab: 'tab'
82
91
  }, [type]);
83
92
  let getTab = useCallback(ref => getTabRef && getTabRef(id, ref, isVirtual), [id, isVirtual]);
84
- let activeWithAppearance = cs([styles[styleContent.active], needBorder && !isAnimate && styles[`${styleContent.active}_border`]]);
93
+ let activeWithAppearance = cs([styles[styleContent.active], needBorder && !isAnimate && styles[`${styleContent.active}_border`], needHover && hoverOnActive && tabTypes[type] && styles[`${type}Hover`], hoverOnActive && customHover]);
85
94
  let activeClasses = cs([needAppearance && activeWithAppearance, activeClass]);
86
- let inActiveClasses = needAppearance && cs([styles[styleContent.tab], tabTypes[type] && styles[`${type}Hover`]]);
87
- let tabClass = cs([styles.tab, TAB_DIRECTION_MAPPING[align] === 'column' ? styles.vertical : styles.horizontal, isDisabled && styles.disabled, needBorder && !isAnimate && needAppearance && styles.border, isActive ? activeClasses : inActiveClasses, variant === VARIANT.ICON && styles.tabVariantIcon, variant === VARIANT.ICON_WITH_TEXT && styles.tabVariantIconWithText, className]);
95
+ let inActiveClasses = needAppearance && cs([styles[styleContent.tab], needHover && tabTypes[type] && styles[`${type}Hover`], customHover]);
96
+ const isVerticalAlign = TAB_DIRECTION_MAPPING[align] === 'column';
97
+ const isIconWithText = variant === VARIANT.ICON_WITH_TEXT;
98
+ let tabClass = cs([styles.tab, isVerticalAlign ? styles.vertical : styles.horizontal, needAppearance && styles[`${type}_${isVerticalAlign ? 'inline' : 'block'}`], isDisabled && styles.disabled, needBorder && borderPosition && !isAnimate && needAppearance && styles[`${borderPosition}_border`], isActive ? activeClasses : inActiveClasses, className]);
88
99
 
89
- const _renderIconNode = () => {
90
- if (isRenderable(renderIcon)) {
91
- return renderNode(renderIcon);
92
- }
93
-
94
- if (!iconName) {
95
- return null;
96
- }
97
-
98
- return /*#__PURE__*/React.createElement(Icon, {
100
+ const _renderIcon = () => {
101
+ const showIcon = variant !== VARIANT.TEXT && iconName;
102
+ return /*#__PURE__*/React.createElement(React.Fragment, null, showIcon ? /*#__PURE__*/React.createElement(Box, {
103
+ className: cs([styles.iconWrapper, customIconContainer])
104
+ }, /*#__PURE__*/React.createElement(Icon, {
99
105
  name: iconName,
100
- size: iconSize
101
- });
102
- };
103
-
104
- const _renderBeforeNode = () => {
105
- if (!isRenderable(renderBefore)) {
106
- return null;
107
- }
108
-
109
- return renderNode(renderBefore);
110
- };
111
-
112
- const _renderAfterNode = () => {
113
- if (!isRenderable(renderAfter)) {
114
- return null;
115
- }
116
-
117
- return renderNode(renderAfter);
106
+ size: iconSize,
107
+ className: customIcon
108
+ })) : null);
118
109
  };
119
110
 
120
111
  const _renderLabel = () => {
121
- const showIcon = variant !== VARIANT.TEXT && (isRenderable(renderIcon) || iconName);
122
112
  const showText = variant !== VARIANT.ICON && text !== undefined && text !== null;
123
- return /*#__PURE__*/React.createElement(React.Fragment, null, showIcon ? _renderIconNode() : null, showText ? /*#__PURE__*/React.createElement(Box, {
113
+ return /*#__PURE__*/React.createElement(React.Fragment, null, showText ? /*#__PURE__*/React.createElement(Box, {
124
114
  flexible: true,
125
115
  adjust: true,
126
- className: styles.tabText
116
+ className: cs([styles.tabText, customText])
127
117
  }, text) : null);
128
118
  };
129
119
 
@@ -149,10 +139,12 @@ export default function Tab({
149
139
  }, customProps), /*#__PURE__*/React.createElement(Container, {
150
140
  alignBox: contentAlignBox,
151
141
  align: contentAlign,
152
- className: styles.textContainer
153
- }, _renderBeforeNode(), _renderLabel(), children ? /*#__PURE__*/React.createElement(Box, {
142
+ className: cs([styles.textContainer, customTextContainer])
143
+ }, isRenderable(renderBefore) ? /*#__PURE__*/React.createElement(Box, {
144
+ shrink: true
145
+ }, renderNode(renderBefore)) : null, _renderIcon(), _renderLabel(), isRenderable(renderAfter) || children ? /*#__PURE__*/React.createElement(Box, {
154
146
  shrink: true
155
- }, children) : null, _renderAfterNode()));
147
+ }, isRenderable(renderAfter) ? renderNode(renderAfter) : children) : null));
156
148
  }
157
149
  Tab.defaultProps = Tab_defaultProps;
158
150
  Tab.propTypes = Tab_propTypes; // if (__DOCS__) {
@@ -24,8 +24,17 @@
24
24
  .disabled {
25
25
  cursor: not-allowed;
26
26
  }
27
- .border {
28
- border-bottom: 1px solid var(--zdt_tab_default_border);
27
+ .left_border {
28
+ border-inline-start: 1px solid var(--zdt_tab_default_border);
29
+ }
30
+ .right_border {
31
+ border-inline-end: 1px solid var(--zdt_tab_default_border);
32
+ }
33
+ .top_border {
34
+ border-block-start: 1px solid var(--zdt_tab_default_border);
35
+ }
36
+ .bottom_border {
37
+ border-block-end: 1px solid var(--zdt_tab_default_border);
29
38
  }
30
39
 
31
40
  .alpha,
@@ -62,7 +71,6 @@
62
71
  padding-block:0 ;
63
72
  font-size: var(--zd_font_size14) ;
64
73
  line-height: 4.2857;
65
- margin-inline-end: var(--zd_size40) ;
66
74
  text-transform: capitalize;
67
75
  }
68
76
  .tabBeta {
@@ -81,7 +89,6 @@
81
89
  padding-block:0 ;
82
90
  font-size: var(--zd_font_size11) ;
83
91
  line-height: 3;
84
- margin-inline-end: var(--zd_size10) ;
85
92
  }
86
93
  .tabDelta {
87
94
  composes: delta;
@@ -95,24 +102,60 @@
95
102
  color: var(--zdt_tab_alpha_active_text);
96
103
  }
97
104
 
98
- .tabDefault {
105
+ .default {
99
106
  transition: all var(--zd_transition2);
100
107
  padding-inline: 0 ;
101
108
  padding-block: 0 ;
102
109
  font-size: var(--zd_font_size11) ;
103
110
  line-height: 3;
104
- margin-inline-end: var(--zd_size34) ;
111
+ }
112
+ .tabDefault {
113
+ composes: default;
105
114
  color: var(--zd-text-secondary);
106
115
  }
107
- .defaultHover:hover { color: var(--zd-text-primary); }
116
+
117
+ .defaultHover:hover {
118
+ background-color: var(--zdt_tab_default_hover_bg);
119
+ }
120
+
108
121
  .defaultActive {
109
- transition: all var(--zd_transition2);
110
- padding-inline: 0 ;
111
- padding-block: 0 ;
112
- font-size: var(--zd_font_size11) ;
113
- line-height: 3;
114
- margin-inline-end: var(--zd_size34) ;
122
+ composes: default;
115
123
  color: var(--zd-text-primary);
116
- border-bottom: 1px solid var(--zdt_tab_alpha_active_border);
117
124
  }
118
- .defaultActive_border { border-color: var(--zdt_tab_alpha_active_border); }
125
+
126
+ .defaultActive_border {
127
+ border-color: var(--zdt_tab_default_border_active);
128
+ }
129
+
130
+ /* vertical / vertical-reverse: margin-inline-end */
131
+ .beta_inline {
132
+ margin-inline-end: var(--zd_size40) ;
133
+ }
134
+ .delta_inline {
135
+ margin-inline-end: var(--zd_size10) ;
136
+ }
137
+ .default_inline {
138
+ margin-inline-end: var(--zd_size34) ;
139
+ }
140
+ /* horizontal / horizontal-reverse: margin-block-end */
141
+ .beta_block {
142
+ margin-block-end: var(--zd_size40) ;
143
+ }
144
+ .delta_block {
145
+ margin-block-end: var(--zd_size10) ;
146
+ }
147
+ .default_block {
148
+ margin-block-end: var(--zd_size6) ;
149
+ }
150
+ .iconWrapper {
151
+ composes: dflex alignVertical alignHorizontal from '../common/common.module.css';
152
+ flex: 0 0 var(--zd_size24) ;
153
+ min-width: var(--zd_size24) ;
154
+ }
155
+ .icon_block, .icon_inline {
156
+ padding: var(--zd_size10) ;
157
+ }
158
+ .text_block,
159
+ .iconWithText_block {
160
+ padding-inline: var(--zd_size10) ;
161
+ }
@@ -17,9 +17,11 @@ function TabWrapper({
17
17
  needPadding,
18
18
  needAppearance,
19
19
  align,
20
+ alignBorderPosition,
20
21
  dataId,
21
22
  children,
22
- dataSelectorId
23
+ dataSelectorId,
24
+ borderPosition
23
25
  }) {
24
26
  let [selectedTabInternal, setSelected] = useState(!hookToDisableInternalState ? defaultTab || 0 : null);
25
27
  const setSelectedTab = useCallback(id => {
@@ -47,7 +49,9 @@ function TabWrapper({
47
49
  needPadding: needPadding,
48
50
  needAppearance: needAppearance,
49
51
  hookToDisableInternalState: hookToDisableInternalState,
50
- align: align
52
+ align: align,
53
+ alignBorderPosition: alignBorderPosition,
54
+ borderPosition: borderPosition
51
55
  }));
52
56
  }));
53
57
  }
package/es/Tab/Tabs.js CHANGED
@@ -5,8 +5,9 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
5
5
  /* eslint css-modules/no-unused-class: [2, {
6
6
  markAsUsed: [
7
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_padding','alpha_border','gamma_padding','gamma_border','beta_padding','beta_border','delta_padding','delta_border','default_padding','default_border','textContainer','disabled','alphaActive_border','gammaActive_border','betaActive_border','deltaActive_border',
9
- 'defaultMoreButton','defaultMoreButtonActive','defaultMenuListItem'
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'
10
11
  ]
11
12
  }]
12
13
  */
@@ -21,12 +22,14 @@ import ResizeObserver from "../Responsive/ResizeObserver";
21
22
  import ListItem from "../ListItem/ListItem";
22
23
  import ListItemWithIcon from "../ListItem/ListItemWithIcon";
23
24
  import { Icon } from '@zohodesk/icons';
25
+ import { cn } from "@dot-system/css-utility";
24
26
  import tabsStyle from "./Tabs.module.css";
25
27
  import Popup from "../Popup/Popup";
26
28
  import TextBoxIcon from "../TextBoxIcon/TextBoxIcon";
27
29
  import ResponsiveDropBox from "../ResponsiveDropBox/ResponsiveDropBox";
28
30
  import { ResponsiveReceiver } from "../Responsive/CustomResponsive";
29
- import { TAB_DIRECTION_MAPPING, TAB_POPUP_POSITION_MAPPING, VARIANT } 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';
30
33
  import btnstyle from "../semantic/Button/semanticButton.module.css";
31
34
 
32
35
  class Tabs extends React.Component {
@@ -474,15 +477,15 @@ class Tabs extends React.Component {
474
477
  searchErrorText
475
478
  } = this.props;
476
479
  return /*#__PURE__*/React.createElement("div", {
477
- className: tabsStyle.emptyStateContainer
480
+ className: cn(tabsStyle.emptyStateContainer)
478
481
  }, /*#__PURE__*/React.createElement(EmptySearch, {
479
482
  size: "small"
480
483
  }), /*#__PURE__*/React.createElement("div", {
481
- className: tabsStyle.emptyStateTitle
484
+ className: cn(tabsStyle.emptyStateTitle)
482
485
  }, searchErrorText));
483
486
  }
484
487
 
485
- renderTabs(mainTabs, moreTabs, isVirtual) {
488
+ renderTabs(mainTabs, moreTabs, isVirtual, borderPosition) {
486
489
  let {
487
490
  selectedTab,
488
491
  moreButtonClass,
@@ -504,6 +507,7 @@ class Tabs extends React.Component {
504
507
  needTabBorder,
505
508
  needAppearance,
506
509
  iconSize,
510
+ renderMoreTarget,
507
511
  getTargetRef,
508
512
  position,
509
513
  customProps,
@@ -563,7 +567,8 @@ class Tabs extends React.Component {
563
567
  needBorder: needTabBorder,
564
568
  needAppearance: needAppearance,
565
569
  align: align,
566
- isVirtual: isVirtual
570
+ isVirtual: isVirtual,
571
+ borderPosition: borderPosition
567
572
  }, classProps));
568
573
  }), React.Children.count(moreTabs) ? /*#__PURE__*/React.createElement(Box, {
569
574
  className: `${tabsStyle.menu} `,
@@ -578,7 +583,7 @@ class Tabs extends React.Component {
578
583
  "aria-label": "MoreTabs",
579
584
  role: "link",
580
585
  tagName: "button"
581
- }), /*#__PURE__*/React.createElement(Icon, {
586
+ }), isRenderable(renderMoreTarget) ? renderNode(renderMoreTarget) : /*#__PURE__*/React.createElement(Icon, {
582
587
  name: iconName,
583
588
  size: iconSize
584
589
  })), isPopupOpen && /*#__PURE__*/React.createElement(ResponsiveReceiver, {
@@ -641,7 +646,9 @@ class Tabs extends React.Component {
641
646
  dataId,
642
647
  variant,
643
648
  iconName,
644
- iconSize
649
+ iconSize,
650
+ renderBefore,
651
+ renderAfter
645
652
  } = data;
646
653
  const value = text ? text : showTitleInMoreOptions ? title : null;
647
654
  const showIconInDropdown = variant !== VARIANT.TEXT && iconName;
@@ -658,9 +665,10 @@ class Tabs extends React.Component {
658
665
  autoHover: true,
659
666
  iconName: iconName,
660
667
  iconSize: iconSize,
661
- customClass: {
662
- customListItem: effectiveMenuItemClass
663
- },
668
+ renderLeftValuePlaceholderNode: renderBefore,
669
+ renderValueRightPlaceholderNode: isRenderable(renderAfter) ? renderAfter : !showTitleInMoreOptions ? children : null,
670
+ customClass: effectiveMenuItemClass,
671
+ customTitleBoxClass: tabsStyle.listItemTitleBox,
664
672
  target: "self",
665
673
  dataId: `${dataId}_Tab`
666
674
  }, ListItemProps));
@@ -675,12 +683,16 @@ class Tabs extends React.Component {
675
683
  isLink: isLink,
676
684
  href: href,
677
685
  autoHover: true,
686
+ renderBeforeChildren: renderBefore,
687
+ renderValueRightPlaceholderNode: isRenderable(renderAfter) ? renderAfter : !showTitleInMoreOptions ? children : null,
678
688
  customClass: {
679
- customListItem: effectiveMenuItemClass
689
+ customListItem: effectiveMenuItemClass,
690
+ customTitleBox: tabsStyle.listItemTitleBox,
691
+ customLeftValuePlaceholder: tabsStyle.listItemLeftValuePlaceholder
680
692
  },
681
693
  target: "self",
682
694
  dataId: `${dataId}_Tab`
683
- }, ListItemProps), !showTitleInMoreOptions ? children : null);
695
+ }, ListItemProps));
684
696
  }) : this.renderEmptyState())))) : null);
685
697
  }
686
698
 
@@ -696,11 +708,15 @@ class Tabs extends React.Component {
696
708
  needBorder,
697
709
  needPadding,
698
710
  align,
711
+ alignBorderPosition,
699
712
  needAppearance,
700
713
  children,
701
714
  containerClass,
702
- dataSelectorId
715
+ dataSelectorId,
716
+ borderPosition
703
717
  } = this.props;
718
+ const effectiveBorderPosition = alignBorderPosition && (needBorder || needTabBorder) ? BORDER_POSITION_BY_ALIGN[align] : borderPosition;
719
+ const isVerticalAlign = TAB_DIRECTION_MAPPING[align] === 'column';
704
720
  let {
705
721
  totalDimension,
706
722
  tabDimensions,
@@ -711,7 +727,7 @@ class Tabs extends React.Component {
711
727
  moreTabs,
712
728
  otherTabs
713
729
  } = this.responsiveTab(totalDimension, tabDimensions);
714
- 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'}`]]);
715
731
  let tabsClass = cs([tabsStyle.tab, className, needAppearance && appearanceClass]);
716
732
  let hlClass = cs([tabsStyle.highlight, highlightClass, isAnimate && tabsStyle.lineAnimate]);
717
733
  return /*#__PURE__*/React.createElement(Box, {
@@ -727,10 +743,10 @@ class Tabs extends React.Component {
727
743
  }, renderVirtualTabs && /*#__PURE__*/React.createElement(Container, {
728
744
  alignBox: TAB_DIRECTION_MAPPING[align] === 'column' ? 'row' : 'column',
729
745
  className: tabsStyle.hidden
730
- }, this.renderTabs(children, [], true)), /*#__PURE__*/React.createElement(Container, {
746
+ }, this.renderTabs(children, [], true, effectiveBorderPosition)), /*#__PURE__*/React.createElement(Container, {
731
747
  alignBox: TAB_DIRECTION_MAPPING[align] === 'column' ? 'row' : 'column'
732
- }, this.renderTabs(mainTabs, moreTabs, false))), otherTabs.length ? /*#__PURE__*/React.createElement(Box, null, otherTabs) : null, isAnimate && needTabBorder && needAppearance && /*#__PURE__*/React.createElement("div", {
733
- 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),
734
750
  ref: this.getHighlightRef,
735
751
  "data-id": dataId,
736
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,11 @@
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
83
  }
84
84
 
85
85
  .default {
@@ -89,12 +89,11 @@
89
89
  background-color: var(--zd-bg-secondary);
90
90
  }
91
91
 
92
- .default_padding {
93
- padding-inline-start: var(--zd_size10) ;
94
- }
92
+ .default_inline { padding-block-start: var(--zd_size10) ; }
93
+ .default_block { padding-inline-start: var(--zd_size10) ; }
95
94
 
96
95
  .default_border {
97
- border-bottom: 1px solid var(--zd-border-primary);
96
+ border-color: var(--zd-border-primary);
98
97
  }
99
98
 
100
99
  .defaultMoreButton {
@@ -138,7 +137,7 @@
138
137
  .highlight {
139
138
  position: absolute;
140
139
  bottom: 0 ;
141
- border-bottom: 1px solid var(--zdt_tabs_highlight_border);
140
+ border-block-end: 1px solid var(--zdt_tabs_highlight_border);
142
141
  }
143
142
 
144
143
  .lineAnimate {
@@ -199,4 +198,29 @@
199
198
  .listWrapper {
200
199
  padding-block: var(--zd_size10) ;
201
200
  padding-inline: 0 ;
201
+ }
202
+
203
+ .listItemTitleBox {
204
+ gap: var(--zd_size4) ;
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 ;
202
226
  }
@@ -47,31 +47,6 @@ describe('Tab', () => {
47
47
  }));
48
48
  expect(asFragment()).toMatchSnapshot();
49
49
  });
50
- test('renderIcon overrides iconName', () => {
51
- const {
52
- asFragment
53
- } = render( /*#__PURE__*/React.createElement(Tab, {
54
- id: "t4",
55
- text: "Home",
56
- variant: "iconWithText",
57
- renderIcon: /*#__PURE__*/React.createElement("span", null, "\u2605"),
58
- iconName: "ZD-TB-menu",
59
- onSelect: noop
60
- }));
61
- expect(asFragment()).toMatchSnapshot();
62
- });
63
- test('renderIcon as function receives no args and renders custom node', () => {
64
- const {
65
- asFragment
66
- } = render( /*#__PURE__*/React.createElement(Tab, {
67
- id: "t5",
68
- text: "Home",
69
- variant: "icon",
70
- renderIcon: () => /*#__PURE__*/React.createElement("span", null, "\u2605"),
71
- onSelect: noop
72
- }));
73
- expect(asFragment()).toMatchSnapshot();
74
- });
75
50
  });
76
51
  describe('renderBefore / renderAfter slots', () => {
77
52
  test('renderBefore renders a node to the left of the label', () => {
@@ -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
  });