@zohodesk/components 1.0.0-temp-168 → 1.0.0-temp-170

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 (477) hide show
  1. package/.cli/PropLessFiles.html +1 -1
  2. package/.cli/PropValidationExcludeFilesArray.js +7 -3
  3. package/.cli/propValidation_report.html +1 -1
  4. package/README.md +1335 -1277
  5. package/assets/Appearance/dark/mode/Component_DarkMode.module.css +1 -0
  6. package/assets/Appearance/light/mode/Component_LightMode.module.css +1 -0
  7. package/assets/Appearance/light/themes/blue/blue_CTA_LightModifyCategory.module.css +180 -180
  8. package/assets/Appearance/light/themes/blue/blue_CTA_LightTheme.module.css +12 -12
  9. package/assets/Appearance/pureDark/mode/Component_PureDarkMode.module.css +1 -0
  10. package/coverage/Button/Button.js.html +1 -1
  11. package/coverage/Button/css/Button.module.css.html +1 -1
  12. package/coverage/Button/css/cssJSLogic.js.html +1 -1
  13. package/coverage/Button/css/index.html +1 -1
  14. package/coverage/Button/index.html +1 -1
  15. package/coverage/Button/props/defaultProps.js.html +3 -6
  16. package/coverage/Button/props/index.html +1 -1
  17. package/coverage/Button/props/propTypes.js.html +9 -3
  18. package/coverage/Buttongroup/Buttongroup.js.html +1 -1
  19. package/coverage/Buttongroup/Buttongroup.module.css.html +1 -1
  20. package/coverage/Buttongroup/index.html +1 -1
  21. package/coverage/Buttongroup/props/defaultProps.js.html +1 -1
  22. package/coverage/Buttongroup/props/index.html +1 -1
  23. package/coverage/Buttongroup/props/propTypes.js.html +1 -1
  24. package/coverage/coverage-final.json +10 -10
  25. package/coverage/coverage-summary.json +10 -10
  26. package/coverage/index.html +1 -1
  27. package/coverage/utils/dummyFunction.js.html +1 -1
  28. package/coverage/utils/index.html +1 -1
  29. package/es/AppContainer/AppContainer.js +3 -0
  30. package/es/AppContainer/AppContainer.module.css +18 -18
  31. package/es/Avatar/Avatar.js +9 -9
  32. package/es/Avatar/Avatar.module.css +175 -175
  33. package/es/AvatarTeam/AvatarTeam.js +7 -7
  34. package/es/AvatarTeam/AvatarTeam.module.css +189 -189
  35. package/es/Button/Button.js +4 -4
  36. package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +440 -468
  37. package/es/Button/css/Button.module.css +525 -525
  38. package/es/Button/props/defaultProps.js +1 -2
  39. package/es/Button/props/propTypes.js +3 -1
  40. package/es/Buttongroup/Buttongroup.js +1 -1
  41. package/es/Buttongroup/Buttongroup.module.css +105 -105
  42. package/es/Buttongroup/__tests__/__snapshots__/Buttongroup.spec.js.snap +191 -191
  43. package/es/Card/Card.js +4 -4
  44. package/es/Card/Card.module.css +20 -20
  45. package/es/CheckBox/CheckBox.js +0 -0
  46. package/es/CheckBox/CheckBox.module.css +157 -157
  47. package/es/DateTime/CalendarView.js +0 -0
  48. package/es/DateTime/DateTime.js +0 -0
  49. package/es/DateTime/DateTime.module.css +237 -235
  50. package/es/DateTime/DateWidget.js +2 -1
  51. package/es/DateTime/DateWidget.module.css +38 -38
  52. package/es/DateTime/YearView.js +0 -0
  53. package/es/DateTime/YearView.module.css +98 -98
  54. package/es/DateTime/common.js +0 -0
  55. package/es/DateTime/dateFormatUtils/dayChange.js +2 -1
  56. package/es/DateTime/dateFormatUtils/index.js +1 -1
  57. package/es/DateTime/dateFormatUtils/monthChange.js +2 -1
  58. package/es/DateTime/dateFormatUtils/timeChange.js +4 -4
  59. package/es/DateTime/dateFormatUtils/yearChange.js +2 -1
  60. package/es/DateTime/index.js +0 -0
  61. package/es/DateTime/objectUtils.js +0 -0
  62. package/es/DateTime/typeChecker.js +0 -0
  63. package/es/DateTime/validator.js +0 -0
  64. package/es/DropBox/DropBox.js +10 -10
  65. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +434 -434
  66. package/es/DropBox/DropBoxPositionMapping.json +144 -144
  67. package/es/DropBox/css/DropBox.module.css +58 -58
  68. package/es/DropDown/DropDown.js +1 -7
  69. package/es/DropDown/DropDown.module.css +5 -5
  70. package/es/DropDown/DropDownHeading.js +0 -0
  71. package/es/DropDown/DropDownHeading.module.css +53 -53
  72. package/es/DropDown/DropDownItem.js +0 -0
  73. package/es/DropDown/DropDownItem.module.css +94 -94
  74. package/es/DropDown/DropDownSearch.js +0 -0
  75. package/es/DropDown/DropDownSearch.module.css +14 -14
  76. package/es/DropDown/DropDownSeparator.js +0 -0
  77. package/es/DropDown/DropDownSeparator.module.css +7 -7
  78. package/es/Heading/Heading.module.css +4 -4
  79. package/es/Label/Label.js +2 -2
  80. package/es/Label/Label.module.css +52 -52
  81. package/es/Label/LabelColors.module.css +20 -20
  82. package/es/Layout/Box.js +0 -0
  83. package/es/Layout/Container.js +0 -0
  84. package/es/Layout/Layout.module.css +335 -335
  85. package/es/Layout/utils.js +0 -0
  86. package/es/ListItem/ListItem.js +0 -0
  87. package/es/ListItem/ListItem.module.css +216 -216
  88. package/es/MultiSelect/AdvancedGroupMultiSelect.js +12 -10
  89. package/es/MultiSelect/AdvancedMultiSelect.js +4 -4
  90. package/es/MultiSelect/MobileHeader/MobileHeader.js +50 -0
  91. package/es/MultiSelect/MobileHeader/MobileHeader.module.css +16 -0
  92. package/es/MultiSelect/MobileHeader/props/defaultProps.js +7 -0
  93. package/es/MultiSelect/MobileHeader/props/propTypes.js +7 -0
  94. package/es/MultiSelect/MultiSelect.js +117 -96
  95. package/es/MultiSelect/MultiSelect.module.css +204 -207
  96. package/es/MultiSelect/MultiSelectHeader.js +1 -2
  97. package/es/MultiSelect/MultiSelectWithAvatar.js +15 -112
  98. package/es/MultiSelect/SelectedOptions.module.css +15 -15
  99. package/es/MultiSelect/props/defaultProps.js +3 -1
  100. package/es/MultiSelect/props/propTypes.js +147 -193
  101. package/es/PopOver/PopOver.module.css +8 -8
  102. package/es/Popup/Popup.js +0 -0
  103. package/es/Popup/PositionMapping.json +73 -73
  104. package/es/Radio/Radio.js +0 -0
  105. package/es/Radio/Radio.module.css +112 -112
  106. package/es/Responsive/CustomResponsive.js +0 -0
  107. package/es/Responsive/RefWrapper.js +2 -1
  108. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +6 -6
  109. package/es/Ribbon/Ribbon.js +0 -0
  110. package/es/Ribbon/Ribbon.module.css +454 -454
  111. package/es/RippleEffect/RippleEffect.module.css +92 -92
  112. package/es/Select/GroupSelect.js +3 -5
  113. package/es/Select/Select.js +2 -5
  114. package/es/Select/Select.module.css +108 -108
  115. package/es/Select/SelectWithAvatar.js +2 -1
  116. package/es/Select/SelectWithIcon.js +5 -2
  117. package/es/Select/props/propTypes.js +3 -1
  118. package/es/Stencils/Stencils.js +0 -0
  119. package/es/Stencils/Stencils.module.css +96 -96
  120. package/es/Switch/Switch.js +0 -0
  121. package/es/Switch/Switch.module.css +127 -127
  122. package/es/Tab/Tab.module.css +100 -100
  123. package/es/Tab/TabContent.module.css +4 -4
  124. package/es/Tab/Tabs.js +17 -17
  125. package/es/Tab/Tabs.module.css +136 -136
  126. package/es/Tag/Tag.js +8 -8
  127. package/es/Tag/Tag.module.css +254 -254
  128. package/es/TextBox/TextBox.js +3 -3
  129. package/es/TextBox/TextBox.module.css +158 -158
  130. package/es/TextBoxIcon/TextBoxIcon.js +0 -0
  131. package/es/TextBoxIcon/TextBoxIcon.module.css +79 -79
  132. package/es/Textarea/Textarea.js +0 -0
  133. package/es/Textarea/Textarea.module.css +139 -139
  134. package/es/Tooltip/Tooltip.module.css +140 -140
  135. package/es/common/a11y.module.css +3 -3
  136. package/es/common/animation.module.css +624 -624
  137. package/es/common/avatarsizes.module.css +48 -48
  138. package/es/common/basic.module.css +33 -33
  139. package/es/common/basicReset.module.css +40 -40
  140. package/es/common/boxShadow.module.css +33 -33
  141. package/es/common/common.module.css +524 -524
  142. package/es/common/customscroll.module.css +91 -91
  143. package/es/common/reset.module.css +13 -13
  144. package/es/common/transition.module.css +146 -146
  145. package/es/deprecated/PortalLayer/props/propTypes.js +3 -1
  146. package/es/index.js +2 -1
  147. package/es/semantic/Button/semanticButton.module.css +9 -9
  148. package/es/utils/Common.js +3 -0
  149. package/es/utils/dropDownUtils.js +0 -0
  150. package/es/v1/Accordion/Accordion.js +66 -0
  151. package/es/v1/Accordion/AccordionItem.js +57 -0
  152. package/es/v1/Accordion/index.js +2 -0
  153. package/es/v1/Animation/Animation.js +127 -0
  154. package/es/v1/AppContainer/AppContainer.js +120 -0
  155. package/es/v1/Avatar/Avatar.js +139 -0
  156. package/es/v1/AvatarTeam/AvatarTeam.js +70 -0
  157. package/es/v1/Button/Button.js +68 -0
  158. package/es/v1/Buttongroup/Buttongroup.js +31 -0
  159. package/es/v1/Card/Card.js +237 -0
  160. package/es/v1/Card/index.js +4 -0
  161. package/es/v1/CheckBox/CheckBox.js +155 -0
  162. package/es/v1/DateTime/CalendarView.js +218 -0
  163. package/es/v1/DateTime/DateTime.js +783 -0
  164. package/es/v1/DateTime/DateTimePopupFooter.js +47 -0
  165. package/es/v1/DateTime/DateTimePopupHeader.js +105 -0
  166. package/es/v1/DateTime/DateWidget.js +1098 -0
  167. package/es/v1/DateTime/DaysRow.js +31 -0
  168. package/es/v1/DateTime/Time.js +166 -0
  169. package/es/v1/DateTime/YearView.js +264 -0
  170. package/es/v1/DateTime/index.js +1 -0
  171. package/es/v1/DropBox/DropBox.js +91 -0
  172. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +132 -0
  173. package/es/v1/DropDown/DropDown.js +52 -0
  174. package/es/v1/DropDown/DropDownHeading.js +36 -0
  175. package/es/v1/DropDown/DropDownItem.js +56 -0
  176. package/es/v1/DropDown/DropDownSearch.js +55 -0
  177. package/es/v1/DropDown/DropDownSeparator.js +12 -0
  178. package/es/v1/Heading/Heading.js +32 -0
  179. package/es/v1/Label/Label.js +40 -0
  180. package/es/v1/Layout/Box.js +115 -0
  181. package/es/v1/Layout/Container.js +132 -0
  182. package/es/v1/Layout/index.js +2 -0
  183. package/es/v1/ListItem/ListContainer.js +102 -0
  184. package/es/v1/ListItem/ListItem.js +124 -0
  185. package/es/v1/ListItem/ListItemWithAvatar.js +145 -0
  186. package/es/v1/ListItem/ListItemWithCheckBox.js +104 -0
  187. package/es/v1/ListItem/ListItemWithIcon.js +127 -0
  188. package/es/v1/ListItem/ListItemWithRadio.js +105 -0
  189. package/es/v1/ListItem/index.js +6 -0
  190. package/es/v1/Modal/Modal.js +154 -0
  191. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +1079 -0
  192. package/es/v1/MultiSelect/AdvancedMultiSelect.js +568 -0
  193. package/es/v1/MultiSelect/EmptyState.js +64 -0
  194. package/es/v1/MultiSelect/MobileHeader/MobileHeader.js +50 -0
  195. package/es/v1/MultiSelect/MultiSelect.js +1121 -0
  196. package/es/v1/MultiSelect/MultiSelectHeader.js +32 -0
  197. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +217 -0
  198. package/es/v1/MultiSelect/SelectedOptions.js +82 -0
  199. package/es/v1/MultiSelect/Suggestions.js +142 -0
  200. package/es/v1/MultiSelect/index.js +4 -0
  201. package/es/v1/PopOver/PopOver.js +176 -0
  202. package/es/v1/Popup/Popup.js +645 -0
  203. package/es/v1/Provider/AvatarSize.js +13 -0
  204. package/es/v1/Provider/Config.js +18 -0
  205. package/es/v1/Provider/CssProvider.js +16 -0
  206. package/es/v1/Provider/IdProvider.js +66 -0
  207. package/es/v1/Provider/LibraryContext.js +37 -0
  208. package/es/v1/Provider/LibraryContextInit.js +3 -0
  209. package/es/v1/Provider/NumberGenerator/NumberGenerator.js +136 -0
  210. package/es/v1/Provider/ZindexProvider.js +57 -0
  211. package/es/v1/Provider/index.js +4 -0
  212. package/es/v1/Radio/Radio.js +115 -0
  213. package/es/v1/Responsive/CustomResponsive.js +195 -0
  214. package/es/v1/Responsive/RefWrapper.js +39 -0
  215. package/es/v1/Responsive/ResizeComponent.js +197 -0
  216. package/es/v1/Responsive/ResizeObserver.js +140 -0
  217. package/es/v1/Responsive/Responsive.js +194 -0
  218. package/es/v1/Responsive/index.js +9 -0
  219. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +58 -0
  220. package/es/v1/Ribbon/Ribbon.js +33 -0
  221. package/es/v1/RippleEffect/RippleEffect.js +24 -0
  222. package/es/v1/Select/GroupSelect.js +800 -0
  223. package/es/v1/Select/Select.js +966 -0
  224. package/es/v1/Select/SelectWithAvatar.js +344 -0
  225. package/es/v1/Select/SelectWithIcon.js +535 -0
  226. package/es/v1/Select/index.js +4 -0
  227. package/es/v1/Stencils/Stencils.js +26 -0
  228. package/es/v1/Switch/Switch.js +94 -0
  229. package/es/v1/Tab/Tab.js +108 -0
  230. package/es/v1/Tab/TabContent.js +30 -0
  231. package/es/v1/Tab/TabContentWrapper.js +29 -0
  232. package/es/v1/Tab/TabWrapper.js +57 -0
  233. package/es/v1/Tab/Tabs.js +612 -0
  234. package/es/v1/Tab/index.js +5 -0
  235. package/es/v1/Tag/Tag.js +134 -0
  236. package/es/v1/TextBox/TextBox.js +154 -0
  237. package/es/v1/TextBoxIcon/TextBoxIcon.js +158 -0
  238. package/es/v1/Textarea/Textarea.js +102 -0
  239. package/es/v1/Tooltip/Tooltip.js +518 -0
  240. package/es/v1/Typography/Typography.js +38 -0
  241. package/es/v1/Typography/css/Typography.module.css +376 -0
  242. package/es/v1/Typography/css/cssJSLogic.js +46 -0
  243. package/es/v1/Typography/css/letterSpacingMap.js +12 -0
  244. package/es/v1/Typography/props/defaultProps.js +8 -0
  245. package/es/v1/Typography/props/propTypes.js +24 -0
  246. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +69 -0
  247. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +100 -0
  248. package/es/v1/semantic/Button/Button.js +53 -0
  249. package/es/v1/semantic/index.js +1 -0
  250. package/install.md +10 -10
  251. package/lib/AppContainer/AppContainer.js +5 -0
  252. package/lib/AppContainer/AppContainer.module.css +18 -18
  253. package/lib/Avatar/Avatar.js +9 -9
  254. package/lib/Avatar/Avatar.module.css +175 -175
  255. package/lib/AvatarTeam/AvatarTeam.js +7 -7
  256. package/lib/AvatarTeam/AvatarTeam.module.css +189 -189
  257. package/lib/Button/Button.js +4 -4
  258. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +440 -468
  259. package/lib/Button/css/Button.module.css +525 -525
  260. package/lib/Button/props/defaultProps.js +1 -2
  261. package/lib/Button/props/propTypes.js +3 -1
  262. package/lib/Buttongroup/Buttongroup.js +1 -1
  263. package/lib/Buttongroup/Buttongroup.module.css +105 -105
  264. package/lib/Buttongroup/__tests__/__snapshots__/Buttongroup.spec.js.snap +191 -191
  265. package/lib/Card/Card.js +4 -4
  266. package/lib/Card/Card.module.css +20 -20
  267. package/lib/CheckBox/CheckBox.js +0 -0
  268. package/lib/CheckBox/CheckBox.module.css +157 -157
  269. package/lib/DateTime/CalendarView.js +0 -0
  270. package/lib/DateTime/DateTime.js +0 -0
  271. package/lib/DateTime/DateTime.module.css +237 -235
  272. package/lib/DateTime/DateWidget.js +2 -1
  273. package/lib/DateTime/DateWidget.module.css +38 -38
  274. package/lib/DateTime/YearView.js +0 -0
  275. package/lib/DateTime/YearView.module.css +98 -98
  276. package/lib/DateTime/common.js +0 -0
  277. package/lib/DateTime/dateFormatUtils/dayChange.js +3 -1
  278. package/lib/DateTime/dateFormatUtils/index.js +1 -1
  279. package/lib/DateTime/dateFormatUtils/monthChange.js +3 -1
  280. package/lib/DateTime/dateFormatUtils/timeChange.js +3 -3
  281. package/lib/DateTime/dateFormatUtils/yearChange.js +3 -1
  282. package/lib/DateTime/index.js +0 -0
  283. package/lib/DateTime/objectUtils.js +0 -0
  284. package/lib/DateTime/typeChecker.js +0 -0
  285. package/lib/DateTime/validator.js +0 -0
  286. package/lib/DropBox/DropBox.js +15 -15
  287. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +434 -434
  288. package/lib/DropBox/DropBoxPositionMapping.json +144 -144
  289. package/lib/DropBox/css/DropBox.module.css +58 -58
  290. package/lib/DropDown/DropDown.js +1 -6
  291. package/lib/DropDown/DropDown.module.css +5 -5
  292. package/lib/DropDown/DropDownHeading.js +0 -0
  293. package/lib/DropDown/DropDownHeading.module.css +53 -53
  294. package/lib/DropDown/DropDownItem.js +0 -0
  295. package/lib/DropDown/DropDownItem.module.css +94 -94
  296. package/lib/DropDown/DropDownSearch.js +0 -0
  297. package/lib/DropDown/DropDownSearch.module.css +14 -14
  298. package/lib/DropDown/DropDownSeparator.js +0 -0
  299. package/lib/DropDown/DropDownSeparator.module.css +7 -7
  300. package/lib/Heading/Heading.module.css +4 -4
  301. package/lib/Label/Label.js +0 -0
  302. package/lib/Label/Label.module.css +52 -52
  303. package/lib/Label/LabelColors.module.css +20 -20
  304. package/lib/Layout/Box.js +0 -0
  305. package/lib/Layout/Container.js +0 -0
  306. package/lib/Layout/Layout.module.css +335 -335
  307. package/lib/Layout/utils.js +0 -0
  308. package/lib/ListItem/ListItem.js +0 -0
  309. package/lib/ListItem/ListItem.module.css +216 -216
  310. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +12 -11
  311. package/lib/MultiSelect/AdvancedMultiSelect.js +4 -4
  312. package/lib/MultiSelect/MobileHeader/MobileHeader.js +62 -0
  313. package/lib/MultiSelect/MobileHeader/MobileHeader.module.css +16 -0
  314. package/lib/MultiSelect/MobileHeader/props/defaultProps.js +14 -0
  315. package/lib/MultiSelect/MobileHeader/props/propTypes.js +18 -0
  316. package/lib/MultiSelect/MultiSelect.js +121 -101
  317. package/lib/MultiSelect/MultiSelect.module.css +204 -207
  318. package/lib/MultiSelect/MultiSelectHeader.js +1 -2
  319. package/lib/MultiSelect/MultiSelectWithAvatar.js +18 -113
  320. package/lib/MultiSelect/SelectedOptions.module.css +15 -15
  321. package/lib/MultiSelect/props/defaultProps.js +3 -1
  322. package/lib/MultiSelect/props/propTypes.js +161 -197
  323. package/lib/PopOver/PopOver.module.css +8 -8
  324. package/lib/Popup/Popup.js +0 -0
  325. package/lib/Popup/PositionMapping.json +73 -73
  326. package/lib/Radio/Radio.js +0 -0
  327. package/lib/Radio/Radio.module.css +112 -112
  328. package/lib/Responsive/CustomResponsive.js +0 -0
  329. package/lib/Responsive/RefWrapper.js +2 -1
  330. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +6 -6
  331. package/lib/Ribbon/Ribbon.js +0 -0
  332. package/lib/Ribbon/Ribbon.module.css +454 -454
  333. package/lib/RippleEffect/RippleEffect.module.css +92 -92
  334. package/lib/Select/GroupSelect.js +2 -2
  335. package/lib/Select/Select.js +1 -2
  336. package/lib/Select/Select.module.css +108 -108
  337. package/lib/Select/SelectWithAvatar.js +2 -1
  338. package/lib/Select/SelectWithIcon.js +5 -3
  339. package/lib/Select/props/propTypes.js +12 -2
  340. package/lib/Stencils/Stencils.js +0 -0
  341. package/lib/Stencils/Stencils.module.css +96 -96
  342. package/lib/Switch/Switch.js +0 -0
  343. package/lib/Switch/Switch.module.css +127 -127
  344. package/lib/Tab/Tab.module.css +100 -100
  345. package/lib/Tab/TabContent.module.css +4 -4
  346. package/lib/Tab/Tabs.js +11 -11
  347. package/lib/Tab/Tabs.module.css +136 -136
  348. package/lib/Tag/Tag.js +8 -8
  349. package/lib/Tag/Tag.module.css +254 -254
  350. package/lib/TextBox/TextBox.js +10 -10
  351. package/lib/TextBox/TextBox.module.css +158 -158
  352. package/lib/TextBoxIcon/TextBoxIcon.js +0 -0
  353. package/lib/TextBoxIcon/TextBoxIcon.module.css +79 -79
  354. package/lib/Textarea/Textarea.js +0 -0
  355. package/lib/Textarea/Textarea.module.css +139 -139
  356. package/lib/Tooltip/Tooltip.module.css +140 -140
  357. package/lib/common/a11y.module.css +3 -3
  358. package/lib/common/animation.module.css +624 -624
  359. package/lib/common/avatarsizes.module.css +48 -48
  360. package/lib/common/basic.module.css +33 -33
  361. package/lib/common/basicReset.module.css +40 -40
  362. package/lib/common/boxShadow.module.css +33 -33
  363. package/lib/common/common.module.css +524 -524
  364. package/lib/common/customscroll.module.css +91 -91
  365. package/lib/common/reset.module.css +13 -13
  366. package/lib/common/transition.module.css +146 -146
  367. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -1
  368. package/lib/index.js +10 -1
  369. package/lib/semantic/Button/semanticButton.module.css +9 -9
  370. package/lib/utils/Common.js +5 -0
  371. package/lib/utils/dropDownUtils.js +0 -0
  372. package/lib/v1/Accordion/Accordion.js +98 -0
  373. package/lib/v1/Accordion/AccordionItem.js +68 -0
  374. package/lib/v1/Accordion/index.js +23 -0
  375. package/lib/v1/Animation/Animation.js +143 -0
  376. package/lib/v1/AppContainer/AppContainer.js +158 -0
  377. package/lib/v1/Avatar/Avatar.js +190 -0
  378. package/lib/v1/AvatarTeam/AvatarTeam.js +81 -0
  379. package/lib/v1/Button/Button.js +82 -0
  380. package/lib/v1/Buttongroup/Buttongroup.js +44 -0
  381. package/lib/v1/Card/Card.js +269 -0
  382. package/lib/v1/Card/index.js +37 -0
  383. package/lib/v1/CheckBox/CheckBox.js +166 -0
  384. package/lib/v1/DateTime/CalendarView.js +285 -0
  385. package/lib/v1/DateTime/DateTime.js +872 -0
  386. package/lib/v1/DateTime/DateTimePopupFooter.js +96 -0
  387. package/lib/v1/DateTime/DateTimePopupHeader.js +166 -0
  388. package/lib/v1/DateTime/DateWidget.js +1125 -0
  389. package/lib/v1/DateTime/DaysRow.js +80 -0
  390. package/lib/v1/DateTime/Time.js +254 -0
  391. package/lib/v1/DateTime/YearView.js +325 -0
  392. package/lib/v1/DateTime/index.js +15 -0
  393. package/lib/v1/DropBox/DropBox.js +119 -0
  394. package/lib/v1/DropBox/DropBoxElement/DropBoxElement.js +145 -0
  395. package/lib/v1/DropDown/DropDown.js +74 -0
  396. package/lib/v1/DropDown/DropDownHeading.js +47 -0
  397. package/lib/v1/DropDown/DropDownItem.js +75 -0
  398. package/lib/v1/DropDown/DropDownSearch.js +74 -0
  399. package/lib/v1/DropDown/DropDownSeparator.js +24 -0
  400. package/lib/v1/Heading/Heading.js +49 -0
  401. package/lib/v1/Label/Label.js +51 -0
  402. package/lib/v1/Layout/Box.js +128 -0
  403. package/lib/v1/Layout/Container.js +145 -0
  404. package/lib/v1/Layout/index.js +23 -0
  405. package/lib/v1/ListItem/ListContainer.js +120 -0
  406. package/lib/v1/ListItem/ListItem.js +138 -0
  407. package/lib/v1/ListItem/ListItemWithAvatar.js +162 -0
  408. package/lib/v1/ListItem/ListItemWithCheckBox.js +125 -0
  409. package/lib/v1/ListItem/ListItemWithIcon.js +143 -0
  410. package/lib/v1/ListItem/ListItemWithRadio.js +126 -0
  411. package/lib/v1/ListItem/index.js +55 -0
  412. package/lib/v1/Modal/Modal.js +212 -0
  413. package/lib/v1/MultiSelect/AdvancedGroupMultiSelect.js +1167 -0
  414. package/lib/v1/MultiSelect/AdvancedMultiSelect.js +634 -0
  415. package/lib/v1/MultiSelect/EmptyState.js +112 -0
  416. package/lib/v1/MultiSelect/MobileHeader/MobileHeader.js +62 -0
  417. package/lib/v1/MultiSelect/MultiSelect.js +1203 -0
  418. package/lib/v1/MultiSelect/MultiSelectHeader.js +78 -0
  419. package/lib/v1/MultiSelect/MultiSelectWithAvatar.js +272 -0
  420. package/lib/v1/MultiSelect/SelectedOptions.js +126 -0
  421. package/lib/v1/MultiSelect/Suggestions.js +195 -0
  422. package/lib/v1/MultiSelect/index.js +39 -0
  423. package/lib/v1/PopOver/PopOver.js +197 -0
  424. package/lib/v1/Popup/Popup.js +715 -0
  425. package/lib/v1/Provider/AvatarSize.js +24 -0
  426. package/lib/v1/Provider/Config.js +27 -0
  427. package/lib/v1/Provider/CssProvider.js +27 -0
  428. package/lib/v1/Provider/IdProvider.js +79 -0
  429. package/lib/v1/Provider/LibraryContext.js +76 -0
  430. package/lib/v1/Provider/LibraryContextInit.js +15 -0
  431. package/lib/v1/Provider/NumberGenerator/NumberGenerator.js +174 -0
  432. package/lib/v1/Provider/ZindexProvider.js +69 -0
  433. package/lib/v1/Provider/index.js +81 -0
  434. package/lib/v1/Radio/Radio.js +126 -0
  435. package/lib/v1/Responsive/CustomResponsive.js +242 -0
  436. package/lib/v1/Responsive/RefWrapper.js +57 -0
  437. package/lib/v1/Responsive/ResizeComponent.js +268 -0
  438. package/lib/v1/Responsive/ResizeObserver.js +168 -0
  439. package/lib/v1/Responsive/Responsive.js +274 -0
  440. package/lib/v1/Responsive/index.js +55 -0
  441. package/lib/v1/ResponsiveDropBox/ResponsiveDropBox.js +79 -0
  442. package/lib/v1/Ribbon/Ribbon.js +44 -0
  443. package/lib/v1/RippleEffect/RippleEffect.js +39 -0
  444. package/lib/v1/Select/GroupSelect.js +876 -0
  445. package/lib/v1/Select/Select.js +1012 -0
  446. package/lib/v1/Select/SelectWithAvatar.js +394 -0
  447. package/lib/v1/Select/SelectWithIcon.js +597 -0
  448. package/lib/v1/Select/index.js +39 -0
  449. package/lib/v1/Stencils/Stencils.js +43 -0
  450. package/lib/v1/Switch/Switch.js +108 -0
  451. package/lib/v1/Tab/Tab.js +132 -0
  452. package/lib/v1/Tab/TabContent.js +42 -0
  453. package/lib/v1/Tab/TabContentWrapper.js +42 -0
  454. package/lib/v1/Tab/TabWrapper.js +89 -0
  455. package/lib/v1/Tab/Tabs.js +680 -0
  456. package/lib/v1/Tab/index.js +47 -0
  457. package/lib/v1/Tag/Tag.js +154 -0
  458. package/lib/v1/TextBox/TextBox.js +168 -0
  459. package/lib/v1/TextBoxIcon/TextBoxIcon.js +196 -0
  460. package/lib/v1/Textarea/Textarea.js +118 -0
  461. package/lib/v1/Tooltip/Tooltip.js +586 -0
  462. package/lib/v1/Typography/Typography.js +56 -0
  463. package/lib/v1/Typography/css/Typography.module.css +376 -0
  464. package/lib/v1/Typography/css/cssJSLogic.js +41 -0
  465. package/lib/v1/Typography/css/letterSpacingMap.js +20 -0
  466. package/lib/v1/Typography/props/defaultProps.js +15 -0
  467. package/lib/v1/Typography/props/propTypes.js +35 -0
  468. package/lib/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +90 -0
  469. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +126 -0
  470. package/lib/v1/semantic/Button/Button.js +63 -0
  471. package/lib/v1/semantic/index.js +15 -0
  472. package/package.json +93 -93
  473. package/postPublish.js +8 -8
  474. package/prePublish.js +70 -70
  475. package/react-cli.config.js +23 -23
  476. package/result.json +1 -1
  477. package/unittest/index.html +1 -1
