@zohodesk/components 1.0.0-temp-206.4 → 1.0.0-temp-207

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 (373) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +7 -8
  3. package/es/Accordion/Accordion.js +2 -2
  4. package/es/Accordion/AccordionItem.js +4 -4
  5. package/es/Accordion/__tests__/Accordion.spec.js +1 -1
  6. package/es/Accordion/__tests__/AccordionItem.spec.js +1 -1
  7. package/es/Accordion/index.js +2 -2
  8. package/es/Animation/Animation.js +3 -3
  9. package/es/Animation/__tests__/Animation.spec.js +1 -1
  10. package/es/Animation/utils.js +1 -1
  11. package/es/AppContainer/AppContainer.js +9 -9
  12. package/es/AppContainer/__tests__/AppContainer.spec.js +1 -1
  13. package/es/Avatar/Avatar.js +5 -5
  14. package/es/Avatar/__tests__/Avatar.spec.js +1 -1
  15. package/es/AvatarTeam/AvatarTeam.js +4 -4
  16. package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -1
  17. package/es/Button/Button.js +4 -4
  18. package/es/Button/__tests__/Button.spec.js +1 -1
  19. package/es/Button/index.js +2 -2
  20. package/es/Button/props/defaultProps.js +1 -1
  21. package/es/Buttongroup/Buttongroup.js +3 -3
  22. package/es/Buttongroup/__tests__/Buttongroup.spec.js +1 -1
  23. package/es/Card/Card.js +5 -5
  24. package/es/Card/__tests__/Card.spec.js +1 -1
  25. package/es/Card/index.js +4 -4
  26. package/es/CheckBox/CheckBox.js +6 -6
  27. package/es/CheckBox/__tests__/CheckBox.spec.js +1 -1
  28. package/es/DateTime/CalendarView.js +6 -6
  29. package/es/DateTime/DateTime.js +15 -15
  30. package/es/DateTime/DateTimePopupFooter.js +5 -5
  31. package/es/DateTime/DateTimePopupHeader.js +4 -4
  32. package/es/DateTime/DateWidget.js +17 -17
  33. package/es/DateTime/DaysRow.js +3 -3
  34. package/es/DateTime/Time.js +5 -5
  35. package/es/DateTime/YearView.js +6 -6
  36. package/es/DateTime/__tests__/CalendarView.spec.js +1 -1
  37. package/es/DateTime/__tests__/DateTime.spec.js +1 -1
  38. package/es/DateTime/__tests__/DateTimePopupFooter.spec.js +1 -1
  39. package/es/DateTime/__tests__/DateTimePopupHeader.spec.js +1 -1
  40. package/es/DateTime/__tests__/DateWidget.spec.js +1 -1
  41. package/es/DateTime/__tests__/DaysRow.spec.js +1 -1
  42. package/es/DateTime/__tests__/Time.spec.js +1 -1
  43. package/es/DateTime/__tests__/YearView.spec.js +1 -1
  44. package/es/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +1 -1
  45. package/es/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +1 -1
  46. package/es/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +1 -1
  47. package/es/DateTime/dateFormatUtils/dateFormat.js +4 -4
  48. package/es/DateTime/dateFormatUtils/dayChange.js +2 -2
  49. package/es/DateTime/dateFormatUtils/index.js +3 -3
  50. package/es/DateTime/dateFormatUtils/monthChange.js +2 -2
  51. package/es/DateTime/dateFormatUtils/timeChange.js +2 -2
  52. package/es/DateTime/dateFormatUtils/yearChange.js +2 -2
  53. package/es/DateTime/index.js +1 -1
  54. package/es/DateTime/props/propTypes.js +1 -1
  55. package/es/DateTime/validator.js +2 -2
  56. package/es/DropBox/DropBox.js +9 -9
  57. package/es/DropBox/DropBoxElement/DropBoxElement.js +6 -6
  58. package/es/DropBox/DropBoxElement/__tests__/DropBoxElement.spec.js +1 -1
  59. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +1 -1
  60. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +1 -1
  61. package/es/DropBox/__tests__/DropBox.spec.js +1 -1
  62. package/es/DropBox/css/cssJSLogic.js +1 -1
  63. package/es/DropBox/props/defaultProps.js +1 -1
  64. package/es/DropBox/props/propTypes.js +1 -1
  65. package/es/DropBox/utils/isMobilePopover.js +1 -1
  66. package/es/DropDown/DropDown.js +4 -4
  67. package/es/DropDown/DropDownHeading.js +3 -3
  68. package/es/DropDown/DropDownItem.js +3 -3
  69. package/es/DropDown/DropDownSearch.js +4 -4
  70. package/es/DropDown/DropDownSeparator.js +2 -2
  71. package/es/DropDown/__tests__/DropDown.spec.js +1 -1
  72. package/es/DropDown/__tests__/DropDownHeading.spec.js +1 -1
  73. package/es/DropDown/__tests__/DropDownItem.spec.js +1 -1
  74. package/es/DropDown/__tests__/DropDownSearch.spec.js +1 -1
  75. package/es/DropDown/__tests__/DropDownSeparator.spec.js +1 -1
  76. package/es/DropDown/index.js +7 -7
  77. package/es/DropDown/props/propTypes.js +1 -1
  78. package/es/Heading/Heading.js +8 -5
  79. package/es/Heading/__tests__/Heading.spec.js +10 -1
  80. package/es/Heading/__tests__/__snapshots__/Heading.spec.js.snap +55 -1
  81. package/es/Heading/props/propTypes.js +2 -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 +12 -16
  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/defaultProps.js +0 -1
  103. package/es/ListItem/props/propTypes.js +1 -4
  104. package/es/Modal/Modal.js +3 -3
  105. package/es/Modal/__tests__/Modal.spec.js +1 -1
  106. package/es/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
  107. package/es/MultiSelect/AdvancedMultiSelect.js +17 -17
  108. package/es/MultiSelect/EmptyState.js +3 -3
  109. package/es/MultiSelect/MobileHeader/MobileHeader.js +5 -5
  110. package/es/MultiSelect/MobileHeader/__tests__/MobileHeader.spec.js +1 -1
  111. package/es/MultiSelect/MultiSelect.js +20 -20
  112. package/es/MultiSelect/MultiSelectHeader.js +4 -4
  113. package/es/MultiSelect/MultiSelectWithAvatar.js +16 -16
  114. package/es/MultiSelect/SelectedOptions.js +5 -5
  115. package/es/MultiSelect/Suggestions.js +6 -8
  116. package/es/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +1 -1
  117. package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +1 -1
  118. package/es/MultiSelect/__tests__/EmptyState.spec.js +1 -1
  119. package/es/MultiSelect/__tests__/MultiSelect.spec.js +1 -1
  120. package/es/MultiSelect/__tests__/MultiSelectHeader.spec.js +1 -1
  121. package/es/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +1 -1
  122. package/es/MultiSelect/__tests__/SelectedOptions.spec.js +1 -1
  123. package/es/MultiSelect/__tests__/Suggestions.spec.js +1 -1
  124. package/es/MultiSelect/index.js +4 -4
  125. package/es/MultiSelect/props/defaultProps.js +1 -1
  126. package/es/MultiSelect/props/propTypes.js +0 -1
  127. package/es/PopOver/PopOver.js +6 -6
  128. package/es/PopOver/__tests__/PopOver.spec.js +1 -1
  129. package/es/PopOver/index.js +3 -3
  130. package/es/Popup/Popup.js +3 -3
  131. package/es/Provider/AvatarSize.js +1 -1
  132. package/es/Provider/CssProvider.js +1 -1
  133. package/es/Provider/IdProvider.js +2 -2
  134. package/es/Provider/LibraryContext.js +2 -2
  135. package/es/Provider/ZindexProvider.js +2 -2
  136. package/es/Provider/index.js +4 -4
  137. package/es/Radio/Radio.js +5 -5
  138. package/es/Radio/__tests__/Radio.spec.js +1 -1
  139. package/es/Responsive/CustomResponsive.js +10 -17
  140. package/es/Responsive/ResizeComponent.js +2 -2
  141. package/es/Responsive/Responsive.js +6 -6
  142. package/es/Responsive/index.js +3 -3
  143. package/es/Responsive/props/propTypes.js +1 -2
  144. package/es/Responsive/utils/index.js +1 -1
  145. package/es/Responsive/windowResizeObserver.js +1 -1
  146. package/es/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
  147. package/es/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +1 -1
  148. package/es/ResponsiveDropBox/props/propTypes.js +1 -1
  149. package/es/Ribbon/Ribbon.js +3 -3
  150. package/es/Ribbon/__tests__/Ribbon.spec.js +1 -1
  151. package/es/RippleEffect/RippleEffect.js +4 -4
  152. package/es/RippleEffect/__tests__/RippleEffect.spec.js +1 -1
  153. package/es/Select/GroupSelect.js +16 -16
  154. package/es/Select/Select.js +15 -15
  155. package/es/Select/SelectWithAvatar.js +17 -17
  156. package/es/Select/SelectWithIcon.js +13 -13
  157. package/es/Select/__tests__/GroupSelect.spec.js +1 -1
  158. package/es/Select/__tests__/Select.spec.js +1 -1
  159. package/es/Select/__tests__/SelectWithAvatar.spec.js +1 -1
  160. package/es/Select/__tests__/SelectWithIcon.spec.js +1 -1
  161. package/es/Select/index.js +4 -4
  162. package/es/Select/props/defaultProps.js +1 -1
  163. package/es/Stencils/Stencils.js +3 -3
  164. package/es/Stencils/__tests__/Stencils.spec.js +1 -1
  165. package/es/Switch/Switch.js +5 -5
  166. package/es/Switch/__tests__/Switch.spec.js +1 -1
  167. package/es/Tab/Tab.js +5 -5
  168. package/es/Tab/TabContent.js +4 -4
  169. package/es/Tab/TabContentWrapper.js +3 -3
  170. package/es/Tab/TabWrapper.js +3 -3
  171. package/es/Tab/Tabs.js +18 -25
  172. package/es/Tab/Tabs.module.css +2 -2
  173. package/es/Tab/__tests__/Tab.spec.js +1 -1
  174. package/es/Tab/__tests__/TabContent.spec.js +1 -1
  175. package/es/Tab/__tests__/TabContentWrapper.spec.js +1 -1
  176. package/es/Tab/__tests__/TabWrapper.spec.js +1 -1
  177. package/es/Tab/__tests__/Tabs.spec.js +1 -1
  178. package/es/Tab/index.js +5 -5
  179. package/es/Tab/props/propTypes.js +2 -2
  180. package/es/Tag/Tag.js +9 -11
  181. package/es/Tag/__tests__/Tag.spec.js +1 -1
  182. package/es/Tag/props/propTypes.js +1 -2
  183. package/es/TextBox/TextBox.js +3 -3
  184. package/es/TextBox/__tests__/TextBox.spec.js +1 -1
  185. package/es/TextBoxIcon/TextBoxIcon.js +6 -6
  186. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +1 -1
  187. package/es/TextBoxIcon/props/propTypes.js +1 -1
  188. package/es/Textarea/Textarea.js +154 -27
  189. package/es/Textarea/Textarea.module.css +55 -4
  190. package/es/Textarea/TextareaOne.js +349 -0
  191. package/es/Textarea/__tests__/Textarea.spec.js +1 -1
  192. package/es/Textarea/props/propTypes.js +4 -1
  193. package/es/Textarea/utils/calculateNodeHeight.js +58 -0
  194. package/es/Textarea/utils/calculateNodeHeightOne.js +66 -0
  195. package/es/Textarea/utils/debounce.js +24 -0
  196. package/es/Textarea/utils/getSizingData.js +27 -0
  197. package/es/Textarea/utils/ownerDocument.js +5 -0
  198. package/es/Textarea/utils/ownerWindow.js +8 -0
  199. package/es/Textarea/utils/updateState.js +30 -0
  200. package/es/Tooltip/Tooltip.js +17 -7
  201. package/es/Tooltip/Tooltip.module.css +0 -8
  202. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
  203. package/es/VelocityAnimation/VelocityAnimation/__tests__/VelocityAnimation.spec.js +1 -1
  204. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
  205. package/es/VelocityAnimation/VelocityAnimationGroup/__tests__/VelocityAnimationGroup.spec.js +1 -1
  206. package/es/VelocityAnimation/index.js +2 -2
  207. package/es/common/common.module.css +24 -0
  208. package/es/css.js +37 -37
  209. package/es/deprecated/PortalLayer/PortalLayer.js +3 -3
  210. package/es/index.js +39 -39
  211. package/es/semantic/Button/Button.js +3 -3
  212. package/es/semantic/Button/__tests__/Button.spec.js +1 -1
  213. package/es/semantic/index.js +1 -1
  214. package/es/utils/Common.js +1 -1
  215. package/es/utils/ContextOptimizer.js +1 -1
  216. package/es/utils/cssUtils.js +11 -0
  217. package/es/utils/datetime/common.js +1 -1
  218. package/es/utils/dropDownUtils.js +1 -1
  219. package/es/utils/index.js +1 -1
  220. package/es/v1/Accordion/Accordion.js +2 -2
  221. package/es/v1/Accordion/AccordionItem.js +4 -4
  222. package/es/v1/Accordion/index.js +2 -2
  223. package/es/v1/Animation/Animation.js +3 -3
  224. package/es/v1/Animation/utils.js +1 -1
  225. package/es/v1/AppContainer/AppContainer.js +9 -9
  226. package/es/v1/Avatar/Avatar.js +5 -5
  227. package/es/v1/AvatarTeam/AvatarTeam.js +4 -4
  228. package/es/v1/Button/Button.js +4 -4
  229. package/es/v1/Button/props/defaultProps.js +1 -1
  230. package/es/v1/Buttongroup/Buttongroup.js +3 -3
  231. package/es/v1/Card/Card.js +5 -5
  232. package/es/v1/Card/index.js +4 -4
  233. package/es/v1/Card/props/propTypes.js +1 -1
  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 +2 -2
  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 +8 -5
  257. package/es/v1/Heading/props/propTypes.js +2 -1
  258. package/es/v1/Label/Label.js +4 -4
  259. package/es/v1/Layout/Box.js +4 -4
  260. package/es/v1/Layout/Container.js +4 -4
  261. package/es/v1/Layout/index.js +2 -2
  262. package/es/v1/ListItem/ListContainer.js +6 -6
  263. package/es/v1/ListItem/ListItem.js +5 -5
  264. package/es/v1/ListItem/ListItemWithAvatar.js +12 -16
  265. package/es/v1/ListItem/ListItemWithCheckBox.js +6 -6
  266. package/es/v1/ListItem/ListItemWithIcon.js +5 -5
  267. package/es/v1/ListItem/ListItemWithRadio.js +6 -6
  268. package/es/v1/ListItem/index.js +6 -6
  269. package/es/v1/ListItem/props/defaultProps.js +0 -1
  270. package/es/v1/ListItem/props/propTypes.js +1 -4
  271. package/es/v1/Modal/Modal.js +3 -3
  272. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
  273. package/es/v1/MultiSelect/AdvancedMultiSelect.js +17 -17
  274. package/es/v1/MultiSelect/EmptyState.js +3 -3
  275. package/es/v1/MultiSelect/MobileHeader/MobileHeader.js +5 -5
  276. package/es/v1/MultiSelect/MultiSelect.js +19 -19
  277. package/es/v1/MultiSelect/MultiSelectHeader.js +4 -4
  278. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +16 -16
  279. package/es/v1/MultiSelect/SelectedOptions.js +5 -5
  280. package/es/v1/MultiSelect/Suggestions.js +6 -8
  281. package/es/v1/MultiSelect/index.js +4 -4
  282. package/es/v1/MultiSelect/props/defaultProps.js +1 -1
  283. package/es/v1/MultiSelect/props/propTypes.js +0 -1
  284. package/es/v1/PopOver/PopOver.js +6 -6
  285. package/es/v1/Popup/Popup.js +3 -3
  286. package/es/v1/Radio/Radio.js +5 -5
  287. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
  288. package/es/v1/ResponsiveDropBox/props/propTypes.js +2 -2
  289. package/es/v1/Ribbon/Ribbon.js +3 -3
  290. package/es/v1/Ribbon/props/propTypes.js +1 -1
  291. package/es/v1/RippleEffect/RippleEffect.js +4 -4
  292. package/es/v1/Select/GroupSelect.js +16 -16
  293. package/es/v1/Select/Select.js +15 -15
  294. package/es/v1/Select/SelectWithAvatar.js +17 -17
  295. package/es/v1/Select/SelectWithIcon.js +13 -13
  296. package/es/v1/Select/index.js +4 -4
  297. package/es/v1/Select/props/defaultProps.js +1 -1
  298. package/es/v1/Stencils/Stencils.js +3 -3
  299. package/es/v1/Switch/Switch.js +5 -5
  300. package/es/v1/Tab/Tab.js +5 -5
  301. package/es/v1/Tab/TabContent.js +4 -4
  302. package/es/v1/Tab/TabContentWrapper.js +3 -3
  303. package/es/v1/Tab/TabWrapper.js +3 -3
  304. package/es/v1/Tab/Tabs.js +18 -25
  305. package/es/v1/Tab/index.js +5 -5
  306. package/es/v1/Tab/props/propTypes.js +2 -2
  307. package/es/v1/Tab/v1Tabs.module.css +2 -2
  308. package/es/v1/Tag/Tag.js +9 -11
  309. package/es/v1/Tag/props/propTypes.js +1 -2
  310. package/es/v1/TextBox/TextBox.js +3 -3
  311. package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -6
  312. package/es/v1/TextBoxIcon/props/propTypes.js +1 -1
  313. package/es/v1/Textarea/Textarea.js +3 -3
  314. package/es/v1/Tooltip/Tooltip.js +17 -7
  315. package/es/v1/Typography/Typography.js +4 -4
  316. package/es/v1/Typography/css/cssJSLogic.js +1 -1
  317. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
  318. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
  319. package/es/v1/semantic/Button/Button.js +3 -3
  320. package/es/v1/semantic/index.js +1 -1
  321. package/lib/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +1 -1
  322. package/lib/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +1 -1
  323. package/lib/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +1 -1
  324. package/lib/Heading/Heading.js +7 -3
  325. package/lib/Heading/__tests__/Heading.spec.js +9 -0
  326. package/lib/Heading/__tests__/__snapshots__/Heading.spec.js.snap +55 -1
  327. package/lib/Heading/props/propTypes.js +2 -1
  328. package/lib/ListItem/ListItemWithAvatar.js +5 -9
  329. package/lib/ListItem/props/defaultProps.js +0 -1
  330. package/lib/ListItem/props/propTypes.js +2 -4
  331. package/lib/MultiSelect/Suggestions.js +0 -2
  332. package/lib/MultiSelect/props/propTypes.js +0 -1
  333. package/lib/Responsive/CustomResponsive.js +3 -10
  334. package/lib/Responsive/props/propTypes.js +1 -2
  335. package/lib/Tab/Tabs.js +57 -63
  336. package/lib/Tab/Tabs.module.css +2 -2
  337. package/lib/Tab/props/propTypes.js +2 -2
  338. package/lib/Tag/Tag.js +2 -4
  339. package/lib/Tag/props/propTypes.js +1 -2
  340. package/lib/Textarea/Textarea.js +188 -43
  341. package/lib/Textarea/Textarea.module.css +55 -4
  342. package/lib/Textarea/TextareaOne.js +422 -0
  343. package/lib/Textarea/props/propTypes.js +4 -1
  344. package/lib/Textarea/utils/calculateNodeHeight.js +69 -0
  345. package/lib/Textarea/utils/calculateNodeHeightOne.js +74 -0
  346. package/lib/Textarea/utils/debounce.js +33 -0
  347. package/lib/Textarea/utils/getSizingData.js +37 -0
  348. package/lib/Textarea/utils/ownerDocument.js +13 -0
  349. package/lib/Textarea/utils/ownerWindow.js +18 -0
  350. package/lib/Textarea/utils/updateState.js +36 -0
  351. package/lib/Tooltip/Tooltip.js +15 -4
  352. package/lib/Tooltip/Tooltip.module.css +0 -8
  353. package/lib/common/common.module.css +24 -0
  354. package/lib/utils/cssUtils.js +22 -0
  355. package/lib/v1/Card/props/propTypes.js +1 -1
  356. package/lib/v1/DateTime/props/propTypes.js +1 -1
  357. package/lib/v1/Heading/Heading.js +7 -3
  358. package/lib/v1/Heading/props/propTypes.js +2 -1
  359. package/lib/v1/ListItem/ListItemWithAvatar.js +5 -9
  360. package/lib/v1/ListItem/props/defaultProps.js +0 -1
  361. package/lib/v1/ListItem/props/propTypes.js +2 -4
  362. package/lib/v1/MultiSelect/Suggestions.js +0 -2
  363. package/lib/v1/MultiSelect/props/propTypes.js +0 -1
  364. package/lib/v1/ResponsiveDropBox/props/propTypes.js +1 -1
  365. package/lib/v1/Ribbon/props/propTypes.js +1 -1
  366. package/lib/v1/Tab/Tabs.js +6 -13
  367. package/lib/v1/Tab/props/propTypes.js +2 -2
  368. package/lib/v1/Tab/v1Tabs.module.css +2 -2
  369. package/lib/v1/Tag/Tag.js +2 -4
  370. package/lib/v1/Tag/props/propTypes.js +1 -2
  371. package/lib/v1/Tooltip/Tooltip.js +15 -4
  372. package/package.json +8 -8
  373. package/result.json +1 -1
