@zohodesk/components 1.0.0-test-252 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/README.md +161 -1
  2. package/assets/Appearance/dark/mode/darkMode.module.css +181 -179
  3. package/assets/Appearance/dark/themes/blue/blueDarkCTAModifyCategory.module.css +452 -0
  4. package/assets/Appearance/dark/themes/blue/blueDarkCTATheme.module.css +31 -31
  5. package/assets/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +3 -0
  6. package/assets/Appearance/dark/themes/green/greenDarkCTAModifyCategory.module.css +452 -0
  7. package/assets/Appearance/dark/themes/green/greenDarkCTATheme.module.css +30 -30
  8. package/assets/Appearance/dark/themes/green/greenDarkComponentTheme.module.css +3 -0
  9. package/assets/Appearance/dark/themes/orange/orangeDarkCTAModifyCategory.module.css +452 -0
  10. package/assets/Appearance/dark/themes/orange/orangeDarkCTATheme.module.css +30 -30
  11. package/assets/Appearance/dark/themes/orange/orangeDarkComponentTheme.module.css +3 -0
  12. package/assets/Appearance/dark/themes/red/redDarkCTAModifyCategory.module.css +452 -0
  13. package/assets/Appearance/dark/themes/red/redDarkCTATheme.module.css +30 -30
  14. package/assets/Appearance/dark/themes/red/redDarkComponentTheme.module.css +3 -0
  15. package/assets/Appearance/dark/themes/yellow/yellowDarkCTAModifyCategory.module.css +452 -0
  16. package/assets/Appearance/dark/themes/yellow/yellowDarkCTATheme.module.css +30 -30
  17. package/assets/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module.css +3 -0
  18. package/assets/Appearance/default/mode/defaultMode.module.css +177 -175
  19. package/assets/Appearance/default/themes/blue/blueDefaultCTAModifyCategory.module.css +452 -0
  20. package/assets/Appearance/default/themes/blue/blueDefaultCTATheme.module.css +31 -31
  21. package/assets/Appearance/default/themes/blue/blueDefaultComponentTheme.module.css +3 -0
  22. package/assets/Appearance/default/themes/green/greenDefaultCTAModifyCategory.module.css +452 -0
  23. package/assets/Appearance/default/themes/green/greenDefaultCTATheme.module.css +30 -30
  24. package/assets/Appearance/default/themes/green/greenDefaultComponentTheme.module.css +3 -0
  25. package/assets/Appearance/default/themes/orange/orangeDefaultCTAModifyCategory.module.css +452 -0
  26. package/assets/Appearance/default/themes/orange/orangeDefaultCTATheme.module.css +30 -30
  27. package/assets/Appearance/default/themes/orange/orangeDefaultComponentTheme.module.css +3 -0
  28. package/assets/Appearance/default/themes/red/redDefaultCTAModifyCategory.module.css +452 -0
  29. package/assets/Appearance/default/themes/red/redDefaultCTATheme.module.css +30 -30
  30. package/assets/Appearance/default/themes/red/redDefaultComponentTheme.module.css +3 -0
  31. package/assets/Appearance/default/themes/yellow/yellowDefaultCTAModifyCategory.module.css +452 -0
  32. package/assets/Appearance/default/themes/yellow/yellowDefaultCTATheme.module.css +30 -30
  33. package/assets/Appearance/default/themes/yellow/yellowDefaultComponentTheme.module.css +3 -0
  34. package/assets/Appearance/pureDark/mode/pureDarkMode.module.css +182 -180
  35. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTAModifyCategory.module.css +452 -0
  36. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTATheme.module.css +31 -31
  37. package/assets/Appearance/pureDark/themes/blue/bluePureDarkComponentTheme.module.css +3 -0
  38. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTAModifyCategory.module.css +452 -0
  39. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTATheme.module.css +30 -30
  40. package/assets/Appearance/pureDark/themes/green/greenPureDarkComponentTheme.module.css +3 -0
  41. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTAModifyCategory.module.css +452 -0
  42. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTATheme.module.css +30 -30
  43. package/assets/Appearance/pureDark/themes/orange/orangePureDarkComponentTheme.module.css +3 -0
  44. package/assets/Appearance/pureDark/themes/red/redPureDarkCTAModifyCategory.module.css +452 -0
  45. package/assets/Appearance/pureDark/themes/red/redPureDarkCTATheme.module.css +30 -30
  46. package/assets/Appearance/pureDark/themes/red/redPureDarkComponentTheme.module.css +3 -0
  47. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTAModifyCategory.module.css +452 -0
  48. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTATheme.module.css +30 -30
  49. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkComponentTheme.module.css +3 -0
  50. package/assets/Contrast/darkContrastLightness.module.css +39 -0
  51. package/assets/Contrast/defaultContrastLightness.module.css +39 -0
  52. package/assets/Contrast/pureDarkContrastLightness.module.css +39 -0
  53. package/css_error.log +1 -0
  54. package/es/Accordion/Accordion.js +19 -9
  55. package/es/Accordion/AccordionItem.js +13 -8
  56. package/es/Accordion/props/defaultProps.js +6 -2
  57. package/es/Accordion/props/propTypes.js +3 -0
  58. package/es/Animation/Animation.js +10 -9
  59. package/es/AppContainer/AppContainer.js +38 -15
  60. package/es/AppContainer/AppContainer.module.css +2 -2
  61. package/es/AppContainer/props/defaultProps.js +3 -1
  62. package/es/AppContainer/props/propTypes.js +2 -0
  63. package/es/Avatar/Avatar.js +48 -25
  64. package/es/Avatar/Avatar.module.css +59 -18
  65. package/es/Avatar/props/defaultProps.js +4 -1
  66. package/es/Avatar/props/propTypes.js +5 -2
  67. package/es/AvatarTeam/AvatarTeam.js +21 -11
  68. package/es/AvatarTeam/AvatarTeam.module.css +49 -21
  69. package/es/AvatarTeam/props/defaultProps.js +5 -1
  70. package/es/AvatarTeam/props/propTypes.js +5 -1
  71. package/es/Button/Button.js +55 -51
  72. package/{lib/Button → es/Button/css}/Button.module.css +62 -58
  73. package/es/Button/css/cssJSLogic.js +53 -0
  74. package/es/Button/index.js +2 -0
  75. package/es/Button/props/defaultProps.js +3 -1
  76. package/es/Button/props/propTypes.js +6 -2
  77. package/es/Buttongroup/Buttongroup.js +24 -16
  78. package/es/Buttongroup/Buttongroup.module.css +45 -28
  79. package/es/Buttongroup/props/defaultProps.js +3 -1
  80. package/es/Buttongroup/props/propTypes.js +3 -1
  81. package/es/Card/Card.js +48 -26
  82. package/es/Card/props/defaultProps.js +12 -2
  83. package/es/Card/props/propTypes.js +2 -2
  84. package/es/CheckBox/CheckBox.js +13 -9
  85. package/es/CheckBox/CheckBox.module.css +16 -16
  86. package/es/CheckBox/props/propTypes.js +1 -0
  87. package/es/DateTime/CalendarView.js +46 -19
  88. package/es/DateTime/DateTime.js +139 -77
  89. package/es/DateTime/DateTime.module.css +51 -48
  90. package/es/DateTime/DateTimePopupFooter.js +4 -2
  91. package/es/DateTime/DateTimePopupHeader.js +30 -11
  92. package/es/DateTime/DateWidget.js +122 -51
  93. package/es/DateTime/DateWidget.module.css +5 -5
  94. package/es/DateTime/DaysRow.js +6 -3
  95. package/es/DateTime/Time.js +10 -2
  96. package/es/DateTime/YearView.js +41 -9
  97. package/es/DateTime/YearView.module.css +33 -15
  98. package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
  99. package/es/DateTime/__tests__/DateTime.spec.js +1 -0
  100. package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
  101. package/es/DateTime/common.js +3 -0
  102. package/es/DateTime/constants.js +1 -0
  103. package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
  104. package/es/DateTime/dateFormatUtils/dateFormats.js +42 -0
  105. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  106. package/es/DateTime/dateFormatUtils/index.js +59 -2
  107. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  108. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  109. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  110. package/es/DateTime/index.js +1 -1
  111. package/es/DateTime/objectUtils.js +14 -20
  112. package/es/DateTime/props/defaultProps.js +2 -1
  113. package/es/DateTime/props/propTypes.js +5 -2
  114. package/es/DateTime/typeChecker.js +3 -0
  115. package/es/DateTime/validator.js +58 -6
  116. package/es/DropBox/DropBox.js +82 -218
  117. package/es/DropBox/DropBoxElement/DropBoxElement.js +132 -0
  118. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  119. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +91 -0
  120. package/es/DropBox/DropBoxElement/props/defaultProps.js +18 -0
  121. package/es/DropBox/DropBoxElement/props/propTypes.js +45 -0
  122. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +54 -0
  123. package/es/DropBox/__tests__/DropBox.spec.js +2 -2
  124. package/es/DropBox/css/DropBox.module.css +59 -0
  125. package/es/DropBox/css/cssJSLogic.js +14 -0
  126. package/es/DropBox/props/defaultProps.js +9 -15
  127. package/es/DropBox/props/propTypes.js +9 -41
  128. package/es/DropDown/DropDown.js +16 -9
  129. package/es/DropDown/DropDown.module.css +2 -2
  130. package/es/DropDown/DropDownHeading.js +18 -11
  131. package/es/DropDown/DropDownHeading.module.css +3 -3
  132. package/es/DropDown/DropDownItem.js +8 -1
  133. package/es/DropDown/DropDownItem.module.css +9 -9
  134. package/es/DropDown/DropDownSearch.js +4 -0
  135. package/es/DropDown/DropDownSeparator.js +1 -0
  136. package/es/DropDown/DropDownSeparator.module.css +2 -2
  137. package/es/DropDown/__tests__/DropDown.spec.js +1 -2
  138. package/es/DropDown/index.js +7 -0
  139. package/es/DropDown/props/defaultProps.js +3 -1
  140. package/es/DropDown/props/propTypes.js +2 -1
  141. package/es/Heading/Heading.js +8 -7
  142. package/es/Heading/Heading.module.css +2 -2
  143. package/es/Label/Label.js +14 -9
  144. package/es/Label/Label.module.css +1 -1
  145. package/es/Label/props/defaultProps.js +2 -1
  146. package/es/Label/props/propTypes.js +1 -0
  147. package/es/Layout/Box.js +19 -4
  148. package/es/Layout/Container.js +18 -5
  149. package/es/Layout/Layout.module.css +15 -15
  150. package/es/Layout/index.js +9 -10
  151. package/es/Layout/props/defaultProps.js +6 -2
  152. package/es/Layout/props/propTypes.js +7 -3
  153. package/es/Layout/utils.js +5 -1
  154. package/es/ListItem/ListContainer.js +21 -9
  155. package/es/ListItem/ListItem.js +30 -14
  156. package/es/ListItem/ListItem.module.css +37 -30
  157. package/es/ListItem/ListItemWithAvatar.js +30 -15
  158. package/es/ListItem/ListItemWithCheckBox.js +22 -10
  159. package/es/ListItem/ListItemWithIcon.js +29 -14
  160. package/es/ListItem/ListItemWithRadio.js +22 -10
  161. package/es/ListItem/index.js +6 -0
  162. package/es/ListItem/props/defaultProps.js +18 -6
  163. package/es/ListItem/props/propTypes.js +13 -1
  164. package/es/Modal/Modal.js +35 -17
  165. package/es/MultiSelect/AdvancedGroupMultiSelect.js +100 -20
  166. package/es/MultiSelect/AdvancedMultiSelect.js +45 -19
  167. package/es/MultiSelect/EmptyState.js +6 -0
  168. package/es/MultiSelect/MultiSelect.js +129 -46
  169. package/es/MultiSelect/MultiSelect.module.css +32 -31
  170. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  171. package/es/MultiSelect/MultiSelectWithAvatar.js +43 -19
  172. package/es/MultiSelect/SelectedOptions.js +6 -3
  173. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  174. package/es/MultiSelect/Suggestions.js +13 -6
  175. package/es/MultiSelect/__tests__/MultiSelect.spec.js +4 -6
  176. package/es/MultiSelect/index.js +4 -0
  177. package/es/MultiSelect/props/defaultProps.js +11 -4
  178. package/es/MultiSelect/props/propTypes.js +17 -5
  179. package/es/PopOver/PopOver.js +25 -9
  180. package/es/PopOver/__tests__/PopOver.spec.js +2 -1
  181. package/es/PopOver/index.js +3 -0
  182. package/es/Popup/Popup.js +80 -31
  183. package/es/Popup/__tests__/Popup.spec.js +17 -5
  184. package/es/Popup/viewPort.js +16 -4
  185. package/es/Provider/AvatarSize.js +1 -0
  186. package/es/Provider/IdProvider.js +16 -10
  187. package/es/Provider/LibraryContext.js +6 -4
  188. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  189. package/es/Provider/ZindexProvider.js +9 -2
  190. package/es/Provider/index.js +4 -0
  191. package/es/Radio/Radio.js +9 -7
  192. package/es/Radio/Radio.module.css +3 -3
  193. package/es/Responsive/CustomResponsive.js +37 -21
  194. package/es/Responsive/RefWrapper.js +6 -7
  195. package/es/Responsive/ResizeComponent.js +35 -25
  196. package/es/Responsive/ResizeObserver.js +26 -6
  197. package/es/Responsive/Responsive.js +34 -20
  198. package/es/Responsive/index.js +9 -8
  199. package/es/Responsive/sizeObservers.js +28 -7
  200. package/es/Responsive/utils/index.js +7 -5
  201. package/es/Responsive/utils/shallowCompare.js +7 -2
  202. package/es/Responsive/windowResizeObserver.js +7 -0
  203. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  204. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  205. package/es/Ribbon/Ribbon.js +21 -15
  206. package/es/Ribbon/Ribbon.module.css +133 -55
  207. package/es/Ribbon/props/defaultProps.js +2 -1
  208. package/es/Ribbon/props/propTypes.js +2 -1
  209. package/es/RippleEffect/RippleEffect.js +6 -7
  210. package/es/Select/GroupSelect.js +71 -23
  211. package/es/Select/Select.js +115 -50
  212. package/es/Select/Select.module.css +23 -23
  213. package/es/Select/SelectWithAvatar.js +31 -12
  214. package/es/Select/SelectWithIcon.js +60 -14
  215. package/es/Select/__tests__/Select.spec.js +6 -8
  216. package/es/Select/index.js +4 -0
  217. package/es/Select/props/defaultProps.js +6 -1
  218. package/es/Select/props/propTypes.js +10 -4
  219. package/es/Stencils/Stencils.js +10 -9
  220. package/es/Stencils/Stencils.module.css +2 -2
  221. package/es/Switch/Switch.js +14 -8
  222. package/es/Switch/Switch.module.css +49 -32
  223. package/es/Switch/props/defaultProps.js +2 -1
  224. package/es/Switch/props/propTypes.js +1 -0
  225. package/es/Tab/Tab.js +14 -11
  226. package/es/Tab/Tab.module.css +14 -15
  227. package/es/Tab/TabContent.js +6 -3
  228. package/es/Tab/TabContentWrapper.js +6 -2
  229. package/es/Tab/TabWrapper.js +9 -4
  230. package/es/Tab/Tabs.js +85 -21
  231. package/es/Tab/Tabs.module.css +36 -40
  232. package/es/Tab/__tests__/Tab.spec.js +4 -12
  233. package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
  234. package/es/Tab/props/defaultProps.js +10 -5
  235. package/es/Tab/props/propTypes.js +10 -5
  236. package/es/Tag/Tag.js +16 -10
  237. package/es/Tag/Tag.module.css +10 -10
  238. package/es/Tag/props/defaultProps.js +2 -1
  239. package/es/Tag/props/propTypes.js +2 -1
  240. package/es/TextBox/TextBox.js +26 -10
  241. package/es/TextBox/TextBox.module.css +6 -5
  242. package/es/TextBox/__tests__/TextBox.spec.js +1 -4
  243. package/es/TextBox/props/defaultProps.js +2 -1
  244. package/es/TextBox/props/propTypes.js +2 -1
  245. package/es/TextBoxIcon/TextBoxIcon.js +39 -13
  246. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -6
  247. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
  248. package/es/TextBoxIcon/props/defaultProps.js +2 -1
  249. package/es/TextBoxIcon/props/propTypes.js +1 -0
  250. package/es/Textarea/Textarea.js +23 -10
  251. package/es/Textarea/Textarea.module.css +6 -6
  252. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  253. package/es/Textarea/props/defaultProps.js +2 -1
  254. package/es/Textarea/props/propTypes.js +1 -0
  255. package/es/Tooltip/Tooltip.js +67 -21
  256. package/es/Tooltip/Tooltip.module.css +40 -8
  257. package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
  258. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +7 -6
  259. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +11 -8
  260. package/es/VelocityAnimation/index.js +2 -0
  261. package/es/common/a11y.module.css +4 -0
  262. package/es/common/animation.module.css +8 -8
  263. package/es/common/avatarsizes.module.css +6 -2
  264. package/es/common/basicReset.module.css +3 -3
  265. package/es/common/boxShadow.module.css +34 -0
  266. package/es/common/common.module.css +24 -24
  267. package/es/common/customscroll.module.css +4 -2
  268. package/es/common/reset.module.css +1 -0
  269. package/es/css.js +2 -1
  270. package/es/deprecated/AdvancedMultiSelect.module.css +18 -18
  271. package/es/deprecated/PortalLayer/PortalLayer.js +30 -24
  272. package/es/index.js +30 -146
  273. package/es/semantic/Button/Button.js +9 -7
  274. package/es/semantic/Button/semanticButton.module.css +1 -1
  275. package/es/semantic/index.js +1 -0
  276. package/es/utils/Common.js +74 -7
  277. package/es/utils/ContextOptimizer.js +4 -5
  278. package/es/utils/__tests__/debounce.spec.js +2 -2
  279. package/es/utils/constructFullName.js +2 -0
  280. package/es/utils/css/compileClassNames.js +28 -0
  281. package/es/utils/css/mergeStyle.js +57 -0
  282. package/es/utils/css/utils.js +24 -0
  283. package/es/utils/datetime/GMTZones.js +48 -0
  284. package/es/utils/datetime/common.js +31 -7
  285. package/es/utils/debounce.js +5 -1
  286. package/es/utils/dropDownUtils.js +71 -13
  287. package/es/utils/getInitial.js +4 -0
  288. package/es/utils/index.js +3 -0
  289. package/es/utils/shallowEqual.js +6 -0
  290. package/install.md +10 -0
  291. package/lib/Accordion/Accordion.js +50 -18
  292. package/lib/Accordion/AccordionItem.js +47 -20
  293. package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
  294. package/lib/Accordion/index.js +3 -0
  295. package/lib/Accordion/props/defaultProps.js +6 -2
  296. package/lib/Accordion/props/propTypes.js +6 -0
  297. package/lib/Animation/Animation.js +44 -21
  298. package/lib/Animation/__tests__/Animation.spec.js +11 -7
  299. package/lib/Animation/props/propTypes.js +3 -0
  300. package/lib/AppContainer/AppContainer.js +75 -27
  301. package/lib/AppContainer/AppContainer.module.css +2 -2
  302. package/lib/AppContainer/props/defaultProps.js +3 -1
  303. package/lib/AppContainer/props/propTypes.js +5 -0
  304. package/lib/Avatar/Avatar.js +97 -44
  305. package/lib/Avatar/Avatar.module.css +59 -18
  306. package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
  307. package/lib/Avatar/props/defaultProps.js +4 -1
  308. package/lib/Avatar/props/propTypes.js +8 -2
  309. package/lib/AvatarTeam/AvatarTeam.js +64 -30
  310. package/lib/AvatarTeam/AvatarTeam.module.css +49 -21
  311. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
  312. package/lib/AvatarTeam/props/defaultProps.js +5 -1
  313. package/lib/AvatarTeam/props/propTypes.js +8 -1
  314. package/lib/Button/Button.js +64 -74
  315. package/{es/Button → lib/Button/css}/Button.module.css +62 -58
  316. package/lib/Button/css/cssJSLogic.js +41 -0
  317. package/lib/Button/index.js +23 -0
  318. package/lib/Button/props/defaultProps.js +5 -1
  319. package/lib/Button/props/propTypes.js +11 -3
  320. package/lib/Buttongroup/Buttongroup.js +49 -19
  321. package/lib/Buttongroup/Buttongroup.module.css +45 -28
  322. package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
  323. package/lib/Buttongroup/props/defaultProps.js +3 -1
  324. package/lib/Buttongroup/props/propTypes.js +6 -1
  325. package/lib/Card/Card.js +119 -55
  326. package/lib/Card/__tests__/Card.spec.js +10 -1
  327. package/lib/Card/index.js +4 -0
  328. package/lib/Card/props/defaultProps.js +16 -4
  329. package/lib/Card/props/propTypes.js +5 -2
  330. package/lib/CheckBox/CheckBox.js +76 -48
  331. package/lib/CheckBox/CheckBox.module.css +16 -16
  332. package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
  333. package/lib/CheckBox/props/propTypes.js +4 -0
  334. package/lib/DateTime/CalendarView.js +95 -38
  335. package/lib/DateTime/DateTime.js +309 -216
  336. package/lib/DateTime/DateTime.module.css +51 -48
  337. package/lib/DateTime/DateTimePopupFooter.js +30 -5
  338. package/lib/DateTime/DateTimePopupHeader.js +69 -23
  339. package/lib/DateTime/DateWidget.js +370 -260
  340. package/lib/DateTime/DateWidget.module.css +5 -5
  341. package/lib/DateTime/DaysRow.js +28 -3
  342. package/lib/DateTime/Time.js +72 -29
  343. package/lib/DateTime/YearView.js +89 -30
  344. package/lib/DateTime/YearView.module.css +33 -15
  345. package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
  346. package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
  347. package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
  348. package/lib/DateTime/common.js +6 -0
  349. package/lib/DateTime/constants.js +1 -0
  350. package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
  351. package/lib/DateTime/dateFormatUtils/dateFormats.js +50 -0
  352. package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
  353. package/lib/DateTime/dateFormatUtils/index.js +99 -13
  354. package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
  355. package/lib/DateTime/dateFormatUtils/timeChange.js +52 -20
  356. package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
  357. package/lib/DateTime/index.js +3 -1
  358. package/lib/DateTime/objectUtils.js +24 -20
  359. package/lib/DateTime/props/defaultProps.js +2 -1
  360. package/lib/DateTime/props/propTypes.js +21 -2
  361. package/lib/DateTime/typeChecker.js +4 -0
  362. package/lib/DateTime/validator.js +69 -6
  363. package/lib/DropBox/DropBox.js +102 -249
  364. package/lib/DropBox/DropBoxElement/DropBoxElement.js +145 -0
  365. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +435 -0
  366. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +81 -0
  367. package/lib/DropBox/DropBoxElement/props/defaultProps.js +25 -0
  368. package/lib/DropBox/DropBoxElement/props/propTypes.js +56 -0
  369. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +60 -0
  370. package/lib/DropBox/__tests__/DropBox.spec.js +8 -4
  371. package/lib/DropBox/css/DropBox.module.css +59 -0
  372. package/lib/DropBox/css/cssJSLogic.js +20 -0
  373. package/lib/DropBox/props/defaultProps.js +20 -17
  374. package/lib/DropBox/props/propTypes.js +22 -43
  375. package/lib/DropDown/DropDown.js +58 -10
  376. package/lib/DropDown/DropDown.module.css +2 -2
  377. package/lib/DropDown/DropDownHeading.js +47 -18
  378. package/lib/DropDown/DropDownHeading.module.css +3 -3
  379. package/lib/DropDown/DropDownItem.js +43 -18
  380. package/lib/DropDown/DropDownItem.module.css +9 -9
  381. package/lib/DropDown/DropDownSearch.js +39 -14
  382. package/lib/DropDown/DropDownSeparator.js +23 -1
  383. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  384. package/lib/DropDown/__tests__/DropDown.spec.js +15 -9
  385. package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
  386. package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
  387. package/lib/DropDown/index.js +65 -0
  388. package/lib/DropDown/props/defaultProps.js +3 -1
  389. package/lib/DropDown/props/propTypes.js +7 -1
  390. package/lib/Heading/Heading.js +42 -16
  391. package/lib/Heading/Heading.module.css +2 -2
  392. package/lib/Heading/props/propTypes.js +3 -0
  393. package/lib/Label/Label.js +47 -19
  394. package/lib/Label/Label.module.css +1 -1
  395. package/lib/Label/__tests__/Label.spec.js +14 -1
  396. package/lib/Label/props/defaultProps.js +2 -1
  397. package/lib/Label/props/propTypes.js +4 -0
  398. package/lib/Layout/Box.js +41 -16
  399. package/lib/Layout/Container.js +39 -15
  400. package/lib/Layout/Layout.module.css +15 -15
  401. package/lib/Layout/__tests__/Box.spec.js +65 -49
  402. package/lib/Layout/__tests__/Container.spec.js +67 -50
  403. package/lib/Layout/index.js +4 -11
  404. package/lib/Layout/props/defaultProps.js +6 -2
  405. package/lib/Layout/props/propTypes.js +10 -3
  406. package/lib/Layout/utils.js +15 -1
  407. package/lib/ListItem/ListContainer.js +61 -34
  408. package/lib/ListItem/ListItem.js +92 -50
  409. package/lib/ListItem/ListItem.module.css +37 -30
  410. package/lib/ListItem/ListItemWithAvatar.js +98 -54
  411. package/lib/ListItem/ListItemWithCheckBox.js +82 -41
  412. package/lib/ListItem/ListItemWithIcon.js +92 -50
  413. package/lib/ListItem/ListItemWithRadio.js +83 -42
  414. package/lib/ListItem/index.js +55 -0
  415. package/lib/ListItem/props/defaultProps.js +18 -6
  416. package/lib/ListItem/props/propTypes.js +18 -3
  417. package/lib/Modal/Modal.js +51 -13
  418. package/lib/Modal/props/propTypes.js +3 -0
  419. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +300 -167
  420. package/lib/MultiSelect/AdvancedMultiSelect.js +212 -130
  421. package/lib/MultiSelect/EmptyState.js +48 -21
  422. package/lib/MultiSelect/MultiSelect.js +341 -205
  423. package/lib/MultiSelect/MultiSelect.module.css +32 -31
  424. package/lib/MultiSelect/MultiSelectHeader.js +29 -5
  425. package/lib/MultiSelect/MultiSelectWithAvatar.js +126 -65
  426. package/lib/MultiSelect/SelectedOptions.js +42 -14
  427. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  428. package/lib/MultiSelect/Suggestions.js +66 -29
  429. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +86 -75
  430. package/lib/MultiSelect/index.js +39 -0
  431. package/lib/MultiSelect/props/defaultProps.js +13 -4
  432. package/lib/MultiSelect/props/propTypes.js +20 -5
  433. package/lib/PopOver/PopOver.js +101 -53
  434. package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
  435. package/lib/PopOver/index.js +31 -0
  436. package/lib/PopOver/props/propTypes.js +3 -0
  437. package/lib/Popup/Popup.js +158 -83
  438. package/lib/Popup/__tests__/Popup.spec.js +42 -5
  439. package/lib/Popup/viewPort.js +28 -14
  440. package/lib/Provider/AvatarSize.js +5 -0
  441. package/lib/Provider/Config.js +2 -0
  442. package/lib/Provider/CssProvider.js +4 -0
  443. package/lib/Provider/IdProvider.js +23 -12
  444. package/lib/Provider/LibraryContext.js +32 -10
  445. package/lib/Provider/LibraryContextInit.js +4 -0
  446. package/lib/Provider/NumberGenerator/NumberGenerator.js +43 -14
  447. package/lib/Provider/ZindexProvider.js +15 -3
  448. package/lib/Provider/index.js +81 -0
  449. package/lib/Radio/Radio.js +65 -40
  450. package/lib/Radio/Radio.module.css +3 -3
  451. package/lib/Radio/__tests__/Radiospec.js +9 -5
  452. package/lib/Radio/props/propTypes.js +3 -0
  453. package/lib/Responsive/CustomResponsive.js +76 -26
  454. package/lib/Responsive/RefWrapper.js +15 -7
  455. package/lib/Responsive/ResizeComponent.js +58 -27
  456. package/lib/Responsive/ResizeObserver.js +23 -6
  457. package/lib/Responsive/Responsive.js +76 -24
  458. package/lib/Responsive/index.js +49 -22
  459. package/lib/Responsive/props/propTypes.js +3 -0
  460. package/lib/Responsive/sizeObservers.js +51 -13
  461. package/lib/Responsive/utils/index.js +11 -3
  462. package/lib/Responsive/utils/shallowCompare.js +11 -2
  463. package/lib/Responsive/windowResizeObserver.js +8 -0
  464. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +44 -14
  465. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  466. package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
  467. package/lib/Ribbon/Ribbon.js +48 -21
  468. package/lib/Ribbon/Ribbon.module.css +133 -55
  469. package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
  470. package/lib/Ribbon/props/defaultProps.js +2 -1
  471. package/lib/Ribbon/props/propTypes.js +5 -1
  472. package/lib/RippleEffect/RippleEffect.js +23 -14
  473. package/lib/RippleEffect/props/propTypes.js +3 -0
  474. package/lib/Select/GroupSelect.js +240 -137
  475. package/lib/Select/Select.js +320 -220
  476. package/lib/Select/Select.module.css +23 -23
  477. package/lib/Select/SelectWithAvatar.js +112 -59
  478. package/lib/Select/SelectWithIcon.js +145 -82
  479. package/lib/Select/__tests__/Select.spec.js +131 -89
  480. package/lib/Select/index.js +39 -0
  481. package/lib/Select/props/defaultProps.js +10 -2
  482. package/lib/Select/props/propTypes.js +13 -4
  483. package/lib/Stencils/Stencils.js +35 -13
  484. package/lib/Stencils/Stencils.module.css +2 -2
  485. package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
  486. package/lib/Stencils/props/propTypes.js +3 -0
  487. package/lib/Switch/Switch.js +64 -35
  488. package/lib/Switch/Switch.module.css +49 -32
  489. package/lib/Switch/props/defaultProps.js +2 -1
  490. package/lib/Switch/props/propTypes.js +4 -0
  491. package/lib/Tab/Tab.js +49 -33
  492. package/lib/Tab/Tab.module.css +14 -15
  493. package/lib/Tab/TabContent.js +15 -6
  494. package/lib/Tab/TabContentWrapper.js +15 -6
  495. package/lib/Tab/TabWrapper.js +37 -17
  496. package/lib/Tab/Tabs.js +193 -94
  497. package/lib/Tab/Tabs.module.css +36 -40
  498. package/lib/Tab/__tests__/Tab.spec.js +74 -70
  499. package/lib/Tab/__tests__/TabContent.spec.js +10 -6
  500. package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
  501. package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
  502. package/lib/Tab/__tests__/Tabs.spec.js +53 -39
  503. package/lib/Tab/index.js +6 -0
  504. package/lib/Tab/props/defaultProps.js +10 -5
  505. package/lib/Tab/props/propTypes.js +13 -5
  506. package/lib/Tag/Tag.js +82 -48
  507. package/lib/Tag/Tag.module.css +10 -10
  508. package/lib/Tag/__tests__/Tag.spec.js +14 -8
  509. package/lib/Tag/props/defaultProps.js +2 -1
  510. package/lib/Tag/props/propTypes.js +5 -1
  511. package/lib/TextBox/TextBox.js +93 -61
  512. package/lib/TextBox/TextBox.module.css +6 -5
  513. package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
  514. package/lib/TextBox/props/defaultProps.js +2 -1
  515. package/lib/TextBox/props/propTypes.js +6 -1
  516. package/lib/TextBoxIcon/TextBoxIcon.js +108 -60
  517. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -6
  518. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
  519. package/lib/TextBoxIcon/props/defaultProps.js +2 -1
  520. package/lib/TextBoxIcon/props/propTypes.js +4 -0
  521. package/lib/Textarea/Textarea.js +63 -32
  522. package/lib/Textarea/Textarea.module.css +6 -6
  523. package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
  524. package/lib/Textarea/props/defaultProps.js +2 -1
  525. package/lib/Textarea/props/propTypes.js +4 -0
  526. package/lib/Tooltip/Tooltip.js +102 -35
  527. package/lib/Tooltip/Tooltip.module.css +40 -8
  528. package/lib/Tooltip/__tests__/Tooltip.spec.js +23 -0
  529. package/lib/Tooltip/props/propTypes.js +3 -0
  530. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +43 -17
  531. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  532. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +55 -24
  533. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  534. package/lib/VelocityAnimation/index.js +23 -0
  535. package/lib/common/a11y.module.css +4 -0
  536. package/lib/common/animation.module.css +8 -8
  537. package/lib/common/avatarsizes.module.css +6 -2
  538. package/lib/common/basicReset.module.css +3 -3
  539. package/lib/common/boxShadow.module.css +34 -0
  540. package/lib/common/common.module.css +24 -24
  541. package/lib/common/customscroll.module.css +4 -2
  542. package/lib/common/reset.module.css +1 -0
  543. package/lib/css.js +42 -1
  544. package/lib/deprecated/AdvancedMultiSelect.module.css +18 -18
  545. package/lib/deprecated/PortalLayer/PortalLayer.js +50 -24
  546. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  547. package/lib/index.js +214 -210
  548. package/lib/semantic/Button/Button.js +47 -24
  549. package/lib/semantic/Button/props/propTypes.js +3 -0
  550. package/lib/semantic/Button/semanticButton.module.css +1 -1
  551. package/lib/semantic/index.js +15 -0
  552. package/lib/utils/Common.js +136 -17
  553. package/lib/utils/ContextOptimizer.js +16 -10
  554. package/lib/utils/__tests__/constructFullName.spec.js +1 -0
  555. package/lib/utils/__tests__/debounce.spec.js +3 -2
  556. package/lib/utils/__tests__/getInitial.spec.js +1 -0
  557. package/lib/utils/constructFullName.js +11 -2
  558. package/lib/utils/css/compileClassNames.js +37 -0
  559. package/lib/utils/css/mergeStyle.js +69 -0
  560. package/lib/utils/css/utils.js +41 -0
  561. package/lib/utils/datetime/GMTZones.js +55 -0
  562. package/lib/utils/datetime/common.js +52 -7
  563. package/lib/utils/debounce.js +6 -1
  564. package/lib/utils/dropDownUtils.js +177 -56
  565. package/lib/utils/dummyFunction.js +2 -0
  566. package/lib/utils/getHTMLFontSize.js +1 -0
  567. package/lib/utils/getInitial.js +6 -0
  568. package/lib/utils/index.js +121 -0
  569. package/lib/utils/scrollTo.js +2 -0
  570. package/lib/utils/shallowEqual.js +8 -0
  571. package/package.json +61 -26
  572. package/postPublish.js +8 -0
  573. package/prePublish.js +70 -0
  574. package/docs/external/active-line.js +0 -72
  575. package/docs/external/autorefresh.js +0 -47
  576. package/docs/external/codemirror.js +0 -9681
  577. package/docs/external/css/hopscotch.css +0 -576
  578. package/docs/external/css/styleGuide.css +0 -1100
  579. package/docs/external/css.js +0 -466
  580. package/docs/external/designTokens.js +0 -1
  581. package/docs/external/foldcode.js +0 -152
  582. package/docs/external/format.js +0 -129
  583. package/docs/external/htmlmixed.js +0 -84
  584. package/docs/external/images/bottom.png +0 -0
  585. package/docs/external/images/bottombg.jpg +0 -0
  586. package/docs/external/images/desk.png +0 -0
  587. package/docs/external/images/desklogo.png +0 -0
  588. package/docs/external/images/menu.png +0 -0
  589. package/docs/external/index.html +0 -127
  590. package/docs/external/javascript.js +0 -422
  591. package/docs/external/jsx.js +0 -148
  592. package/docs/external/matchbrackets.js +0 -145
  593. package/docs/external/xml.js +0 -322
  594. package/docs/package.json +0 -41
  595. package/docs/src/index.js +0 -1311
  596. package/es/Button/__tests__/Button.spec.js +0 -190
  597. package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  598. package/es/DropBox/DropBox.module.css +0 -406
  599. package/lib/Button/__tests__/Button.spec.js +0 -193
  600. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +0 -191
  601. package/lib/DropBox/DropBox.module.css +0 -406
