@zohodesk/components 1.0.0-temp-227 → 1.0.0-temp-228

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 (357) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +31 -20
  3. package/assets/Appearance/dark/mode/Component_v2_DarkMode.module.css +11 -0
  4. package/assets/Appearance/light/mode/Component_v2_LightMode.module.css +11 -0
  5. package/assets/Appearance/pureDark/mode/Component_v2_PureDarkMode.module.css +11 -0
  6. package/es/Accordion/Accordion.js +2 -2
  7. package/es/Accordion/AccordionItem.js +4 -4
  8. package/es/Accordion/__tests__/Accordion.spec.js +1 -1
  9. package/es/Accordion/__tests__/AccordionItem.spec.js +1 -1
  10. package/es/Accordion/index.js +2 -2
  11. package/es/Animation/Animation.js +3 -3
  12. package/es/Animation/__tests__/Animation.spec.js +1 -1
  13. package/es/Animation/utils.js +1 -1
  14. package/es/AppContainer/AppContainer.js +13 -14
  15. package/es/AppContainer/__tests__/AppContainer.spec.js +1 -1
  16. package/es/Avatar/Avatar.js +5 -5
  17. package/es/Avatar/__tests__/Avatar.spec.js +1 -1
  18. package/es/AvatarTeam/AvatarTeam.js +4 -4
  19. package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -1
  20. package/es/AvatarTeam/props/propTypes.js +1 -1
  21. package/es/Button/Button.js +4 -4
  22. package/es/Button/__tests__/Button.spec.js +2 -135
  23. package/es/Button/index.js +2 -2
  24. package/es/Button/props/defaultProps.js +1 -1
  25. package/es/Buttongroup/Buttongroup.js +3 -3
  26. package/es/Buttongroup/__tests__/Buttongroup.spec.js +1 -1
  27. package/es/Card/Card.js +5 -5
  28. package/es/Card/__tests__/Card.spec.js +1 -1
  29. package/es/Card/index.js +4 -4
  30. package/es/CheckBox/CheckBox.js +6 -6
  31. package/es/CheckBox/__tests__/CheckBox.spec.js +1 -1
  32. package/es/DateTime/CalendarView.js +6 -6
  33. package/es/DateTime/DateTime.js +15 -15
  34. package/es/DateTime/DateTimePopupFooter.js +5 -5
  35. package/es/DateTime/DateTimePopupHeader.js +4 -4
  36. package/es/DateTime/DateWidget.js +17 -17
  37. package/es/DateTime/DaysRow.js +3 -3
  38. package/es/DateTime/Time.js +5 -5
  39. package/es/DateTime/YearView.js +6 -6
  40. package/es/DateTime/__tests__/CalendarView.spec.js +1 -1
  41. package/es/DateTime/__tests__/DateTime.spec.js +1 -1
  42. package/es/DateTime/__tests__/DateTimePopupFooter.spec.js +1 -1
  43. package/es/DateTime/__tests__/DateTimePopupHeader.spec.js +1 -1
  44. package/es/DateTime/__tests__/DateWidget.spec.js +1 -1
  45. package/es/DateTime/__tests__/DaysRow.spec.js +1 -1
  46. package/es/DateTime/__tests__/Time.spec.js +1 -1
  47. package/es/DateTime/__tests__/YearView.spec.js +3 -2
  48. package/es/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +61 -0
  49. package/es/DateTime/dateFormatUtils/dateFormat.js +4 -4
  50. package/es/DateTime/dateFormatUtils/dayChange.js +2 -2
  51. package/es/DateTime/dateFormatUtils/index.js +3 -3
  52. package/es/DateTime/dateFormatUtils/monthChange.js +2 -2
  53. package/es/DateTime/dateFormatUtils/timeChange.js +2 -2
  54. package/es/DateTime/dateFormatUtils/yearChange.js +2 -2
  55. package/es/DateTime/index.js +1 -1
  56. package/es/DateTime/props/propTypes.js +1 -1
  57. package/es/DateTime/validator.js +2 -2
  58. package/es/DropBox/DropBox.js +9 -9
  59. package/es/DropBox/DropBoxElement/DropBoxElement.js +6 -6
  60. package/es/DropBox/DropBoxElement/__tests__/DropBoxElement.spec.js +1 -1
  61. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +1 -1
  62. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +1 -1
  63. package/es/DropBox/__tests__/DropBox.spec.js +1 -1
  64. package/es/DropBox/css/cssJSLogic.js +1 -1
  65. package/es/DropBox/props/defaultProps.js +1 -1
  66. package/es/DropBox/props/propTypes.js +1 -1
  67. package/es/DropBox/utils/isMobilePopover.js +1 -1
  68. package/es/DropDown/DropDown.js +4 -4
  69. package/es/DropDown/DropDownHeading.js +3 -3
  70. package/es/DropDown/DropDownItem.js +3 -3
  71. package/es/DropDown/DropDownSearch.js +4 -4
  72. package/es/DropDown/DropDownSeparator.js +2 -2
  73. package/es/DropDown/__tests__/DropDown.spec.js +1 -1
  74. package/es/DropDown/__tests__/DropDownHeading.spec.js +1 -1
  75. package/es/DropDown/__tests__/DropDownItem.spec.js +1 -1
  76. package/es/DropDown/__tests__/DropDownSearch.spec.js +1 -1
  77. package/es/DropDown/__tests__/DropDownSeparator.spec.js +1 -1
  78. package/es/DropDown/index.js +7 -7
  79. package/es/DropDown/props/propTypes.js +1 -1
  80. package/es/Heading/Heading.js +4 -4
  81. package/es/Heading/__tests__/Heading.spec.js +1 -1
  82. package/es/Label/Label.js +4 -4
  83. package/es/Label/__tests__/Label.spec.js +1 -1
  84. package/es/Layout/Box.js +4 -4
  85. package/es/Layout/Container.js +4 -4
  86. package/es/Layout/__tests__/Box.spec.js +1 -1
  87. package/es/Layout/__tests__/Container.spec.js +1 -1
  88. package/es/Layout/index.js +2 -2
  89. package/es/ListItem/ListContainer.js +6 -6
  90. package/es/ListItem/ListItem.js +5 -5
  91. package/es/ListItem/ListItemWithAvatar.js +7 -7
  92. package/es/ListItem/ListItemWithCheckBox.js +6 -6
  93. package/es/ListItem/ListItemWithIcon.js +5 -5
  94. package/es/ListItem/ListItemWithRadio.js +6 -6
  95. package/es/ListItem/__tests__/ListContainer.spec.js +1 -1
  96. package/es/ListItem/__tests__/ListItem.spec.js +1 -1
  97. package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +1 -1
  98. package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +1 -1
  99. package/es/ListItem/__tests__/ListItemWithIcon.spec.js +1 -1
  100. package/es/ListItem/__tests__/ListItemWithRadio.spec.js +1 -1
  101. package/es/ListItem/index.js +6 -6
  102. package/es/ListItem/props/propTypes.js +2 -2
  103. package/es/Modal/Modal.js +3 -3
  104. package/es/Modal/__tests__/Modal.spec.js +1 -1
  105. package/es/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
  106. package/es/MultiSelect/AdvancedMultiSelect.js +17 -17
  107. package/es/MultiSelect/EmptyState.js +3 -3
  108. package/es/MultiSelect/MobileHeader/MobileHeader.js +5 -5
  109. package/es/MultiSelect/MobileHeader/__tests__/MobileHeader.spec.js +1 -1
  110. package/es/MultiSelect/MultiSelect.js +22 -35
  111. package/es/MultiSelect/MultiSelectHeader.js +4 -4
  112. package/es/MultiSelect/MultiSelectWithAvatar.js +16 -16
  113. package/es/MultiSelect/SelectedOptions.js +5 -5
  114. package/es/MultiSelect/Suggestions.js +6 -6
  115. package/es/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +1 -1
  116. package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +2 -9
  117. package/es/MultiSelect/__tests__/EmptyState.spec.js +1 -1
  118. package/es/MultiSelect/__tests__/MultiSelect.spec.js +1 -1
  119. package/es/MultiSelect/__tests__/MultiSelectHeader.spec.js +1 -1
  120. package/es/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +1 -1
  121. package/es/MultiSelect/__tests__/SelectedOptions.spec.js +1 -1
  122. package/es/MultiSelect/__tests__/Suggestions.spec.js +1 -1
  123. package/es/MultiSelect/index.js +4 -4
  124. package/es/MultiSelect/props/defaultProps.js +1 -1
  125. package/es/MultiSelect/props/propTypes.js +1 -3
  126. package/es/PopOver/PopOver.js +6 -6
  127. package/es/PopOver/__tests__/PopOver.spec.js +1 -1
  128. package/es/PopOver/index.js +3 -3
  129. package/es/Popup/Popup.js +7 -7
  130. package/es/Provider/AvatarSize.js +1 -1
  131. package/es/Provider/CssProvider.js +1 -1
  132. package/es/Provider/IdProvider.js +3 -3
  133. package/es/Provider/LibraryContext.js +5 -3
  134. package/es/Provider/ZindexProvider.js +2 -2
  135. package/es/Provider/index.js +4 -4
  136. package/es/Radio/Radio.js +6 -6
  137. package/es/Radio/__tests__/Radio.spec.js +1 -1
  138. package/es/Responsive/CustomResponsive.js +7 -7
  139. package/es/Responsive/ResizeComponent.js +2 -2
  140. package/es/Responsive/Responsive.js +6 -6
  141. package/es/Responsive/index.js +3 -3
  142. package/es/Responsive/utils/index.js +1 -1
  143. package/es/Responsive/windowResizeObserver.js +1 -1
  144. package/es/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
  145. package/es/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +1 -1
  146. package/es/ResponsiveDropBox/props/propTypes.js +1 -1
  147. package/es/Ribbon/Ribbon.js +3 -3
  148. package/es/Ribbon/__tests__/Ribbon.spec.js +1 -1
  149. package/es/RippleEffect/RippleEffect.js +4 -4
  150. package/es/RippleEffect/__tests__/RippleEffect.spec.js +1 -1
  151. package/es/Select/GroupSelect.js +16 -16
  152. package/es/Select/Select.js +21 -30
  153. package/es/Select/SelectWithAvatar.js +17 -17
  154. package/es/Select/SelectWithIcon.js +13 -13
  155. package/es/Select/__tests__/GroupSelect.spec.js +1 -1
  156. package/es/Select/__tests__/Select.spec.js +5 -1131
  157. package/es/Select/__tests__/SelectWithAvatar.spec.js +1 -1
  158. package/es/Select/__tests__/SelectWithIcon.spec.js +1 -1
  159. package/es/Select/__tests__/__snapshots__/Select.spec.js.snap +1 -9621
  160. package/es/Select/index.js +4 -4
  161. package/es/Select/props/defaultProps.js +1 -1
  162. package/es/Select/props/propTypes.js +1 -3
  163. package/es/Stencils/Stencils.js +15 -8
  164. package/es/Stencils/Stencils.module.css +7 -11
  165. package/es/Stencils/__tests__/Stencils.spec.js +2 -10
  166. package/es/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +11 -27
  167. package/es/Stencils/props/defaultProps.js +1 -2
  168. package/es/Stencils/props/propTypes.js +2 -3
  169. package/es/Switch/Switch.js +5 -5
  170. package/es/Switch/__tests__/Switch.spec.js +1 -1
  171. package/es/Tab/Tab.js +6 -7
  172. package/es/Tab/TabContent.js +4 -4
  173. package/es/Tab/TabContentWrapper.js +3 -3
  174. package/es/Tab/TabWrapper.js +4 -5
  175. package/es/Tab/Tabs.js +23 -23
  176. package/es/Tab/__tests__/Tab.spec.js +1 -1
  177. package/es/Tab/__tests__/TabContent.spec.js +1 -1
  178. package/es/Tab/__tests__/TabContentWrapper.spec.js +1 -1
  179. package/es/Tab/__tests__/TabWrapper.spec.js +1 -1
  180. package/es/Tab/__tests__/Tabs.spec.js +1 -1
  181. package/es/Tab/index.js +5 -5
  182. package/es/Tab/props/propTypes.js +2 -2
  183. package/es/Tag/Tag.js +7 -7
  184. package/es/Tag/__tests__/Tag.spec.js +2 -9
  185. package/es/Tag/props/propTypes.js +1 -1
  186. package/es/TextBox/TextBox.js +3 -3
  187. package/es/TextBox/__tests__/TextBox.spec.js +1 -1
  188. package/es/TextBoxIcon/TextBoxIcon.js +8 -12
  189. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +1 -1
  190. package/es/TextBoxIcon/props/propTypes.js +2 -3
  191. package/es/Textarea/Textarea.js +3 -3
  192. package/es/Textarea/__tests__/Textarea.spec.js +1 -1
  193. package/es/Tooltip/Tooltip.js +6 -6
  194. package/es/Typography/Typography.js +4 -4
  195. package/es/Typography/css/cssJSLogic.js +1 -1
  196. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
  197. package/es/VelocityAnimation/VelocityAnimation/__tests__/VelocityAnimation.spec.js +1 -1
  198. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +6 -43
  199. package/es/VelocityAnimation/VelocityAnimationGroup/__tests__/VelocityAnimationGroup.spec.js +1 -1
  200. package/es/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +1 -4
  201. package/es/VelocityAnimation/index.js +2 -2
  202. package/es/components-v2/Switch/Switch.js +151 -0
  203. package/es/components-v2/Switch/contants/index.js +12 -0
  204. package/es/components-v2/Switch/css/Switch_v2.module.css +140 -0
  205. package/es/components-v2/Switch/css/cssJSLogic.js +48 -0
  206. package/es/components-v2/Switch/props/defaultProps.js +12 -0
  207. package/es/components-v2/Switch/props/propTypes.js +32 -0
  208. package/es/components-v2/Switch/useSwitch.js +29 -0
  209. package/es/css.js +37 -37
  210. package/es/deprecated/PortalLayer/PortalLayer.js +3 -3
  211. package/es/index.js +39 -39
  212. package/es/semantic/Button/Button.js +3 -3
  213. package/es/semantic/Button/__tests__/Button.spec.js +1 -1
  214. package/es/semantic/index.js +1 -1
  215. package/es/utils/Common.js +2 -2
  216. package/es/utils/ContextOptimizer.js +1 -1
  217. package/es/utils/cssUtils.js +1 -1
  218. package/es/utils/datetime/common.js +1 -1
  219. package/es/utils/dropDownUtils.js +1 -1
  220. package/es/utils/index.js +1 -1
  221. package/es/v1/Accordion/Accordion.js +2 -2
  222. package/es/v1/Accordion/AccordionItem.js +4 -4
  223. package/es/v1/Accordion/index.js +2 -2
  224. package/es/v1/Animation/Animation.js +3 -3
  225. package/es/v1/Animation/utils.js +1 -1
  226. package/es/v1/AppContainer/AppContainer.js +8 -8
  227. package/es/v1/Avatar/Avatar.js +5 -5
  228. package/es/v1/AvatarTeam/AvatarTeam.js +4 -4
  229. package/es/v1/Button/Button.js +4 -4
  230. package/es/v1/Button/props/defaultProps.js +1 -1
  231. package/es/v1/Buttongroup/Buttongroup.js +3 -3
  232. package/es/v1/Card/Card.js +5 -5
  233. package/es/v1/Card/index.js +4 -4
  234. package/es/v1/CheckBox/CheckBox.js +6 -6
  235. package/es/v1/DateTime/CalendarView.js +7 -7
  236. package/es/v1/DateTime/DateTime.js +15 -15
  237. package/es/v1/DateTime/DateTimePopupFooter.js +5 -5
  238. package/es/v1/DateTime/DateTimePopupHeader.js +4 -4
  239. package/es/v1/DateTime/DateWidget.js +17 -17
  240. package/es/v1/DateTime/DaysRow.js +3 -3
  241. package/es/v1/DateTime/Time.js +5 -5
  242. package/es/v1/DateTime/YearView.js +6 -6
  243. package/es/v1/DateTime/index.js +1 -1
  244. package/es/v1/DateTime/props/propTypes.js +1 -1
  245. package/es/v1/DropBox/DropBox.js +9 -9
  246. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +6 -6
  247. package/es/v1/DropBox/props/defaultProps.js +1 -1
  248. package/es/v1/DropBox/props/propTypes.js +1 -1
  249. package/es/v1/DropBox/utils/isMobilePopover.js +1 -1
  250. package/es/v1/DropDown/DropDown.js +4 -4
  251. package/es/v1/DropDown/DropDownHeading.js +3 -3
  252. package/es/v1/DropDown/DropDownItem.js +3 -3
  253. package/es/v1/DropDown/DropDownSearch.js +4 -4
  254. package/es/v1/DropDown/DropDownSeparator.js +2 -2
  255. package/es/v1/DropDown/props/propTypes.js +1 -1
  256. package/es/v1/Heading/Heading.js +4 -4
  257. package/es/v1/Label/Label.js +4 -4
  258. package/es/v1/Layout/Box.js +4 -4
  259. package/es/v1/Layout/Container.js +4 -4
  260. package/es/v1/Layout/index.js +2 -2
  261. package/es/v1/ListItem/ListContainer.js +6 -6
  262. package/es/v1/ListItem/ListItem.js +5 -5
  263. package/es/v1/ListItem/ListItemWithAvatar.js +7 -7
  264. package/es/v1/ListItem/ListItemWithCheckBox.js +6 -6
  265. package/es/v1/ListItem/ListItemWithIcon.js +5 -5
  266. package/es/v1/ListItem/ListItemWithRadio.js +6 -6
  267. package/es/v1/ListItem/index.js +6 -6
  268. package/es/v1/Modal/Modal.js +3 -3
  269. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
  270. package/es/v1/MultiSelect/AdvancedMultiSelect.js +17 -17
  271. package/es/v1/MultiSelect/EmptyState.js +3 -3
  272. package/es/v1/MultiSelect/MobileHeader/MobileHeader.js +5 -5
  273. package/es/v1/MultiSelect/MultiSelect.js +19 -19
  274. package/es/v1/MultiSelect/MultiSelectHeader.js +4 -4
  275. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +16 -16
  276. package/es/v1/MultiSelect/SelectedOptions.js +5 -5
  277. package/es/v1/MultiSelect/Suggestions.js +6 -6
  278. package/es/v1/MultiSelect/index.js +4 -4
  279. package/es/v1/MultiSelect/props/defaultProps.js +1 -1
  280. package/es/v1/PopOver/PopOver.js +6 -6
  281. package/es/v1/Popup/Popup.js +3 -3
  282. package/es/v1/Radio/Radio.js +5 -5
  283. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
  284. package/es/v1/ResponsiveDropBox/props/propTypes.js +1 -1
  285. package/es/v1/Ribbon/Ribbon.js +3 -3
  286. package/es/v1/RippleEffect/RippleEffect.js +4 -4
  287. package/es/v1/Select/GroupSelect.js +16 -16
  288. package/es/v1/Select/Select.js +15 -15
  289. package/es/v1/Select/SelectWithAvatar.js +17 -17
  290. package/es/v1/Select/SelectWithIcon.js +13 -13
  291. package/es/v1/Select/index.js +4 -4
  292. package/es/v1/Select/props/defaultProps.js +1 -1
  293. package/es/v1/Stencils/Stencils.js +3 -3
  294. package/es/v1/Switch/Switch.js +5 -5
  295. package/es/v1/Tab/Tab.js +5 -5
  296. package/es/v1/Tab/TabContent.js +4 -4
  297. package/es/v1/Tab/TabContentWrapper.js +3 -3
  298. package/es/v1/Tab/TabWrapper.js +3 -3
  299. package/es/v1/Tab/Tabs.js +13 -13
  300. package/es/v1/Tab/index.js +5 -5
  301. package/es/v1/Tag/Tag.js +7 -7
  302. package/es/v1/TextBox/TextBox.js +3 -3
  303. package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -6
  304. package/es/v1/TextBoxIcon/props/propTypes.js +1 -1
  305. package/es/v1/Textarea/Textarea.js +3 -3
  306. package/es/v1/Tooltip/Tooltip.js +6 -6
  307. package/es/v1/Typography/Typography.js +4 -4
  308. package/es/v1/Typography/css/cssJSLogic.js +1 -1
  309. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
  310. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
  311. package/es/v1/semantic/Button/Button.js +3 -3
  312. package/es/v1/semantic/index.js +1 -1
  313. package/lib/AppContainer/AppContainer.js +6 -7
  314. package/lib/Button/__tests__/Button.spec.js +0 -140
  315. package/lib/DateTime/__tests__/YearView.spec.js +2 -1
  316. package/lib/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +61 -0
  317. package/lib/MultiSelect/MultiSelect.js +3 -16
  318. package/lib/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +0 -8
  319. package/lib/MultiSelect/props/propTypes.js +1 -3
  320. package/lib/Provider/IdProvider.js +0 -1
  321. package/lib/Provider/LibraryContext.js +3 -1
  322. package/lib/Select/Select.js +7 -16
  323. package/lib/Select/__tests__/Select.spec.js +3 -1364
  324. package/lib/Select/__tests__/__snapshots__/Select.spec.js.snap +1 -9621
  325. package/lib/Select/props/propTypes.js +1 -3
  326. package/lib/Stencils/Stencils.js +12 -5
  327. package/lib/Stencils/Stencils.module.css +7 -11
  328. package/lib/Stencils/__tests__/Stencils.spec.js +3 -11
  329. package/lib/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +11 -27
  330. package/lib/Stencils/props/defaultProps.js +1 -2
  331. package/lib/Stencils/props/propTypes.js +2 -3
  332. package/lib/Tab/Tab.js +1 -3
  333. package/lib/Tab/TabWrapper.js +1 -3
  334. package/lib/Tab/Tabs.js +10 -11
  335. package/lib/Tab/props/propTypes.js +2 -2
  336. package/lib/Tag/__tests__/Tag.spec.js +2 -10
  337. package/lib/TextBoxIcon/TextBoxIcon.js +2 -6
  338. package/lib/TextBoxIcon/props/propTypes.js +1 -2
  339. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +26 -80
  340. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +1 -4
  341. package/lib/components-v2/Switch/Switch.js +169 -0
  342. package/lib/components-v2/Switch/contants/index.js +20 -0
  343. package/lib/components-v2/Switch/css/Switch_v2.module.css +140 -0
  344. package/lib/components-v2/Switch/css/cssJSLogic.js +37 -0
  345. package/lib/components-v2/Switch/props/defaultProps.js +19 -0
  346. package/lib/components-v2/Switch/props/propTypes.js +43 -0
  347. package/lib/components-v2/Switch/useSwitch.js +52 -0
  348. package/lib/utils/Common.js +1 -1
  349. package/package.json +4 -3
  350. package/react-cli.config.js +2 -2
  351. package/result.json +1 -0
  352. package/es/Tab/__tests__/TabLayout.spec.js +0 -34
  353. package/es/Tab/__tests__/__snapshots__/TabLayout.spec.js.snap +0 -341
  354. package/es/Tab/utils/tabConfigs.js +0 -18
  355. package/lib/Tab/__tests__/TabLayout.spec.js +0 -41
  356. package/lib/Tab/__tests__/__snapshots__/TabLayout.spec.js.snap +0 -341
  357. package/lib/Tab/utils/tabConfigs.js +0 -27
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
- import { defaultProps } from "./props/defaultProps";
3
- import { propTypes } from "./props/propTypes";
4
- import TextBox from "../TextBox/TextBox";
5
- import { Container, Box } from "../Layout";
2
+ import { defaultProps } from './props/defaultProps';
3
+ import { propTypes } from './props/propTypes';
4
+ import TextBox from '../TextBox/TextBox';
5
+ import { Container, Box } from '../Layout';
6
6
  import { Icon } from '@zohodesk/icons';