@@ -1,23 +1,33 @@
1
- import React from 'react';
2
- import { defaultProps } from './props/defaultProps';
3
- import { propTypes } from './props/propTypes';
1
+ import React from "react";
2
+ import ReactDOM from "react-dom";
3
+ import { defaultProps } from "./props/defaultProps";
4
+ import { propTypes } from "./props/propTypes";
5
+ import debounce from "./utils/debounce";
6
+ import calculateNodeHeight from "./utils/calculateNodeHeight";
7
+ import ownerWindow from "./utils/ownerWindow";
8
+ import updateState from "./utils/updateState";
4
9
  /* eslint css-modules/no-unused-class: [2, { markAsUsed: ['resizeX', 'resizeY', 'noresize', 'resizeboth', 'xsmall', 'small', 'medium', 'large', 'xlarge', 'default', 'primary'] }] */
5
10
 
6
- import style from './Textarea.module.css';
11
+ import style from "./Textarea.module.css";
7
12
  export default class Textarea extends React.Component {
8
13
  constructor(props) {
9
14
  super(props);
10
- this.onChange = this.onChange.bind(this);
11
- this.onKeyDown = this.onKeyDown.bind(this);
15
+ this.hiddenTextareaRef = /*#__PURE__*/React.createRef();
16
+ this.rendersRef = /*#__PURE__*/React.createRef();
17
+ this.sizingData = /*#__PURE__*/React.createRef(null);
18
+ this.rAF = null;
19
+ this.resizeObserver = null;
20
+ this.debounceHandleResize = null;
12
21
  this.onBlur = this.onBlur.bind(this);
13
- }
14
-
15
- onChange(e) {
16
- e && e.preventDefault();
17
- let {
18
- onChange
19
- } = this.props;
20
- onChange && onChange(e.target.value, e);
22
+ this.onKeyDown = this.onKeyDown.bind(this);
23
+ this.inputRef = this.inputRef.bind(this);
24
+ this.isEmpty = this.isEmpty.bind(this);
25
+ this.syncHeight = this.syncHeight.bind(this);
26
+ this.onChange = this.onChange.bind(this);
27
+ this.handleResize = this.handleResize.bind(this);
28
+ this.rAFHandleResize = this.rAFHandleResize.bind(this);
29
+ this.mountingPhase = this.mountingPhase.bind(this);
30
+ this.unMountingPhase = this.unMountingPhase.bind(this);
21
31
  }
22
32
 
23
33
  onBlur(e) {
@@ -35,6 +45,115 @@ export default class Textarea extends React.Component {
35
45
  onKeyDown && onKeyDown(e);
36
46
  }
37
47
 
48
+ inputRef(e) {
49
+ let {
50
+ getRef
51
+ } = this.props;
52
+ this.textareaRef = e;
53
+ getRef && getRef(e);
54
+ }
55
+
56
+ isEmpty(obj) {
57
+ return obj === undefined || obj === null || Object.keys(obj).length === 0 || obj.height === 0 && !obj.overflow;
58
+ }
59
+
60
+ syncHeight() {
61
+ const {
62
+ minRows,
63
+ maxRows
64
+ } = this.props;
65
+ const {
66
+ height,
67
+ overflow
68
+ } = calculateNodeHeight({
69
+ minRows: minRows,
70
+ maxRows: maxRows,
71
+ textareaEle: this.textareaRef,
72
+ hiddenTextareaEle: this.hiddenTextareaRef.current
73
+ });
74
+ const newState = {
75
+ height: height,
76
+ overflow: overflow
77
+ };
78
+
79
+ if (this.isEmpty(newState)) {
80
+ return;
81
+ }
82
+
83
+ this.sizingData.current = updateState(this.sizingData.current, newState, this.rendersRef); // this.textareaRef.style.setProperty('height',`${this.sizingData.current.height}px`);
84
+
85
+ this.textareaRef.style.height = `${this.sizingData.current.height}px`;
86
+ this.textareaRef.style.overflowY = `${this.sizingData.current.overflow ? 'hidden' : 'auto'}`;
87
+ }
88
+
89
+ onChange(e) {
90
+ e && e.preventDefault();
91
+ let {
92
+ onChange
93
+ } = this.props;
94
+ this.rendersRef.current = 0;
95
+ onChange && onChange(e.target.value, e);
96
+ requestAnimationFrame(() => {
97
+ this.syncHeight();
98
+ });
99
+ }
100
+
101
+ handleResize() {
102
+ this.rendersRef.current = 0;
103
+ this.syncHeight();
104
+ }
105
+
106
+ rAFHandleResize() {
107
+ cancelAnimationFrame(this.rAF);
108
+ this.rAF = requestAnimationFrame(() => {
109
+ this.handleResize();
110
+ });
111
+ }
112
+
113
+ mountingPhase() {
114
+ const input = this.textareaRef;
115
+ const containerWindow = ownerWindow(input);
116
+ this.debounceHandleResize = debounce(this.handleResize);
117
+ containerWindow.addEventListener("resize", this.debounceHandleResize);
118
+
119
+ if (typeof ResizeObserver !== "undefined") {
120
+ this.resizeObserver = new ResizeObserver(this.rAFHandleResize);
121
+ this.resizeObserver.observe(input);
122
+ }
123
+ }
124
+
125
+ unMountingPhase() {
126
+ const input = this.textareaRef;
127
+ const containerWindow = ownerWindow(input);
128
+ this.debounceHandleResize.clear();
129
+ cancelAnimationFrame(this.rAF);
130
+ containerWindow.removeEventListener("resize", this.debounceHandleResize);
131
+
132
+ if (this.resizeObserver) {
133
+ this.resizeObserver.disconnect();
134
+ }
135
+ }
136
+
137
+ componentDidMount() {
138
+ this.sizingData.current = {
139
+ height: 0,
140
+ overflow: false
141
+ };
142
+ this.mountingPhase();
143
+ }
144
+
145
+ componentWillUnmount() {
146
+ this.sizingData.current = null;
147
+ this.unMountingPhase();
148
+ }
149
+
150
+ componentDidUpdate(prevProps) {
151
+ if (prevProps.text !== this.props.text) {
152
+ this.rendersRef.current = 0;
153
+ this.syncHeight();
154
+ }
155
+ }
156
+
38
157
  render() {
39
158
  let {
40
159
  size,
@@ -58,37 +177,38 @@ export default class Textarea extends React.Component {
58
177
  autoFocus,
59
178
  htmlId,
60
179
  a11y,
61
- customClass
180
+ customClass,
181
+ minRows = 3
62
182
  } = this.props;
63
183
  let {
64
184
  ariaLabel,
65
185
  ariaLabelledby
66
186
  } = a11y;
67
187
  let resizes = {
68
- horizontal: 'resizeX',
69
- vertical: 'resizeY',
70
- both: 'resizeboth',
71
- none: 'noresize'
188
+ horizontal: "resizeX",
189
+ vertical: "resizeY",
190
+ both: "resizeboth",
191
+ none: "noresize"
72
192
  };
73
193
  let options = {};
74
194
 
75
195
  if (isReadOnly) {
76
- options.readOnly = 'readOnly';
196
+ options.readOnly = "readOnly";
77
197
  }
78
198
 
79
199
  if (isDisabled) {
80
- options.disabled = 'disabled';
200
+ options.disabled = "disabled";
81
201
  }
82
202
 
83
203
  if (autoFocus) {
84
204
  options.autoFocus = true;
85
205
  }
86
206
 
87
- 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}`;
88
- return /*#__PURE__*/React.createElement("textarea", {
207
+ 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}`;
208
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("textarea", {
89
209
  "aria-label": ariaLabel,
90
210
  "aria-labelledby": ariaLabelledby,
91
- className: `${customClass} ${isReadOnly && needReadOnlyStyle ? style.readonly : ''} ${classList} ${style[`borderColor_${borderColor}`]}`,
211
+ className: `${customClass} ${isReadOnly && needReadOnlyStyle ? style.readonly : ""} ${classList} ${style[`borderColor_${borderColor}`]}`,
92
212
  placeholder: placeHolder,
93
213
  ...options,
94
214
  "data-id": dataId,
@@ -98,11 +218,18 @@ export default class Textarea extends React.Component {
98
218
  onKeyDown: this.onKeyDown,
99
219
  onFocus: onFocus,
100
220
  onBlur: this.onBlur,
101
- ref: getRef,
221
+ ref: this.inputRef,
102
222
  value: text,
103
223
  id: htmlId,
104
- "data-selector-id": dataSelectorId
105
- });
224
+ "data-selector-id": dataSelectorId,
225
+ rows: minRows
226
+ }), /*#__PURE__*/React.createElement("textarea", {
227
+ "aria-hidden": true,
228
+ readOnly: true,
229
+ ref: this.hiddenTextareaRef,
230
+ tabIndex: -1,
231
+ className: `${customClass} ${isReadOnly && needReadOnlyStyle ? style.readonly : ""} ${classList} ${style[`borderColor_${borderColor}`]} ${style.forceHiddenStyle}`
232
+ }));
106
233
  }