@@ -1,8 +1,10 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
2
3
  import React from 'react';
3
4
  import { defaultProps } from './props/defaultProps';
4
5
  import { propTypes } from './props/propTypes';
5
6
  /* eslint css-modules/no-unused-class: [2, { markAsUsed: ['resizeX', 'resizeY', 'noresize', 'resizeboth', 'xsmall', 'small', 'medium', 'large', 'xlarge', 'default', 'primary'] }] */
7
+
6
8
  import style from './Textarea.module.css';
7
9
  export default class Textarea extends React.Component {
8
10
  constructor(props) {
@@ -11,6 +13,7 @@ export default class Textarea extends React.Component {
11
13
  this.onKeyDown = this.onKeyDown.bind(this);
12
14
  this.onBlur = this.onBlur.bind(this);
13
15
  }
16
+
14
17
  onChange(e) {
15
18
  e && e.preventDefault();
16
19
  let {
@@ -18,6 +21,7 @@ export default class Textarea extends React.Component {
18
21
  } = this.props;
19
22
  onChange && onChange(e.target.value, e);
20
23
  }
24
+
21
25
  onBlur(e) {
22
26
  e && e.preventDefault();
23
27
  let {
@@ -25,12 +29,14 @@ export default class Textarea extends React.Component {
25
29
  } = this.props;
26
30
  onBlur && onBlur(e.target.value, e);
27
31
  }
32
+
28
33
  onKeyDown(e) {
29
34
  let {
30
35
  onKeyDown
31
36
  } = this.props;
32
37
  onKeyDown && onKeyDown(e);
33
38
  }
39
+
34
40
  render() {
35
41
  let {
36
42
  size,
@@ -45,6 +51,7 @@ export default class Textarea extends React.Component {
45
51
  getRef,
46
52
  onFocus,
47
53
  dataId,
54
+ dataSelectorId,
48
55
  isReadOnly,
49
56
  needAppearance,
50
57
  needReadOnlyStyle,
@@ -66,15 +73,19 @@ export default class Textarea extends React.Component {
66
73
  none: 'noresize'
67
74
  };
68
75
  let options = {};
76
+
69
77
  if (isReadOnly) {
70
78
  options.readOnly = 'readOnly';
71
79
  }
80
+
72
81
  if (isDisabled) {
73
82
  options.disabled = 'disabled';
74
83
  }
84
+
75
85
  if (autoFocus) {
76
86
  options.autoFocus = true;
77
87
  }
88
+
78
89
  let classList = needAppearance ? `${style.container} ${style[size]} ${style[variant]} ${needBorder ? style.needBorder : style.noBorder} ${resize ? style[resizes[resize]] : style[resizes.none]} ${animated ? `${style[`${size}animated`]}` : ''} ${isDisabled && !needEffect || isReadOnly && !needEffect ? '' : style.effect}` : `${style.basic}`;
79
90
  return /*#__PURE__*/React.createElement("textarea", _extends({
80
91
  "aria-label": ariaLabel,
@@ -83,6 +94,7 @@ export default class Textarea extends React.Component {
83
94
  placeholder: placeHolder
84
95
  }, options, {
85
96
  "data-id": dataId,
97
+ "data-test-id": dataId,
86
98
  maxLength: maxLength,
87
99
  onChange: this.onChange,
88
100
  onKeyDown: this.onKeyDown,
@@ -90,17 +102,18 @@ export default class Textarea extends React.Component {
90
102
  onBlur: this.onBlur,
91
103
  ref: getRef,
92
104
  value: text,
93
- id: htmlId
105
+ id: htmlId,
106
+ "data-selector-id": dataSelectorId
94
107
  }));
95
108
  }
109
+
96
110
  }
97
111
  Textarea.defaultProps = defaultProps;
98
- Textarea.propTypes = propTypes;
99
- if (false) {
100
- Textarea.docs = {
101
- componentGroup: 'Form Elements',
102
- folderName: 'Style Guide',
103
- external: true,
104
- description: ' '
105
- };
106
- }
112
+ Textarea.propTypes = propTypes; // if (__DOCS__) {
113
+ // Textarea.docs = {
114
+ // componentGroup: 'Form Elements',
115
+ // folderName: 'Style Guide',
116
+ // external: true,
117
+ // description: ' '
118
+ // };
119
+ // }
@@ -5,7 +5,7 @@
5
5
  --textarea_cursor: auto;
6
6
  --textarea_text_color: var(--zdt_textarea_default_text);
7
7
  --textarea_font_size: var(--zd_font_size14);
8
- --textarea_line_height: var(--zd_size22);
8
+ --textarea_line_height: 22px;
9
9
  --textarea_padding: var(--zd_size2) 0;
10
10
  --textarea_height: var(--zd_size30);
11
11
 
@@ -62,9 +62,9 @@
62
62
  height var(--zd_transition2) linear 0s;
63
63
  -moz-transition: border var(--zd_transition2) linear 0s,
64
64
  height var(--zd_transition2) linear 0s;
65
- width: 100%;
66
- max-width: 100%;
67
- min-width: 100px;
65
+ width: 100% ;
66
+ max-width: 100% ;
67
+ min-width: var(--zd_size100) ;
68
68
  font-size: var(--textarea_font_size);
69
69
  line-height: var(--textarea_line_height);
70
70
  height: var(--textarea_height);
@@ -98,13 +98,13 @@
98
98
  --textarea_font_size: var(--zd_font_size14);
99
99
  --textarea_padding: var(--zd_size4) 0 var(--zd_size2);
100
100
  --textarea_height: var(--zd_size28);
101
- --textarea_line_height: var(--zd_size19);
101
+ --textarea_line_height: 19px;
102
102
  }
103
103
  .xmedium {
104
104
  --textarea_font_size: var(--zd_font_size13);
105
105
  --textarea_padding: var(--zd_size4) 0 var(--zd_size2);
106
106
  --textarea_height: var(--zd_size25);
107
- --textarea_line_height: var(--zd_size17);
107
+ --textarea_line_height: 17px;
108
108
  }
109
109
  .small {
110
110
  --textarea_height: var(--zd_size30);
@@ -135,8 +135,7 @@ describe('Textarea component', () => {
135
135
  needBorder: false
136
136
  }));
137
137
  expect(TestUtils.findRenderedComponentsWithTestid(renderedDOM, 'TextareaComp').className).toMatch(/noBorder/);
138
- });
139
- // it('Check disabled works', () => {
138
+ }); // it('Check disabled works', () => {
140
139
  // let renderedDOM = TestUtils.renderIntoDocument(
141
140
  // <Textarea maxLength='100' placeHolder='Text Area' resize='vertical' size='large' variant='primary' text='Text Area Working' disabled needBorder={false} />
142
141
  // );
@@ -152,6 +151,7 @@ describe('Textarea component', () => {
152
151
  // pass
153
152
  // ).toBe(true);
154
153
  // });
154
+
155
155
  it('Check check onchange works', () => {
156
156
  let mockfn = jest.fn();
157
157
  let renderedDOM = TestUtils.renderIntoDocument( /*#__PURE__*/React.createElement(Textarea, {
@@ -12,5 +12,6 @@ export const defaultProps = {
12
12
  needEffect: true,
13
13
  autoFocus: false,
14
14
  customClass: '',
15
- a11y: {}
15
+ a11y: {},
16
+ dataSelectorId: 'textarea'
16
17
  };
@@ -5,6 +5,7 @@ export const propTypes = {
5
5
  borderColor: PropTypes.oneOf(['transparent', 'default']),
6
6
  className: PropTypes.string,
7
7
  dataId: PropTypes.string,
8
+ dataSelectorId: PropTypes.string,
8
9
  getRef: PropTypes.func,
9
10
  htmlId: PropTypes.string,
10
11
  isDisabled: PropTypes.bool,
@@ -27,39 +27,49 @@ export default class Tooltip extends React.Component {
27
27
  this.tooltipContainerClientRect = {};
28
28
  this.tooltipContainerEl = {};
29
29
  }
30
+
30
31
  onResize(sizeOfObservedEl, observedEl) {
31
32
  this.isResized = true;
32
33
  }
34
+
33
35
  observeElement() {
34
36
  this.tooltipContainerEl = this.getToolTipContainerEl();
35
37
  this.observer.observe(this.tooltipContainerEl);
36
38
  }
39
+
37
40
  unObserveElement() {
38
41
  this.observer.disconnect();
39
42
  }
43
+
40
44
  getClientRectOfContEl(el) {
41
45
  if (this.isResized) {
42
46
  return this.setClientRectOfContEl(el);
43
47
  }
48
+
44
49
  return this.tooltipContainerClientRect;
45
50
  }
51
+
46
52
  setClientRectOfContEl(containerEl) {
47
53
  this.isResized = false;
48
54
  this.tooltipContainerClientRect = containerEl.getBoundingClientRect();
49
55
  return this.tooltipContainerClientRect;
50
56
  }
57
+
51
58
  getToolTipContainerEl() {
52
59
  const getTooltipContainer = getLibraryConfig('getTooltipContainer');
53
60
  const tooltipContainer = typeof getTooltipContainer === 'function' ? getTooltipContainer() : null;
54
61
  return tooltipContainer ? tooltipContainer : document.body;
55
62
  }
63
+
56
64
  getToolTipDOM(el) {
57
65
  this.toolTip = el;
58
66
  }
67
+
59
68
  reset() {
60
69
  let {
61
70
  title
62
71
  } = this.state;
72
+
63
73
  if (title !== null) {
64
74
  this.setState({
65
75
  title: null,
@@ -68,8 +78,9 @@ export default class Tooltip extends React.Component {
68
78
  });
69
79
  }
70
80
  }
71
-
72
81
  /* left and right screen edge check for top and bottom tooltip position */
82
+
83
+
73
84
  leftRightScreenEdge(tLeft, toolTipArrowLeft, thisLeft, thisWidth, tooltipoffsetWidth, bodyWidth, rightEdge, bodyLeft) {
74
85
  if (tLeft - bodyLeft <= 1) {
75
86
  // top & bottom position left side screen edge case
@@ -85,6 +96,7 @@ export default class Tooltip extends React.Component {
85
96
  tLeft = parseInt(thisLeft - (tooltipoffsetWidth - thisWidth) / 2);
86
97
  toolTipArrowLeft = parseInt(tooltipoffsetWidth / 2 - 4);
87
98
  }
99
+
88
100
  return {
89
101
  tLeft,
90
102
  toolTipArrowLeft,
@@ -95,8 +107,9 @@ export default class Tooltip extends React.Component {
95
107
  rightEdge
96
108
  };
97
109
  }
98
-
99
110
  /* top and bottom screen edge check for left and right tooltip position */
111
+
112
+
100
113
  topBottomScreenEdge(tTop, toolTipArrowTop, thisTop, thisHeight, tooltipoffsetHeight, bodyHeight, bottomEdge) {
101
114
  if (tTop <= 1) {
102
115
  tTop = 2;
@@ -106,6 +119,7 @@ export default class Tooltip extends React.Component {
106
119
  tTop -= bottomEdge;
107
120
  toolTipArrowTop += bottomEdge;
108
121
  }
122
+
109
123
  return {
110
124
  tTop,
111
125
  toolTipArrowTop,
@@ -116,16 +130,19 @@ export default class Tooltip extends React.Component {
116
130
  bottomEdge
117
131
  };
118
132
  }
133
+
119
134
  handleOver(e, targetElement) {
120
135
  let containerElement = this.tooltipContainerEl;
121
136
  let element = e.target;
122
137
  let titleDiv = element.hasAttribute('data-title') || element.hasAttribute('title') ? element : element.closest('[data-title]') || element.closest('[title]');
138
+
123
139
  if (titleDiv) {
124
140
  let title = titleDiv.getAttribute('data-title') || titleDiv.getAttribute('title');
125
-
126
141
  /* if data-title-position is left or right change right and left in rtl case */
142
+
127
143
  let isPosition = titleDiv.getAttribute('data-title-position');
128
144
  let elem = this.getDirection;
145
+
129
146
  if (elem.getAttribute('dir') == 'rtl') {
130
147
  if (isPosition == 'left') {
131
148
  isPosition = 'right';
@@ -133,36 +150,44 @@ export default class Tooltip extends React.Component {
133
150
  isPosition = 'left';
134
151
  }
135
152
  }
153
+
136
154
  if (title !== '' && title) {
137
155
  titleDiv.setAttribute('data-title', title);
138
156
  titleDiv.removeAttribute('title');
157
+
139
158
  if (element.nodeName !== 'I' && element.innerText && element.innerText.trim() !== '') {
140
159
  let isContentDotted = '';
160
+
141
161
  if (element.scrollWidth !== 0) {
142
162
  isContentDotted = element.offsetWidth < element.scrollWidth;
163
+
143
164
  if (!isContentDotted) {
144
165
  isContentDotted = element.offsetHeight < element.scrollHeight;
145
- }
146
- // if (!isContentDotted) {Need to check the code Sivanesh
166
+ } // if (!isContentDotted) {Need to check the code Sivanesh
147
167
  // isContentDotted = element.offsetHeight < element.scrollHeight;
148
168
  // }
169
+
149
170
  } else {
150
171
  const offWidth = selectn('parentElement.offsetWidth', element) || 0;
151
172
  const scrollWidth = selectn('parentElement.scrollWidth', element) || 0;
152
173
  isContentDotted = offWidth < scrollWidth;
153
174
  }
175
+
154
176
  let originText = element.innerText.replace(/\s/g, '').toLowerCase();
155
177
  let tooltipText = title.replace(/\s/g, '').toLowerCase();
156
178
  let isDefaultTooltip = element.hasAttribute('data-istitle') || element.hasAttribute('istitle') ? element.getAttribute('data-istitle') || element.getAttribute('istitle') : 'false';
157
179
  isDefaultTooltip = isDefaultTooltip === 'true';
158
180
  let isSameText = originText.indexOf(tooltipText) !== -1 ? true : false;
181
+
159
182
  if (!isContentDotted && isSameText && !isDefaultTooltip) {
160
183
  return false;
161
184
  }
185
+
162
186
  if (isContentDotted && titleDiv.getAttribute('data-dottedTitle')) {
163
187
  title = titleDiv.getAttribute('data-dottedTitle');
164
188
  }
165
189
  }
190
+
166
191
  let isHtml = titleDiv.getAttribute('data-ishtml');
167
192
  let dataTooltipnoArrow = titleDiv.getAttribute('data-tooltip-noarrow') === 'true' ? true : false;
168
193
  let dataTooltipWrap = titleDiv.getAttribute('data-title-wrap') === 'true' ? true : false;
@@ -175,6 +200,7 @@ export default class Tooltip extends React.Component {
175
200
  dataTooltipWrap
176
201
  }, () => {
177
202
  let tooltip = this.toolTip;
203
+
178
204
  if (tooltip) {
179
205
  /* element top, left, height, width */
180
206
  let thisTop = clientRect.top;
@@ -182,9 +208,11 @@ export default class Tooltip extends React.Component {
182
208
  let thisHeight = clientRect.height;
183
209
  let thisWidth = clientRect.width;
184
210
  /* box layout left spacing */
185
- let bodyLeft = boxLayout.left;
186
- // let checkTop = thisTop + thisHeight;
211
+
212
+ let bodyLeft = boxLayout.left; // let checkTop = thisTop + thisHeight;
213
+
187
214
  /* element left plus element width */
215
+
188
216
  let checkLeft = thisLeft + thisWidth;
189
217
  let tTop;
190
218
  let tLeft;
@@ -194,6 +222,7 @@ export default class Tooltip extends React.Component {
194
222
  let bottomEdge;
195
223
  let tooltipLeft;
196
224
  /* offset width, height of body */
225
+
197
226
  let bodyWidth = containerElement.offsetWidth;
198
227
  let bodyHeight = containerElement.offsetHeight;
199
228
  let isArrowHorizontal = false;
@@ -201,12 +230,16 @@ export default class Tooltip extends React.Component {
201
230
  let isArrowRight = false;
202
231
  let tWidth = '';
203
232
  /* overall body height minus element top + element height */
233
+
204
234
  let thisBottom = bodyHeight - (thisTop + thisHeight);
205
235
  /* overall body width minus element left + element width */
236
+
206
237
  let thisRight = bodyWidth - (thisLeft + thisWidth);
207
238
  /* tooltip width and height */
239
+
208
240
  let tooltipoffsetWidth = tooltip.offsetWidth;
209
241
  let tooltipoffsetHeight = tooltip.offsetHeight;
242
+
210
243
  if (isPosition) {
211
244
  if (isPosition == 'top') {
212
245
  /* if top does not have enough space show tooltip in bottom area */
@@ -234,8 +267,9 @@ export default class Tooltip extends React.Component {
234
267
  toolTipArrowLeft = parseInt(tooltipoffsetWidth / 2 - 6);
235
268
  isArrowDown = true;
236
269
  }
237
-
238
270
  /* top tooltip left and right corner edge case */
271
+
272
+
239
273
  let values = this.leftRightScreenEdge(tLeft, toolTipArrowLeft, thisLeft, thisWidth, tooltipoffsetWidth, bodyWidth, rightEdge, bodyLeft);
240
274
  tLeft = values.tLeft, toolTipArrowLeft = values.toolTipArrowLeft, thisLeft = values.thisLeft, thisWidth = values.thisWidth, tooltipoffsetWidth = values.tooltipoffsetWidth, bodyWidth = values.bodyWidth, rightEdge = values.rightEdge;
241
275
  } else if (isPosition == 'bottom') {
@@ -264,12 +298,14 @@ export default class Tooltip extends React.Component {
264
298
  toolTipArrowLeft = parseInt(tooltipoffsetWidth / 2 - 6);
265
299
  isArrowDown = false;
266
300
  }
267
-
268
301
  /* bottom tooltip left and right corner edge case */
302
+
303
+
269
304
  let values = this.leftRightScreenEdge(tLeft, toolTipArrowLeft, thisLeft, thisWidth, tooltipoffsetWidth, bodyWidth, rightEdge, bodyLeft);
270
305
  tLeft = values.tLeft, toolTipArrowLeft = values.toolTipArrowLeft, thisLeft = values.thisLeft, thisWidth = values.thisWidth, tooltipoffsetWidth = values.tooltipoffsetWidth, bodyWidth = values.bodyWidth, rightEdge = values.rightEdge;
271
306
  } else if (isPosition == 'left') {
272
307
  isArrowHorizontal = true;
308
+
273
309
  if (thisLeft - bodyLeft <= tooltipoffsetWidth) {
274
310
  if (thisLeft - bodyLeft <= thisRight) {
275
311
  /* if left does not have enough space show tooltip in right area */
@@ -298,12 +334,14 @@ export default class Tooltip extends React.Component {
298
334
  toolTipArrowLeft = parseInt(tooltipoffsetWidth - 2);
299
335
  isArrowRight = true;
300
336
  }
301
-
302
337
  /* left tooltip top and bottom corner edge case */
338
+
339
+
303
340
  let values = this.topBottomScreenEdge(tTop, toolTipArrowTop, thisTop, thisHeight, tooltipoffsetHeight, bodyHeight, bottomEdge);
304
341
  tTop = values.tTop, toolTipArrowTop = values.toolTipArrowTop, thisTop = values.thisTop, thisHeight = values.thisHeight, tooltipoffsetHeight = values.tooltipoffsetHeight, bodyHeight = values.bodyHeight, bottomEdge = values.bottomEdge;
305
342
  } else if (isPosition == 'right') {
306
343
  isArrowHorizontal = true;
344
+
307
345
  if (thisRight + bodyLeft <= tooltipoffsetWidth) {
308
346
  if (thisLeft + bodyLeft <= thisRight) {
309
347
  /* if right space is larger than left space show tooltip in right (default) area */
@@ -339,11 +377,13 @@ export default class Tooltip extends React.Component {
339
377
  toolTipArrowLeft = -1;
340
378
  isArrowRight = false;
341
379
  }
342
-
343
380
  /* right tooltip left and right corner edge case */
381
+
382
+
344
383
  let values = this.topBottomScreenEdge(tTop, toolTipArrowTop, thisTop, thisHeight, tooltipoffsetHeight, bodyHeight, bottomEdge);
345
384
  tTop = values.tTop, toolTipArrowTop = values.toolTipArrowTop, thisTop = values.thisTop, thisHeight = values.thisHeight, tooltipoffsetHeight = values.tooltipoffsetHeight, bodyHeight = values.bodyHeight, bottomEdge = values.bottomEdge;
346
385
  }
386
+
347
387
  this.setState({
348
388
  top: tTop,
349
389
  left: tLeft,
@@ -361,6 +401,7 @@ export default class Tooltip extends React.Component {
361
401
  tTop = parseInt(thisTop + thisHeight + 10);
362
402
  tLeft = parseInt(thisLeft - (tooltipoffsetWidth / 2 - thisWidth / 2) + 2);
363
403
  tooltipLeft = parseInt(tooltipoffsetWidth / 2 - 6);
404
+
364
405
  if (tLeft - bodyLeft <= 1) {
365
406
  // default left side screen edge case
366
407
  tooltipLeft = parseInt(thisLeft - bodyLeft + thisWidth / 2 - 6);
@@ -374,7 +415,9 @@ export default class Tooltip extends React.Component {
374
415
  tLeft = parseInt(thisLeft - (tooltipoffsetWidth - thisWidth) / 2);
375
416
  tooltipLeft = parseInt(tooltipoffsetWidth / 2 - 4);
376
417
  }
418
+
377
419
  isArrowDown = false;
420
+
378
421
  if (tTop + tooltipoffsetHeight > bodyHeight) {
379
422
  /* if bottom does not have enough space show tooltip in top area */
380
423
  if (thisTop > thisBottom) {
@@ -382,6 +425,7 @@ export default class Tooltip extends React.Component {
382
425
  tTop -= tooltipoffsetHeight + thisHeight + 20;
383
426
  }
384
427
  }
428
+
385
429
  if (isArrowDown) {
386
430
  let arrowTop = tooltipoffsetHeight - 4;
387
431
  this.setState({
@@ -413,6 +457,7 @@ export default class Tooltip extends React.Component {
413
457
  this.reset();
414
458
  }
415
459
  }
460
+
416
461
  render() {
417
462
  let {
418
463
  title,
@@ -443,7 +488,8 @@ export default class Tooltip extends React.Component {
443
488
  width
444
489
  },
445
490
  ref: this.getToolTipDOM,
446
- "data-id": dataId
491
+ "data-id": dataId,
492
+ "data-test-id": dataId
447
493
  }, !dataTooltipnoArrow ? /*#__PURE__*/React.createElement("span", {
448
494
  className: `${style.tooltiparrow} ${arrowStyle}`,
449
495
  style: {
@@ -459,14 +505,14 @@ export default class Tooltip extends React.Component {
459
505
  className: tooltipCss
460
506
  }, title)) : null;
461
507
  }
508
+
462
509
  }
463
510
  Tooltip.propTypes = propTypes;
464
- Tooltip.defaultProps = defaultProps;
465
- if (false) {
466
- Tooltip.docs = {
467
- componentGroup: 'Atom',
468
- folderName: 'Style Guide',
469
- description: ' ',
470
- external: true
471
- };
472
- }
511
+ Tooltip.defaultProps = defaultProps; // if (__DOCS__) {
512
+ // Tooltip.docs = {
513
+ // componentGroup: 'Atom',
514
+ // folderName: 'Style Guide',
515
+ // description: ' ',
516
+ // external: true
517
+ // };
518
+ // }
@@ -1,6 +1,7 @@
1
1
  .tooltiptext {
2
2
  position: fixed;
3
- z-index: 9999999; /*Hook for editor alert*/
3
+ z-index: 9999999;
4
+ /*Hook for editor alert*/
4
5
  pointer-events: none;
5
6
  box-shadow: 0 4px 12px 0 var(--zdt_tooltip_default_box_shadow);
6
7
  border-radius: var(--zd_size4);
@@ -9,69 +10,93 @@
9
10
  }[dir=rtl] .tooltiptext {
10
11
  animation: tooltip-grow var(--zd_transition7) cubic-bezier(0.175, 0.885, 0.32, 1.15);
11
12
  }
13
+
12
14
  .tooltipcont {
13
15
  color: var(--zdt_tooltip_default_text);
14
- font-size: var(--zd_font_size13);
16
+ font-size: var(--zd_font_size13) ;
15
17
  font-family: var(--zd_semibold);
16
18
  word-break: break-word;
17
- max-width: 420px;
19
+ max-width: var(--zd_size420) ;
18
20
  line-height: var(--zd_size20);
19
- min-height: var(--zd_size24);
21
+ min-height: var(--zd_size24) ;
20
22
  overflow: hidden;
21
23
  background-color: var(--zdt_tooltip_default_bg);
22
- padding: 0 var(--zd_size10);
24
+ padding: 0 var(--zd_size10) ;
23
25
  border-style: solid;
24
26
  border-color: transparent;
25
27
  border-radius: var(--zd_size4);
26
28
  }
29
+
27
30
  .tooltipWrapCont {
28
31
  white-space: pre-wrap;
29
32
  }
33
+
30
34
  .tooltipNormalCont {
31
35
  white-space: normal;
32
36
  }
33
37
  .tooltiparrow {
34
38
  content: '';
35
39
  position: absolute;
36
- top: 0;
40
+ top: 0 ;
37
41
  border-top-left-radius: 3px;
38
42
  }
43
+
39
44
  .arrowUp,
40
45
  .arrowDown {
46
+ /* Variable:Ignore */
41
47
  width: 11px;
48
+ /* Variable:Ignore */
42
49
  height: 11px;
43
50
  border-top: solid 6px var(--zdt_tooltip_default_bg);
44
51
  border-left: solid 6px var(--zdt_tooltip_default_bg);
45
52
  border-right: solid 6px transparent;
46
53
  border-bottom: solid 6px transparent;
54
+ box-shadow: 0 4px 12px 0 var(--zdt_tooltip_default_box_shadow);
55
+ z-index: -1;
47
56
  }
57
+
48
58
  .arrowDown {
49
- margin-top: -4px !important; /* put important because of '.wms-mainui *' have margin: 0; */
59
+ /* Variable:Ignore */
60
+ margin-top: -4px !important;
61
+ /* put important because of '.wms-mainui *' have margin: 0; */
50
62
  }
63
+
51
64
  .arrowLeft,
52
65
  .arrowRight {
66
+ /* Variable:Ignore */
53
67
  width: 11px;
68
+ /* Variable:Ignore */
54
69
  height: 11px;
55
70
  border-top: solid 6px var(--zdt_tooltip_default_bg);
56
71
  border-left: solid 6px var(--zdt_tooltip_default_bg);
57
72
  border-right: solid 6px transparent;
58
73
  border-bottom: solid 6px transparent;
74
+ box-shadow: 0 4px 12px 0 var(--zdt_tooltip_default_box_shadow);
75
+ z-index: -1;
59
76
  }
77
+
60
78
  .arrowRight {
79
+ /* Variable:Ignore */
61
80
  margin-left: -2px;
62
81
  }
82
+
63
83
  .arrowLeft {
84
+ /* Variable:Ignore */
64
85
  margin-left: 1px;
65
86
  }
87
+
66
88
  .arrowUp {
67
89
  transform: rotate(45deg);
68
90
  }
91
+
69
92
  .arrowDown {
70
93
  transform: rotate(225deg);
71
94
  }
95
+
72
96
  .arrowLeft {
73
97
  transform: rotate(315deg) translateY(-50%);
74
98
  }
99
+
75
100
  .arrowRight {
76
101
  transform: rotate(135deg) translateY(50%);
77
102
  }
@@ -79,31 +104,38 @@
79
104
  from {
80
105
  opacity: 0;
81
106
  }
107
+
82
108
  to {
83
109
  opacity: 1;
84
110
  }
85
111
  }
112
+
86
113
  @-webkit-keyframes tooltip-grow {
87
114
  from {
88
115
  opacity: 0;
89
116
  }
117
+
90
118
  to {
91
119
  opacity: 1;
92
120
  }
93
121
  }
122
+
94
123
  @-moz-keyframes tooltip-grow {
95
124
  from {
96
125
  opacity: 0;
97
126
  }
127
+
98
128
  to {
99
129
  opacity: 1;
100
130
  }
101
131
  }
132
+
102
133
  @-ms-keyframes tooltip-grow {
103
134
  from {
104
135
  opacity: 0;
105
136
  }
137
+
106
138
  to {
107
139
  opacity: 1;
108
140
  }
109
- }
141
+ }
@@ -1,15 +1,18 @@
1
1
  import React from 'react';
2
2
  import renderer from 'react-test-renderer';
3
3
  import Tooltip from '../Tooltip';
4
+
4
5
  class SampleComponent extends React.Component {
5
6
  constructor(props) {
6
7
  super(props);
7
8
  this.toolTipRef = /*#__PURE__*/React.createRef();
8
9
  this.setToolTipRef = this.setToolTipRef.bind(this);
9
10
  }
11
+
10
12
  setToolTipRef(ref) {
11
13
  this.toolTipRef = ref;
12
14
  }
15
+
13
16
  render() {
14
17
  return /*#__PURE__*/React.createElement("div", {
15
18
  onMouseOver: e => this.toolTipRef && this.toolTipRef.handleOver(e),
@@ -21,7 +24,9 @@ class SampleComponent extends React.Component {
21
24
  ref: this.setToolTipRef
22
25
  }));
23
26
  }
27
+
24
28
  }
29
+
25
30
  describe('Tooltip component conditions', () => {
26
31
  it('Is HandleOver Executed', () => {
27
32
  let sampleComponent = TestUtils.renderIntoDocument( /*#__PURE__*/React.createElement(SampleComponent, null));