@homecode/ui 4.18.16 → 4.18.17

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 (331) hide show
  1. package/dist/esm/index.js +83 -2
  2. package/dist/esm/node_modules/style-inject/dist/style-inject.es.js +28 -2
  3. package/dist/esm/src/components/AssistiveText/AssistiveText.js +10 -2
  4. package/dist/esm/src/components/AssistiveText/AssistiveText.styl.js +7 -2
  5. package/dist/esm/src/components/Button/Button.helpers.js +12 -2
  6. package/dist/esm/src/components/Button/Button.js +38 -2
  7. package/dist/esm/src/components/Button/Button.styl.js +7 -2
  8. package/dist/esm/src/components/ButtonGroup/ButtonGroup.js +10 -2
  9. package/dist/esm/src/components/ButtonGroup/ButtonGroup.styl.js +7 -2
  10. package/dist/esm/src/components/Calendar/Calendar.helpers.js +65 -2
  11. package/dist/esm/src/components/Calendar/Calendar.js +66 -2
  12. package/dist/esm/src/components/Calendar/Calendar.styl.js +7 -2
  13. package/dist/esm/src/components/Checkbox/Checkbox.js +48 -2
  14. package/dist/esm/src/components/Checkbox/Checkbox.styl.js +7 -2
  15. package/dist/esm/src/components/Container/Container.js +12 -2
  16. package/dist/esm/src/components/Container/Container.styl.js +7 -2
  17. package/dist/esm/src/components/DatePicker/DatePicker.helpers.js +31 -2
  18. package/dist/esm/src/components/DatePicker/DatePicker.js +47 -2
  19. package/dist/esm/src/components/DatePicker/DatePicker.styl.js +7 -2
  20. package/dist/esm/src/components/DatePickerInput/DatePickerInput.js +20 -2
  21. package/dist/esm/src/components/DatePickerInput/DatePickerInput.styl.js +7 -2
  22. package/dist/esm/src/components/DateTime/DateTime.js +17 -2
  23. package/dist/esm/src/components/Draggable/Draggable.js +136 -2
  24. package/dist/esm/src/components/Draggable/Draggable.styl.js +7 -2
  25. package/dist/esm/src/components/Expand/Expand.js +24 -2
  26. package/dist/esm/src/components/Expand/Expand.styl.js +7 -2
  27. package/dist/esm/src/components/Form/Form.helpers.js +42 -2
  28. package/dist/esm/src/components/Form/Form.js +286 -2
  29. package/dist/esm/src/components/Form/Form.styl.js +7 -2
  30. package/dist/esm/src/components/Form/Form.types.js +0 -1
  31. package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.js +8 -2
  32. package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.styl.js +7 -2
  33. package/dist/esm/src/components/Form/Validator.js +24 -6
  34. package/dist/esm/src/components/Gallery/Dots/Dots.js +9 -2
  35. package/dist/esm/src/components/Gallery/Dots/Dots.styl.js +7 -2
  36. package/dist/esm/src/components/Gallery/Gallery.js +180 -2
  37. package/dist/esm/src/components/Gallery/Gallery.styl.js +7 -2
  38. package/dist/esm/src/components/Heading/Heading.js +37 -2
  39. package/dist/esm/src/components/Heading/Heading.styl.js +7 -2
  40. package/dist/esm/src/components/Icon/Icon.js +27 -2
  41. package/dist/esm/src/components/Icon/Icon.styl.js +7 -2
  42. package/dist/esm/src/components/Icon/icons/avatar.svg.js +15 -2
  43. package/dist/esm/src/components/Icon/icons/brokenImage.svg.js +15 -2
  44. package/dist/esm/src/components/Icon/icons/check.svg.js +19 -2
  45. package/dist/esm/src/components/Icon/icons/chevronDown.svg.js +20 -2
  46. package/dist/esm/src/components/Icon/icons/chevronLeft.svg.js +20 -2
  47. package/dist/esm/src/components/Icon/icons/chevronRight.svg.js +20 -2
  48. package/dist/esm/src/components/Icon/icons/chevronUp.svg.js +20 -2
  49. package/dist/esm/src/components/Icon/icons/close.svg.js +15 -2
  50. package/dist/esm/src/components/Icon/icons/colors.svg.js +60 -2
  51. package/dist/esm/src/components/Icon/icons/copy.svg.js +15 -2
  52. package/dist/esm/src/components/Icon/icons/delete.svg.js +15 -2
  53. package/dist/esm/src/components/Icon/icons/draft.svg.js +15 -2
  54. package/dist/esm/src/components/Icon/icons/edit.svg.js +15 -2
  55. package/dist/esm/src/components/Icon/icons/email.svg.js +15 -2
  56. package/dist/esm/src/components/Icon/icons/externalLink.svg.js +15 -2
  57. package/dist/esm/src/components/Icon/icons/eye.svg.js +15 -2
  58. package/dist/esm/src/components/Icon/icons/fullscreen.svg.js +15 -2
  59. package/dist/esm/src/components/Icon/icons/fullscreenExit.svg.js +15 -2
  60. package/dist/esm/src/components/Icon/icons/function.svg.js +15 -2
  61. package/dist/esm/src/components/Icon/icons/gear.svg.js +21 -2
  62. package/dist/esm/src/components/Icon/icons/group.svg.js +15 -2
  63. package/dist/esm/src/components/Icon/icons/history.svg.js +17 -2
  64. package/dist/esm/src/components/Icon/icons/home.svg.js +19 -2
  65. package/dist/esm/src/components/Icon/icons/index.js +46 -2
  66. package/dist/esm/src/components/Icon/icons/instagram.svg.js +15 -2
  67. package/dist/esm/src/components/Icon/icons/link.svg.js +15 -2
  68. package/dist/esm/src/components/Icon/icons/loader.svg.js +45 -2
  69. package/dist/esm/src/components/Icon/icons/menu.svg.js +18 -2
  70. package/dist/esm/src/components/Icon/icons/mic.svg.js +15 -2
  71. package/dist/esm/src/components/Icon/icons/minus.svg.js +15 -2
  72. package/dist/esm/src/components/Icon/icons/moreHorizontal.svg.js +15 -2
  73. package/dist/esm/src/components/Icon/icons/moreVertical.svg.js +15 -2
  74. package/dist/esm/src/components/Icon/icons/output.svg.js +15 -2
  75. package/dist/esm/src/components/Icon/icons/plus.svg.js +15 -2
  76. package/dist/esm/src/components/Icon/icons/redo.svg.js +15 -2
  77. package/dist/esm/src/components/Icon/icons/requiredStar.svg.js +15 -2
  78. package/dist/esm/src/components/Icon/icons/save.svg.js +17 -2
  79. package/dist/esm/src/components/Icon/icons/send.svg.js +16 -2
  80. package/dist/esm/src/components/Icon/icons/settings.svg.js +52 -2
  81. package/dist/esm/src/components/Icon/icons/shoppingBag.svg.js +17 -2
  82. package/dist/esm/src/components/Icon/icons/table.svg.js +15 -2
  83. package/dist/esm/src/components/Icon/icons/telegram.svg.js +19 -2
  84. package/dist/esm/src/components/Icon/icons/undo.svg.js +15 -2
  85. package/dist/esm/src/components/Input/Input.js +343 -2
  86. package/dist/esm/src/components/Input/Input.styl.js +7 -2
  87. package/dist/esm/src/components/InputFile/InputFile.js +295 -2
  88. package/dist/esm/src/components/InputFile/InputFile.styl.js +7 -2
  89. package/dist/esm/src/components/InputFile/InputFile.types.js +0 -1
  90. package/dist/esm/src/components/InputFile/Item/Item.js +18 -2
  91. package/dist/esm/src/components/InputFile/Item/Item.styl.js +7 -2
  92. package/dist/esm/src/components/Label/Label.constants.json.js +8 -2
  93. package/dist/esm/src/components/Label/Label.helpers.js +35 -2
  94. package/dist/esm/src/components/Label/Label.js +58 -2
  95. package/dist/esm/src/components/Label/Label.styl.js +7 -2
  96. package/dist/esm/src/components/Lazy/Lazy.js +65 -2
  97. package/dist/esm/src/components/LightBox/LightBox.js +28 -2
  98. package/dist/esm/src/components/LightBox/LightBox.styl.js +7 -2
  99. package/dist/esm/src/components/Notifications/Notifications.constants.json.js +6 -2
  100. package/dist/esm/src/components/Notifications/Notifications.js +67 -2
  101. package/dist/esm/src/components/Notifications/Notifications.styl.js +7 -2
  102. package/dist/esm/src/components/Notifications/store.js +62 -2
  103. package/dist/esm/src/components/Paranja/Paranja.js +14 -2
  104. package/dist/esm/src/components/Paranja/Paranja.styl.js +7 -2
  105. package/dist/esm/src/components/Popup/Popup.helpers.js +31 -2
  106. package/dist/esm/src/components/Popup/Popup.js +397 -2
  107. package/dist/esm/src/components/Popup/Popup.styl.js +7 -2
  108. package/dist/esm/src/components/PopupMenu/PopupMenu.js +15 -2
  109. package/dist/esm/src/components/PopupMenu/PopupMenu.styl.js +7 -2
  110. package/dist/esm/src/components/Portal/Portal.js +19 -2
  111. package/dist/esm/src/components/RequiredStar/RequiredStar.js +12 -2
  112. package/dist/esm/src/components/RequiredStar/RequiredStar.styl.js +7 -2
  113. package/dist/esm/src/components/Router/Link/Link.js +61 -2
  114. package/dist/esm/src/components/Router/Link/Link.styl.js +7 -2
  115. package/dist/esm/src/components/Router/Redirect.js +12 -2
  116. package/dist/esm/src/components/Router/Route.js +4 -2
  117. package/dist/esm/src/components/Router/Router.helpers.js +33 -2
  118. package/dist/esm/src/components/Router/Router.js +68 -2
  119. package/dist/esm/src/components/Router/context.js +5 -2
  120. package/dist/esm/src/components/Router/store.js +55 -2
  121. package/dist/esm/src/components/Scroll/Scroll.js +274 -2
  122. package/dist/esm/src/components/Scroll/Scroll.styl.js +7 -2
  123. package/dist/esm/src/components/Select/Select.helpers.js +37 -2
  124. package/dist/esm/src/components/Select/Select.js +585 -2
  125. package/dist/esm/src/components/Select/Select.styl.js +7 -2
  126. package/dist/esm/src/components/Spinner/Spinner.js +11 -2
  127. package/dist/esm/src/components/Spinner/Spinner.styl.js +7 -2
  128. package/dist/esm/src/components/Spinner/spinner.svg.js +24 -2
  129. package/dist/esm/src/components/Table/Table.js +24 -2
  130. package/dist/esm/src/components/Table/Table.styl.js +7 -2
  131. package/dist/esm/src/components/Tabs/Tabs.js +43 -2
  132. package/dist/esm/src/components/Tabs/Tabs.styl.js +7 -2
  133. package/dist/esm/src/components/Text/Text.js +44 -2
  134. package/dist/esm/src/components/Text/Text.styl.js +7 -2
  135. package/dist/esm/src/components/Theme/Theme.defaults.js +50 -2
  136. package/dist/esm/src/components/Theme/Theme.helpers.js +67 -2
  137. package/dist/esm/src/components/Theme/Theme.js +13 -2
  138. package/dist/esm/src/components/VH/VH.js +33 -2
  139. package/dist/esm/src/components/Virtualized/List/List.js +124 -2
  140. package/dist/esm/src/components/Virtualized/List/List.styl.js +7 -2
  141. package/dist/esm/src/components/Virtualized/List/ListScroll.js +21 -2
  142. package/dist/esm/src/components/Virtualized/List/ListScroll.styl.js +7 -2
  143. package/dist/esm/src/components/Virtualized/Virtualized.helpers.js +14 -2
  144. package/dist/esm/src/components/Virtualized/Virtualized.js +200 -2
  145. package/dist/esm/src/components/Virtualized/Virtualized.styl.js +7 -2
  146. package/dist/esm/src/components/Virtualized/Virtualized.types.js +0 -1
  147. package/dist/esm/src/services/i18n.js +68 -2
  148. package/dist/esm/src/tools/array.js +60 -2
  149. package/dist/esm/src/tools/config.js +9 -2
  150. package/dist/esm/src/tools/date.js +11 -2
  151. package/dist/esm/src/tools/debounce.js +11 -2
  152. package/dist/esm/src/tools/dom.js +46 -2
  153. package/dist/esm/src/tools/env.js +3 -2
  154. package/dist/esm/src/tools/file.js +11 -2
  155. package/dist/esm/src/tools/localStorage.js +31 -2
  156. package/dist/esm/src/tools/number.js +27 -2
  157. package/dist/esm/src/tools/object.js +5 -2
  158. package/dist/esm/src/tools/queryParams.js +20 -2
  159. package/dist/esm/src/tools/rangeMap.js +3 -2
  160. package/dist/esm/src/tools/resizeObserver.js +68 -2
  161. package/dist/esm/src/tools/scroll.js +41 -2
  162. package/dist/esm/src/tools/string.js +7 -2
  163. package/dist/esm/src/tools/throttle.js +30 -2
  164. package/dist/esm/src/tools/uid.js +7 -2
  165. package/dist/esm/types/src/components/Icon/Icon.d.ts +3 -9
  166. package/dist/esm/types/src/components/Icon/Icon.example.d.ts +1 -0
  167. package/package.json +1 -1
  168. package/dist/esm/index.js.map +0 -1
  169. package/dist/esm/node_modules/style-inject/dist/style-inject.es.js.map +0 -1
  170. package/dist/esm/src/components/AssistiveText/AssistiveText.js.map +0 -1
  171. package/dist/esm/src/components/AssistiveText/AssistiveText.styl.js.map +0 -1
  172. package/dist/esm/src/components/Button/Button.helpers.js.map +0 -1
  173. package/dist/esm/src/components/Button/Button.js.map +0 -1
  174. package/dist/esm/src/components/Button/Button.styl.js.map +0 -1
  175. package/dist/esm/src/components/ButtonGroup/ButtonGroup.js.map +0 -1
  176. package/dist/esm/src/components/ButtonGroup/ButtonGroup.styl.js.map +0 -1
  177. package/dist/esm/src/components/Calendar/Calendar.helpers.js.map +0 -1
  178. package/dist/esm/src/components/Calendar/Calendar.js.map +0 -1
  179. package/dist/esm/src/components/Calendar/Calendar.styl.js.map +0 -1
  180. package/dist/esm/src/components/Checkbox/Checkbox.js.map +0 -1
  181. package/dist/esm/src/components/Checkbox/Checkbox.styl.js.map +0 -1
  182. package/dist/esm/src/components/Container/Container.js.map +0 -1
  183. package/dist/esm/src/components/Container/Container.styl.js.map +0 -1
  184. package/dist/esm/src/components/DatePicker/DatePicker.helpers.js.map +0 -1
  185. package/dist/esm/src/components/DatePicker/DatePicker.js.map +0 -1
  186. package/dist/esm/src/components/DatePicker/DatePicker.styl.js.map +0 -1
  187. package/dist/esm/src/components/DatePickerInput/DatePickerInput.js.map +0 -1
  188. package/dist/esm/src/components/DatePickerInput/DatePickerInput.styl.js.map +0 -1
  189. package/dist/esm/src/components/DateTime/DateTime.js.map +0 -1
  190. package/dist/esm/src/components/Draggable/Draggable.js.map +0 -1
  191. package/dist/esm/src/components/Draggable/Draggable.styl.js.map +0 -1
  192. package/dist/esm/src/components/Expand/Expand.js.map +0 -1
  193. package/dist/esm/src/components/Expand/Expand.styl.js.map +0 -1
  194. package/dist/esm/src/components/Form/Form.helpers.js.map +0 -1
  195. package/dist/esm/src/components/Form/Form.js.map +0 -1
  196. package/dist/esm/src/components/Form/Form.styl.js.map +0 -1
  197. package/dist/esm/src/components/Form/Form.types.js.map +0 -1
  198. package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.js.map +0 -1
  199. package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.styl.js.map +0 -1
  200. package/dist/esm/src/components/Form/Validator.js.map +0 -1
  201. package/dist/esm/src/components/Gallery/Dots/Dots.js.map +0 -1
  202. package/dist/esm/src/components/Gallery/Dots/Dots.styl.js.map +0 -1
  203. package/dist/esm/src/components/Gallery/Gallery.js.map +0 -1
  204. package/dist/esm/src/components/Gallery/Gallery.styl.js.map +0 -1
  205. package/dist/esm/src/components/Heading/Heading.js.map +0 -1
  206. package/dist/esm/src/components/Heading/Heading.styl.js.map +0 -1
  207. package/dist/esm/src/components/Icon/Icon.js.map +0 -1
  208. package/dist/esm/src/components/Icon/Icon.styl.js.map +0 -1
  209. package/dist/esm/src/components/Icon/icons/avatar.svg.js.map +0 -1
  210. package/dist/esm/src/components/Icon/icons/brokenImage.svg.js.map +0 -1
  211. package/dist/esm/src/components/Icon/icons/check.svg.js.map +0 -1
  212. package/dist/esm/src/components/Icon/icons/chevronDown.svg.js.map +0 -1
  213. package/dist/esm/src/components/Icon/icons/chevronLeft.svg.js.map +0 -1
  214. package/dist/esm/src/components/Icon/icons/chevronRight.svg.js.map +0 -1
  215. package/dist/esm/src/components/Icon/icons/chevronUp.svg.js.map +0 -1
  216. package/dist/esm/src/components/Icon/icons/close.svg.js.map +0 -1
  217. package/dist/esm/src/components/Icon/icons/colors.svg.js.map +0 -1
  218. package/dist/esm/src/components/Icon/icons/copy.svg.js.map +0 -1
  219. package/dist/esm/src/components/Icon/icons/delete.svg.js.map +0 -1
  220. package/dist/esm/src/components/Icon/icons/draft.svg.js.map +0 -1
  221. package/dist/esm/src/components/Icon/icons/edit.svg.js.map +0 -1
  222. package/dist/esm/src/components/Icon/icons/email.svg.js.map +0 -1
  223. package/dist/esm/src/components/Icon/icons/externalLink.svg.js.map +0 -1
  224. package/dist/esm/src/components/Icon/icons/eye.svg.js.map +0 -1
  225. package/dist/esm/src/components/Icon/icons/fullscreen.svg.js.map +0 -1
  226. package/dist/esm/src/components/Icon/icons/fullscreenExit.svg.js.map +0 -1
  227. package/dist/esm/src/components/Icon/icons/function.svg.js.map +0 -1
  228. package/dist/esm/src/components/Icon/icons/gear.svg.js.map +0 -1
  229. package/dist/esm/src/components/Icon/icons/group.svg.js.map +0 -1
  230. package/dist/esm/src/components/Icon/icons/history.svg.js.map +0 -1
  231. package/dist/esm/src/components/Icon/icons/home.svg.js.map +0 -1
  232. package/dist/esm/src/components/Icon/icons/index.js.map +0 -1
  233. package/dist/esm/src/components/Icon/icons/instagram.svg.js.map +0 -1
  234. package/dist/esm/src/components/Icon/icons/link.svg.js.map +0 -1
  235. package/dist/esm/src/components/Icon/icons/loader.svg.js.map +0 -1
  236. package/dist/esm/src/components/Icon/icons/menu.svg.js.map +0 -1
  237. package/dist/esm/src/components/Icon/icons/mic.svg.js.map +0 -1
  238. package/dist/esm/src/components/Icon/icons/minus.svg.js.map +0 -1
  239. package/dist/esm/src/components/Icon/icons/moreHorizontal.svg.js.map +0 -1
  240. package/dist/esm/src/components/Icon/icons/moreVertical.svg.js.map +0 -1
  241. package/dist/esm/src/components/Icon/icons/output.svg.js.map +0 -1
  242. package/dist/esm/src/components/Icon/icons/plus.svg.js.map +0 -1
  243. package/dist/esm/src/components/Icon/icons/redo.svg.js.map +0 -1
  244. package/dist/esm/src/components/Icon/icons/requiredStar.svg.js.map +0 -1
  245. package/dist/esm/src/components/Icon/icons/save.svg.js.map +0 -1
  246. package/dist/esm/src/components/Icon/icons/send.svg.js.map +0 -1
  247. package/dist/esm/src/components/Icon/icons/settings.svg.js.map +0 -1
  248. package/dist/esm/src/components/Icon/icons/shoppingBag.svg.js.map +0 -1
  249. package/dist/esm/src/components/Icon/icons/table.svg.js.map +0 -1
  250. package/dist/esm/src/components/Icon/icons/telegram.svg.js.map +0 -1
  251. package/dist/esm/src/components/Icon/icons/undo.svg.js.map +0 -1
  252. package/dist/esm/src/components/Input/Input.js.map +0 -1
  253. package/dist/esm/src/components/Input/Input.styl.js.map +0 -1
  254. package/dist/esm/src/components/InputFile/InputFile.js.map +0 -1
  255. package/dist/esm/src/components/InputFile/InputFile.styl.js.map +0 -1
  256. package/dist/esm/src/components/InputFile/InputFile.types.js.map +0 -1
  257. package/dist/esm/src/components/InputFile/Item/Item.js.map +0 -1
  258. package/dist/esm/src/components/InputFile/Item/Item.styl.js.map +0 -1
  259. package/dist/esm/src/components/Label/Label.constants.json.js.map +0 -1
  260. package/dist/esm/src/components/Label/Label.helpers.js.map +0 -1
  261. package/dist/esm/src/components/Label/Label.js.map +0 -1
  262. package/dist/esm/src/components/Label/Label.styl.js.map +0 -1
  263. package/dist/esm/src/components/Lazy/Lazy.js.map +0 -1
  264. package/dist/esm/src/components/LightBox/LightBox.js.map +0 -1
  265. package/dist/esm/src/components/LightBox/LightBox.styl.js.map +0 -1
  266. package/dist/esm/src/components/Notifications/Notifications.constants.json.js.map +0 -1
  267. package/dist/esm/src/components/Notifications/Notifications.js.map +0 -1
  268. package/dist/esm/src/components/Notifications/Notifications.styl.js.map +0 -1
  269. package/dist/esm/src/components/Notifications/store.js.map +0 -1
  270. package/dist/esm/src/components/Paranja/Paranja.js.map +0 -1
  271. package/dist/esm/src/components/Paranja/Paranja.styl.js.map +0 -1
  272. package/dist/esm/src/components/Popup/Popup.helpers.js.map +0 -1
  273. package/dist/esm/src/components/Popup/Popup.js.map +0 -1
  274. package/dist/esm/src/components/Popup/Popup.styl.js.map +0 -1
  275. package/dist/esm/src/components/PopupMenu/PopupMenu.js.map +0 -1
  276. package/dist/esm/src/components/PopupMenu/PopupMenu.styl.js.map +0 -1
  277. package/dist/esm/src/components/Portal/Portal.js.map +0 -1
  278. package/dist/esm/src/components/RequiredStar/RequiredStar.js.map +0 -1
  279. package/dist/esm/src/components/RequiredStar/RequiredStar.styl.js.map +0 -1
  280. package/dist/esm/src/components/Router/Link/Link.js.map +0 -1
  281. package/dist/esm/src/components/Router/Link/Link.styl.js.map +0 -1
  282. package/dist/esm/src/components/Router/Redirect.js.map +0 -1
  283. package/dist/esm/src/components/Router/Route.js.map +0 -1
  284. package/dist/esm/src/components/Router/Router.helpers.js.map +0 -1
  285. package/dist/esm/src/components/Router/Router.js.map +0 -1
  286. package/dist/esm/src/components/Router/context.js.map +0 -1
  287. package/dist/esm/src/components/Router/store.js.map +0 -1
  288. package/dist/esm/src/components/Scroll/Scroll.js.map +0 -1
  289. package/dist/esm/src/components/Scroll/Scroll.styl.js.map +0 -1
  290. package/dist/esm/src/components/Select/Select.helpers.js.map +0 -1
  291. package/dist/esm/src/components/Select/Select.js.map +0 -1
  292. package/dist/esm/src/components/Select/Select.styl.js.map +0 -1
  293. package/dist/esm/src/components/Spinner/Spinner.js.map +0 -1
  294. package/dist/esm/src/components/Spinner/Spinner.styl.js.map +0 -1
  295. package/dist/esm/src/components/Spinner/spinner.svg.js.map +0 -1
  296. package/dist/esm/src/components/Table/Table.js.map +0 -1
  297. package/dist/esm/src/components/Table/Table.styl.js.map +0 -1
  298. package/dist/esm/src/components/Tabs/Tabs.js.map +0 -1
  299. package/dist/esm/src/components/Tabs/Tabs.styl.js.map +0 -1
  300. package/dist/esm/src/components/Text/Text.js.map +0 -1
  301. package/dist/esm/src/components/Text/Text.styl.js.map +0 -1
  302. package/dist/esm/src/components/Theme/Theme.defaults.js.map +0 -1
  303. package/dist/esm/src/components/Theme/Theme.helpers.js.map +0 -1
  304. package/dist/esm/src/components/Theme/Theme.js.map +0 -1
  305. package/dist/esm/src/components/VH/VH.js.map +0 -1
  306. package/dist/esm/src/components/Virtualized/List/List.js.map +0 -1
  307. package/dist/esm/src/components/Virtualized/List/List.styl.js.map +0 -1
  308. package/dist/esm/src/components/Virtualized/List/ListScroll.js.map +0 -1
  309. package/dist/esm/src/components/Virtualized/List/ListScroll.styl.js.map +0 -1
  310. package/dist/esm/src/components/Virtualized/Virtualized.helpers.js.map +0 -1
  311. package/dist/esm/src/components/Virtualized/Virtualized.js.map +0 -1
  312. package/dist/esm/src/components/Virtualized/Virtualized.styl.js.map +0 -1
  313. package/dist/esm/src/components/Virtualized/Virtualized.types.js.map +0 -1
  314. package/dist/esm/src/services/i18n.js.map +0 -1
  315. package/dist/esm/src/tools/array.js.map +0 -1
  316. package/dist/esm/src/tools/config.js.map +0 -1
  317. package/dist/esm/src/tools/date.js.map +0 -1
  318. package/dist/esm/src/tools/debounce.js.map +0 -1
  319. package/dist/esm/src/tools/dom.js.map +0 -1
  320. package/dist/esm/src/tools/env.js.map +0 -1
  321. package/dist/esm/src/tools/file.js.map +0 -1
  322. package/dist/esm/src/tools/localStorage.js.map +0 -1
  323. package/dist/esm/src/tools/number.js.map +0 -1
  324. package/dist/esm/src/tools/object.js.map +0 -1
  325. package/dist/esm/src/tools/queryParams.js.map +0 -1
  326. package/dist/esm/src/tools/rangeMap.js.map +0 -1
  327. package/dist/esm/src/tools/resizeObserver.js.map +0 -1
  328. package/dist/esm/src/tools/scroll.js.map +0 -1
  329. package/dist/esm/src/tools/string.js.map +0 -1
  330. package/dist/esm/src/tools/throttle.js.map +0 -1
  331. package/dist/esm/src/tools/uid.js.map +0 -1