107
234
 
108
235
  }
@@ -12,6 +12,7 @@
12
12
  /* textarea placeholder default variable */
13
13
  --textarea_placeholder_text_color: var(--zdt_textarea_placeholder_text);
14
14
  }
15
+
15
16
  .basic {
16
17
  composes: varClass;
17
18
  -webkit-appearance: none;
@@ -22,119 +23,169 @@
22
23
  color: var(--textarea_text_color);
23
24
  cursor: var(--textarea_cursor);
24
25
  }
26
+
25
27
  .basic, .noBorder {
26
28
  border-width: var(--textarea_border_width);
27
29
  }
30
+
28
31
  .basic::placeholder {
29
32
  color: var(--textarea_placeholder_text_color);
30
33
  }
34
+
31
35
  .basic::-webkit-placeholder {
32
36
  color: var(--textarea_placeholder_text_color);
33
37
  }
38
+
34
39
  .basic::-moz-placeholder {
35
40
  color: var(--textarea_placeholder_text_color);
36
41
  }
42
+
37
43
  .basic::-ms-placeholder {
38
44
  color: var(--textarea_placeholder_text_color);
39
45
  }
46
+
40
47
  .basic:disabled {
41
48
  --textarea_cursor: not-allowed;
42
49
  --textarea_text_color: var(--zdt_textarea_default_text);
43
50
  }