7
- import btnStyle from "../semantic/Button/semanticButton.module.css";
8
- import style from "./TextBoxIcon.module.css";
7
+ import btnStyle from '../semantic/Button/semanticButton.module.css';
8
+ import style from './TextBoxIcon.module.css';
9
9
  /* eslint-disable react/forbid-component-props */
10
10
 
11
11
  export default class TextBoxIcon extends React.Component {
@@ -109,8 +109,7 @@ export default class TextBoxIcon extends React.Component {
109
109
  isScrollPrevent,
110
110
  customProps,
111
111
  needInputFocusOnWrapperClick,
112
- renderRightPlaceholderNode,
113
- renderCustomClearComponent
112
+ renderRightPlaceholderNode
114
113
  } = this.props;
115
114
  const {
116
115
  isActive
@@ -168,10 +167,7 @@ export default class TextBoxIcon extends React.Component {
168
167
  className: `${style.iconContainer} ${customTBoxIcon}`
169
168
  }, /*#__PURE__*/React.createElement(Container, {
170
169
  alignBox: "row"
171
- }, value && onClear && value.length > 1 && !isDisabled && !isReadOnly || showClearIcon ? typeof renderCustomClearComponent == 'function' ? renderCustomClearComponent({
172
- clearText,
173
- handleClear: this.handleClear
174
- }) : /*#__PURE__*/React.createElement(Box, {
170
+ }, value && onClear && value.length > 1 && !isDisabled && !isReadOnly || showClearIcon ? /*#__PURE__*/React.createElement(Box, {
175
171
  className: `${btnStyle.buttonReset} ${style.icon}`,
176
172
  onClick: this.handleClear,
177
173
  dataId: `${dataId}_ClearIcon`,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import TextBoxIcon from "../TextBoxIcon";
2
+ import TextBoxIcon from '../TextBoxIcon';
3
3
  import { render } from "@testing-library/react";
4
4
  describe('TextBoxIcon component', () => {
5
5
  const type = ['text', 'password', 'number'];
@@ -1,5 +1,5 @@
1
1
  import PropTypes from 'prop-types';
2
- import { propTypes as TextBox_propTypes } from "../../TextBox/props/propTypes";
2
+ import { propTypes as TextBox_propTypes } from '../../TextBox/props/propTypes';
3
3
  export const propTypes = { ...TextBox_propTypes,
4
4
  borderColor: PropTypes.oneOf(['transparent', 'default', 'error']),
5
5
  children: PropTypes.node,
@@ -50,6 +50,5 @@ export const propTypes = { ...TextBox_propTypes,
50
50
  customProps: PropTypes.shape({
51
51
  TextBoxProps: PropTypes.object
52
52
  }),
53
- renderRightPlaceholderNode: PropTypes.node,
54
- renderCustomClearComponent: PropTypes.func
53
+ renderRightPlaceholderNode: PropTypes.node
55
54
  };
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import { defaultProps } from "./props/defaultProps";
3
- import { propTypes } from "./props/propTypes";
2
+ import { defaultProps } from './props/defaultProps';
3
+ import { propTypes } from './props/propTypes';
4
4
  /* eslint css-modules/no-unused-class: [2, { markAsUsed: ['resizeX', 'resizeY', 'noresize', 'resizeboth', 'xsmall', 'small', 'medium', 'large', 'xlarge', 'default', 'primary'] }] */
5
5
 
6
- import style from "./Textarea.module.css";
6
+ import style from './Textarea.module.css';
7
7
  export default class Textarea extends React.Component {
8
8
  constructor(props) {
9
9
  super(props);
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import Textarea from "../Textarea";
2
+ import Textarea from '../Textarea';
3
3
  import { render } from "@testing-library/react";
4
4
  describe('Textarea component', () => {
5
5
  const size = ['xsmall', 'small', 'xmedium', 'medium', 'large'];
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
- import { defaultProps } from "./props/defaultProps";
3
- import { propTypes } from "./props/propTypes";
4
- import { getLibraryConfig } from "../Provider/Config";
5
- import ResizeObserver from "../Responsive/ResizeObserver";
2
+ import { defaultProps } from './props/defaultProps';
3
+ import { propTypes } from './props/propTypes';
4
+ import { getLibraryConfig } from '../Provider/Config';
5
+ import ResizeObserver from '../Responsive/ResizeObserver';
6
6
  import selectn from 'selectn';
7
- import { whiteSpaceClassMapping } from "../utils/cssUtils";
8
- import style from "./Tooltip.module.css";
7
+ import { whiteSpaceClassMapping } from '../utils/cssUtils';
8
+ import style from './Tooltip.module.css';
9
9
  export default class Tooltip extends React.Component {
10
10
  constructor(props) {
11
11
  super(props);
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import { defaultProps } from "./props/defaultProps";
3
- import { propTypes } from "./props/propTypes";
4
- import cssJSLogic from "./css/cssJSLogic";
2
+ import { defaultProps } from './props/defaultProps';
3
+ import { propTypes } from './props/propTypes';
4
+ import cssJSLogic from './css/cssJSLogic';
5
5
  import { mergeStyle } from '@zohodesk/utils';
6
- import defaultStyle from "./css/Typography.module.css";
6
+ import defaultStyle from './css/Typography.module.css';
7
7
 
8
8
  const Typography = props => {
9
9
  const {
@@ -1,5 +1,5 @@
1
1
  import { compileClassNames } from '@zohodesk/utils';
2
- import { letterspacingMapping, lineheightMapping } from "../utils";
2
+ import { letterspacingMapping, lineheightMapping } from '../utils';
3
3
  export default function cssJSLogic(_ref) {
4
4
  let {
5
5
  props,
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import { defaultProps } from "./props/defaultProps";
3
- import { propTypes } from "./props/propTypes";
2
+ import { defaultProps } from './props/defaultProps';
3
+ import { propTypes } from './props/propTypes';
4
4
  import { VelocityComponent } from 'velocity-react';
5
5
  import 'velocity-animate/velocity.ui';
6
- import LibraryContext from "../../Provider/LibraryContextInit";
6
+ import LibraryContext from '../../Provider/LibraryContextInit';
7
7
  export default class VelocityAnimation extends React.Component {
8
8
  constructor(props) {
9
9
  super(props);
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { render } from '@testing-library/react';
3
- import VelocityAnimation from "../VelocityAnimation";
3
+ import VelocityAnimation from '../VelocityAnimation';
4
4
  describe('VelocityAnimation', () => {
5
5
  test('rendering the defult props', () => {
6
6
  const {
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import { defaultProps } from "./props/defaultProps";
3
- import { propTypes } from "./props/propTypes";
2
+ import { defaultProps } from './props/defaultProps';
3
+ import { propTypes } from './props/propTypes';
4
4
  import { VelocityTransitionGroup } from 'velocity-react';
5
5
  import 'velocity-animate/velocity.ui';
6
- import LibraryContext from "../../Provider/LibraryContextInit";
6
+ import LibraryContext from '../../Provider/LibraryContextInit';
7
7
 
8
8
  function clearProps(props) {
9
9
  let newProps = Object.assign({}, props);
@@ -16,38 +16,6 @@ function clearProps(props) {
16
16
  export default class VelocityAnimationGroup extends React.Component {
17
17
  constructor(props) {
18
18
  super(props);
19
- this.handleEnterComplete = this.handleEnterComplete.bind(this);
20
- this.handleExitComplete = this.handleExitComplete.bind(this);
21
- }
22
-
23
- handleEnterComplete(elements) {
24
- const {
25
- onEnterComplete,
26
- postEnterStyles
27
- } = this.props;
28
-
29
- if (typeof onEnterComplete === 'function') {
30
- onEnterComplete(elements);
31
- }
32
-
33
- if (postEnterStyles && typeof postEnterStyles === 'object') {
34
- elements.forEach(rootElement => {
35
- Object.entries(postEnterStyles).forEach(_ref => {
36
- let [cssProperty, cssValue] = _ref;
37
- rootElement.style[cssProperty] = cssValue;
38
- });
39
- });
40
- }
41
- }
42
-
43
- handleExitComplete(elements) {
44
- const {
45
- onExitComplete
46
- } = this.props;
47
-
48
- if (typeof onExitComplete === 'function') {
49
- onExitComplete(elements);
50
- }
51
19
  }
52
20
 
53
21
  render() {
@@ -67,10 +35,7 @@ export default class VelocityAnimationGroup extends React.Component {
67
35
  enterDelay,
68
36
  isCustomized,
69
37
  name,
70
- needUIPack,
71
- onEnterComplete,
72
- onExitComplete,
73
- postEnterStyles
38
+ needUIPack
74
39
  } = this.props;
75
40
  let {
76
41
  direction,
@@ -111,15 +76,13 @@ export default class VelocityAnimationGroup extends React.Component {
111
76
  animation: isCustomized ? enterAnimationObj[name] : needUIPack ? `transition.${enterName}In` : enterName,
112
77
  duration: !isReducedMotion ? enterDuration : 0,
113
78
  delay: enterDelay ? enterDelay : 0,
114
- display: isFlex ? 'flex' : '',
115
- complete: onEnterComplete || postEnterStyles ? this.handleEnterComplete : undefined
79
+ display: isFlex ? 'flex' : ''
116
80
  };
117
81
  let exitAnimation = {
118
82
  animation: isCustomized ? exitAnimationObj[name] : needUIPack ? `transition.${exitName ? exitName : enterName}Out` : exitName ? exitName : enterName,
119
83
  duration: !isReducedMotion ? exitDuration : 0,
120
84
  delay: exitDelay ? exitDelay : 0,
121
- display: 'none',
122
- complete: onExitComplete ? this.handleExitComplete : undefined
85
+ display: 'none'
123
86
  };
124
87
  return /*#__PURE__*/React.createElement(VelocityTransitionGroup, {
125
88
  enter: enterAnimation,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { render } from '@testing-library/react';
3
- import VelocityAnimationGroup from "../VelocityAnimationGroup";
3
+ import VelocityAnimationGroup from '../VelocityAnimationGroup';
4
4
  describe('VelocityAnimationGroup', () => {
5
5
  test('rendering the defult props', () => {
6
6
  const {
@@ -15,8 +15,5 @@ export const propTypes = {
15
15
  isFlex: PropTypes.bool,
16
16
  name: PropTypes.oneOf(['fade', 'slideDown', 'flyDown', 'slideRight', 'shrink', 'expand', 'slideLeft']),
17
17
  needUIPack: PropTypes.bool,
18
- runOnMount: PropTypes.bool,
19
- onEnterComplete: PropTypes.func,
20
- onExitComplete: PropTypes.func,
21
- postEnterStyles: PropTypes.object
18
+ runOnMount: PropTypes.bool
22
19
  };
@@ -1,2 +1,2 @@
1
- export { default as VelocityAnimation } from "./VelocityAnimation/VelocityAnimation";
2
- export { default as VelocityAnimationGroup } from "./VelocityAnimationGroup/VelocityAnimationGroup";
1
+ export { default as VelocityAnimation } from './VelocityAnimation/VelocityAnimation';
2
+ export { default as VelocityAnimationGroup } from './VelocityAnimationGroup/VelocityAnimationGroup';
@@ -0,0 +1,151 @@
1
+ import React, { useContext } from 'react'; // props
2
+
3
+ import defaultProps from "./props/defaultProps";
4
+ import { propTypes } from "./props/propTypes"; // methods
5
+
6
+ import cssJSLogic from './css/cssJSLogic';
7
+ import { mergeStyle } from '@zohodesk/utils'; // hooks
8
+
9
+ import useSwitch from './useSwitch'; // constants
10
+
11
+ import { OFF_LABEL_RADIUS, THUMB_RADIUS } from './contants'; // components
12
+
13
+ import Flex from '@zohodesk/layout/es/Flex/Flex';
14
+ import Label from '../../Label/Label'; // context
15
+
16
+ import LibraryContext from '../../Provider/LibraryContextInit'; // css
17
+
18
+ import defaultStyle from './css/Switch_v2.module.css';
19
+
20
+ const Switch = props => {
21
+ const {
22
+ name,
23
+ value,
24
+ id,
25
+ size,
26
+ isChecked: isCheckedProp,
27
+ isDefaultChecked,
28
+ isDisabled,
29
+ isReadOnly,
30
+ onChange,
31
+ hasStateIndication,
32
+ label,
33
+ labelPlacement,
34
+ labelSize,
35
+ title,
36
+ customProps,
37
+ tagAttributes,
38
+ a11yAttributes,
39
+ customId,
40
+ testId,
41
+ customStyle
42
+ } = props;
43
+ const {
44
+ shouldIndicateSwitchState
45
+ } = useContext(LibraryContext);
46
+ const {
47
+ container: customProps_container,
48
+ label: customProps_label
49
+ } = customProps;
50
+ const {
51
+ container: tagAttributes_container,
52
+ switch: tagAttributes_switch
53
+ } = tagAttributes;
54
+ const {
55
+ container: a11yAttributes_container,
56
+ switch: a11yAttributes_switch = {},
57
+ label: a11yAttributes_label
58
+ } = a11yAttributes;
59
+ const {
60
+ role = 'switch',
61
+ ariaDisabled = isDisabled,
62
+ restA11yAttributes_switch
63
+ } = a11yAttributes_switch;
64
+ const {
65
+ isChecked,
66
+ handleChange
67
+ } = useSwitch({
68
+ isCheckedProp,
69
+ isDefaultChecked,
70
+ onChange
71
+ });
72
+ const style = mergeStyle(defaultStyle, customStyle);
73
+ const {
74
+ containerClass,
75
+ labelClass,
76
+ trackClass,
77
+ trackWrapperClass,
78
+ thumbClass,
79
+ labelIndicationClass
80
+ } = cssJSLogic({
81
+ props: { ...props,
82
+ isChecked
83
+ },
84
+ style
85
+ });
86
+ return /*#__PURE__*/React.createElement(Flex, {
87
+ $ui_displayMode: "inline",
88
+ $ui_direction: labelPlacement === 'left' ? 'row' : 'rowReverse',
89
+ $ui_alignItems: "center",
90
+ $tagAttributes_container: {
91
+ 'data-selector-id': customId,
92
+ ...tagAttributes_container
93
+ },
94
+ testId: testId,
95
+ customId: customId,
96
+ customStyle: {
97
+ inlineFlex: containerClass
98
+ },
99
+ $a11yAttributes_container: a11yAttributes_container,
100
+ ...customProps_container
101
+ }, label && /*#__PURE__*/React.createElement(Label, {
102
+ text: label,
103
+ palette: isDisabled || isReadOnly ? 'primary' : 'default',
104
+ size: labelSize,
105
+ htmlFor: id,
106
+ customClass: labelClass,
107
+ a11y: a11yAttributes_label,
108
+ ...customProps_label
109
+ }), /*#__PURE__*/React.createElement(Flex, {
110
+ $flag_shrink: false,
111
+ customStyle: {
112
+ noShrink: trackWrapperClass
113
+ }
114
+ }, /*#__PURE__*/React.createElement("input", {
115
+ type: "checkbox",
116
+ id: id,
117
+ name: name,
118
+ value: value,
119
+ checked: isChecked,
120
+ readOnly: isReadOnly,
121
+ onChange: !isDisabled && !isReadOnly ? handleChange : null,
122
+ className: trackClass,
123
+ "data-title": title,
124
+ role: role,
125
+ "aria-disabled": ariaDisabled,
126
+ ...tagAttributes_switch,
127
+ ...restA11yAttributes_switch
128
+ }), /*#__PURE__*/React.createElement("svg", {
129
+ className: thumbClass,
130
+ xmlns: "http://www.w3.org/2000/svg"
131
+ }, /*#__PURE__*/React.createElement("circle", {
132
+ cx: "50%",
133
+ cy: "50%",
134
+ r: THUMB_RADIUS[size]
135
+ })), hasStateIndication || shouldIndicateSwitchState ? /*#__PURE__*/React.createElement("svg", {
136
+ className: labelIndicationClass,
137
+ xmlns: "http://www.w3.org/2000/svg"
138
+ }, isChecked ? /*#__PURE__*/React.createElement("rect", {
139
+ width: "100%",
140
+ height: "100%",
141
+ rx: "50%"
142
+ }) : /*#__PURE__*/React.createElement("circle", {
143
+ cx: "50%",
144
+ cy: "50%",
145
+ r: OFF_LABEL_RADIUS[size]
146
+ })) : null));
147
+ };
148
+
149
+ export default Switch;
150
+ Switch.defaultProps = defaultProps;
151
+ Switch.propTypes = propTypes;
@@ -0,0 +1,12 @@
1
+ export const OFF_LABEL_RADIUS = {
2
+ small: '35.7%',
3
+ medium: '37.5%',
4
+ large: '38.9%',
5
+ xlarge: '40%'
6
+ };
7
+ export const THUMB_RADIUS = {
8
+ small: '40%',
9
+ medium: '42.85%',
10
+ large: '44.45%',
11
+ xlarge: '45.45%'
12
+ };
@@ -0,0 +1,140 @@
1
+ .container {
2
+ --switch-cursor: pointer;
3
+ --switch-offLabel-stroke: var(--zdt_v2_switch_offLabel);
4
+ gap: var(--zd_size6) ;
5
+ }
6
+ .small {
7
+ --switch-track-width: var(--zd_size22);
8
+ --switch-track-height: var(--zd_size12);
9
+ --switch-track-border-radius: 8px;
10
+ --switch-thumb-size: 10px;
11
+ --switch-onLabel-height: var(--zd_size6);
12
+ --switch-onLabel-left: var(--zd_size5);
13
+ --switch-offLabel-size: var(--zd_size7);
14
+ --switch-offLabel-right: var(--zd_size2);
15
+ }
16
+ .medium {
17
+ --switch-track-width: var(--zd_size28);
18
+ --switch-track-height: var(--zd_size16);
19
+ --switch-track-border-radius: 16px;
20
+ --switch-thumb-size: 14px;
21
+ --switch-onLabel-height: var(--zd_size8);
22
+ --switch-onLabel-left: var(--zd_size6);
23
+ --switch-offLabel-size: var(--zd_size8);
24
+ --switch-offLabel-right: var(--zd_size3);
25
+ }
26
+ .large {
27
+ --switch-track-width: var(--zd_size34);
28
+ --switch-track-height: var(--zd_size20);
29
+ --switch-track-border-radius: 10px;
30
+ --switch-thumb-size: 18px;
31
+ --switch-onLabel-height: var(--zd_size10);
32
+ --switch-onLabel-left: var(--zd_size7);
33
+ --switch-offLabel-size: var(--zd_size9);
34
+ --switch-offLabel-right: var(--zd_size4);
35
+ }
36
+ .xlarge {
37
+ --switch-track-width: var(--zd_size40);
38
+ --switch-track-height: var(--zd_size24);
39
+ --switch-track-border-radius: 12px;
40
+ --switch-thumb-size: 22px;
41
+ --switch-onLabel-height: var(--zd_size12);
42
+ --switch-onLabel-left: var(--zd_size8);
43
+ --switch-offLabel-size: var(--zd_size10);
44
+ --switch-offLabel-right: var(--zd_size5);
45
+ }
46
+ .checked {
47
+ --switch-track-background-color: var(--zdt_v2_switch_track_on_bg);
48
+ --switch-thumb-translateX-value: calc(var(--switch-track-width) - var(--switch-thumb-size) - 2px)
49
+ }
50
+ .unChecked {
51
+ --switch-track-background-color: var(--zdt_v2_switch_track_off_bg);
52
+ --switch-thumb-translateX-value: 0;
53
+ }
54
+ .disabled, .readonly {
55
+ --switch-cursor: not-allowed;
56
+ }
57
+ .checked.enabled:hover {
58
+ --switch-track-background-color: var(--zdt_v2_switch_track_on_hover_bg);
59
+ }
60
+ .unChecked.enabled:hover {
61
+ --switch-track-background-color: var(--zdt_v2_switch_track_off_hover_bg);
62
+ }
63
+ .enabled:hover {
64
+ --switch-offLabel-stroke: var(--zdt_v2_switch_offLabel_hover);
65
+ }
66
+ .trackWrapper {
67
+ position: relative;
68
+ }
69
+ .disabled .trackWrapper {
70
+ opacity: 0.4;
71
+ }
72
+ .track {
73
+ appearance: none;
74
+ display: block;
75
+ position: relative;
76
+ height: var(--switch-track-height);
77
+ width: var(--switch-track-width);
78
+ margin: 0 ;
79
+ border-radius: var(--switch-track-border-radius);
80
+ background-color: var(--switch-track-background-color);
81
+ cursor: var(--switch-cursor);
82
+ }
83
+ .commonSvg {
84
+ display: block;
85
+ position: absolute;
86
+ pointer-events: none;
87
+ top: 50% ;
88
+ }
89
+ .thumb {
90
+ transition: transform var(--zd_transition2) cubic-bezier(0.4, 0, 0.2, 1);
91
+ fill: var(--zdt_v2_switch_thumb_bg);
92
+ height: var(--switch-thumb-size);
93
+ width: var(--switch-thumb-size);
94
+ transform: translateX(var(--switch-thumb-translateX-value)) translateY(-50%);
95
+ }
96
+ [dir=ltr] .thumb {
97
+ left: var(--zd_size1) ;
98
+ }
99
+ [dir=rtl] .thumb {
100
+ right: var(--zd_size1) ;
101
+ }
102
+ .label {
103
+ cursor: var(--switch-cursor);
104
+ }
105
+ .onLabel {
106
+ height: var(--switch-onLabel-height);
107
+ fill: var(--zdt_v2_switch_onLabel);
108
+ transform: translateY(-50%);
109
+ }
110
+ [dir=ltr] .onLabel {
111
+ left: var(--switch-onLabel-left);
112
+ }
113
+ [dir=rtl] .onLabel {
114
+ right: var(--switch-onLabel-left);
115
+ }
116
+ .offLabel {
117
+ height: var(--switch-offLabel-size);
118
+ width: var(--switch-offLabel-size);
119
+ fill: transparent;
120
+ stroke: var(--switch-offLabel-stroke);
121
+ transform: translateY(-50%);
122
+ }
123
+ [dir=ltr] .offLabel {
124
+ right: var(--switch-offLabel-right);
125
+ }
126
+ [dir=rtl] .offLabel {
127
+ left: var(--switch-offLabel-right);
128
+ }
129
+ .small .onLabel {
130
+ width: 1.2px;
131
+ }
132
+ .medium .onLabel {
133
+ width: 1.4px;
134
+ }
135
+ .large .onLabel {
136
+ width: 1.6px;
137
+ }
138
+ .xlarge .onLabel {
139
+ width: 1.8px;
140
+ }
@@ -0,0 +1,48 @@
1
+ import compileClassNames from '@zohodesk/utils/es/compileClassNames';
2
+ export default function cssJSLogic(_ref) {
3
+ let {
4
+ props,
5
+ style
6
+ } = _ref;
7
+ const {
8
+ size,
9
+ isChecked,
10
+ isDisabled,
11
+ isReadOnly
12
+ } = props;
13
+ let containerClass = compileClassNames({
14
+ [style.container]: true,
15
+ [style[size]]: true,
16
+ [style.checked]: isChecked,
17
+ [style.unChecked]: !isChecked,
18
+ [style.disabled]: isDisabled,
19
+ [style.enabled]: !isDisabled,
20
+ [style.readonly]: isReadOnly
21
+ });
22
+ let trackClass = compileClassNames({
23
+ [style.track]: true
24
+ });
25
+ let labelClass = compileClassNames({
26
+ [style.label]: true
27
+ });
28
+ let trackWrapperClass = compileClassNames({
29
+ [style.trackWrapper]: true
30
+ });
31
+ let thumbClass = compileClassNames({
32
+ [style.thumb]: true,
33
+ [style.commonSvg]: true
34
+ });
35
+ let labelIndicationClass = compileClassNames({
36
+ [style.onLabel]: isChecked,
37
+ [style.offLabel]: !isChecked,
38
+ [style.commonSvg]: true
39
+ });
40
+ return {
41
+ containerClass,
42
+ trackClass,
43
+ labelClass,
44
+ trackWrapperClass,
45
+ thumbClass,
46
+ labelIndicationClass
47
+ };
48
+ }
@@ -0,0 +1,12 @@
1
+ export default {
2
+ size: 'medium',
3
+ isDisabled: false,
4
+ isReadOnly: false,
5
+ // hasStateIndication: true,
6
+ labelPlacement: 'left',
7
+ labelSize: 'medium',
8
+ customProps: {},
9
+ tagAttributes: {},
10
+ a11yAttributes: {},
11
+ customStyle: {}
12
+ };
@@ -0,0 +1,32 @@
1
+ import PropTypes from 'prop-types';
2
+ export default {
3
+ name: PropTypes.string,
4
+ value: PropTypes.string,
5
+ id: PropTypes.string,
6
+ size: PropTypes.oneOf(['small', 'medium', 'large', 'xlarge']),
7
+ isChecked: PropTypes.bool,
8
+ isDisabled: PropTypes.bool,
9
+ isReadOnly: PropTypes.bool,
10
+ onChange: PropTypes.func,
11
+ hasStateIndication: PropTypes.bool,
12
+ label: PropTypes.string,
13
+ labelPlacement: PropTypes.oneOf(['left', 'right']),
14
+ labelSize: PropTypes.oneOf(['xsmall', 'small', 'medium', 'large']),
15
+ title: PropTypes.string,
16
+ customProps: PropTypes.shape({
17
+ container: PropTypes.object,
18
+ label: PropTypes.object
19
+ }),
20
+ tagAttributes: PropTypes.shape({
21
+ container: PropTypes.object,
22
+ switch: PropTypes.object
23
+ }),
24
+ a11yAttributes: PropTypes.shape({
25
+ container: PropTypes.object,
26
+ switch: PropTypes.object,
27
+ label: PropTypes.object
28
+ }),
29
+ customId: PropTypes.string,
30
+ testId: PropTypes.string,
31
+ customStyle: PropTypes.object
32
+ };