@@ -1,2 +1,67 @@
1
- import{createElement,Component}from"react";import{jsx,jsxs}from"react/jsx-runtime";import cn from"classnames";import{withStore}from"justorm/react";import{Icon}from"../Icon/Icon.js";import{Button}from"../Button/Button.js";import{Scroll}from"../Scroll/Scroll.js";import STORE from"./store.js";import S from"./Notifications.styl.js";function getTouchPos(t){var{clientX:t,clientY:o}=t.targetTouches[0];return{x:t,y:o}}function getDeltaPos(t,o){return{x:Math.abs(o.x-t.x),y:Math.abs(o.y-t.y)}}const TOUCH_MOVE_TRESHOLD=50;class Item extends Component{startPos=null;onTouchStart=t=>{this.startPos=getTouchPos(t)};onTouchMove=t=>{var o=this.props["unpause"];this.startPos&&(t.stopPropagation(),t=getTouchPos(t),(t=getDeltaPos(this.startPos,t)).x>t.y)&&t.x>TOUCH_MOVE_TRESHOLD&&(o(),this.closeMe())};onTouchEnd=()=>{var t=this.props["unpause"];t(),this.startPos=null};onTouchCancel=()=>this.startPos=null;closeMe=()=>{var{id:t,close:o}=this.props;o(t)};render(){var{type:t="default",title:o,content:s,visible:e,pause:n,unpause:i}=this.props,t=cn(S.item,S["type-"+t],e&&S.visible);return jsx("div",{className:t,onMouseOver:n,onFocus:n,onTouchStart:this.onTouchStart,onTouchMove:this.onTouchMove,onMouseOut:i,onBlur:i,onTouchEnd:this.onTouchEnd,onTouchCancel:this.onTouchCancel,children:jsxs("div",{className:S.itemInner,children:[(o||s)&&jsxs("div",{className:S.text,children:[o&&jsx("div",{className:S.title,children:o}),s&&jsx("div",{className:S.content,children:s})]}),jsx(Button,{className:S.close,variant:"clear",square:!0,onClick:this.closeMe,children:jsx(Icon,{type:"close",size:"s"})})]})})}}const NotificationsStore=STORE,Notifications=withStore({notifications:["items","data"]})(function({store:t,...o}){t=t.notifications;const{items:s,data:e,pause:n,unpause:i,close:r}=t,c={pause:n,unpause:i,close:r};t=cn(S.root,0===s.length&&S.empty);return jsx(Scroll,{...o,y:!0,size:"s",className:t,innerClassName:S.inner,offset:{y:{before:22,after:22}},children:s.map(t=>createElement(Item,{...e[t],...c,id:t,key:t}))})});export{Notifications,NotificationsStore};
2
- //# sourceMappingURL=Notifications.js.map
1
+ import { createElement, Component } from 'react';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import cn from 'classnames';
4
+ import { withStore } from 'justorm/react';
5
+ import { Icon } from '../Icon/Icon.js';
6
+ import { Button } from '../Button/Button.js';
7
+ import { Scroll } from '../Scroll/Scroll.js';
8
+ import STORE from './store.js';
9
+ import S from './Notifications.styl.js';
10
+
11
+ function getTouchPos(e) {
12
+ const { clientX: x, clientY: y } = e.targetTouches[0];
13
+ return { x, y };
14
+ }
15
+ function getDeltaPos(p1, p2) {
16
+ return {
17
+ x: Math.abs(p2.x - p1.x),
18
+ y: Math.abs(p2.y - p1.y),
19
+ };
20
+ }
21
+ const TOUCH_MOVE_TRESHOLD = 50;
22
+ class Item extends Component {
23
+ startPos = null;
24
+ onTouchStart = e => {
25
+ this.startPos = getTouchPos(e);
26
+ };
27
+ onTouchMove = e => {
28
+ const { unpause } = this.props;
29
+ if (!this.startPos)
30
+ return;
31
+ // e.preventDefault();
32
+ e.stopPropagation();
33
+ const pos = getTouchPos(e);
34
+ const delta = getDeltaPos(this.startPos, pos);
35
+ if (delta.x > delta.y && delta.x > TOUCH_MOVE_TRESHOLD) {
36
+ unpause();
37
+ this.closeMe();
38
+ }
39
+ };
40
+ onTouchEnd = () => {
41
+ const { unpause } = this.props;
42
+ unpause();
43
+ this.startPos = null;
44
+ };
45
+ onTouchCancel = () => (this.startPos = null);
46
+ closeMe = () => {
47
+ const { id, close } = this.props;
48
+ close(id);
49
+ };
50
+ render() {
51
+ const { type = 'default', title, content, visible, pause, unpause, } = this.props;
52
+ const classes = cn(S.item, S[`type-${type}`], visible && S.visible);
53
+ return (jsx("div", { className: classes, onMouseOver: pause, onFocus: pause, onTouchStart: this.onTouchStart, onTouchMove: this.onTouchMove, onMouseOut: unpause, onBlur: unpause, onTouchEnd: this.onTouchEnd, onTouchCancel: this.onTouchCancel, children: jsxs("div", { className: S.itemInner, children: [(title || content) && (jsxs("div", { className: S.text, children: [title && jsx("div", { className: S.title, children: title }), content && jsx("div", { className: S.content, children: content })] })), jsx(Button, { className: S.close, variant: "clear", square: true, onClick: this.closeMe, children: jsx(Icon, { type: "close", size: "s" }) })] }) }));
54
+ }
55
+ }
56
+ const NotificationsStore = STORE;
57
+ const Notifications = withStore({
58
+ notifications: ['items', 'data'],
59
+ })(function Notifications({ store, ...rest }) {
60
+ const { notifications } = store;
61
+ const { items, data, pause, unpause, close } = notifications;
62
+ const api = { pause, unpause, close };
63
+ const classes = cn(S.root, items.length === 0 && S.empty);
64
+ return (jsx(Scroll, { ...rest, y: true, size: "s", className: classes, innerClassName: S.inner, offset: { y: { before: 22, after: 22 } }, children: items.map(id => (createElement(Item, { ...data[id], ...api, id: id, key: id }))) }));
65
+ });
66
+
67
+ export { Notifications, NotificationsStore };
@@ -1,2 +1,7 @@
1
- import styleInject from"../../../node_modules/style-inject/dist/style-inject.es.js";var css_248z=".Notifications_root__S3ujN{max-height:calc(var(--vh)*100);overflow:hidden;position:fixed;right:0;top:0;transform:translateZ(0);transition:right .3s ease-out;width:320px;z-index:20}.Notifications_inner__6v9e3{padding:var(--indent-m)}.Notifications_empty__zCpOA{pointer-events:none}.Notifications_itemInner__nEYAl,.Notifications_item__I3Up4{border-radius:var(--border-radius-l)}.Notifications_item__I3Up4{-webkit-backface-visibility:hidden;backface-visibility:hidden;left:100%;max-height:0;max-width:100%;opacity:0;position:relative;transition:all .3s ease-out;width:300px}.Notifications_item__I3Up4+.Notifications_item__I3Up4{padding-top:10px}.Notifications_item__I3Up4:hover{transform:translateX(-2px)}.Notifications_visible__ln4-n{left:0;max-height:500px;opacity:1}.Notifications_itemInner__nEYAl{align-items:center;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background-color:var(--decent-color-alpha-500);box-shadow:inset 0 0 1px var(--accent-color-alpha-300),0 0 20px var(--decent-color);box-sizing:border-box;display:flex;padding:16px 32px 16px 20px;position:relative;transition:.3s ease-out;transition-property:transform}.Notifications_type-warning__Nxg6C .Notifications_itemInner__nEYAl{background-color:var(--warning-color-alpha-300)}.Notifications_type-danger__zeIMt .Notifications_itemInner__nEYAl{background-color:var(--danger-color-alpha-300)}.Notifications_icon__nKs-X{background:no-repeat 50%;height:24px;margin-right:10px;min-width:24px;width:24px}.Notifications_type-loading__N4EE5 .Notifications_icon__nKs-X{transform:translateY(-20px)}.Notifications_text__7QZL6{display:flex;flex-direction:column;flex-grow:1;z-index:1}.Notifications_title__Gu9bs{font-size:16px;font-weight:700}.Notifications_content__Zrvw2{font-size:12px;margin-top:calc(var(--indent-s)/2)}.Notifications_content__Zrvw2:first-child{margin-top:0}.Notifications_close__-IUH3{background-color:transparent;border-radius:50%;cursor:pointer;height:40px!important;max-height:40px!important;max-width:40px!important;opacity:0;position:absolute;right:-5px;top:-5px;transform:scale(.8);transition:.1s ease-out;transition-property:opacity,transform;width:40px!important}.Notifications_item__I3Up4:hover .Notifications_close__-IUH3{opacity:.8}.Notifications_close__-IUH3:hover{background-color:transparent;background-color:initial;opacity:1;transform:scale(1)}@media (max-width:700px){.Notifications_item__I3Up4,.Notifications_root__S3ujN{width:100%}.Notifications_title__Gu9bs{font-size:20px}.Notifications_content__Zrvw2{font-size:16px}.Notifications_close__-IUH3{transform:scale(1.2)}}",S={root:"Notifications_root__S3ujN",inner:"Notifications_inner__6v9e3",empty:"Notifications_empty__zCpOA",item:"Notifications_item__I3Up4",itemInner:"Notifications_itemInner__nEYAl",visible:"Notifications_visible__ln4-n","type-warning":"Notifications_type-warning__Nxg6C","type-danger":"Notifications_type-danger__zeIMt",icon:"Notifications_icon__nKs-X","type-loading":"Notifications_type-loading__N4EE5",text:"Notifications_text__7QZL6",title:"Notifications_title__Gu9bs",content:"Notifications_content__Zrvw2",close:"Notifications_close__-IUH3"};styleInject(css_248z);export{S as default};
2
- //# sourceMappingURL=Notifications.styl.js.map
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".Notifications_root__S3ujN{max-height:calc(var(--vh)*100);overflow:hidden;position:fixed;right:0;top:0;transform:translateZ(0);transition:right .3s ease-out;width:320px;z-index:20}.Notifications_inner__6v9e3{padding:var(--indent-m)}.Notifications_empty__zCpOA{pointer-events:none}.Notifications_itemInner__nEYAl,.Notifications_item__I3Up4{border-radius:var(--border-radius-l)}.Notifications_item__I3Up4{-webkit-backface-visibility:hidden;backface-visibility:hidden;left:100%;max-height:0;max-width:100%;opacity:0;position:relative;transition:all .3s ease-out;width:300px}.Notifications_item__I3Up4+.Notifications_item__I3Up4{padding-top:10px}.Notifications_item__I3Up4:hover{transform:translateX(-2px)}.Notifications_visible__ln4-n{left:0;max-height:500px;opacity:1}.Notifications_itemInner__nEYAl{align-items:center;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background-color:var(--decent-color-alpha-500);box-shadow:inset 0 0 1px var(--accent-color-alpha-300),0 0 20px var(--decent-color);box-sizing:border-box;display:flex;padding:16px 32px 16px 20px;position:relative;transition:.3s ease-out;transition-property:transform}.Notifications_type-warning__Nxg6C .Notifications_itemInner__nEYAl{background-color:var(--warning-color-alpha-300)}.Notifications_type-danger__zeIMt .Notifications_itemInner__nEYAl{background-color:var(--danger-color-alpha-300)}.Notifications_icon__nKs-X{background:no-repeat 50%;height:24px;margin-right:10px;min-width:24px;width:24px}.Notifications_type-loading__N4EE5 .Notifications_icon__nKs-X{transform:translateY(-20px)}.Notifications_text__7QZL6{display:flex;flex-direction:column;flex-grow:1;z-index:1}.Notifications_title__Gu9bs{font-size:16px;font-weight:700}.Notifications_content__Zrvw2{font-size:12px;margin-top:calc(var(--indent-s)/2)}.Notifications_content__Zrvw2:first-child{margin-top:0}.Notifications_close__-IUH3{background-color:transparent;border-radius:50%;cursor:pointer;height:40px!important;max-height:40px!important;max-width:40px!important;opacity:0;position:absolute;right:-5px;top:-5px;transform:scale(.8);transition:.1s ease-out;transition-property:opacity,transform;width:40px!important}.Notifications_item__I3Up4:hover .Notifications_close__-IUH3{opacity:.8}.Notifications_close__-IUH3:hover{background-color:transparent;background-color:initial;opacity:1;transform:scale(1)}@media (max-width:700px){.Notifications_item__I3Up4,.Notifications_root__S3ujN{width:100%}.Notifications_title__Gu9bs{font-size:20px}.Notifications_content__Zrvw2{font-size:16px}.Notifications_close__-IUH3{transform:scale(1.2)}}";
4
+ var S = {"root":"Notifications_root__S3ujN","inner":"Notifications_inner__6v9e3","empty":"Notifications_empty__zCpOA","item":"Notifications_item__I3Up4","itemInner":"Notifications_itemInner__nEYAl","visible":"Notifications_visible__ln4-n","type-warning":"Notifications_type-warning__Nxg6C","type-danger":"Notifications_type-danger__zeIMt","icon":"Notifications_icon__nKs-X","type-loading":"Notifications_type-loading__N4EE5","text":"Notifications_text__7QZL6","title":"Notifications_title__Gu9bs","content":"Notifications_content__Zrvw2","close":"Notifications_close__-IUH3"};
5
+ styleInject(css_248z);
6
+
7
+ export { S as default };
@@ -1,2 +1,62 @@
1
- import{createStore}from"justorm/react";import Time from"timen";import{spliceWhere}from"../../tools/array.js";import{generateUID}from"../../tools/uid.js";import C from"./Notifications.constants.json.js";const SHOW_TIME=5e3,STORE=createStore("notifications",{items:[],autohide:[],data:{},paused:!1,show(e){const t=generateUID();return this.items.push(t),this.data[t]={...e,createdAt:Date.now()},Time.after(C.ANIMATION_DURATION,()=>this.data[t].visible=!0),!1!==e.autohide&&this.autohide.push(t),t},pause(){this.paused=!0,this.pausedAt=Date.now()},unpause(){const t=Date.now()-this.pausedAt;this.autohide.forEach(e=>{this.data[e].createdAt+=t}),this.paused=!1},close(e){this.data[e].visible=!1,Time.after(C.ANIMATION_DURATION,()=>this.remove(e))},remove(e){spliceWhere(this.autohide,e),spliceWhere(this.items,e),delete this.data[e]}});Time.every(50,function(){var{paused:e,autohide:t,data:i}=STORE;if(!e&&0!==t.length){const s=t[0];e=i[s],t=Date.now()-e.createdAt>SHOW_TIME;e.visible&&t&&(e.visible=!1,Time.after(C.ANIMATION_DURATION,()=>STORE.remove(s)))}});export{STORE as default};
2
- //# sourceMappingURL=store.js.map
1
+ import { createStore } from 'justorm/react';
2
+ import Time from 'timen';
3
+ import { spliceWhere } from '../../tools/array.js';
4
+ import { generateUID } from '../../tools/uid.js';
5
+ import C from './Notifications.constants.json.js';
6
+
7
+ const SHOW_TIME = 5000;
8
+ const STORE = createStore('notifications', {
9
+ items: [],
10
+ autohide: [],
11
+ data: {},
12
+ paused: false,
13
+ show(data) {
14
+ const id = generateUID();
15
+ this.items.push(id);
16
+ this.data[id] = {
17
+ ...data,
18
+ createdAt: Date.now(),
19
+ };
20
+ Time.after(C.ANIMATION_DURATION, () => (this.data[id].visible = true));
21
+ if (data.autohide !== false) {
22
+ this.autohide.push(id);
23
+ }
24
+ return id;
25
+ },
26
+ pause() {
27
+ this.paused = true;
28
+ this.pausedAt = Date.now();
29
+ },
30
+ unpause() {
31
+ const pauseTime = Date.now() - this.pausedAt;
32
+ this.autohide.forEach(id => {
33
+ this.data[id].createdAt += pauseTime;
34
+ });
35
+ this.paused = false;
36
+ },
37
+ close(id) {
38
+ this.data[id].visible = false;
39
+ Time.after(C.ANIMATION_DURATION, () => this.remove(id));
40
+ },
41
+ remove(id) {
42
+ spliceWhere(this.autohide, id);
43
+ spliceWhere(this.items, id);
44
+ delete this.data[id];
45
+ },
46
+ });
47
+ // worker
48
+ Time.every(50, function tick() {
49
+ const { paused, autohide, data } = STORE;
50
+ if (paused || autohide.length === 0) {
51
+ return;
52
+ }
53
+ const id = autohide[0]; // TODO: move trough all autohide until some will !readyToHide
54
+ const item = data[id];
55
+ const readyToHide = Date.now() - item.createdAt > SHOW_TIME;
56
+ if (item.visible && readyToHide) {
57
+ item.visible = false;
58
+ Time.after(C.ANIMATION_DURATION, () => STORE.remove(id));
59
+ }
60
+ });
61
+
62
+ export { STORE as default };
@@ -1,2 +1,14 @@
1
- import{jsx}from"react/jsx-runtime";import cn from"classnames";import{Portal}from"../Portal/Portal.js";import S from"./Paranja.styl.js";const Paranja=({className:r,children:a,visible:s=!0,inline:l=!1,blur:o=!1})=>{s=cn(S.root,s&&S.visible,o&&S.blur,r),o=jsx("div",{className:s,children:a});return l?o:jsx(Portal,{children:o})};export{Paranja};
2
- //# sourceMappingURL=Paranja.js.map
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import cn from 'classnames';
3
+ import { Portal } from '../Portal/Portal.js';
4
+ import S from './Paranja.styl.js';
5
+
6
+ const Paranja = ({ className, children, visible = true, inline = false, blur = false, }) => {
7
+ const classes = cn(S.root, visible && S.visible, blur && S.blur, className);
8
+ const node = jsx("div", { className: classes, children: children });
9
+ if (inline)
10
+ return node;
11
+ return jsx(Portal, { children: node });
12
+ };
13
+
14
+ export { Paranja };
@@ -1,2 +1,7 @@
1
- import styleInject from"../../../node_modules/style-inject/dist/style-inject.es.js";var css_248z=".Paranja_root__ddboV{align-items:center;background-color:var(--decent-color-alpha-900);bottom:0;display:flex;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s ease-out;z-index:10}.Paranja_visible__xZukG{opacity:1;pointer-events:all}.Paranja_visible__xZukG.Paranja_blur__Hg0SQ{-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);background-color:var(--decent-color-alpha-500)}",S={root:"Paranja_root__ddboV",visible:"Paranja_visible__xZukG",blur:"Paranja_blur__Hg0SQ"};styleInject(css_248z);export{S as default};
2
- //# sourceMappingURL=Paranja.styl.js.map
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".Paranja_root__ddboV{align-items:center;background-color:var(--decent-color-alpha-900);bottom:0;display:flex;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s ease-out;z-index:10}.Paranja_visible__xZukG{opacity:1;pointer-events:all}.Paranja_visible__xZukG.Paranja_blur__Hg0SQ{-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);background-color:var(--decent-color-alpha-500)}";
4
+ var S = {"root":"Paranja_root__ddboV","visible":"Paranja_visible__xZukG","blur":"Paranja_blur__Hg0SQ"};
5
+ styleInject(css_248z);
6
+
7
+ export { S as default };
@@ -1,2 +1,31 @@
1
- import{spliceWhere}from"../../tools/array.js";import"nanoid";import"../../tools/dom.js";import"timen";import"compareq";import"lodash.pick";import"../../tools/queryParams.js";const childs={};let popupIds=0;const getId=()=>++popupIds,getPopupId=(t,i="data-popup-id")=>{t=t.getAttribute(i);return t?parseInt(t,10):null};function isLastChild(t,i){t=childs[t];return t&&t[t.length-1]===i}function setChild(t,i){childs[t]||(childs[t]=[]),childs[t].push(i)}function unsetChild(t,i){spliceWhere(childs[t],i),childs[t].length||delete childs[t]}export{childs,getId,getPopupId,isLastChild,setChild,unsetChild};
2
- //# sourceMappingURL=Popup.helpers.js.map
1
+ import { spliceWhere } from '../../tools/array.js';
2
+ import 'nanoid';
3
+ import '../../tools/dom.js';
4
+ import 'timen';
5
+ import 'compareq';
6
+ import 'lodash.pick';
7
+ import '../../tools/queryParams.js';
8
+
9
+ const childs = {};
10
+ let popupIds = 0;
11
+ const getId = () => ++popupIds;
12
+ const getPopupId = (elem, attr = 'data-popup-id') => {
13
+ const id = elem.getAttribute(attr);
14
+ return id ? parseInt(id, 10) : null;
15
+ };
16
+ function isLastChild(rootId, id) {
17
+ const ids = childs[rootId];
18
+ return ids && ids[ids.length - 1] === id;
19
+ }
20
+ function setChild(rootId, id) {
21
+ if (!childs[rootId])
22
+ childs[rootId] = [];
23
+ childs[rootId].push(id);
24
+ }
25
+ function unsetChild(rootId, id) {
26
+ spliceWhere(childs[rootId], id);
27
+ if (!childs[rootId].length)
28
+ delete childs[rootId];
29
+ }
30
+
31
+ export { childs, getId, getPopupId, isLastChild, setChild, unsetChild };
@@ -1,2 +1,397 @@
1
- import{jsx,jsxs,Fragment}from"react/jsx-runtime";import{Component,createRef}from"react";import cn from"classnames";import{createStore}from"justorm/react";import Time from"timen";import{Paranja}from"../Paranja/Paranja.js";import{Portal}from"../Portal/Portal.js";import{getCoords}from"../../tools/dom.js";import{observe,unobserve}from"../../tools/resizeObserver.js";import{isBrowser}from"../../tools/env.js";import debounce from"../../tools/debounce.js";import throttle from"../../tools/throttle.js";import S from"./Popup.styl.js";import{getId,getPopupId,isLastChild,unsetChild,childs,setChild}from"./Popup.helpers.js";const ANIMATION_DURATION=100,OFFSET_GAP=10,INITIAL_OFFSET={top:0,left:0};class Popup extends Component{rootElem=createRef();triggerElem=createRef();containerElem=null;onContainerElemRef=e=>{(this.containerElem=e)&&(this.unsubscribeSizeChange(),this.subscribeSizeChange())};focused=!1;pointerPressed=!1;subscribedHoverControl=!1;subscribedSizeChange=!1;pointerDownTarget=null;isPointerPressedInside=!1;needDropOffset=!1;id;parentPopupContent;store;timers=Time.create();scrollParent;offset={...INITIAL_OFFSET};static defaultProps={size:"m",direction:"",animated:!0};constructor(e){super(e);var t=Boolean(e.isOpen);this.id=getId(),this.store=createStore(this,{rootPopupId:null,isOpen:t,isContentVisible:t,animating:!1,direction:e.direction,triggerBounds:null})}componentDidMount(){var{hoverControl:e,focusControl:t}=this.props,s=this.triggerElem.current.closest("."+S.content);document.addEventListener("pointerdown",this.onDocPointerDown,!0),document.addEventListener("pointerup",this.onDocPointerUp,!0),s&&(this.store.rootPopupId=getPopupId(s,"data-root-popup-id")||getPopupId(s,"data-popup-id")),t&&(document.addEventListener("keydown",this.onDocKeyDown,!0),document.addEventListener("keyup",this.onDocKeyUp)),e&&this.subscribeHoverControl(),this.subscribeScroll()}componentDidUpdate(e){var{isOpen:t,disabled:s,hoverControl:i}=this.props;s?this.store.isOpen=!1:(!e.hoverControl&&i&&this.subscribeHoverControl(),e.hoverControl&&!i&&this.unsubscribeHoverControl(),"boolean"==typeof t&&t!==e.isOpen&&(t?this.open():this.close()))}componentWillUnmount(){this.timers.clear(),document.removeEventListener("keyup",this.onDocKeyUp,!0),this.scrollParent&&this.scrollParent.removeEventListener("scroll",this.close),this.unsubscribeHoverControl(),this.unsubscribeSizeChange(),this.unsubscribeScroll()}subscribeSizeChange(){this.subscribedSizeChange||(this.subscribedSizeChange=!0,observe(this.triggerElem.current,this.onTriggerResize),observe(this.containerElem,this.onContainerResize))}subscribeScroll(){isBrowser&&!this.props.inline&&document.addEventListener("scroll",this.onScroll,!0)}unsubscribeScroll(){document.removeEventListener("scroll",this.onScroll,!0)}unsubscribeSizeChange(){this.subscribedSizeChange=!1,unobserve(this.triggerElem.current),unobserve(this.containerElem)}subscribeHoverControl(){this.subscribedHoverControl||(this.subscribedHoverControl=!0,document.addEventListener("pointermove",this.checkHover),document.addEventListener("pointerup",this.checkHover))}unsubscribeHoverControl(){this.subscribedHoverControl&&(this.subscribedHoverControl=!1,document.removeEventListener("pointermove",this.checkHover),document.removeEventListener("pointerup",this.checkHover))}updateBounds(){!this.store.animating&&this.containerElem&&this.triggerElem.current&&this.updateBoundsThrottled()}updateBoundsThrottled=throttle(()=>{var e=this.triggerElem.current,e={minHeight:e.offsetHeight,minWidth:e.offsetWidth,...getCoords(e)};Object.entries(e).forEach(([e,t])=>{this.triggerElem.current.style[e]=t}),this.updateOffset(),this.store.triggerBounds=e},200,{trailing:!0});prevContentBounds={width:0,height:0};updateOffset=()=>{var e,t,s,i,o,r=this.containerElem.getBoundingClientRect();r.height&&r.width&&this.prevContentBounds.width===r.width&&this.prevContentBounds.height===r.height?(e=this.offset,{innerHeight:t,innerWidth:s}=window,i=r.top+r.height+OFFSET_GAP-e.top,o=r.left+r.width+OFFSET_GAP-e.left,r.top<0?e.top=-r.top+OFFSET_GAP:t<i&&(e.top=t-i),r.left<0?e.left=-r.left+OFFSET_GAP:s<o&&(e.left=s-o),this.applyOffset()):(this.prevContentBounds=r,Time.after(100,this.updateOffset))};applyOffset(){var{left:e,top:t}=this.offset;this.containerElem.style.marginTop=t+"px",this.containerElem.style.marginLeft=e+"px"}checkHover=debounce(e=>{var t,s,i,o;this.isPointerPressedInside||({isOpen:t,rootPopupId:s}=this.store,i=this.isPointerOver(e.target,S.trigger),o=this.isPointerOver(e.target,S.content),t?i||o||("number"==typeof s?isLastChild(s,this.id)&&(this.close(),unsetChild(s,this.id)):e.target.closest("."+S.content)&&childs[this.id]?.length||this.close()):i&&this.open())},100);isLastClickInside=()=>this.pointerDownTarget&&(this.pointerDownTarget.closest("."+S.trigger)||this.pointerDownTarget.closest("."+S.content));onDocPointerDown=e=>{this.pointerDownTarget=e.target,this.isPointerPressedInside=this.isLastClickInside(),this.timers.after(100,()=>this.pointerDownTarget=null)};onDocPointerUp=e=>{this.isPointerPressedInside||this.close(),this.isPointerPressedInside=!1};isPointerOver(e,t){return e.closest(`.${t}[data-popup-id="${this.id}"]`)}onScroll=throttle(e=>{var t;this.store.isOpen?this.isPointerOver(e.target,S.content)||childs[this.id]?.length||(this.needDropOffset=!0,this.close()):({top:e,left:t}=this.offset,(t||e)&&(this.offset={...INITIAL_OFFSET},this.applyOffset()))},200);onDocKeyDown=e=>{this.pointerDownTarget=null};onDocKeyUp=e=>{this.store.isOpen&&"Escape"===e.key?(e.stopPropagation(),this.close()):this.focused&&/Enter| /.test(e.key)&&(e.stopPropagation(),this.toggle())};onTriggerPointerDown=e=>{this.pointerDownTarget=e.target,this.pointerPressed=!0};onTriggerPointerUp=e=>{this.pointerPressed=!1,e.traget===this.pointerDownTarget&&this.toggle()};onFocus=e=>{this.focused=!0,this.props.triggerProps?.onFocus?.(e),this.pointerPressed||this.open()};onBlur=e=>{this.focused=!1,this.props.triggerProps?.onBlur?.(e),this.timers.after(60,()=>{this.isLastClickInside()||this.close()})};onTriggerResize=()=>{this.updateBounds()};onContainerResize=()=>{this.updateBounds()};open=throttle(()=>{var e=this.store["rootPopupId"];this.store.isOpen||(this.updateBounds(),this.subscribeSizeChange(),this.subscribeScroll(),this.store.isContentVisible=!0,this.changeState(!0,this.afterOpen),e&&setChild(e,this.id))},100);close=()=>{this.store.isOpen&&(this.unsubscribeSizeChange(),this.changeState(!1,this.afterClose))};changeState(e,t){var s=this.props["animated"];this.timers.clear(),this.store.isOpen=e,s?(this.store.animating=!0,this.timers.after(ANIMATION_DURATION+500,()=>{this.store.animating=!1,t()})):t()}afterOpen=()=>{this.props.onOpen?.()};afterClose=()=>{this.store.isContentVisible=!1,this.dropOffset(),this.props.onClose?.()};dropOffset(){this.needDropOffset&&(this.offset={...INITIAL_OFFSET},this.applyOffset())}toggle=throttle(()=>{this.store.isOpen?this.close():this.open()},100);renderTrigger(){const{trigger:e,content:t,disabled:s,focusControl:i,hoverControl:o,...r}=this.props;var n,h={...r.triggerProps},p=this.store["isOpen"];return e?(n=cn(S.trigger,p&&S.isOpen,(p=s||!t)&&S.disabled,h.className),p||(h.role="button",o&&Object.assign(h,{onPointerDown:this.onTriggerPointerDown,onPointerUp:this.onTriggerPointerUp}),i&&Object.assign(h,{onFocus:this.onFocus,onBlur:this.onBlur})),jsx("div",{className:n,...h,suppressHydrationWarning:!0,"data-popup-id":this.id,ref:this.triggerElem,children:e})):null}renderContent(){var e,{content:t,contentProps:s={},wrapperProps:i={},size:o,disabled:r,inline:n,outlined:h,animated:p,paranja:a,blur:l,elevation:d}=this.props,{isOpen:c,isContentVisible:u,animating:g,direction:m,triggerBounds:f,rootPopupId:b}=this.store;return r?null:(r=cn(S.contentWrapper,l&&S.blur,n&&S.inline,c&&S.isOpen,i.className),c=this.triggerElem.current,[m,e]=m.split("-"),h=cn(S.content,h&&S.outlined,p&&g&&S.animating,d&&S["elevation-"+d],S["size-"+o],S["axis-"+m],S["float-"+(e||"middle")],s.className),c&&!n&&f&&(i.style={...f}),p=jsx("div",{...i,className:r,children:jsxs("div",{...s,ref:this.onContainerElemRef,className:h,suppressHydrationWarning:!0,"data-popup-id":this.id,"data-root-popup-id":b,style:{marginTop:this.offset.top,marginLeft:this.offset.left},children:[a&&!b&&jsx(Paranja,{visible:u,blur:l}),u&&jsx(Fragment,{children:t})]})}),n?p:jsx(Portal,{children:p}))}render(){var e=this.props["className"],e=cn(S.root,e);return jsxs("div",{className:e,ref:this.rootElem,children:[this.renderTrigger(),this.renderContent()]})}}export{ANIMATION_DURATION,Popup};
2
- //# sourceMappingURL=Popup.js.map
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { Component, createRef } from 'react';
3
+ import cn from 'classnames';
4
+ import { createStore } from 'justorm/react';
5
+ import Time from 'timen';
6
+ import { Paranja } from '../Paranja/Paranja.js';
7
+ import { Portal } from '../Portal/Portal.js';
8
+ import { getCoords } from '../../tools/dom.js';
9
+ import { observe, unobserve } from '../../tools/resizeObserver.js';
10
+ import { isBrowser } from '../../tools/env.js';
11
+ import debounce from '../../tools/debounce.js';
12
+ import throttle from '../../tools/throttle.js';
13
+ import S from './Popup.styl.js';
14
+ import { getId, getPopupId, isLastChild, unsetChild, childs, setChild } from './Popup.helpers.js';
15
+
16
+ const ANIMATION_DURATION = 100;
17
+ const OFFSET_GAP = 10;
18
+ const INITIAL_OFFSET = { top: 0, left: 0 };
19
+ class Popup extends Component {
20
+ rootElem = createRef();
21
+ triggerElem = createRef();
22
+ containerElem = null;
23
+ onContainerElemRef = elem => {
24
+ this.containerElem = elem;
25
+ // TODO: useElemResize(elem, callback)
26
+ if (elem) {
27
+ this.unsubscribeSizeChange();
28
+ this.subscribeSizeChange();
29
+ }
30
+ };
31
+ focused = false;
32
+ pointerPressed = false;
33
+ subscribedHoverControl = false;
34
+ subscribedSizeChange = false;
35
+ pointerDownTarget = null;
36
+ isPointerPressedInside = false;
37
+ needDropOffset = false;
38
+ id;
39
+ parentPopupContent;
40
+ store;
41
+ timers = Time.create();
42
+ scrollParent;
43
+ offset = { ...INITIAL_OFFSET };
44
+ static defaultProps = {
45
+ size: 'm',
46
+ direction: '',
47
+ animated: true,
48
+ };
49
+ constructor(props) {
50
+ super(props);
51
+ const isOpen = Boolean(props.isOpen);
52
+ this.id = getId();
53
+ this.store = createStore(this, {
54
+ rootPopupId: null,
55
+ isOpen,
56
+ isContentVisible: isOpen,
57
+ animating: false,
58
+ direction: props.direction,
59
+ triggerBounds: null,
60
+ });
61
+ }
62
+ componentDidMount() {
63
+ const { hoverControl, focusControl } = this.props;
64
+ const parentPopupContent = this.triggerElem.current.closest(`.${S.content}`);
65
+ document.addEventListener('pointerdown', this.onDocPointerDown, true);
66
+ document.addEventListener('pointerup', this.onDocPointerUp, true);
67
+ if (parentPopupContent) {
68
+ this.store.rootPopupId =
69
+ getPopupId(parentPopupContent, 'data-root-popup-id') ||
70
+ getPopupId(parentPopupContent, 'data-popup-id');
71
+ }
72
+ if (focusControl) {
73
+ document.addEventListener('keydown', this.onDocKeyDown, true);
74
+ document.addEventListener('keyup', this.onDocKeyUp);
75
+ }
76
+ if (hoverControl)
77
+ this.subscribeHoverControl();
78
+ this.subscribeScroll();
79
+ }
80
+ componentDidUpdate(prevProps) {
81
+ const { isOpen, disabled, hoverControl } = this.props;
82
+ if (disabled) {
83
+ this.store.isOpen = false; // close when receive disabled=true
84
+ return;
85
+ }
86
+ if (!prevProps.hoverControl && hoverControl)
87
+ this.subscribeHoverControl();
88
+ if (prevProps.hoverControl && !hoverControl)
89
+ this.unsubscribeHoverControl();
90
+ if (typeof isOpen === 'boolean' && isOpen !== prevProps.isOpen) {
91
+ isOpen ? this.open() : this.close();
92
+ }
93
+ }
94
+ componentWillUnmount() {
95
+ this.timers.clear();
96
+ document.removeEventListener('keyup', this.onDocKeyUp, true);
97
+ if (this.scrollParent) {
98
+ this.scrollParent.removeEventListener('scroll', this.close);
99
+ }
100
+ this.unsubscribeHoverControl();
101
+ this.unsubscribeSizeChange();
102
+ this.unsubscribeScroll();
103
+ }
104
+ subscribeSizeChange() {
105
+ if (this.subscribedSizeChange)
106
+ return;
107
+ this.subscribedSizeChange = true;
108
+ observe(this.triggerElem.current, this.onTriggerResize);
109
+ observe(this.containerElem, this.onContainerResize);
110
+ }
111
+ subscribeScroll() {
112
+ if (isBrowser && !this.props.inline) {
113
+ document.addEventListener('scroll', this.onScroll, true);
114
+ }
115
+ }
116
+ unsubscribeScroll() {
117
+ document.removeEventListener('scroll', this.onScroll, true);
118
+ }
119
+ unsubscribeSizeChange() {
120
+ this.subscribedSizeChange = false;
121
+ unobserve(this.triggerElem.current);
122
+ unobserve(this.containerElem);
123
+ }
124
+ subscribeHoverControl() {
125
+ if (this.subscribedHoverControl)
126
+ return;
127
+ this.subscribedHoverControl = true;
128
+ document.addEventListener('pointermove', this.checkHover);
129
+ document.addEventListener('pointerup', this.checkHover);
130
+ }
131
+ unsubscribeHoverControl() {
132
+ if (!this.subscribedHoverControl)
133
+ return;
134
+ this.subscribedHoverControl = false;
135
+ document.removeEventListener('pointermove', this.checkHover);
136
+ document.removeEventListener('pointerup', this.checkHover);
137
+ }
138
+ updateBounds() {
139
+ if (this.store.animating || !this.containerElem)
140
+ return;
141
+ if (!this.triggerElem.current)
142
+ return;
143
+ this.updateBoundsThrottled();
144
+ }
145
+ updateBoundsThrottled = throttle(() => {
146
+ const trigger = this.triggerElem.current;
147
+ const bounds = {
148
+ minHeight: trigger.offsetHeight,
149
+ minWidth: trigger.offsetWidth,
150
+ ...getCoords(trigger),
151
+ };
152
+ Object.entries(bounds).forEach(([key, value]) => {
153
+ this.triggerElem.current.style[key] = value;
154
+ });
155
+ this.updateOffset();
156
+ this.store.triggerBounds = bounds;
157
+ }, 200, { trailing: true });
158
+ prevContentBounds = { width: 0, height: 0 };
159
+ updateOffset = () => {
160
+ const content = this.containerElem.getBoundingClientRect();
161
+ if (!content.height ||
162
+ !content.width ||
163
+ this.prevContentBounds.width !== content.width ||
164
+ this.prevContentBounds.height !== content.height) {
165
+ this.prevContentBounds = content;
166
+ Time.after(100, this.updateOffset);
167
+ return;
168
+ }
169
+ const { offset } = this;
170
+ const { innerHeight, innerWidth } = window;
171
+ const bottom = content.top + content.height + OFFSET_GAP - offset.top;
172
+ const right = content.left + content.width + OFFSET_GAP - offset.left;
173
+ if (content.top < 0) {
174
+ offset.top = -content.top + OFFSET_GAP;
175
+ }
176
+ else if (bottom > innerHeight) {
177
+ offset.top = innerHeight - bottom;
178
+ }
179
+ if (content.left < 0) {
180
+ offset.left = -content.left + OFFSET_GAP;
181
+ }
182
+ else if (right > innerWidth) {
183
+ offset.left = innerWidth - right;
184
+ }
185
+ this.applyOffset();
186
+ };
187
+ applyOffset() {
188
+ const { left, top } = this.offset;
189
+ this.containerElem.style.marginTop = `${top}px`;
190
+ this.containerElem.style.marginLeft = `${left}px`;
191
+ }
192
+ checkHover = debounce((e) => {
193
+ if (this.isPointerPressedInside)
194
+ return;
195
+ const { isOpen, rootPopupId } = this.store;
196
+ const overTrigger = this.isPointerOver(e.target, S.trigger);
197
+ const overContent = this.isPointerOver(e.target, S.content);
198
+ if (!isOpen) {
199
+ if (overTrigger)
200
+ this.open();
201
+ return;
202
+ }
203
+ // isOpen
204
+ if (overTrigger || overContent)
205
+ return;
206
+ if (typeof rootPopupId === 'number') {
207
+ if (isLastChild(rootPopupId, this.id)) {
208
+ this.close();
209
+ unsetChild(rootPopupId, this.id);
210
+ }
211
+ }
212
+ else {
213
+ const isOverAnyPopupContent = e.target.closest(`.${S.content}`);
214
+ if (!isOverAnyPopupContent || !childs[this.id]?.length) {
215
+ this.close();
216
+ }
217
+ }
218
+ }, 100);
219
+ isLastClickInside = () => this.pointerDownTarget &&
220
+ (this.pointerDownTarget.closest(`.${S.trigger}`) ||
221
+ this.pointerDownTarget.closest(`.${S.content}`));
222
+ onDocPointerDown = (e) => {
223
+ this.pointerDownTarget = e.target;
224
+ this.isPointerPressedInside = this.isLastClickInside();
225
+ this.timers.after(100, () => (this.pointerDownTarget = null));
226
+ };
227
+ onDocPointerUp = (e) => {
228
+ if (!this.isPointerPressedInside)
229
+ this.close();
230
+ this.isPointerPressedInside = false;
231
+ };
232
+ isPointerOver(target, elem) {
233
+ return target.closest(`.${elem}[data-popup-id="${this.id}"]`);
234
+ }
235
+ onScroll = throttle(e => {
236
+ if (!this.store.isOpen) {
237
+ const { top, left } = this.offset;
238
+ if (left || top) {
239
+ this.offset = { ...INITIAL_OFFSET };
240
+ this.applyOffset();
241
+ }
242
+ return;
243
+ }
244
+ // if scrolling outside this popup - close it
245
+ if (!this.isPointerOver(e.target, S.content) &&
246
+ !childs[this.id]?.length) {
247
+ this.needDropOffset = true;
248
+ this.close();
249
+ }
250
+ }, 200);
251
+ onDocKeyDown = (e) => {
252
+ this.pointerDownTarget = null;
253
+ };
254
+ onDocKeyUp = (e) => {
255
+ if (this.store.isOpen && e.key === 'Escape') {
256
+ e.stopPropagation();
257
+ this.close();
258
+ return;
259
+ }
260
+ if (this.focused && /Enter| /.test(e.key)) {
261
+ e.stopPropagation();
262
+ this.toggle();
263
+ }
264
+ };
265
+ onTriggerPointerDown = e => {
266
+ this.pointerDownTarget = e.target;
267
+ this.pointerPressed = true;
268
+ };
269
+ onTriggerPointerUp = e => {
270
+ this.pointerPressed = false;
271
+ if (e.traget === this.pointerDownTarget)
272
+ this.toggle();
273
+ };
274
+ onFocus = e => {
275
+ this.focused = true;
276
+ this.props.triggerProps?.onFocus?.(e);
277
+ if (!this.pointerPressed)
278
+ this.open();
279
+ };
280
+ onBlur = e => {
281
+ this.focused = false;
282
+ this.props.triggerProps?.onBlur?.(e);
283
+ // give time to fire clicks inside popup
284
+ this.timers.after(60, () => {
285
+ if (!this.isLastClickInside())
286
+ this.close();
287
+ });
288
+ };
289
+ onTriggerResize = () => {
290
+ this.updateBounds();
291
+ };
292
+ onContainerResize = () => {
293
+ this.updateBounds();
294
+ };
295
+ open = throttle(() => {
296
+ const { rootPopupId } = this.store;
297
+ if (this.store.isOpen)
298
+ return;
299
+ this.updateBounds();
300
+ this.subscribeSizeChange();
301
+ this.subscribeScroll();
302
+ this.store.isContentVisible = true;
303
+ this.changeState(true, this.afterOpen);
304
+ if (rootPopupId)
305
+ setChild(rootPopupId, this.id);
306
+ }, 100);
307
+ close = () => {
308
+ if (!this.store.isOpen)
309
+ return;
310
+ this.unsubscribeSizeChange();
311
+ this.changeState(false, this.afterClose);
312
+ };
313
+ changeState(isOpen, callback) {
314
+ const { animated } = this.props;
315
+ this.timers.clear();
316
+ this.store.isOpen = isOpen;
317
+ if (animated) {
318
+ this.store.animating = true;
319
+ this.timers.after(ANIMATION_DURATION + 500, () => {
320
+ this.store.animating = false;
321
+ callback();
322
+ });
323
+ }
324
+ else {
325
+ callback();
326
+ }
327
+ }
328
+ afterOpen = () => {
329
+ this.props.onOpen?.();
330
+ };
331
+ afterClose = () => {
332
+ this.store.isContentVisible = false;
333
+ this.dropOffset();
334
+ this.props.onClose?.();
335
+ };
336
+ dropOffset() {
337
+ if (!this.needDropOffset)
338
+ return;
339
+ this.offset = { ...INITIAL_OFFSET };
340
+ this.applyOffset();
341
+ }
342
+ toggle = throttle(() => {
343
+ this.store.isOpen ? this.close() : this.open();
344
+ }, 100);
345
+ renderTrigger() {
346
+ const { trigger, content, disabled, focusControl, hoverControl, ...rest } = this.props;
347
+ const triggerProps = { ...rest.triggerProps };
348
+ const { isOpen } = this.store;
349
+ if (!trigger)
350
+ return null;
351
+ const disableTrigger = disabled || !content;
352
+ const classesTrigger = cn(S.trigger, isOpen && S.isOpen, disableTrigger && S.disabled, triggerProps.className);
353
+ if (!disableTrigger) {
354
+ triggerProps.role = 'button';
355
+ if (hoverControl) {
356
+ Object.assign(triggerProps, {
357
+ onPointerDown: this.onTriggerPointerDown,
358
+ onPointerUp: this.onTriggerPointerUp,
359
+ });
360
+ }
361
+ if (focusControl) {
362
+ Object.assign(triggerProps, {
363
+ onFocus: this.onFocus,
364
+ onBlur: this.onBlur,
365
+ });
366
+ }
367
+ }
368
+ return (jsx("div", { className: classesTrigger, ...triggerProps, suppressHydrationWarning: true, "data-popup-id": this.id, ref: this.triggerElem, children: trigger }));
369
+ }
370
+ renderContent() {
371
+ const { content, contentProps = {}, wrapperProps = {}, size, disabled, inline, outlined, animated, paranja, blur, elevation, } = this.props;
372
+ const { isOpen, isContentVisible, animating, direction, triggerBounds, rootPopupId, } = this.store;
373
+ if (disabled)
374
+ return null;
375
+ const wrapperClasses = cn(S.contentWrapper, blur && S.blur, inline && S.inline, isOpen && S.isOpen, wrapperProps.className);
376
+ const trigger = this.triggerElem.current;
377
+ const [axis, float] = direction.split('-');
378
+ const classes = cn(S.content, outlined && S.outlined, animated && animating && S.animating, elevation && S[`elevation-${elevation}`], S[`size-${size}`], S[`axis-${axis}`], S[`float-${float || 'middle'}`], contentProps.className);
379
+ if (trigger && !inline && triggerBounds) {
380
+ wrapperProps.style = { ...triggerBounds };
381
+ }
382
+ const contentNode = (jsx("div", { ...wrapperProps, className: wrapperClasses, children: jsxs("div", { ...contentProps, ref: this.onContainerElemRef, className: classes, suppressHydrationWarning: true, "data-popup-id": this.id, "data-root-popup-id": rootPopupId, style: {
383
+ marginTop: this.offset.top,
384
+ marginLeft: this.offset.left,
385
+ }, children: [paranja && !rootPopupId && (jsx(Paranja, { visible: isContentVisible, blur: blur })), isContentVisible && jsx(Fragment, { children: content })] }) }));
386
+ if (inline)
387
+ return contentNode;
388
+ return jsx(Portal, { children: contentNode });
389
+ }
390
+ render() {
391
+ const { className } = this.props;
392
+ const classes = cn(S.root, className);
393
+ return (jsxs("div", { className: classes, ref: this.rootElem, children: [this.renderTrigger(), this.renderContent()] }));
394
+ }
395
+ }
396
+
397
+ export { ANIMATION_DURATION, Popup };