51
+
44
52
  .readonly {
45
53
  --textarea_cursor: not-allowed;
46
54
  }
55
+
47
56
  .resizeX {
48
57
  composes: resizeX from '../common/common.module.css';
49
58
  }
59
+
50
60
  .resizeY {
51
61
  composes: resizeY from '../common/common.module.css';
52
62
  }
63
+
53
64
  .noresize {
54
65
  composes: resizenone from '../common/common.module.css';
55
66
  }
67
+
56
68
  .resizeboth {
57
69
  composes: resizeboth from '../common/common.module.css';
58
70
  }
71
+
59
72
  /* css:lineheight-validation:ignore */
60
73
  .container {
61
74
  composes: basic;
62
- transition: border var(--zd_transition2) linear 0s,
75
+ transition: .3s;
76
+ /* transition: border var(--zd_transition2) linear 0s,
63
77
  height var(--zd_transition2) linear 0s;
64
- -moz-transition: border var(--zd_transition2) linear 0s,
78
+ -webkit-transition: border var(--zd_transition2) linear 0s,
65
79
  height var(--zd_transition2) linear 0s;
80
+ -moz-transition: border var(--zd_transition2) linear 0s,
81
+ height var(--zd_transition2) linear 0s; */
66
82
  width: 100% ;
67
83
  max-width: 100% ;
68
84
  min-width: var(--zd_size100) ;
69
85
  font-size: var(--textarea_font_size);
70
86
  line-height: var(--textarea_line_height);
71
87
  height: var(--textarea_height);
72
- -webkit-transition: border var(--zd_transition2) linear 0s,
73
- height var(--zd_transition2) linear 0s;
74
88
  border-style: solid;
75
89
  background-color: var(--zdt_textarea_default_bg);
76
90
  border-color: var(--textarea_border_color);
77
91
  padding: var(--textarea_padding);
78
92
  }