@@ -0,0 +1,66 @@
1
+ import { useNumberGenerator, getNumberGenerators } from './NumberGenerator/NumberGenerator';
2
+ import { getLibraryConfig } from './Config';
3
+ let globalId = getLibraryConfig('idCounter'),
4
+ deletedIndexes = [],
5
+ globalPrefix;
6
+ export function setGlobalIdPrefix(value) {
7
+ globalPrefix = value;
8
+ }
9
+ export function removeGlobalIdPrefix() {
10
+ globalPrefix = undefined;
11
+ }
12
+
13
+ function getGlobalIdPrefix() {
14
+ return globalPrefix;
15
+ }
16
+
17
+ function setGlobalId(id) {
18
+ globalId = id;
19
+ }
20
+
21
+ function getGlobalId() {
22
+ return globalId;
23
+ }
24
+
25
+ function setDeletedIndexes(array) {
26
+ deletedIndexes = array;
27
+ }
28
+
29
+ function getDeletedIndexes() {
30
+ return deletedIndexes;
31
+ }
32
+
33
+ function callback(_ref) {
34
+ let {
35
+ globalId,
36
+ deletedIndexes
37
+ } = _ref;
38
+ setGlobalId(globalId);
39
+ setDeletedIndexes(deletedIndexes);
40
+ }
41
+
42
+ export function useUniqueId(prefix) {
43
+ return useNumberGenerator({
44
+ getGlobalId,
45
+ prefix,
46
+ getGlobalPrefix: getGlobalIdPrefix,
47
+ getDeletedIndexes,
48
+ callback
49
+ });
50
+ }
51
+ export function getUniqueId(Component, prefix) {
52
+ return getNumberGenerators({
53
+ Component,
54
+ prefix,
55
+ getGlobalPrefix: getGlobalIdPrefix,
56
+ getGlobalId,
57
+ getDeletedIndexes,
58
+ callback
59
+ });
60
+ } // let Provider = {
61
+ // docs: {
62
+ // componentGroup: 'Provider',
63
+ // folderName: 'Functions'
64
+ // }
65
+ // };
66
+ // export { Provider };
@@ -0,0 +1,37 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import LibraryContextInit from './LibraryContextInit';
4
+ import { getLibraryConfig } from './Config';
5
+
6
+ const LibraryContextProvider = _ref => {
7
+ let {
8
+ isReducedMotion = getLibraryConfig('isReducedMotion'),
9
+ direction = getLibraryConfig('direction'),
10
+ children
11
+ } = _ref;
12
+ const [value, setValue] = useState({
13
+ isReducedMotion,
14
+ direction
15
+ });
16
+
17
+ function setGlobalContext(key, data) {
18
+ if (value[key] != data) {
19
+ setValue({ ...value,
20
+ [key]: data
21
+ });
22
+ }
23
+ }
24
+
25
+ return /*#__PURE__*/React.createElement(LibraryContextInit.Provider, {
26
+ value: { ...value,
27
+ setGlobalContext
28
+ }
29
+ }, children);
30
+ };
31
+
32
+ LibraryContextProvider.propTypes = {
33
+ children: PropTypes.node.isRequired,
34
+ isReducedMotion: PropTypes.bool,
35
+ direction: PropTypes.string
36
+ };
37
+ export default LibraryContextProvider;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ const LibraryContext = /*#__PURE__*/React.createContext();
3
+ export default LibraryContext;
@@ -0,0 +1,136 @@
1
+ import React, { useRef, useEffect } from 'react';
2
+ export function addGlobalId(globalId) {
3
+ if (Number.isSafeInteger(Number(globalId)) && Number.isSafeInteger(Number(globalId) + 1)) {
4
+ globalId = Number(globalId) + 1;
5
+ } else {
6
+ globalId = `${globalId}1`;
7
+ }
8
+
9
+ return globalId;
10
+ }
11
+
12
+ function decreaseGlobalId(number, globalId) {
13
+ if (`${number}` == `${globalId}`) {
14
+ if (Number.isSafeInteger(Number(globalId)) && Number.isSafeInteger(Number(globalId) - 1)) {
15
+ globalId = Number(globalId) - 1;
16
+ } else {
17
+ globalId = `${globalId}`;
18
+ globalId = globalId.substring(0, globalId.length - 1);
19
+ }
20
+
21
+ return {
22
+ isDeleted: true,
23
+ globalId
24
+ };
25
+ }
26
+
27
+ return {
28
+ isDeleted: false,
29
+ globalId
30
+ };
31
+ }
32
+
33
+ export function decreaseGlobalIds(numbers, deletedIndexes, globalId) {
34
+ deletedIndexes = [...deletedIndexes];
35
+ [...numbers].reverse().map(number => {
36
+ let result = decreaseGlobalId(number, globalId);
37
+ globalId = result.globalId;
38
+ !result.isDeleted && deletedIndexes.push(number);
39
+ });
40
+
41
+ for (; deletedIndexes.indexOf(globalId) != -1;) {
42
+ let presentHighValue = globalId;
43
+ let result = decreaseGlobalId(globalId, globalId);
44
+ globalId = result.globalId;
45
+ deletedIndexes = deletedIndexes.filter(ele => `${ele}` != `${presentHighValue}`);
46
+ }
47
+
48
+ return {
49
+ globalId,
50
+ deletedIndexes
51
+ };
52
+ }
53
+ export function useNumberGenerator(_ref) {
54
+ let {
55
+ getGlobalId,
56
+ prefix,
57
+ getGlobalPrefix,
58
+ getDeletedIndexes,
59
+ callback
60
+ } = _ref;
61
+ let presentValues = useRef([]),
62
+ presentIndex = useRef(0);
63
+ prefix = typeof prefix === 'undefined' ? '' : `${prefix}_`;
64
+ let globalPrefix = typeof getGlobalPrefix() === 'undefined' ? '' : `${getGlobalPrefix()}_`;
65
+
66
+ function getNextId() {
67
+ presentIndex.current = presentIndex.current + 1;
68
+ let currentIndex = presentIndex.current;
69
+ let isValuePresent = typeof presentValues.current[currentIndex] !== 'undefined';
70
+ let result = isValuePresent ? presentValues.current[currentIndex] : presentValues.current[currentIndex] = addGlobalId(getGlobalId());
71
+ !isValuePresent && callback({
72
+ globalId: result,
73
+ deletedIndexes: getDeletedIndexes()
74
+ });
75
+ return `${globalPrefix}${prefix}${presentValues.current[currentIndex]}`;
76
+ }
77
+
78
+ useEffect(() => {
79
+ presentValues.current = presentValues.current.filter((value, index) => index <= presentIndex.current);
80
+ });
81
+ useEffect(() => () => {
82
+ callback(decreaseGlobalIds(presentValues.current, getDeletedIndexes(), getGlobalId()));
83
+ }, []);
84
+ presentIndex.current = -1;
85
+ return getNextId;
86
+ }
87
+ export function getNumberGenerators(_ref2) {
88
+ let {
89
+ Component,
90
+ prefix,
91
+ getGlobalPrefix,
92
+ getGlobalId,
93
+ getDeletedIndexes,
94
+ callback
95
+ } = _ref2;
96
+ let presentIndex = 0,
97
+ presentValues = [],
98
+ {
99
+ name
100
+ } = Component.props;
101
+ let didUpdateRef = Component.componentDidUpdate ? Component.componentDidUpdate.bind(Component) : undefined,
102
+ renderRef = Component.render.bind(Component),
103
+ willUnMountRef = Component.componentWillUnmount ? Component.componentWillUnmount.bind(Component) : undefined;
104
+ prefix = typeof prefix !== 'undefined' ? `${prefix}_` : '';
105
+
106
+ Component.componentDidUpdate = function () {
107
+ didUpdateRef && didUpdateRef(...arguments);
108
+ presentValues = presentValues.filter((value, index) => index <= presentIndex);
109
+ };
110
+
111
+ Component.componentWillUnmount = function () {
112
+ callback(decreaseGlobalIds(presentValues, getDeletedIndexes(), getGlobalId()));
113
+ willUnMountRef && willUnMountRef();
114
+ didUpdateRef = null, renderRef = null, willUnMountRef = null;
115
+ };
116
+
117
+ Component.render = function () {
118
+ presentIndex = -1;
119
+ return renderRef();
120
+ };
121
+
122
+ function getNextId() {
123
+ presentIndex += 1;
124
+ let isValuePresent = typeof presentValues[presentIndex] !== 'undefined';
125
+ let result = isValuePresent ? presentValues[presentIndex] : presentValues[presentIndex] = addGlobalId(getGlobalId(getGlobalId()));
126
+ let globalPrefix = getGlobalPrefix();
127
+ globalPrefix = typeof globalPrefix === 'undefined' ? '' : `${globalPrefix}_`;
128
+ !isValuePresent && callback({
129
+ globalId: result,
130
+ deletedIndexes: getDeletedIndexes()
131
+ });
132
+ return `${globalPrefix}${prefix}${result}`;
133
+ }
134
+
135
+ return getNextId;
136
+ }
@@ -0,0 +1,57 @@
1
+ import { useNumberGenerator, getNumberGenerators } from './NumberGenerator/NumberGenerator';
2
+ import { getLibraryConfig } from './Config';
3
+ let globalId = getLibraryConfig('zindexCounter'),
4
+ deletedIndexes = [],
5
+ globalPrefix;
6
+ export function removeGlobalZIndexPrefix() {
7
+ globalPrefix = undefined;
8
+ }
9
+
10
+ function getGlobalZIndexPrefix() {
11
+ return globalPrefix;
12
+ }
13
+
14
+ export function setInitialZIndex(id) {
15
+ globalId = id;
16
+ }
17
+
18
+ function getGlobalId() {
19
+ return globalId;
20
+ }
21
+
22
+ function setDeletedIndexes(array) {
23
+ deletedIndexes = array;
24
+ }
25
+
26
+ function getDeletedIndexes() {
27
+ return deletedIndexes;
28
+ }
29
+
30
+ function callback(_ref) {
31
+ let {
32
+ globalId,
33
+ deletedIndexes
34
+ } = _ref;
35
+ setInitialZIndex(globalId);
36
+ setDeletedIndexes(deletedIndexes);
37
+ }
38
+
39
+ export function useZIndex(prefix) {
40
+ return useNumberGenerator({
41
+ getGlobalId,
42
+ prefix,
43
+ getGlobalPrefix: getGlobalZIndexPrefix,
44
+ getDeletedIndexes,
45
+ callback
46
+ });
47
+ }
48
+ export function getZIndex(Component, prefix) {
49
+ return getNumberGenerators({
50
+ Component,
51
+ prefix,
52
+ getGlobalPrefix: getGlobalZIndexPrefix,
53
+ getGlobalId,
54
+ getDeletedIndexes,
55
+ callback
56
+ });
57
+ }
@@ -0,0 +1,4 @@
1
+ export { getLibraryConfig, setLibraryConfig } from './Config';
2
+ export { default as LibraryContextProvider } from './LibraryContext';
3
+ export { removeGlobalZIndexPrefix, setInitialZIndex, useZIndex, getZIndex } from './ZindexProvider';
4
+ export { setGlobalIdPrefix, removeGlobalIdPrefix, useUniqueId, getUniqueId } from './IdProvider';
@@ -0,0 +1,115 @@
1
+ import React from 'react';
2
+ import { defaultProps } from '../../Radio/props/defaultProps';
3
+ import { propTypes } from '../../Radio/props/propTypes';
4
+ import Label from '../Label/Label';
5
+ import { Container, Box } from '../Layout';
6
+ import style from '../../Radio/Radio.module.css';
7
+
8
+ const Radio = props => {
9
+ let {
10
+ id,
11
+ name,
12
+ value,
13
+ checked,
14
+ disabled,
15
+ isReadOnly,
16
+ palette,
17
+ disabledTitle,
18
+ title,
19
+ text,
20
+ labelPalette,
21
+ size,
22
+ labelSize,
23
+ variant,
24
+ active,
25
+ isFilled,
26
+ customClass,
27
+ a11y
28
+ } = props;
29
+ let {
30
+ customRadioWrap = '',
31
+ customRadio = '',
32
+ customLabel = ''
33
+ } = customClass;
34
+ let accessMode = isReadOnly ? style.readonly : disabled ? style.disabled : style.pointer;
35
+ let toolTip = disabled ? disabledTitle : title ? title : null;
36
+ let {
37
+ ariaHidden,
38
+ role = 'radio',
39
+ ariaChecked = checked,
40
+ ariaLabel,
41
+ ariaLabelledby,
42
+ ariaReadonly = isReadOnly || disabled ? true : false
43
+ } = a11y;
44
+
45
+ function onChange(e) {
46
+ const {
47
+ onChange
48
+ } = props;
49
+ onChange && onChange(value, e);
50
+ }
51
+
52
+ return /*#__PURE__*/React.createElement(Container, {
53
+ dataId: value ? value.toLowerCase() : 'RadioComp',
54
+ isCover: false,
55
+ isInline: text ? false : true,
56
+ alignBox: "row",
57
+ align: "both",
58
+ className: `${style.container} ${active && !disabled ? style.active : ''} ${accessMode} ${isReadOnly || disabled ? '' : style.hoverEfffect} ${checked ? style.checked : ''} ${customRadioWrap}`,
59
+ "data-title": toolTip,
60
+ onClick: !isReadOnly && !disabled ? onChange : '',
61
+ "aria-checked": ariaChecked,
62
+ tabindex: isReadOnly || disabled || ariaHidden ? '-1' : '0',
63
+ role: role,
64
+ "aria-Hidden": ariaHidden,
65
+ "aria-label": ariaLabel,
66
+ "aria-labelledby": ariaLabelledby,
67
+ "aria-readonly": ariaReadonly
68
+ }, /*#__PURE__*/React.createElement(Box, {
69
+ className: `${style.radio} ${checked ? `${style[`rdBox${palette}`]}` : ''}
70
+ ${isReadOnly || disabled ? '' : `${style[`hover${palette}`]}`} ${style[size]} ${isFilled ? style.filled : ''} ${style[`centerPath${palette}`]} ${customRadio}`
71
+ }, /*#__PURE__*/React.createElement("input", {
72
+ type: "hidden",
73
+ id: id,
74
+ name: name,
75
+ value: value
76
+ }), /*#__PURE__*/React.createElement("label", {
77
+ className: `${style.radioLabel} ${accessMode}`
78
+ }, /*#__PURE__*/React.createElement("svg", {
79
+ xmlns: "http://www.w3.org/2000/svg",
80
+ viewBox: "0 0 40 40"
81
+ }, /*#__PURE__*/React.createElement("circle", {
82
+ cx: "20",
83
+ cy: "20",
84
+ r: "19",
85
+ className: `${style.rdBox}`
86
+ }), checked ? /*#__PURE__*/React.createElement("circle", {
87
+ cx: "20",
88
+ cy: "20",
89
+ r: "11.03",
90
+ className: `${style.centerPath}`
91
+ }) : null))), text && /*#__PURE__*/React.createElement(Box, {
92
+ flexible: true,
93
+ className: style.text
94
+ }, /*#__PURE__*/React.createElement(Label, {
95
+ text: text,
96
+ palette: disabled ? 'disable' : labelPalette,
97
+ size: labelSize,
98
+ type: "title",
99
+ clipped: true,
100
+ dataId: `${text}_label`,
101
+ variant: variant,
102
+ title: toolTip ? toolTip : text,
103
+ customClass: `${checked && active && !disabled ? `${style[`${palette}checkedActive`]}` : ''}
104
+ ${style[`${palette}Label`]} ${accessMode} ${customLabel}`
105
+ })));
106
+ };
107
+
108
+ export default Radio;
109
+ Radio.defaultProps = defaultProps;
110
+ Radio.propTypes = propTypes; // if (__DOCS__) {
111
+ // Radio.docs = {
112
+ // componentGroup: 'Form Elements',
113
+ // folderName: 'Style Guide'
114
+ // };
115
+ // }
@@ -0,0 +1,195 @@
1
+ import React, { useContext, useEffect, useState, useRef, useMemo } from 'react';
2
+ import { CustomResponsiveSender_defaultProps, CustomResponsiveReceiver_defaultProps } from '../../Responsive/props/defaultProps';
3
+ import { CustomResponsiveSender_propTypes, CustomResponsiveReceiver_propTypes } from '../../Responsive/props/propTypes';
4
+ import ResizeObserver from './ResizeObserver';
5
+ import DOMRefWrapper from './RefWrapper';
6
+ import shallowCompare from '../../Responsive/utils/shallowCompare';
7
+ import { isBreackPointMatched, Subscribale, isTouchDevice, windowResizeObserver } from '../../Responsive/sizeObservers';
8
+ import { ContextOptimizer } from '../../utils/ContextOptimizer'; // const commonBreakPoints = [ 480, 640, 768, 1024, 1440 ];
9
+ // const otherBreakPoints = [320, 360, 375, 720, 1280, 1600, 1920];
10
+ // defaultResponsiveId means if ResponsiveSender do not recive id This will be id
11
+
12
+ const defaultResponsiveId = 'parent_sender'; // validSizeResponsiveId means in some parent's height and with is caluclated ( readed )
13
+
14
+ const validSizeResponsiveId = 'valid_sender';
15
+ const ResponsiveContext = /*#__PURE__*/React.createContext({
16
+ [validSizeResponsiveId]: windowResizeObserver
17
+ });
18
+ export function ResponsiveSender(props) {
19
+ // variables
20
+ const {
21
+ children,
22
+ domRefKey,
23
+ responsiveId
24
+ } = props;
25
+
26
+ function init() {
27
+ let size = {
28
+ height: 0,
29
+ width: 0
30
+ };
31
+
32
+ function getSize() {
33
+ return size;
34
+ }
35
+
36
+ const childContext = {
37
+ resize: new Subscribale(),
38
+ getSize,
39
+ // TODO: rename isParentSize ==> isSizeReaded (or) isMySize (or) isOriginalSize
40
+ isParentSize: false
41
+ };
42
+
43
+ function onResize(newSize) {
44
+ childContext.isParentSize = true;
45
+ size = newSize;
46
+ setTimeout(() => {
47
+ childContext.resize.dispatch(newSize);
48
+ });
49
+ }
50
+
51
+ const observer = new ResizeObserver(onResize);
52
+
53
+ function containerRef(node) {
54
+ observer.replaceObservationElement(node);
55
+ }
56
+
57
+ return {
58
+ containerRef,
59
+ childContext
60
+ };
61
+ }
62
+
63
+ const {
64
+ containerRef,
65
+ childContext
66
+ } = useMemo(init, []);
67
+
68
+ function contextSelector(context) {
69
+ const totalContext = { ...context
70
+ };
71
+ totalContext[responsiveId] = childContext; // NOTE: this for fallback of if responsive receiver id wrong or not avelable Responcive id
72
+
73
+ totalContext[defaultResponsiveId] = childContext;
74
+
75
+ if (childContext.isParentSize) {
76
+ totalContext[validSizeResponsiveId] = childContext;
77
+ }
78
+
79
+ return totalContext;
80
+ }
81
+
82
+ return /*#__PURE__*/React.createElement(ContextOptimizer, {
83
+ Context: ResponsiveContext,
84
+ calculation: contextSelector
85
+ }, totalContext => /*#__PURE__*/React.createElement(ResponsiveContext.Provider, {
86
+ value: totalContext
87
+ }, /*#__PURE__*/React.createElement(DOMRefWrapper, {
88
+ domRefKey: domRefKey,
89
+ ref: containerRef
90
+ }, children)));
91
+ }
92
+ ResponsiveSender.defaultProps = { ...CustomResponsiveSender_defaultProps,
93
+ responsiveId: defaultResponsiveId
94
+ };
95
+ ResponsiveSender.contextType = ResponsiveContext;
96
+ ResponsiveSender.propTypes = CustomResponsiveSender_propTypes;
97
+ export function useResponsiveReceiver() {
98
+ let responsiveId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultResponsiveId;
99
+ let query = arguments.length > 1 ? arguments[1] : undefined;
100
+ const [, forceUpdate] = useState();
101
+ const totalContextData = useContext(ResponsiveContext);
102
+ const validSizeContextData = totalContextData[validSizeResponsiveId];
103
+ const contextData = totalContextData[responsiveId] || totalContextData[defaultResponsiveId] || validSizeContextData; // NOTE: this for fallback of if responsive receiver id wrong
104
+
105
+ const resizeHandlerRef = useRef();
106
+ const data = useRef();
107
+
108
+ function updateLatestData() {
109
+ const size = contextData.isParentSize ? contextData.getSize() : validSizeContextData.getSize();
110
+ const prevData = data.current;
111
+ data.current = query({
112
+ isTouchDevice,
113
+ isParentSize: contextData.isParentSize,
114
+ currentScreenSize: size,
115
+
116
+ mediaQueryOR(breakPointArray) {
117
+ return breakPointArray.some(breakPoint => {
118
+ const {
119
+ isHeight,
120
+ isWidth
121
+ } = isBreackPointMatched(breakPoint, size);
122
+ return isHeight || isWidth;
123
+ });
124
+ },
125
+
126
+ mediaQueryAND(breakPointArray) {
127
+ return breakPointArray.every(breakPoint => {
128
+ const {
129
+ isHeight,
130
+ isWidth
131
+ } = isBreackPointMatched(breakPoint, size);
132
+ return (isHeight === undefined ? true : isHeight) && (isWidth === undefined ? true : isWidth);
133
+ });
134
+ }
135
+
136
+ });
137
+ const isSameValues = shallowCompare(data.current, prevData);
138
+
139
+ if (isSameValues) {
140
+ data.current = prevData;
141
+ }
142
+
143
+ return isSameValues;
144
+ }
145
+
146
+ resizeHandlerRef.current = updateLatestData;
147
+ useEffect(() => {
148
+ function handleResize(size) {
149
+ const isSameValues = resizeHandlerRef.current(size);
150
+ !isSameValues && forceUpdate({});
151
+ }
152
+
153
+ contextData.resize.subscribe(handleResize);
154
+ return () => contextData.resize.unsubscribe(handleResize);
155
+ }, [contextData]); // const prevContextDataRef = useRef();
156
+ // function handleResize(size) {
157
+ // const prevData = data.current;
158
+ // resizeHandlerRef.current(size);
159
+ // const isSammeValues = shallowCompare(data.current, prevData);
160
+ // !isSammeValues && forceUpdate({});
161
+ // }
162
+ // if(prevContextDataRef.current !== contextData) {
163
+ // prevContextDataRef.current = contextData;
164
+ // contextData.resize.unsubscribe(handleResize);
165
+ // windowResizeObserver.unobserve(handleResize);
166
+ // if (contextData) {
167
+ // contextData.resize.subscribe(handleResize);
168
+ // } else {
169
+ // windowResizeObserver.observe(handleResize);
170
+ // }
171
+ // }
172
+ // NOTE: this call for we must give updated value
173
+
174
+ updateLatestData();
175
+ return data.current;
176
+ }
177
+ export function ResponsiveReceiver(_ref) {
178
+ let {
179
+ children,
180
+ responsiveId,
181
+ query,
182
+ eleRef,
183
+ domRefKey
184
+ } = _ref;
185
+ const data = useResponsiveReceiver(responsiveId, query);
186
+ const child = children(data);
187
+ return eleRef ? /*#__PURE__*/React.createElement(DOMRefWrapper, {
188
+ domRefKey: domRefKey,
189
+ ref: eleRef
190
+ }, child) : child;
191
+ }
192
+ ResponsiveReceiver.defaultProps = { ...CustomResponsiveReceiver_defaultProps,
193
+ responsiveId: defaultResponsiveId
194
+ };
195
+ ResponsiveReceiver.propTypes = CustomResponsiveReceiver_propTypes;
@@ -0,0 +1,39 @@
1
+ import React, { forwardRef, useCallback, Children, cloneElement } from 'react';
2
+ import PropTypes from 'prop-types';
3
+
4
+ function setRef(refFunc, value) {
5
+ if (typeof refFunc === 'function') {
6
+ refFunc(value);
7
+ } else if (refFunc instanceof Object) {
8
+ refFunc.current = value;
9
+ }
10
+ }
11
+
12
+ const DOMRefWrapper = /*#__PURE__*/forwardRef((props, refFunc) => {
13
+ const ele = Children.only(props.children);
14
+ const {
15
+ domRefKey = 'eleRef'
16
+ } = props; // NOTE: need to check for forward Ref function, Because in Froward Ref case refKey is "ref"
17
+
18
+ const refKey = typeof ele.type !== 'string' ? domRefKey : 'ref'; // const setAttribute = useCallback(node => {
19
+
20
+ const eleRealRefFunc = ele.props[refKey];
21
+ const setAttribute = useCallback(ref => {
22
+ setRef(refFunc, ref);
23
+ setRef(eleRealRefFunc, ref);
24
+ }, [refFunc, eleRealRefFunc]); // let refKey = typeof ele.type === 'string' ? 'ref' : 'eleRef';
25
+
26
+ let childProps = {
27
+ [refKey]: setAttribute
28
+ };
29
+ return /*#__PURE__*/cloneElement(ele, childProps);
30
+ });
31
+ DOMRefWrapper.defaultProps = {
32
+ domRefKey: 'eleRef'
33
+ };
34
+ DOMRefWrapper.propTypes = {
35
+ domRefKey: PropTypes.any,
36
+ children: PropTypes.any
37
+ };
38
+ DOMRefWrapper.displayName = 'DOMRefWrapper';
39
+ export default DOMRefWrapper;