93
+
79
94
  .needBorder {
80
95
  --textarea_border_width: 0 0 1px 0;
81
96
  }
97
+
82
98
  .borderColor_transparent {
83
99
  --textarea_border_color: var(--zdt_textarea_transparent_border);
84
100
  }
101
+
85
102
  .borderColor_default {
86
103
  --textarea_border_color: var(--zdt_textarea_default_border);
87
104
  }
105
+
88
106
  .effect:hover {
89
107
  --textarea_border_color: var(--zdt_textarea_hover_border);
90
108
  }
109
+
91
110
  .effect:focus {
92
111
  --textarea_border_color: var(--zdt_textarea_focus_border);
93
112
  }
113
+
94
114
  .xsmall,
95
115
  .xmedium {
96
116
  vertical-align: middle;
97
117
  }
118
+
98
119
  .xsmall {
99
120
  --textarea_font_size: var(--zd_font_size14);
100
121
  --textarea_padding: var(--zd_size4) 0 var(--zd_size2);
101
122
  --textarea_height: var(--zd_size28);
102
123
  --textarea_line_height: 1.3572;
103
124
  }
125
+
104
126
  .xmedium {
105
127
  --textarea_font_size: var(--zd_font_size13);
106
128
  --textarea_padding: var(--zd_size4) 0 var(--zd_size2);
107
129
  --textarea_height: var(--zd_size25);
108
130
  --textarea_line_height: 1.3077;
109
131
  }
132
+
110
133
  .small {
111
134
  --textarea_height: var(--zd_size30);
112
135
  --textarea_padding: var(--zd_size2) 0;
113
136
  }
137
+
114
138
  .smallanimated:focus,
115
139
  .xsmallanimated:focus,
116
140
  .xmediumanimated:focus {
117
141
  --textarea_height: var(--zd_size70);
118
142
  }
143
+
119
144
  .medium {
120
145
  --textarea_height: var(--zd_size88);
121
146
  --textarea_padding: var(--zd_size2);
122
147
  }
148
+
123
149
  .large {
124
150
  --textarea_height: var(--zd_size45);
125
151
  --textarea_padding: var(--zd_size2);
126
152
  }
153
+
127
154
  .largeanimated:focus {
128
155
  --textarea_height: var(--zd_size220);
129
156
  }
157
+
130
158
  .xlarge {
131
159
  --textarea_height: var(--zd_size184);
132
160
  }
161
+
133
162
  .default {
134
163
  font-family: var(--zd_regular);
135
164
  --textarea_text_color: var(--zdt_textarea_black_text);
136
165
  }
166
+
137
167
  .primary {
138
168
  composes: semibold from '../common/common.module.css';
139
169
  --textarea_text_color: var(--zdt_textarea_black_text);
140
170
  }
171
+
172
+ .forceHiddenStyle {
173
+ /* Visibility needed to hide the extra text area on iPads */
174
+ visibility: hidden;
175
+ /* Remove from the content flow */
176
+ position: absolute;
177
+ /* Ignore the scrollbar width */
178
+ overflow: hidden;
179
+ height: 0 ;
180
+ top: 0 ;
181
+ /* Create a new layer, increase the isolation of the computed values */
182
+ transform: translateZ(0);
183
+ }
184
+
185
+ [dir=ltr] .forceHiddenStyle {
186
+ left: 0 ;
187
+ }
188
+
189
+ [dir=rtl] .forceHiddenStyle {
190
+ right: 0 ;
191
+ }