@homecode/ui 5.1.9 → 5.1.10

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 (522) hide show
  1. package/dist/esm/index.js +109 -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/Autocomplete/Autocomplete.js +429 -2
  6. package/dist/esm/src/components/Autocomplete/Autocomplete.styl.js +7 -2
  7. package/dist/esm/src/components/Button/Button.helpers.js +12 -2
  8. package/dist/esm/src/components/Button/Button.js +38 -2
  9. package/dist/esm/src/components/Button/Button.styl.js +7 -2
  10. package/dist/esm/src/components/ButtonGroup/ButtonGroup.js +10 -2
  11. package/dist/esm/src/components/ButtonGroup/ButtonGroup.styl.js +7 -2
  12. package/dist/esm/src/components/Calendar/Calendar.helpers.js +65 -2
  13. package/dist/esm/src/components/Calendar/Calendar.js +136 -2
  14. package/dist/esm/src/components/Calendar/Calendar.styl.js +7 -2
  15. package/dist/esm/src/components/Card/Card.js +55 -2
  16. package/dist/esm/src/components/Card/Card.styl.js +7 -2
  17. package/dist/esm/src/components/Checkbox/Checkbox.js +19 -2
  18. package/dist/esm/src/components/Checkbox/Checkbox.styl.js +7 -2
  19. package/dist/esm/src/components/Chip/Chip.js +16 -2
  20. package/dist/esm/src/components/Chip/Chip.styl.js +7 -2
  21. package/dist/esm/src/components/Container/Container.js +13 -2
  22. package/dist/esm/src/components/Container/Container.styl.js +7 -2
  23. package/dist/esm/src/components/DatePicker/DatePicker.helpers.js +33 -2
  24. package/dist/esm/src/components/DatePicker/DatePicker.js +47 -2
  25. package/dist/esm/src/components/DatePicker/DatePicker.styl.js +7 -2
  26. package/dist/esm/src/components/DatePickerInput/DatePickerInput.js +44 -2
  27. package/dist/esm/src/components/DatePickerInput/DatePickerInput.styl.js +7 -2
  28. package/dist/esm/src/components/DateTime/DateTime.js +17 -2
  29. package/dist/esm/src/components/Dialogue/Dialogue.js +107 -2
  30. package/dist/esm/src/components/Dialogue/Dialogue.styl.js +7 -2
  31. package/dist/esm/src/components/Draggable/Draggable.js +147 -2
  32. package/dist/esm/src/components/Draggable/Draggable.styl.js +7 -2
  33. package/dist/esm/src/components/DropZone/DropZone.js +112 -2
  34. package/dist/esm/src/components/DropZone/DropZone.styl.js +7 -2
  35. package/dist/esm/src/components/Expand/Expand.js +24 -2
  36. package/dist/esm/src/components/Expand/Expand.styl.js +7 -2
  37. package/dist/esm/src/components/Flex/Flex.js +24 -2
  38. package/dist/esm/src/components/Flex/Flex.styl.js +7 -2
  39. package/dist/esm/src/components/Form/Form.helpers.js +42 -2
  40. package/dist/esm/src/components/Form/Form.js +272 -2
  41. package/dist/esm/src/components/Form/Form.styl.js +7 -2
  42. package/dist/esm/src/components/Form/Form.types.js +0 -1
  43. package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.js +8 -2
  44. package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.styl.js +7 -2
  45. package/dist/esm/src/components/Form/Validator.js +24 -6
  46. package/dist/esm/src/components/Gallery/Dots/Dots.js +9 -2
  47. package/dist/esm/src/components/Gallery/Dots/Dots.styl.js +7 -2
  48. package/dist/esm/src/components/Gallery/Gallery.js +222 -2
  49. package/dist/esm/src/components/Gallery/Gallery.styl.js +7 -2
  50. package/dist/esm/src/components/Heading/Heading.js +37 -2
  51. package/dist/esm/src/components/Heading/Heading.styl.js +7 -2
  52. package/dist/esm/src/components/Icon/Icon.js +21 -2
  53. package/dist/esm/src/components/Icon/Icon.styl.js +7 -2
  54. package/dist/esm/src/components/Icon/icons/apple.svg.js +16 -2
  55. package/dist/esm/src/components/Icon/icons/arrowDown.svg.js +17 -2
  56. package/dist/esm/src/components/Icon/icons/arrowLeft.svg.js +17 -2
  57. package/dist/esm/src/components/Icon/icons/arrowRight.svg.js +17 -2
  58. package/dist/esm/src/components/Icon/icons/arrowUp.svg.js +17 -2
  59. package/dist/esm/src/components/Icon/icons/attach.svg.js +19 -2
  60. package/dist/esm/src/components/Icon/icons/avatar.svg.js +15 -2
  61. package/dist/esm/src/components/Icon/icons/bookmark.svg.js +17 -2
  62. package/dist/esm/src/components/Icon/icons/bookmarkAdd.svg.js +17 -2
  63. package/dist/esm/src/components/Icon/icons/brain.svg.js +22 -2
  64. package/dist/esm/src/components/Icon/icons/brokenImage.svg.js +15 -2
  65. package/dist/esm/src/components/Icon/icons/call.svg.js +17 -2
  66. package/dist/esm/src/components/Icon/icons/camera.svg.js +17 -2
  67. package/dist/esm/src/components/Icon/icons/chat.svg.js +17 -2
  68. package/dist/esm/src/components/Icon/icons/check.svg.js +19 -2
  69. package/dist/esm/src/components/Icon/icons/checkers.svg.js +18 -2
  70. package/dist/esm/src/components/Icon/icons/chevronDown.svg.js +20 -2
  71. package/dist/esm/src/components/Icon/icons/chevronLeft.svg.js +20 -2
  72. package/dist/esm/src/components/Icon/icons/chevronRight.svg.js +20 -2
  73. package/dist/esm/src/components/Icon/icons/chevronUp.svg.js +20 -2
  74. package/dist/esm/src/components/Icon/icons/clearAll.svg.js +17 -2
  75. package/dist/esm/src/components/Icon/icons/close.svg.js +15 -2
  76. package/dist/esm/src/components/Icon/icons/colors.svg.js +60 -2
  77. package/dist/esm/src/components/Icon/icons/compass.svg.js +56 -2
  78. package/dist/esm/src/components/Icon/icons/copy.svg.js +15 -2
  79. package/dist/esm/src/components/Icon/icons/cubes.svg.js +17 -2
  80. package/dist/esm/src/components/Icon/icons/delete.svg.js +15 -2
  81. package/dist/esm/src/components/Icon/icons/discord.svg.js +17 -2
  82. package/dist/esm/src/components/Icon/icons/draft.svg.js +15 -2
  83. package/dist/esm/src/components/Icon/icons/dragHandlerHorizontal.svg.js +15 -2
  84. package/dist/esm/src/components/Icon/icons/dragHandlerVertical.svg.js +15 -2
  85. package/dist/esm/src/components/Icon/icons/edit.svg.js +15 -2
  86. package/dist/esm/src/components/Icon/icons/email.svg.js +15 -2
  87. package/dist/esm/src/components/Icon/icons/externalLink.svg.js +15 -2
  88. package/dist/esm/src/components/Icon/icons/eye.svg.js +15 -2
  89. package/dist/esm/src/components/Icon/icons/flyover.svg.js +17 -2
  90. package/dist/esm/src/components/Icon/icons/folder.svg.js +17 -2
  91. package/dist/esm/src/components/Icon/icons/folderOpen.svg.js +17 -2
  92. package/dist/esm/src/components/Icon/icons/forward.svg.js +17 -2
  93. package/dist/esm/src/components/Icon/icons/fullscreen.svg.js +15 -2
  94. package/dist/esm/src/components/Icon/icons/fullscreenExit.svg.js +15 -2
  95. package/dist/esm/src/components/Icon/icons/function.svg.js +15 -2
  96. package/dist/esm/src/components/Icon/icons/gear.svg.js +21 -2
  97. package/dist/esm/src/components/Icon/icons/geolocation.svg.js +17 -2
  98. package/dist/esm/src/components/Icon/icons/github.svg.js +18 -2
  99. package/dist/esm/src/components/Icon/icons/globe.svg.js +17 -2
  100. package/dist/esm/src/components/Icon/icons/google.svg.js +42 -2
  101. package/dist/esm/src/components/Icon/icons/group.svg.js +15 -2
  102. package/dist/esm/src/components/Icon/icons/history.svg.js +17 -2
  103. package/dist/esm/src/components/Icon/icons/home.svg.js +19 -2
  104. package/dist/esm/src/components/Icon/icons/image.svg.js +17 -2
  105. package/dist/esm/src/components/Icon/icons/index.js +95 -2
  106. package/dist/esm/src/components/Icon/icons/instagram.svg.js +15 -2
  107. package/dist/esm/src/components/Icon/icons/layers.svg.js +17 -2
  108. package/dist/esm/src/components/Icon/icons/link.svg.js +15 -2
  109. package/dist/esm/src/components/Icon/icons/linkedin.svg.js +20 -2
  110. package/dist/esm/src/components/Icon/icons/loader.svg.js +45 -2
  111. package/dist/esm/src/components/Icon/icons/lock.svg.js +19 -2
  112. package/dist/esm/src/components/Icon/icons/lockOpen.svg.js +19 -2
  113. package/dist/esm/src/components/Icon/icons/map.svg.js +17 -2
  114. package/dist/esm/src/components/Icon/icons/menu.svg.js +18 -2
  115. package/dist/esm/src/components/Icon/icons/mic.svg.js +15 -2
  116. package/dist/esm/src/components/Icon/icons/micMuted.svg.js +27 -2
  117. package/dist/esm/src/components/Icon/icons/minus.svg.js +15 -2
  118. package/dist/esm/src/components/Icon/icons/moreHorizontal.svg.js +15 -2
  119. package/dist/esm/src/components/Icon/icons/moreVertical.svg.js +15 -2
  120. package/dist/esm/src/components/Icon/icons/output.svg.js +15 -2
  121. package/dist/esm/src/components/Icon/icons/pause.svg.js +15 -2
  122. package/dist/esm/src/components/Icon/icons/play.svg.js +20 -2
  123. package/dist/esm/src/components/Icon/icons/plus.svg.js +15 -2
  124. package/dist/esm/src/components/Icon/icons/redo.svg.js +15 -2
  125. package/dist/esm/src/components/Icon/icons/requiredStar.svg.js +15 -2
  126. package/dist/esm/src/components/Icon/icons/rewind.svg.js +17 -2
  127. package/dist/esm/src/components/Icon/icons/rocket.svg.js +22 -2
  128. package/dist/esm/src/components/Icon/icons/route.svg.js +17 -2
  129. package/dist/esm/src/components/Icon/icons/routeFrom.svg.js +31 -2
  130. package/dist/esm/src/components/Icon/icons/routeTo.svg.js +31 -2
  131. package/dist/esm/src/components/Icon/icons/save.svg.js +17 -2
  132. package/dist/esm/src/components/Icon/icons/search.svg.js +17 -2
  133. package/dist/esm/src/components/Icon/icons/send.svg.js +16 -2
  134. package/dist/esm/src/components/Icon/icons/settings.svg.js +52 -2
  135. package/dist/esm/src/components/Icon/icons/shoppingBag.svg.js +17 -2
  136. package/dist/esm/src/components/Icon/icons/smile.svg.js +30 -2
  137. package/dist/esm/src/components/Icon/icons/soundWave.svg.js +66 -2
  138. package/dist/esm/src/components/Icon/icons/sparks.svg.js +21 -2
  139. package/dist/esm/src/components/Icon/icons/star.svg.js +18 -2
  140. package/dist/esm/src/components/Icon/icons/stop.svg.js +22 -2
  141. package/dist/esm/src/components/Icon/icons/stopInCircle.svg.js +17 -2
  142. package/dist/esm/src/components/Icon/icons/syncArrows.svg.js +22 -2
  143. package/dist/esm/src/components/Icon/icons/table.svg.js +15 -2
  144. package/dist/esm/src/components/Icon/icons/telegram.svg.js +19 -2
  145. package/dist/esm/src/components/Icon/icons/tool.svg.js +17 -2
  146. package/dist/esm/src/components/Icon/icons/trafficLight.svg.js +49 -2
  147. package/dist/esm/src/components/Icon/icons/undo.svg.js +15 -2
  148. package/dist/esm/src/components/Icon/icons/usage.svg.js +25 -2
  149. package/dist/esm/src/components/Icon/icons/youtube.svg.js +20 -2
  150. package/dist/esm/src/components/Input/Input.js +281 -2
  151. package/dist/esm/src/components/Input/Input.styl.js +7 -2
  152. package/dist/esm/src/components/InputFile/InputFile.js +314 -2
  153. package/dist/esm/src/components/InputFile/InputFile.styl.js +7 -2
  154. package/dist/esm/src/components/InputFile/InputFile.types.js +0 -1
  155. package/dist/esm/src/components/InputFile/Item/Item.js +18 -2
  156. package/dist/esm/src/components/InputFile/Item/Item.styl.js +7 -2
  157. package/dist/esm/src/components/Label/Label.constants.json.js +8 -2
  158. package/dist/esm/src/components/Label/Label.helpers.js +35 -2
  159. package/dist/esm/src/components/Label/Label.js +58 -2
  160. package/dist/esm/src/components/Label/Label.styl.js +7 -2
  161. package/dist/esm/src/components/LangSelector/LangSelector.js +10 -2
  162. package/dist/esm/src/components/Lazy/Lazy.js +74 -2
  163. package/dist/esm/src/components/LightBox/LightBox.js +28 -2
  164. package/dist/esm/src/components/LightBox/LightBox.styl.js +7 -2
  165. package/dist/esm/src/components/Menu/Menu.js +27 -2
  166. package/dist/esm/src/components/Menu/Menu.styl.js +7 -2
  167. package/dist/esm/src/components/Notifications/Notifications.constants.json.js +6 -2
  168. package/dist/esm/src/components/Notifications/Notifications.js +67 -2
  169. package/dist/esm/src/components/Notifications/Notifications.styl.js +7 -2
  170. package/dist/esm/src/components/Notifications/store.js +72 -2
  171. package/dist/esm/src/components/Paranja/Paranja.js +14 -2
  172. package/dist/esm/src/components/Paranja/Paranja.styl.js +7 -2
  173. package/dist/esm/src/components/Popup/Popup.helpers.js +130 -2
  174. package/dist/esm/src/components/Popup/Popup.js +484 -2
  175. package/dist/esm/src/components/Popup/Popup.styl.js +7 -2
  176. package/dist/esm/src/components/PopupMenu/PopupMenu.js +15 -2
  177. package/dist/esm/src/components/PopupMenu/PopupMenu.styl.js +7 -2
  178. package/dist/esm/src/components/Portal/Portal.js +33 -2
  179. package/dist/esm/src/components/Progress/Progress.helpers.js +5 -2
  180. package/dist/esm/src/components/Progress/Progress.js +12 -2
  181. package/dist/esm/src/components/Progress/Progress.styl.js +7 -2
  182. package/dist/esm/src/components/ProgressCircular/ProgressCircular.js +23 -2
  183. package/dist/esm/src/components/ProgressCircular/ProgressCircular.styl.js +7 -2
  184. package/dist/esm/src/components/RadioButton/RadioButton.js +33 -2
  185. package/dist/esm/src/components/RadioButton/RadioButton.styl.js +7 -2
  186. package/dist/esm/src/components/RadioGroup/RadioGroup.js +31 -2
  187. package/dist/esm/src/components/RadioGroup/RadioGroup.styl.js +7 -2
  188. package/dist/esm/src/components/RadioGroup/RadioGroupContext.js +8 -2
  189. package/dist/esm/src/components/RequiredStar/RequiredStar.js +12 -2
  190. package/dist/esm/src/components/RequiredStar/RequiredStar.styl.js +7 -2
  191. package/dist/esm/src/components/Router/Link/Link.js +62 -2
  192. package/dist/esm/src/components/Router/Link/Link.styl.js +7 -2
  193. package/dist/esm/src/components/Router/Redirect.js +12 -2
  194. package/dist/esm/src/components/Router/Route.js +6 -2
  195. package/dist/esm/src/components/Router/Router.helpers.js +33 -2
  196. package/dist/esm/src/components/Router/Router.js +72 -2
  197. package/dist/esm/src/components/Router/context.js +5 -2
  198. package/dist/esm/src/components/Router/store.js +75 -2
  199. package/dist/esm/src/components/Scroll/Scroll.js +308 -2
  200. package/dist/esm/src/components/Scroll/Scroll.styl.js +7 -2
  201. package/dist/esm/src/components/Select/Select.helpers.js +37 -2
  202. package/dist/esm/src/components/Select/Select.js +601 -2
  203. package/dist/esm/src/components/Select/Select.styl.js +7 -2
  204. package/dist/esm/src/components/Select/Select2.js +334 -2
  205. package/dist/esm/src/components/Shimmer/Shimmer.js +7 -2
  206. package/dist/esm/src/components/Shimmer/Shimmer.styl.js +7 -2
  207. package/dist/esm/src/components/Spinner/Spinner.js +11 -2
  208. package/dist/esm/src/components/Spinner/Spinner.styl.js +7 -2
  209. package/dist/esm/src/components/Spinner/spinner.svg.js +24 -2
  210. package/dist/esm/src/components/Table/Table.js +24 -2
  211. package/dist/esm/src/components/Table/Table.styl.js +7 -2
  212. package/dist/esm/src/components/Tabs/Tabs.js +48 -2
  213. package/dist/esm/src/components/Tabs/Tabs.styl.js +7 -2
  214. package/dist/esm/src/components/Text/Text.js +44 -2
  215. package/dist/esm/src/components/Text/Text.styl.js +7 -2
  216. package/dist/esm/src/components/TextShimmer/TextShimmer.js +29 -0
  217. package/dist/esm/src/components/TextShimmer/TextShimmer.styl.js +7 -0
  218. package/dist/esm/src/components/Theme/Theme.defaults.js +53 -2
  219. package/dist/esm/src/components/Theme/Theme.helpers.js +67 -2
  220. package/dist/esm/src/components/Theme/Theme.js +15 -2
  221. package/dist/esm/src/components/Theme/ThemeProvider.js +50 -2
  222. package/dist/esm/src/components/Toggle/Toggle.js +18 -2
  223. package/dist/esm/src/components/Toggle/Toggle.styl.js +7 -2
  224. package/dist/esm/src/components/Tooltip/Tooltip.js +86 -2
  225. package/dist/esm/src/components/Tooltip/Tooltip.styl.js +7 -2
  226. package/dist/esm/src/components/VH/VH.js +33 -2
  227. package/dist/esm/src/components/Virtualized/List/List.js +136 -2
  228. package/dist/esm/src/components/Virtualized/List/List.styl.js +7 -2
  229. package/dist/esm/src/components/Virtualized/List/ListScroll.js +22 -2
  230. package/dist/esm/src/components/Virtualized/List/ListScroll.styl.js +7 -2
  231. package/dist/esm/src/components/Virtualized/Virtualized.helpers.js +14 -2
  232. package/dist/esm/src/components/Virtualized/Virtualized.js +218 -2
  233. package/dist/esm/src/components/Virtualized/Virtualized.styl.js +7 -2
  234. package/dist/esm/src/components/Virtualized/Virtualized.types.js +0 -1
  235. package/dist/esm/src/hooks/useDebounce.js +11 -2
  236. package/dist/esm/src/hooks/useEvent.js +27 -2
  237. package/dist/esm/src/hooks/useIsMounted.js +11 -2
  238. package/dist/esm/src/hooks/useListKeyboardControl.js +50 -2
  239. package/dist/esm/src/hooks/useResizeObserver.js +15 -2
  240. package/dist/esm/src/hooks/useThrottle.js +31 -2
  241. package/dist/esm/src/hooks/useToggleState.js +35 -2
  242. package/dist/esm/src/services/i18n.js +112 -2
  243. package/dist/esm/src/tools/array.js +60 -2
  244. package/dist/esm/src/tools/config.js +9 -2
  245. package/dist/esm/src/tools/date.js +11 -2
  246. package/dist/esm/src/tools/debounce.js +11 -2
  247. package/dist/esm/src/tools/dom.js +57 -2
  248. package/dist/esm/src/tools/env.js +3 -2
  249. package/dist/esm/src/tools/file.js +11 -2
  250. package/dist/esm/src/tools/localStorage.js +31 -2
  251. package/dist/esm/src/tools/number.js +27 -2
  252. package/dist/esm/src/tools/object.js +5 -2
  253. package/dist/esm/src/tools/queryParams.js +40 -2
  254. package/dist/esm/src/tools/rangeMap.js +3 -2
  255. package/dist/esm/src/tools/resizeObserver.js +68 -2
  256. package/dist/esm/src/tools/scroll.js +41 -2
  257. package/dist/esm/src/tools/string.js +7 -2
  258. package/dist/esm/src/tools/throttle.js +30 -2
  259. package/dist/esm/src/tools/uid.js +7 -2
  260. package/dist/esm/types/src/components/Notifications/Notifications.types.d.ts +4 -2
  261. package/dist/esm/types/src/components/TextShimmer/TextShimmer.d.ts +5 -0
  262. package/dist/esm/types/src/components/TextShimmer/TextShimmer.types.d.ts +9 -0
  263. package/dist/esm/types/src/components/TextShimmer/index.d.ts +2 -0
  264. package/dist/esm/types/src/components/index.d.ts +1 -0
  265. package/package.json +1 -1
  266. package/dist/esm/index.js.map +0 -1
  267. package/dist/esm/node_modules/style-inject/dist/style-inject.es.js.map +0 -1
  268. package/dist/esm/src/components/AssistiveText/AssistiveText.js.map +0 -1
  269. package/dist/esm/src/components/AssistiveText/AssistiveText.styl.js.map +0 -1
  270. package/dist/esm/src/components/Autocomplete/Autocomplete.js.map +0 -1
  271. package/dist/esm/src/components/Autocomplete/Autocomplete.styl.js.map +0 -1
  272. package/dist/esm/src/components/Button/Button.helpers.js.map +0 -1
  273. package/dist/esm/src/components/Button/Button.js.map +0 -1
  274. package/dist/esm/src/components/Button/Button.styl.js.map +0 -1
  275. package/dist/esm/src/components/ButtonGroup/ButtonGroup.js.map +0 -1
  276. package/dist/esm/src/components/ButtonGroup/ButtonGroup.styl.js.map +0 -1
  277. package/dist/esm/src/components/Calendar/Calendar.helpers.js.map +0 -1
  278. package/dist/esm/src/components/Calendar/Calendar.js.map +0 -1
  279. package/dist/esm/src/components/Calendar/Calendar.styl.js.map +0 -1
  280. package/dist/esm/src/components/Card/Card.js.map +0 -1
  281. package/dist/esm/src/components/Card/Card.styl.js.map +0 -1
  282. package/dist/esm/src/components/Checkbox/Checkbox.js.map +0 -1
  283. package/dist/esm/src/components/Checkbox/Checkbox.styl.js.map +0 -1
  284. package/dist/esm/src/components/Chip/Chip.js.map +0 -1
  285. package/dist/esm/src/components/Chip/Chip.styl.js.map +0 -1
  286. package/dist/esm/src/components/Container/Container.js.map +0 -1
  287. package/dist/esm/src/components/Container/Container.styl.js.map +0 -1
  288. package/dist/esm/src/components/DatePicker/DatePicker.helpers.js.map +0 -1
  289. package/dist/esm/src/components/DatePicker/DatePicker.js.map +0 -1
  290. package/dist/esm/src/components/DatePicker/DatePicker.styl.js.map +0 -1
  291. package/dist/esm/src/components/DatePickerInput/DatePickerInput.js.map +0 -1
  292. package/dist/esm/src/components/DatePickerInput/DatePickerInput.styl.js.map +0 -1
  293. package/dist/esm/src/components/DateTime/DateTime.js.map +0 -1
  294. package/dist/esm/src/components/Dialogue/Dialogue.js.map +0 -1
  295. package/dist/esm/src/components/Dialogue/Dialogue.styl.js.map +0 -1
  296. package/dist/esm/src/components/Draggable/Draggable.js.map +0 -1
  297. package/dist/esm/src/components/Draggable/Draggable.styl.js.map +0 -1
  298. package/dist/esm/src/components/DropZone/DropZone.js.map +0 -1
  299. package/dist/esm/src/components/DropZone/DropZone.styl.js.map +0 -1
  300. package/dist/esm/src/components/Expand/Expand.js.map +0 -1
  301. package/dist/esm/src/components/Expand/Expand.styl.js.map +0 -1
  302. package/dist/esm/src/components/Flex/Flex.js.map +0 -1
  303. package/dist/esm/src/components/Flex/Flex.styl.js.map +0 -1
  304. package/dist/esm/src/components/Form/Form.helpers.js.map +0 -1
  305. package/dist/esm/src/components/Form/Form.js.map +0 -1
  306. package/dist/esm/src/components/Form/Form.styl.js.map +0 -1
  307. package/dist/esm/src/components/Form/Form.types.js.map +0 -1
  308. package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.js.map +0 -1
  309. package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.styl.js.map +0 -1
  310. package/dist/esm/src/components/Form/Validator.js.map +0 -1
  311. package/dist/esm/src/components/Gallery/Dots/Dots.js.map +0 -1
  312. package/dist/esm/src/components/Gallery/Dots/Dots.styl.js.map +0 -1
  313. package/dist/esm/src/components/Gallery/Gallery.js.map +0 -1
  314. package/dist/esm/src/components/Gallery/Gallery.styl.js.map +0 -1
  315. package/dist/esm/src/components/Heading/Heading.js.map +0 -1
  316. package/dist/esm/src/components/Heading/Heading.styl.js.map +0 -1
  317. package/dist/esm/src/components/Icon/Icon.js.map +0 -1
  318. package/dist/esm/src/components/Icon/Icon.styl.js.map +0 -1
  319. package/dist/esm/src/components/Icon/icons/apple.svg.js.map +0 -1
  320. package/dist/esm/src/components/Icon/icons/arrowDown.svg.js.map +0 -1
  321. package/dist/esm/src/components/Icon/icons/arrowLeft.svg.js.map +0 -1
  322. package/dist/esm/src/components/Icon/icons/arrowRight.svg.js.map +0 -1
  323. package/dist/esm/src/components/Icon/icons/arrowUp.svg.js.map +0 -1
  324. package/dist/esm/src/components/Icon/icons/attach.svg.js.map +0 -1
  325. package/dist/esm/src/components/Icon/icons/avatar.svg.js.map +0 -1
  326. package/dist/esm/src/components/Icon/icons/bookmark.svg.js.map +0 -1
  327. package/dist/esm/src/components/Icon/icons/bookmarkAdd.svg.js.map +0 -1
  328. package/dist/esm/src/components/Icon/icons/brain.svg.js.map +0 -1
  329. package/dist/esm/src/components/Icon/icons/brokenImage.svg.js.map +0 -1
  330. package/dist/esm/src/components/Icon/icons/call.svg.js.map +0 -1
  331. package/dist/esm/src/components/Icon/icons/camera.svg.js.map +0 -1
  332. package/dist/esm/src/components/Icon/icons/chat.svg.js.map +0 -1
  333. package/dist/esm/src/components/Icon/icons/check.svg.js.map +0 -1
  334. package/dist/esm/src/components/Icon/icons/checkers.svg.js.map +0 -1
  335. package/dist/esm/src/components/Icon/icons/chevronDown.svg.js.map +0 -1
  336. package/dist/esm/src/components/Icon/icons/chevronLeft.svg.js.map +0 -1
  337. package/dist/esm/src/components/Icon/icons/chevronRight.svg.js.map +0 -1
  338. package/dist/esm/src/components/Icon/icons/chevronUp.svg.js.map +0 -1
  339. package/dist/esm/src/components/Icon/icons/clearAll.svg.js.map +0 -1
  340. package/dist/esm/src/components/Icon/icons/close.svg.js.map +0 -1
  341. package/dist/esm/src/components/Icon/icons/colors.svg.js.map +0 -1
  342. package/dist/esm/src/components/Icon/icons/compass.svg.js.map +0 -1
  343. package/dist/esm/src/components/Icon/icons/copy.svg.js.map +0 -1
  344. package/dist/esm/src/components/Icon/icons/cubes.svg.js.map +0 -1
  345. package/dist/esm/src/components/Icon/icons/delete.svg.js.map +0 -1
  346. package/dist/esm/src/components/Icon/icons/discord.svg.js.map +0 -1
  347. package/dist/esm/src/components/Icon/icons/draft.svg.js.map +0 -1
  348. package/dist/esm/src/components/Icon/icons/dragHandlerHorizontal.svg.js.map +0 -1
  349. package/dist/esm/src/components/Icon/icons/dragHandlerVertical.svg.js.map +0 -1
  350. package/dist/esm/src/components/Icon/icons/edit.svg.js.map +0 -1
  351. package/dist/esm/src/components/Icon/icons/email.svg.js.map +0 -1
  352. package/dist/esm/src/components/Icon/icons/externalLink.svg.js.map +0 -1
  353. package/dist/esm/src/components/Icon/icons/eye.svg.js.map +0 -1
  354. package/dist/esm/src/components/Icon/icons/flyover.svg.js.map +0 -1
  355. package/dist/esm/src/components/Icon/icons/folder.svg.js.map +0 -1
  356. package/dist/esm/src/components/Icon/icons/folderOpen.svg.js.map +0 -1
  357. package/dist/esm/src/components/Icon/icons/forward.svg.js.map +0 -1
  358. package/dist/esm/src/components/Icon/icons/fullscreen.svg.js.map +0 -1
  359. package/dist/esm/src/components/Icon/icons/fullscreenExit.svg.js.map +0 -1
  360. package/dist/esm/src/components/Icon/icons/function.svg.js.map +0 -1
  361. package/dist/esm/src/components/Icon/icons/gear.svg.js.map +0 -1
  362. package/dist/esm/src/components/Icon/icons/geolocation.svg.js.map +0 -1
  363. package/dist/esm/src/components/Icon/icons/github.svg.js.map +0 -1
  364. package/dist/esm/src/components/Icon/icons/globe.svg.js.map +0 -1
  365. package/dist/esm/src/components/Icon/icons/google.svg.js.map +0 -1
  366. package/dist/esm/src/components/Icon/icons/group.svg.js.map +0 -1
  367. package/dist/esm/src/components/Icon/icons/history.svg.js.map +0 -1
  368. package/dist/esm/src/components/Icon/icons/home.svg.js.map +0 -1
  369. package/dist/esm/src/components/Icon/icons/image.svg.js.map +0 -1
  370. package/dist/esm/src/components/Icon/icons/index.js.map +0 -1
  371. package/dist/esm/src/components/Icon/icons/instagram.svg.js.map +0 -1
  372. package/dist/esm/src/components/Icon/icons/layers.svg.js.map +0 -1
  373. package/dist/esm/src/components/Icon/icons/link.svg.js.map +0 -1
  374. package/dist/esm/src/components/Icon/icons/linkedin.svg.js.map +0 -1
  375. package/dist/esm/src/components/Icon/icons/loader.svg.js.map +0 -1
  376. package/dist/esm/src/components/Icon/icons/lock.svg.js.map +0 -1
  377. package/dist/esm/src/components/Icon/icons/lockOpen.svg.js.map +0 -1
  378. package/dist/esm/src/components/Icon/icons/map.svg.js.map +0 -1
  379. package/dist/esm/src/components/Icon/icons/menu.svg.js.map +0 -1
  380. package/dist/esm/src/components/Icon/icons/mic.svg.js.map +0 -1
  381. package/dist/esm/src/components/Icon/icons/micMuted.svg.js.map +0 -1
  382. package/dist/esm/src/components/Icon/icons/minus.svg.js.map +0 -1
  383. package/dist/esm/src/components/Icon/icons/moreHorizontal.svg.js.map +0 -1
  384. package/dist/esm/src/components/Icon/icons/moreVertical.svg.js.map +0 -1
  385. package/dist/esm/src/components/Icon/icons/output.svg.js.map +0 -1
  386. package/dist/esm/src/components/Icon/icons/pause.svg.js.map +0 -1
  387. package/dist/esm/src/components/Icon/icons/play.svg.js.map +0 -1
  388. package/dist/esm/src/components/Icon/icons/plus.svg.js.map +0 -1
  389. package/dist/esm/src/components/Icon/icons/redo.svg.js.map +0 -1
  390. package/dist/esm/src/components/Icon/icons/requiredStar.svg.js.map +0 -1
  391. package/dist/esm/src/components/Icon/icons/rewind.svg.js.map +0 -1
  392. package/dist/esm/src/components/Icon/icons/rocket.svg.js.map +0 -1
  393. package/dist/esm/src/components/Icon/icons/route.svg.js.map +0 -1
  394. package/dist/esm/src/components/Icon/icons/routeFrom.svg.js.map +0 -1
  395. package/dist/esm/src/components/Icon/icons/routeTo.svg.js.map +0 -1
  396. package/dist/esm/src/components/Icon/icons/save.svg.js.map +0 -1
  397. package/dist/esm/src/components/Icon/icons/search.svg.js.map +0 -1
  398. package/dist/esm/src/components/Icon/icons/send.svg.js.map +0 -1
  399. package/dist/esm/src/components/Icon/icons/settings.svg.js.map +0 -1
  400. package/dist/esm/src/components/Icon/icons/shoppingBag.svg.js.map +0 -1
  401. package/dist/esm/src/components/Icon/icons/smile.svg.js.map +0 -1
  402. package/dist/esm/src/components/Icon/icons/soundWave.svg.js.map +0 -1
  403. package/dist/esm/src/components/Icon/icons/sparks.svg.js.map +0 -1
  404. package/dist/esm/src/components/Icon/icons/star.svg.js.map +0 -1
  405. package/dist/esm/src/components/Icon/icons/stop.svg.js.map +0 -1
  406. package/dist/esm/src/components/Icon/icons/stopInCircle.svg.js.map +0 -1
  407. package/dist/esm/src/components/Icon/icons/syncArrows.svg.js.map +0 -1
  408. package/dist/esm/src/components/Icon/icons/table.svg.js.map +0 -1
  409. package/dist/esm/src/components/Icon/icons/telegram.svg.js.map +0 -1
  410. package/dist/esm/src/components/Icon/icons/tool.svg.js.map +0 -1
  411. package/dist/esm/src/components/Icon/icons/trafficLight.svg.js.map +0 -1
  412. package/dist/esm/src/components/Icon/icons/undo.svg.js.map +0 -1
  413. package/dist/esm/src/components/Icon/icons/usage.svg.js.map +0 -1
  414. package/dist/esm/src/components/Icon/icons/youtube.svg.js.map +0 -1
  415. package/dist/esm/src/components/Input/Input.js.map +0 -1
  416. package/dist/esm/src/components/Input/Input.styl.js.map +0 -1
  417. package/dist/esm/src/components/InputFile/InputFile.js.map +0 -1
  418. package/dist/esm/src/components/InputFile/InputFile.styl.js.map +0 -1
  419. package/dist/esm/src/components/InputFile/InputFile.types.js.map +0 -1
  420. package/dist/esm/src/components/InputFile/Item/Item.js.map +0 -1
  421. package/dist/esm/src/components/InputFile/Item/Item.styl.js.map +0 -1
  422. package/dist/esm/src/components/Label/Label.constants.json.js.map +0 -1
  423. package/dist/esm/src/components/Label/Label.helpers.js.map +0 -1
  424. package/dist/esm/src/components/Label/Label.js.map +0 -1
  425. package/dist/esm/src/components/Label/Label.styl.js.map +0 -1
  426. package/dist/esm/src/components/LangSelector/LangSelector.js.map +0 -1
  427. package/dist/esm/src/components/Lazy/Lazy.js.map +0 -1
  428. package/dist/esm/src/components/LightBox/LightBox.js.map +0 -1
  429. package/dist/esm/src/components/LightBox/LightBox.styl.js.map +0 -1
  430. package/dist/esm/src/components/Menu/Menu.js.map +0 -1
  431. package/dist/esm/src/components/Menu/Menu.styl.js.map +0 -1
  432. package/dist/esm/src/components/Notifications/Notifications.constants.json.js.map +0 -1
  433. package/dist/esm/src/components/Notifications/Notifications.js.map +0 -1
  434. package/dist/esm/src/components/Notifications/Notifications.styl.js.map +0 -1
  435. package/dist/esm/src/components/Notifications/store.js.map +0 -1
  436. package/dist/esm/src/components/Paranja/Paranja.js.map +0 -1
  437. package/dist/esm/src/components/Paranja/Paranja.styl.js.map +0 -1
  438. package/dist/esm/src/components/Popup/Popup.helpers.js.map +0 -1
  439. package/dist/esm/src/components/Popup/Popup.js.map +0 -1
  440. package/dist/esm/src/components/Popup/Popup.styl.js.map +0 -1
  441. package/dist/esm/src/components/PopupMenu/PopupMenu.js.map +0 -1
  442. package/dist/esm/src/components/PopupMenu/PopupMenu.styl.js.map +0 -1
  443. package/dist/esm/src/components/Portal/Portal.js.map +0 -1
  444. package/dist/esm/src/components/Progress/Progress.helpers.js.map +0 -1
  445. package/dist/esm/src/components/Progress/Progress.js.map +0 -1
  446. package/dist/esm/src/components/Progress/Progress.styl.js.map +0 -1
  447. package/dist/esm/src/components/ProgressCircular/ProgressCircular.js.map +0 -1
  448. package/dist/esm/src/components/ProgressCircular/ProgressCircular.styl.js.map +0 -1
  449. package/dist/esm/src/components/RadioButton/RadioButton.js.map +0 -1
  450. package/dist/esm/src/components/RadioButton/RadioButton.styl.js.map +0 -1
  451. package/dist/esm/src/components/RadioGroup/RadioGroup.js.map +0 -1
  452. package/dist/esm/src/components/RadioGroup/RadioGroup.styl.js.map +0 -1
  453. package/dist/esm/src/components/RadioGroup/RadioGroupContext.js.map +0 -1
  454. package/dist/esm/src/components/RequiredStar/RequiredStar.js.map +0 -1
  455. package/dist/esm/src/components/RequiredStar/RequiredStar.styl.js.map +0 -1
  456. package/dist/esm/src/components/Router/Link/Link.js.map +0 -1
  457. package/dist/esm/src/components/Router/Link/Link.styl.js.map +0 -1
  458. package/dist/esm/src/components/Router/Redirect.js.map +0 -1
  459. package/dist/esm/src/components/Router/Route.js.map +0 -1
  460. package/dist/esm/src/components/Router/Router.helpers.js.map +0 -1
  461. package/dist/esm/src/components/Router/Router.js.map +0 -1
  462. package/dist/esm/src/components/Router/context.js.map +0 -1
  463. package/dist/esm/src/components/Router/store.js.map +0 -1
  464. package/dist/esm/src/components/Scroll/Scroll.js.map +0 -1
  465. package/dist/esm/src/components/Scroll/Scroll.styl.js.map +0 -1
  466. package/dist/esm/src/components/Select/Select.helpers.js.map +0 -1
  467. package/dist/esm/src/components/Select/Select.js.map +0 -1
  468. package/dist/esm/src/components/Select/Select.styl.js.map +0 -1
  469. package/dist/esm/src/components/Select/Select2.js.map +0 -1
  470. package/dist/esm/src/components/Shimmer/Shimmer.js.map +0 -1
  471. package/dist/esm/src/components/Shimmer/Shimmer.styl.js.map +0 -1
  472. package/dist/esm/src/components/Spinner/Spinner.js.map +0 -1
  473. package/dist/esm/src/components/Spinner/Spinner.styl.js.map +0 -1
  474. package/dist/esm/src/components/Spinner/spinner.svg.js.map +0 -1
  475. package/dist/esm/src/components/Table/Table.js.map +0 -1
  476. package/dist/esm/src/components/Table/Table.styl.js.map +0 -1
  477. package/dist/esm/src/components/Tabs/Tabs.js.map +0 -1
  478. package/dist/esm/src/components/Tabs/Tabs.styl.js.map +0 -1
  479. package/dist/esm/src/components/Text/Text.js.map +0 -1
  480. package/dist/esm/src/components/Text/Text.styl.js.map +0 -1
  481. package/dist/esm/src/components/Theme/Theme.defaults.js.map +0 -1
  482. package/dist/esm/src/components/Theme/Theme.helpers.js.map +0 -1
  483. package/dist/esm/src/components/Theme/Theme.js.map +0 -1
  484. package/dist/esm/src/components/Theme/ThemeProvider.js.map +0 -1
  485. package/dist/esm/src/components/Toggle/Toggle.js.map +0 -1
  486. package/dist/esm/src/components/Toggle/Toggle.styl.js.map +0 -1
  487. package/dist/esm/src/components/Tooltip/Tooltip.js.map +0 -1
  488. package/dist/esm/src/components/Tooltip/Tooltip.styl.js.map +0 -1
  489. package/dist/esm/src/components/VH/VH.js.map +0 -1
  490. package/dist/esm/src/components/Virtualized/List/List.js.map +0 -1
  491. package/dist/esm/src/components/Virtualized/List/List.styl.js.map +0 -1
  492. package/dist/esm/src/components/Virtualized/List/ListScroll.js.map +0 -1
  493. package/dist/esm/src/components/Virtualized/List/ListScroll.styl.js.map +0 -1
  494. package/dist/esm/src/components/Virtualized/Virtualized.helpers.js.map +0 -1
  495. package/dist/esm/src/components/Virtualized/Virtualized.js.map +0 -1
  496. package/dist/esm/src/components/Virtualized/Virtualized.styl.js.map +0 -1
  497. package/dist/esm/src/components/Virtualized/Virtualized.types.js.map +0 -1
  498. package/dist/esm/src/hooks/useDebounce.js.map +0 -1
  499. package/dist/esm/src/hooks/useEvent.js.map +0 -1
  500. package/dist/esm/src/hooks/useIsMounted.js.map +0 -1
  501. package/dist/esm/src/hooks/useListKeyboardControl.js.map +0 -1
  502. package/dist/esm/src/hooks/useResizeObserver.js.map +0 -1
  503. package/dist/esm/src/hooks/useThrottle.js.map +0 -1
  504. package/dist/esm/src/hooks/useToggleState.js.map +0 -1
  505. package/dist/esm/src/services/i18n.js.map +0 -1
  506. package/dist/esm/src/tools/array.js.map +0 -1
  507. package/dist/esm/src/tools/config.js.map +0 -1
  508. package/dist/esm/src/tools/date.js.map +0 -1
  509. package/dist/esm/src/tools/debounce.js.map +0 -1
  510. package/dist/esm/src/tools/dom.js.map +0 -1
  511. package/dist/esm/src/tools/env.js.map +0 -1
  512. package/dist/esm/src/tools/file.js.map +0 -1
  513. package/dist/esm/src/tools/localStorage.js.map +0 -1
  514. package/dist/esm/src/tools/number.js.map +0 -1
  515. package/dist/esm/src/tools/object.js.map +0 -1
  516. package/dist/esm/src/tools/queryParams.js.map +0 -1
  517. package/dist/esm/src/tools/rangeMap.js.map +0 -1
  518. package/dist/esm/src/tools/resizeObserver.js.map +0 -1
  519. package/dist/esm/src/tools/scroll.js.map +0 -1
  520. package/dist/esm/src/tools/string.js.map +0 -1
  521. package/dist/esm/src/tools/throttle.js.map +0 -1
  522. package/dist/esm/src/tools/uid.js.map +0 -1
@@ -1,2 +1,33 @@
1
- function dateToString(e){var t=String(e.month).padStart(2,"0"),r=String(e.day).padStart(2,"0");return e.year+`-${t}-`+r}function stringToDate(e){var[e,t,r]=e.split("-");return{year:Number(e),month:Number(t),day:Number(r)}}function isDateEqual(e,t){return e.year===t.year&&e.month===t.month&&e.day===t.day}function isDateBefore(e,t){return e.year<t.year||e.year===t.year&&e.month<t.month||e.year===t.year&&e.month===t.month&&e.day<t.day}function isDateAfter(e,t){return isDateBefore(t,e)}function isDateBetween(e,t,r){return isDateAfter(e,t)&&isDateBefore(e,r)}export{dateToString,isDateAfter,isDateBefore,isDateBetween,isDateEqual,stringToDate};
2
- //# sourceMappingURL=DatePicker.helpers.js.map
1
+ function dateToString(date) {
2
+ const month = String(date.month).padStart(2, '0');
3
+ const day = String(date.day).padStart(2, '0');
4
+ return `${date.year}-${month}-${day}`;
5
+ }
6
+ function stringToDate(dateString) {
7
+ const [year, month, day] = dateString.split('-');
8
+ return {
9
+ year: Number(year),
10
+ month: Number(month),
11
+ day: Number(day),
12
+ };
13
+ }
14
+ function isDateEqual(date1, date2) {
15
+ return (date1.year === date2.year &&
16
+ date1.month === date2.month &&
17
+ date1.day === date2.day);
18
+ }
19
+ function isDateBefore(date1, date2) {
20
+ return (date1.year < date2.year ||
21
+ (date1.year === date2.year && date1.month < date2.month) ||
22
+ (date1.year === date2.year &&
23
+ date1.month === date2.month &&
24
+ date1.day < date2.day));
25
+ }
26
+ function isDateAfter(date1, date2) {
27
+ return isDateBefore(date2, date1);
28
+ }
29
+ function isDateBetween(date, startDate, endDate) {
30
+ return isDateAfter(date, startDate) && isDateBefore(date, endDate);
31
+ }
32
+
33
+ export { dateToString, isDateAfter, isDateBefore, isDateBetween, isDateEqual, stringToDate };
@@ -1,2 +1,47 @@
1
- import{jsxs,jsx}from"react/jsx-runtime";import{useState,useCallback,createElement}from"react";import cn from"classnames";import{Calendar}from"../Calendar/Calendar.js";import{Button}from"../Button/Button.js";import{dateToString,isDateAfter,stringToDate,isDateBetween,isDateEqual}from"./DatePicker.helpers.js";import S from"./DatePicker.styl.js";function DatePicker(e){const{value:c,onChange:D,size:d,doubleCalendar:a,calendarProps:t={}}=e,m=Array.isArray(c),[u,r]=useState(!1);var n=useCallback(e=>{e=dateToString(e);D(m?[e,c[1]]:e)},[c,D,m]),s=useCallback((a,{className:e,...t})=>{var{day:r,year:n,month:s}=a;const o=dateToString(a);m&&u&&(t.onPointerOver=()=>{var e=isDateAfter(stringToDate(c[0]),a)?[o,c[0]]:[c[0],o];D(e)});var i,l,e=[e,S.day];return m&&(i=stringToDate(c[0]),l=stringToDate(c[1]),isDateBetween(a,i,l)&&e.push(S.between),isDateEqual(a,i)&&e.push(S.start),isDateEqual(a,l))&&e.push(S.end),createElement(Button,{...t,variant:"clear",className:cn(e),size:d,key:n+`-${s}-`+r},r)},[d,u,m,c,D]);return t.className=cn(t.className,S.calendar),jsxs("div",{className:cn(S.root,a&&S.doubleCalendar,e.className),onPointerDown:()=>r(!0),onPointerUp:()=>r(!1),children:[jsx(Calendar,{size:d,hideOtherMonthDays:m,...t,renderDay:s,value:stringToDate(m?c[0]:c),onDayPointerDown:n,onDayPointerUp:void 0}),m&&a&&jsx(Calendar,{size:d,hideOtherMonthDays:m,...t,renderDay:s,value:stringToDate(c[1]),onDayPointerDown:e=>D([c[0],dateToString(e)]),onDayPointerUp:e=>D([c[0],dateToString(e)])})]})}export{DatePicker};
2
- //# sourceMappingURL=DatePicker.js.map
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState, useCallback, createElement } from 'react';
3
+ import cn from 'classnames';
4
+ import { Calendar } from '../Calendar/Calendar.js';
5
+ import { Button } from '../Button/Button.js';
6
+ import { dateToString, isDateAfter, stringToDate, isDateBetween, isDateEqual } from './DatePicker.helpers.js';
7
+ import S from './DatePicker.styl.js';
8
+
9
+ function DatePicker(props) {
10
+ const { value, onChange, size, doubleCalendar, calendarProps = {} } = props;
11
+ const isRange = Array.isArray(value);
12
+ const [isPicking, setIsPicking] = useState(false);
13
+ const onFirstDateChange = useCallback((val) => {
14
+ const valStr = dateToString(val);
15
+ onChange(isRange ? [valStr, value[1]] : valStr);
16
+ }, [value, onChange, isRange]);
17
+ const onPointerDown = () => setIsPicking(true);
18
+ const onPointerUp = () => setIsPicking(false);
19
+ const renderDay = useCallback((val, { className, ...props }) => {
20
+ const { day, year, month } = val;
21
+ const valStr = dateToString(val);
22
+ if (isRange && isPicking) {
23
+ props.onPointerOver = () => {
24
+ const newVal = isDateAfter(stringToDate(value[0]), val)
25
+ ? [valStr, value[0]]
26
+ : [value[0], valStr];
27
+ onChange(newVal);
28
+ };
29
+ }
30
+ const classes = [className, S.day];
31
+ if (isRange) {
32
+ const from = stringToDate(value[0]);
33
+ const to = stringToDate(value[1]);
34
+ if (isDateBetween(val, from, to))
35
+ classes.push(S.between);
36
+ if (isDateEqual(val, from))
37
+ classes.push(S.start);
38
+ if (isDateEqual(val, to))
39
+ classes.push(S.end);
40
+ }
41
+ return (createElement(Button, { ...props, variant: "clear", className: cn(classes), size: size, key: `${year}-${month}-${day}` }, day));
42
+ }, [size, isPicking, isRange, value, onChange]);
43
+ calendarProps.className = cn(calendarProps.className, S.calendar);
44
+ return (jsxs("div", { className: cn(S.root, doubleCalendar && S.doubleCalendar, props.className), onPointerDown: onPointerDown, onPointerUp: onPointerUp, children: [jsx(Calendar, { size: size, hideOtherMonthDays: isRange, ...calendarProps, renderDay: renderDay, value: stringToDate(isRange ? value[0] : value), onDayPointerDown: onFirstDateChange, onDayPointerUp: undefined }), isRange && doubleCalendar && (jsx(Calendar, { size: size, hideOtherMonthDays: isRange, ...calendarProps, renderDay: renderDay, value: stringToDate(value[1]), onDayPointerDown: val => onChange([value[0], dateToString(val)]), onDayPointerUp: val => onChange([value[0], dateToString(val)]) }))] }));
45
+ }
46
+
47
+ export { DatePicker };
@@ -1,2 +1,7 @@
1
- import styleInject from"../../../node_modules/style-inject/dist/style-inject.es.js";var css_248z=".DatePicker_root__hh-PP{display:flex;flex-direction:row;gap:var(--p-5)}.DatePicker_calendar__0Fk4N{width:100%}.DatePicker_doubleCalendar__4YbNN .DatePicker_calendar__0Fk4N{width:50%}.DatePicker_day__kGD0i.DatePicker_end__KYPnO,.DatePicker_day__kGD0i.DatePicker_start__qd0rW{background-color:var(--active-color-alpha-500)!important}.DatePicker_day__kGD0i.DatePicker_start__qd0rW{border-bottom-right-radius:0;border-top-right-radius:0}.DatePicker_day__kGD0i.DatePicker_end__KYPnO{border-bottom-left-radius:0;border-top-left-radius:0}.DatePicker_day__kGD0i.DatePicker_between__1Bifb{background-color:var(--active-color-alpha-100);border-radius:0}.DatePicker_day__kGD0i:hover{background-color:var(--accent-color-alpha-100)}",S={root:"DatePicker_root__hh-PP",calendar:"DatePicker_calendar__0Fk4N",doubleCalendar:"DatePicker_doubleCalendar__4YbNN",day:"DatePicker_day__kGD0i",start:"DatePicker_start__qd0rW",end:"DatePicker_end__KYPnO",between:"DatePicker_between__1Bifb"};styleInject(css_248z);export{S as default};
2
- //# sourceMappingURL=DatePicker.styl.js.map
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".DatePicker_root__hh-PP{display:flex;flex-direction:row;gap:var(--p-5)}.DatePicker_calendar__0Fk4N{width:100%}.DatePicker_doubleCalendar__4YbNN .DatePicker_calendar__0Fk4N{width:50%}.DatePicker_day__kGD0i.DatePicker_end__KYPnO,.DatePicker_day__kGD0i.DatePicker_start__qd0rW{background-color:var(--active-color-alpha-500)!important}.DatePicker_day__kGD0i.DatePicker_start__qd0rW{border-bottom-right-radius:0;border-top-right-radius:0}.DatePicker_day__kGD0i.DatePicker_end__KYPnO{border-bottom-left-radius:0;border-top-left-radius:0}.DatePicker_day__kGD0i.DatePicker_between__1Bifb{background-color:var(--active-color-alpha-100);border-radius:0}.DatePicker_day__kGD0i:hover{background-color:var(--accent-color-alpha-100)}";
4
+ var S = {"root":"DatePicker_root__hh-PP","calendar":"DatePicker_calendar__0Fk4N","doubleCalendar":"DatePicker_doubleCalendar__4YbNN","day":"DatePicker_day__kGD0i","start":"DatePicker_start__qd0rW","end":"DatePicker_end__KYPnO","between":"DatePicker_between__1Bifb"};
5
+ styleInject(css_248z);
6
+
7
+ export { S as default };
@@ -1,2 +1,44 @@
1
- import{jsx,jsxs,Fragment}from"react/jsx-runtime";import{useState,useCallback}from"react";import cn from"classnames";import{strToDate}from"../../tools/date.js";import{DateTime}from"../DateTime/DateTime.js";import{DatePicker}from"../DatePicker/DatePicker.js";import{Button}from"../Button/Button.js";import{Popup}from"../Popup/Popup.js";import S from"./DatePickerInput.styl.js";function DatePickerInput(e){const{value:t,onChange:o,variant:a="default",size:r="m",popupProps:s,buttonProps:n,displayFormat:i="MMM Do YYYY"}=e,p=Array.isArray(t),m=void 0!==s?.isOpen,[l,c]=useState(!1);var u=useCallback(e=>{o(e),p||(m||c(!1),s?.onClose?.())},[o,p,m,s]),D=useCallback(()=>{m||c(!1),s?.onClose?.()},[s,m]),j=useCallback(()=>{m||c(!0),s?.onOpen?.()},[s,m]);return jsx(Popup,{size:r,focusControl:!0,direction:"bottom-right",isOpen:m?s.isOpen:l,onOpen:m?s.onOpen:j,onClose:m?s.onClose:D,...s,trigger:jsx(Button,{variant:a,size:r,...n,children:p?jsxs(Fragment,{children:[jsx(DateTime,{value:strToDate(t[0]),format:i})," - ",jsx(DateTime,{value:strToDate(t[1]),format:i})]}):jsx(DateTime,{value:strToDate(t),format:i})}),contentProps:{className:cn(S.popupContent,e.doubleCalendar&&S.doubleCalendar,S["size-"+r],s?.contentProps?.className)},content:jsx(DatePicker,{...e,onChange:u,className:S.content,calendarProps:{className:S.calendar}})})}export{DatePickerInput};
2
- //# sourceMappingURL=DatePickerInput.js.map
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { useState, useCallback } from 'react';
3
+ import cn from 'classnames';
4
+ import { strToDate } from '../../tools/date.js';
5
+ import { DateTime } from '../DateTime/DateTime.js';
6
+ import { DatePicker } from '../DatePicker/DatePicker.js';
7
+ import { Button } from '../Button/Button.js';
8
+ import { Popup } from '../Popup/Popup.js';
9
+ import S from './DatePickerInput.styl.js';
10
+
11
+ function DatePickerInput(props) {
12
+ const { value, onChange, variant = 'default', size = 'm', popupProps, buttonProps, displayFormat = 'MMM Do YYYY', } = props;
13
+ const isRange = Array.isArray(value);
14
+ const isControlled = popupProps?.isOpen !== undefined;
15
+ const [isOpen, setIsOpen] = useState(false);
16
+ const handleChange = useCallback((newValue) => {
17
+ onChange(newValue);
18
+ if (!isRange) {
19
+ if (!isControlled) {
20
+ setIsOpen(false);
21
+ }
22
+ popupProps?.onClose?.();
23
+ }
24
+ }, [onChange, isRange, isControlled, popupProps]);
25
+ const handleClose = useCallback(() => {
26
+ if (!isControlled) {
27
+ setIsOpen(false);
28
+ }
29
+ popupProps?.onClose?.();
30
+ }, [popupProps, isControlled]);
31
+ const handleOpen = useCallback(() => {
32
+ if (!isControlled) {
33
+ setIsOpen(true);
34
+ }
35
+ popupProps?.onOpen?.();
36
+ }, [popupProps, isControlled]);
37
+ return (jsx(Popup, { size: size, focusControl: true, direction: "bottom-right", isOpen: isControlled ? popupProps.isOpen : isOpen, onOpen: isControlled ? popupProps.onOpen : handleOpen, onClose: isControlled ? popupProps.onClose : handleClose, ...popupProps, trigger:
38
+ // @ts-ignore
39
+ jsx(Button, { variant: variant, size: size, ...buttonProps, children: isRange ? (jsxs(Fragment, { children: [jsx(DateTime, { value: strToDate(value[0]), format: displayFormat }), ' - ', jsx(DateTime, { value: strToDate(value[1]), format: displayFormat })] })) : (jsx(DateTime, { value: strToDate(value), format: displayFormat })) }), contentProps: {
40
+ className: cn(S.popupContent, props.doubleCalendar && S.doubleCalendar, S[`size-${size}`], popupProps?.contentProps?.className),
41
+ }, content: jsx(DatePicker, { ...props, onChange: handleChange, className: S.content, calendarProps: { className: S.calendar } }) }));
42
+ }
43
+
44
+ export { DatePickerInput };
@@ -1,2 +1,7 @@
1
- import styleInject from"../../../node_modules/style-inject/dist/style-inject.es.js";var css_248z=".DatePickerInput_popupContent__rcVHH{min-width:-moz-fit-content;min-width:fit-content}.DatePickerInput_content__yll-b{padding:.5em}.DatePickerInput_range__xWj9K .DatePickerInput_content__yll-b{display:flex;flex-direction:row;flex-wrap:nowrap;gap:1em}.DatePickerInput_doubleCalendar__H5CMo .DatePickerInput_calendar__vf0za{width:50%}.DatePickerInput_size-xs__ECN6b{border-radius:6px!important}.DatePickerInput_size-xs__ECN6b .DatePickerInput_content__yll-b{min-width:10em;padding:8px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-xs__ECN6b .DatePickerInput_content__yll-b{min-width:21em}.DatePickerInput_size-s__5t05o{border-radius:6px!important}.DatePickerInput_size-s__5t05o .DatePickerInput_content__yll-b{min-width:12em;padding:12px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-s__5t05o .DatePickerInput_content__yll-b{min-width:25em}.DatePickerInput_size-m__TTkHV{border-radius:9px!important}.DatePickerInput_size-m__TTkHV .DatePickerInput_content__yll-b{min-width:16em;padding:16px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-m__TTkHV .DatePickerInput_content__yll-b{min-width:33em}.DatePickerInput_size-l__-fWkE{border-radius:12px!important}.DatePickerInput_size-l__-fWkE .DatePickerInput_content__yll-b{min-width:20em;padding:20px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-l__-fWkE .DatePickerInput_content__yll-b{min-width:41em}.DatePickerInput_size-xl__aRXCl{border-radius:15px!important}.DatePickerInput_size-xl__aRXCl .DatePickerInput_content__yll-b{min-width:24em;padding:24px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-xl__aRXCl .DatePickerInput_content__yll-b{min-width:49em}",S={popupContent:"DatePickerInput_popupContent__rcVHH",content:"DatePickerInput_content__yll-b",range:"DatePickerInput_range__xWj9K",doubleCalendar:"DatePickerInput_doubleCalendar__H5CMo",calendar:"DatePickerInput_calendar__vf0za","size-xs":"DatePickerInput_size-xs__ECN6b","size-s":"DatePickerInput_size-s__5t05o","size-m":"DatePickerInput_size-m__TTkHV","size-l":"DatePickerInput_size-l__-fWkE","size-xl":"DatePickerInput_size-xl__aRXCl"};styleInject(css_248z);export{S as default};
2
- //# sourceMappingURL=DatePickerInput.styl.js.map
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".DatePickerInput_popupContent__rcVHH{min-width:-moz-fit-content;min-width:fit-content}.DatePickerInput_content__yll-b{padding:.5em}.DatePickerInput_range__xWj9K .DatePickerInput_content__yll-b{display:flex;flex-direction:row;flex-wrap:nowrap;gap:1em}.DatePickerInput_doubleCalendar__H5CMo .DatePickerInput_calendar__vf0za{width:50%}.DatePickerInput_size-xs__ECN6b{border-radius:6px!important}.DatePickerInput_size-xs__ECN6b .DatePickerInput_content__yll-b{min-width:10em;padding:8px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-xs__ECN6b .DatePickerInput_content__yll-b{min-width:21em}.DatePickerInput_size-s__5t05o{border-radius:6px!important}.DatePickerInput_size-s__5t05o .DatePickerInput_content__yll-b{min-width:12em;padding:12px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-s__5t05o .DatePickerInput_content__yll-b{min-width:25em}.DatePickerInput_size-m__TTkHV{border-radius:9px!important}.DatePickerInput_size-m__TTkHV .DatePickerInput_content__yll-b{min-width:16em;padding:16px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-m__TTkHV .DatePickerInput_content__yll-b{min-width:33em}.DatePickerInput_size-l__-fWkE{border-radius:12px!important}.DatePickerInput_size-l__-fWkE .DatePickerInput_content__yll-b{min-width:20em;padding:20px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-l__-fWkE .DatePickerInput_content__yll-b{min-width:41em}.DatePickerInput_size-xl__aRXCl{border-radius:15px!important}.DatePickerInput_size-xl__aRXCl .DatePickerInput_content__yll-b{min-width:24em;padding:24px}.DatePickerInput_doubleCalendar__H5CMo.DatePickerInput_size-xl__aRXCl .DatePickerInput_content__yll-b{min-width:49em}";
4
+ var S = {"popupContent":"DatePickerInput_popupContent__rcVHH","content":"DatePickerInput_content__yll-b","range":"DatePickerInput_range__xWj9K","doubleCalendar":"DatePickerInput_doubleCalendar__H5CMo","calendar":"DatePickerInput_calendar__vf0za","size-xs":"DatePickerInput_size-xs__ECN6b","size-s":"DatePickerInput_size-s__5t05o","size-m":"DatePickerInput_size-m__TTkHV","size-l":"DatePickerInput_size-l__-fWkE","size-xl":"DatePickerInput_size-xl__aRXCl"};
5
+ styleInject(css_248z);
6
+
7
+ export { S as default };
@@ -1,2 +1,17 @@
1
- import{jsx,Fragment}from"react/jsx-runtime";import moment from"moment";function formatDate({value:t,format:e,locale:a="en"}){t=moment(t).locale(a);return e?t[e]?t[e]():t.format(e):t.toString()}function DateTime({value:t=new Date,format:e,locale:a}){return jsx(Fragment,{children:formatDate({value:t,format:e,locale:a})})}export{DateTime,formatDate};
2
- //# sourceMappingURL=DateTime.js.map
1
+ import { jsx, Fragment } from 'react/jsx-runtime';
2
+ import moment from 'moment';
3
+
4
+ function formatDate({ value, format, locale = 'en' }) {
5
+ const d = moment(value).locale(locale);
6
+ if (format) {
7
+ if (d[format])
8
+ return d[format]();
9
+ return d.format(format);
10
+ }
11
+ return d.toString();
12
+ }
13
+ function DateTime({ value = new Date(), format, locale }) {
14
+ return jsx(Fragment, { children: formatDate({ value, format, locale }) });
15
+ }
16
+
17
+ export { DateTime, formatDate };
@@ -1,2 +1,107 @@
1
- import{jsxs,Fragment,jsx}from"react/jsx-runtime";import cn from"classnames";import{useState,useRef,useId,useEffect}from"react";import{createPortal}from"react-dom";import{Card,CardHeader,CardContent,CardFooter}from"../Card/Card.js";import{Icon}from"../Icon/Icon.js";import{isBrowser}from"../../tools/env.js";import S from"./Dialogue.styl.js";const FOOTER_ALIGN_CLASS={left:S.footerAlignLeft,center:S.footerAlignCenter,right:S.footerAlignRight};function Dialogue({open:a,onOpenChange:s,disabled:e,trigger:t,title:o,subtitle:r,icon:n,content:i,contentClassName:l,footer:c,footerAlignment:d="center",size:u="default",className:m,noScroll:f,maxHeight:g,autoScrollBottom:C,width:p}){const[v,y]=useState(!1),[h,x]=useState(!1),b=useRef(null);var j=useId(),E=useId(),I=(useEffect(()=>{y(!0)},[]),useEffect(()=>{a?(x(!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{x(!1)})})):x(!0)},[a]),useEffect(()=>{if(a&&b.current){const e=document.activeElement,t=b.current.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),o=t[0],r=t[t.length-1],n=((o||b.current).focus(),e=>{"Escape"===e.key?s(!1):"Tab"===e.key&&0<t.length&&(e.shiftKey?document.activeElement===o&&(e.preventDefault(),r?.focus()):document.activeElement===r&&(e.preventDefault(),o?.focus()))});return document.addEventListener("keydown",n),()=>{document.removeEventListener("keydown",n),e?.focus&&e.focus()}}},[a,s]),useEffect(()=>{if(a){const e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}},[a]),e?void 0:()=>s(!0)),u=jsxs(Fragment,{children:[jsx("div",{className:cn(S.dialogOverlay,a&&!h&&S.isOpen),onClick:e=>{e.target===e.currentTarget&&s(!1)},"aria-hidden":"true"}),jsxs(Card,{ref:b,role:"dialog","aria-modal":"true","aria-labelledby":o?j:void 0,"aria-describedby":r?E:void 0,className:cn(S.dialogContent,S["size-"+u],a&&!h&&S.isOpen,!a&&h&&S.isClosed,m),tabIndex:-1,style:{width:p,maxHeight:g?`min(${String(g)}, calc(100% - var(--p-5)))`:void 0},children:[(o||r||n)&&jsx(CardHeader,{icon:n,title:o,description:r,titleId:j,descriptionId:E}),jsx("button",{className:S.dialogClose,onClick:()=>{s(!1)},"aria-label":"Close dialog",type:"button",children:jsx(Icon,{type:"close",size:"m"})}),i&&jsx(CardContent,{className:l,noScroll:f,autoScrollBottom:C,children:i}),c&&jsx(CardFooter,{className:FOOTER_ALIGN_CLASS[d],children:c})]})]});return jsxs(Fragment,{children:[t&&jsx("div",{onClick:I,children:t}),a&&!e&&v&&isBrowser&&createPortal(u,document.body)]})}export{Dialogue,S as DialogueStyles};
2
- //# sourceMappingURL=Dialogue.js.map
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import cn from 'classnames';
3
+ import { useState, useRef, useId, useEffect } from 'react';
4
+ import { createPortal } from 'react-dom';
5
+ import { Card, CardHeader, CardContent, CardFooter } from '../Card/Card.js';
6
+ import { Icon } from '../Icon/Icon.js';
7
+ import { isBrowser } from '../../tools/env.js';
8
+ import S from './Dialogue.styl.js';
9
+
10
+ const FOOTER_ALIGN_CLASS = {
11
+ left: S.footerAlignLeft,
12
+ center: S.footerAlignCenter,
13
+ right: S.footerAlignRight,
14
+ };
15
+ function Dialogue({ open, onOpenChange, disabled, trigger, title, subtitle, icon, content, contentClassName, footer, footerAlignment = 'center', size = 'default', className, noScroll, maxHeight, autoScrollBottom, width, }) {
16
+ const [isMounted, setIsMounted] = useState(false);
17
+ const [isAnimating, setIsAnimating] = useState(false);
18
+ const dialogRef = useRef(null);
19
+ const titleId = useId();
20
+ const descriptionId = useId();
21
+ useEffect(() => {
22
+ setIsMounted(true);
23
+ }, []);
24
+ useEffect(() => {
25
+ if (open) {
26
+ setIsAnimating(true);
27
+ requestAnimationFrame(() => {
28
+ requestAnimationFrame(() => {
29
+ setIsAnimating(false);
30
+ });
31
+ });
32
+ }
33
+ else {
34
+ setIsAnimating(true);
35
+ }
36
+ }, [open]);
37
+ useEffect(() => {
38
+ if (!open || !dialogRef.current)
39
+ return;
40
+ const previousActiveElement = document.activeElement;
41
+ const focusableElements = dialogRef.current.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
42
+ const firstFocusable = focusableElements[0];
43
+ const lastFocusable = focusableElements[focusableElements.length - 1];
44
+ if (firstFocusable) {
45
+ firstFocusable.focus();
46
+ }
47
+ else {
48
+ dialogRef.current.focus();
49
+ }
50
+ const handleKeyDown = (e) => {
51
+ if (e.key === 'Escape') {
52
+ onOpenChange(false);
53
+ return;
54
+ }
55
+ if (e.key === 'Tab' && focusableElements.length > 0) {
56
+ if (e.shiftKey) {
57
+ if (document.activeElement === firstFocusable) {
58
+ e.preventDefault();
59
+ lastFocusable?.focus();
60
+ }
61
+ }
62
+ else if (document.activeElement === lastFocusable) {
63
+ e.preventDefault();
64
+ firstFocusable?.focus();
65
+ }
66
+ }
67
+ };
68
+ document.addEventListener('keydown', handleKeyDown);
69
+ return () => {
70
+ document.removeEventListener('keydown', handleKeyDown);
71
+ if (previousActiveElement?.focus) {
72
+ previousActiveElement.focus();
73
+ }
74
+ };
75
+ }, [open, onOpenChange]);
76
+ useEffect(() => {
77
+ if (!open)
78
+ return;
79
+ const originalStyle = window.getComputedStyle(document.body).overflow;
80
+ document.body.style.overflow = 'hidden';
81
+ return () => {
82
+ document.body.style.overflow = originalStyle;
83
+ };
84
+ }, [open]);
85
+ const handleOverlayClick = (e) => {
86
+ if (e.target === e.currentTarget) {
87
+ onOpenChange(false);
88
+ }
89
+ };
90
+ const handleCloseClick = () => {
91
+ onOpenChange(false);
92
+ };
93
+ const onTriggerClick = !disabled ? () => onOpenChange(true) : undefined;
94
+ const dialogueContent = (jsxs(Fragment, { children: [jsx("div", { className: cn(S.dialogOverlay, open && !isAnimating && S.isOpen), onClick: handleOverlayClick, "aria-hidden": "true" }), jsxs(Card, { ref: dialogRef, role: "dialog", "aria-modal": "true", "aria-labelledby": title ? titleId : undefined, "aria-describedby": subtitle ? descriptionId : undefined, className: cn(S.dialogContent, S[`size-${size}`], open && !isAnimating && S.isOpen, !open && isAnimating && S.isClosed, className), tabIndex: -1, style: {
95
+ width,
96
+ maxHeight: maxHeight
97
+ ? `min(${String(maxHeight)}, calc(100% - var(--p-5)))`
98
+ : undefined,
99
+ }, children: [(title || subtitle || icon) && (jsx(CardHeader, { icon: icon, title: title, description: subtitle, titleId: titleId, descriptionId: descriptionId })), jsx("button", { className: S.dialogClose, onClick: handleCloseClick, "aria-label": "Close dialog", type: "button", children: jsx(Icon, { type: "close", size: "m" }) }), content && (jsx(CardContent, { className: contentClassName, noScroll: noScroll, autoScrollBottom: autoScrollBottom, children: content })), footer && (jsx(CardFooter, { className: FOOTER_ALIGN_CLASS[footerAlignment], children: footer }))] })] }));
100
+ return (jsxs(Fragment, { children: [trigger && jsx("div", { onClick: onTriggerClick, children: trigger }), open &&
101
+ !disabled &&
102
+ isMounted &&
103
+ isBrowser &&
104
+ createPortal(dialogueContent, document.body)] }));
105
+ }
106
+
107
+ export { Dialogue, S as DialogueStyles };
@@ -1,2 +1,7 @@
1
- import styleInject from"../../../node_modules/style-inject/dist/style-inject.es.js";var css_248z=".Dialogue_dialogOverlay__jjBIa{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:var(--decent-color-alpha-900);inset:0;opacity:0;position:fixed;transition:opacity .2s ease-out;z-index:50}.Dialogue_dialogOverlay__jjBIa.Dialogue_isOpen__gISMb{animation-duration:.2s;animation-fill-mode:forwards;animation-name:Dialogue_fadeIn__RSEB2;animation-timing-function:ease-out;opacity:1}.Dialogue_dialogContent__-Lxde{border-radius:var(--border-radius-l);box-shadow:0 10px 20px rgba(0,0,0,.3),0 0 0 2px var(--decent-color-alpha-800);display:flex;flex-direction:column;left:50%;max-height:calc(100% - var(--p-5));opacity:0;position:fixed;top:50%;transform:translateX(-50%) translateY(-50%) scale(.95);transition:opacity .2s ease-out,transform .2s ease-out;width:-moz-fit-content;width:fit-content;z-index:50}.Dialogue_dialogContent__-Lxde.Dialogue_isOpen__gISMb{animation-duration:.2s;animation-fill-mode:forwards;animation-name:Dialogue_dialogueIn__M0tLL;animation-timing-function:ease-out;opacity:1;transform:translateX(-50%) translateY(-50%) scale(1)}.Dialogue_dialogContent__-Lxde.Dialogue_isClosed__lHYyZ{animation-duration:.2s;animation-fill-mode:forwards;animation-name:Dialogue_dialogueOut__6bLTY;animation-timing-function:ease-in;opacity:0;pointer-events:none;transform:translateX(-50%) translateY(-50%) scale(.95)}@media (max-width:700px){.Dialogue_dialogContent__-Lxde{max-width:calc(100% - var(--p-5));width:calc(100% - var(--p-5))}}.Dialogue_size-default__X1sdB{max-width:40rem}.Dialogue_size-login__GyixB{max-width:24rem}.Dialogue_size-wide__HQbiX{max-width:calc(100% - var(--p-5))}@media (min-width:700px){.Dialogue_size-wide__HQbiX{max-width:80rem}}.Dialogue_dialogClose__5q12n{align-items:center;background-color:transparent;border:none;border-radius:var(--border-radius-s);box-shadow:inset 0 0 0 2px none;color:var(--accent-color);cursor:pointer;display:flex;height:2rem;justify-content:center;opacity:.7;position:absolute;right:var(--p-3);top:var(--p-3);transform-origin:center;transition:opacity .2s ease,transform .2s ease;width:2rem;z-index:10}.Dialogue_dialogClose__5q12n:hover{opacity:1;transform:scale(1.1)}.Dialogue_dialogClose__5q12n:focus-visible{box-shadow:0 0 0 2px var(--active-color)}.Dialogue_dialogClose__5q12n:disabled{pointer-events:none}.Dialogue_footerAlignLeft__xQUD8{justify-content:flex-start}.Dialogue_footerAlignCenter__yq9Mu{justify-content:center}.Dialogue_footerAlignRight__Yo7hG{justify-content:flex-end}@keyframes Dialogue_fadeIn__RSEB2{0%{opacity:0}to{opacity:1}}@keyframes Dialogue_dialogueIn__M0tLL{0%{opacity:0;transform:translateX(-50%) translateY(-50%) scale(.95)}to{opacity:1;transform:translateX(-50%) translateY(-50%) scale(1)}}@keyframes Dialogue_dialogueOut__6bLTY{0%{opacity:1;transform:translateX(-50%) translateY(-50%) scale(1)}to{opacity:0;transform:translateX(-50%) translateY(-50%) scale(.95)}}",S={dialogOverlay:"Dialogue_dialogOverlay__jjBIa",isOpen:"Dialogue_isOpen__gISMb",fadeIn:"Dialogue_fadeIn__RSEB2",dialogContent:"Dialogue_dialogContent__-Lxde",dialogueIn:"Dialogue_dialogueIn__M0tLL",isClosed:"Dialogue_isClosed__lHYyZ",dialogueOut:"Dialogue_dialogueOut__6bLTY","size-default":"Dialogue_size-default__X1sdB","size-login":"Dialogue_size-login__GyixB","size-wide":"Dialogue_size-wide__HQbiX",dialogClose:"Dialogue_dialogClose__5q12n",footerAlignLeft:"Dialogue_footerAlignLeft__xQUD8",footerAlignCenter:"Dialogue_footerAlignCenter__yq9Mu",footerAlignRight:"Dialogue_footerAlignRight__Yo7hG"};styleInject(css_248z);export{S as default};
2
- //# sourceMappingURL=Dialogue.styl.js.map
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".Dialogue_dialogOverlay__jjBIa{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:var(--decent-color-alpha-900);inset:0;opacity:0;position:fixed;transition:opacity .2s ease-out;z-index:50}.Dialogue_dialogOverlay__jjBIa.Dialogue_isOpen__gISMb{animation-duration:.2s;animation-fill-mode:forwards;animation-name:Dialogue_fadeIn__RSEB2;animation-timing-function:ease-out;opacity:1}.Dialogue_dialogContent__-Lxde{border-radius:var(--border-radius-l);box-shadow:0 10px 20px rgba(0,0,0,.3),0 0 0 2px var(--decent-color-alpha-800);display:flex;flex-direction:column;left:50%;max-height:calc(100% - var(--p-5));opacity:0;position:fixed;top:50%;transform:translateX(-50%) translateY(-50%) scale(.95);transition:opacity .2s ease-out,transform .2s ease-out;width:-moz-fit-content;width:fit-content;z-index:50}.Dialogue_dialogContent__-Lxde.Dialogue_isOpen__gISMb{animation-duration:.2s;animation-fill-mode:forwards;animation-name:Dialogue_dialogueIn__M0tLL;animation-timing-function:ease-out;opacity:1;transform:translateX(-50%) translateY(-50%) scale(1)}.Dialogue_dialogContent__-Lxde.Dialogue_isClosed__lHYyZ{animation-duration:.2s;animation-fill-mode:forwards;animation-name:Dialogue_dialogueOut__6bLTY;animation-timing-function:ease-in;opacity:0;pointer-events:none;transform:translateX(-50%) translateY(-50%) scale(.95)}@media (max-width:700px){.Dialogue_dialogContent__-Lxde{max-width:calc(100% - var(--p-5));width:calc(100% - var(--p-5))}}.Dialogue_size-default__X1sdB{max-width:40rem}.Dialogue_size-login__GyixB{max-width:24rem}.Dialogue_size-wide__HQbiX{max-width:calc(100% - var(--p-5))}@media (min-width:700px){.Dialogue_size-wide__HQbiX{max-width:80rem}}.Dialogue_dialogClose__5q12n{align-items:center;background-color:transparent;border:none;border-radius:var(--border-radius-s);box-shadow:inset 0 0 0 2px none;color:var(--accent-color);cursor:pointer;display:flex;height:2rem;justify-content:center;opacity:.7;position:absolute;right:var(--p-3);top:var(--p-3);transform-origin:center;transition:opacity .2s ease,transform .2s ease;width:2rem;z-index:10}.Dialogue_dialogClose__5q12n:hover{opacity:1;transform:scale(1.1)}.Dialogue_dialogClose__5q12n:focus-visible{box-shadow:0 0 0 2px var(--active-color)}.Dialogue_dialogClose__5q12n:disabled{pointer-events:none}.Dialogue_footerAlignLeft__xQUD8{justify-content:flex-start}.Dialogue_footerAlignCenter__yq9Mu{justify-content:center}.Dialogue_footerAlignRight__Yo7hG{justify-content:flex-end}@keyframes Dialogue_fadeIn__RSEB2{0%{opacity:0}to{opacity:1}}@keyframes Dialogue_dialogueIn__M0tLL{0%{opacity:0;transform:translateX(-50%) translateY(-50%) scale(.95)}to{opacity:1;transform:translateX(-50%) translateY(-50%) scale(1)}}@keyframes Dialogue_dialogueOut__6bLTY{0%{opacity:1;transform:translateX(-50%) translateY(-50%) scale(1)}to{opacity:0;transform:translateX(-50%) translateY(-50%) scale(.95)}}";
4
+ var S = {"dialogOverlay":"Dialogue_dialogOverlay__jjBIa","isOpen":"Dialogue_isOpen__gISMb","fadeIn":"Dialogue_fadeIn__RSEB2","dialogContent":"Dialogue_dialogContent__-Lxde","dialogueIn":"Dialogue_dialogueIn__M0tLL","isClosed":"Dialogue_isClosed__lHYyZ","dialogueOut":"Dialogue_dialogueOut__6bLTY","size-default":"Dialogue_size-default__X1sdB","size-login":"Dialogue_size-login__GyixB","size-wide":"Dialogue_size-wide__HQbiX","dialogClose":"Dialogue_dialogClose__5q12n","footerAlignLeft":"Dialogue_footerAlignLeft__xQUD8","footerAlignCenter":"Dialogue_footerAlignCenter__yq9Mu","footerAlignRight":"Dialogue_footerAlignRight__Yo7hG"};
5
+ styleInject(css_248z);
6
+
7
+ export { S as default };
@@ -1,2 +1,147 @@
1
- import{jsxs,jsx}from"react/jsx-runtime";import"nanoid";import"../../tools/dom.js";import throttle from"../../tools/throttle.js";import Time from"timen";import"compareq";import"lodash.pick";import"../../tools/queryParams.js";import{Component}from"react";import S from"./Draggable.styl.js";import cn from"classnames";import{createStore}from"justorm/react";class Draggable extends Component{store;startPos=null;draggingElem=null;draggingElemBounds=null;dragStartFired=!1;timers=Time.create();constructor(t){super(t),this.store=createStore(this,{draggingId:null,underId:null,underOffset:""})}componentDidUpdate(t){t.items.join(",")!==this.props.items.join(",")&&this.dropUnder(),t.disabled!==this.props.disabled&&(this.dropUnder(),this.props.disabled)&&this.unsubscribeMoveUp()}componentWillUnmount(){this.timers.clear()}subscribeMoveUp=()=>{document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp)};unsubscribeMoveUp=()=>{document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp)};onPointerDown=t=>{var{clientX:e,clientY:r,currentTarget:s}=t;t.stopPropagation(),this.timers.clear(),this.startPos={x:e,y:r},this.draggingElem=s,this.draggingElemBounds=s.getBoundingClientRect(),this.subscribeMoveUp()};onPointerMove=t=>{var e,r,s;this.draggingElem&&!this.props.disabled&&({clientX:t,clientY:e}=t,this.store.draggingId||(this.store.draggingId=this.draggingElem.dataset.id),this.dragStartFired||(this.dragStartFired=!0,this.props.onDragStart?.(this.store.draggingId)),r=t-this.startPos.x,s=e-this.startPos.y,this.transformInner(this.draggingElem,`translate(${r}px, ${s}px)`),this.checkUnderElem(t,e))};checkUnderElem=throttle((t,e)=>{var r,s,i,t=document.elementFromPoint(t,e)?.closest("."+S.item);t?(e=t.dataset.id,{draggingId:r,underId:s}=this.store,this.startPos&&e!==r&&e!==s&&({x:r,y:s}=this.draggingElemBounds,{x:t,y:i}=this.selectInner(t).getBoundingClientRect(),this.store.underOffset=`translate(${r-t}px, ${s-i}px)`,this.store.underId=e)):(this.store.underOffset="",this.store.underId=null)},100);onPointerOut=({target:t})=>{var e=t.dataset["id"];e&&e!==this.store.draggingId&&(this.transformInner(t,null),this.dropUnder())};onPointerUp=t=>{const{underId:e,draggingId:r}=this.store,{onChange:s,onDragEnd:i}=this.props;var n,o,d=this.draggingElem.dataset["id"];r&&(t.stopPropagation(),t.preventDefault()),this.unsubscribeMoveUp(),this.dragStartFired=!1,this.startPos=null,this.store.draggingId=null,e&&s&&(n=(t=[...this.props.items]).indexOf(d),o=t.indexOf(e),t[o]=d,t[n]=e,s(t)),this.dropUnder(),this.timers.after(100,()=>{this.draggingElem&&(this.selectInner(this.draggingElem).style.transform=null,this.draggingElem=null),i?.(r)})};selectInner=t=>t.querySelector("& > div");transformInner(t,e){t&&(this.selectInner(t).style.transform=e)}dropUnder(){this.store.underId=null,this.store.underOffset=null}render(){const{items:t,className:e,itemClassName:r,renderItem:s,children:i,disabled:n}=this.props,{draggingId:o,underId:d,underOffset:a}=this.store;return jsxs("div",{className:cn(S.root,o&&S.isDragging,e),children:[t.map((t,e)=>jsx("div",{"data-id":t,className:cn(S.item,r,t===o&&S.active),onPointerDown:n?void 0:this.onPointerDown,children:jsx("div",{className:S.inner,style:d===t?{transform:a}:null,children:s(t,e,t===o)})},t)),i]})}}export{Draggable};
2
- //# sourceMappingURL=Draggable.js.map
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import 'nanoid';
3
+ import '../../tools/dom.js';
4
+ import throttle from '../../tools/throttle.js';
5
+ import Time from 'timen';
6
+ import 'compareq';
7
+ import 'lodash.pick';
8
+ import '../../tools/queryParams.js';
9
+ import { Component } from 'react';
10
+ import S from './Draggable.styl.js';
11
+ import cn from 'classnames';
12
+ import { createStore } from 'justorm/react';
13
+
14
+ class Draggable extends Component {
15
+ store;
16
+ startPos = null;
17
+ draggingElem = null;
18
+ draggingElemBounds = null;
19
+ dragStartFired = false;
20
+ timers = Time.create();
21
+ constructor(props) {
22
+ super(props);
23
+ this.store = createStore(this, {
24
+ draggingId: null,
25
+ underId: null,
26
+ underOffset: '',
27
+ });
28
+ }
29
+ componentDidUpdate(prevProps) {
30
+ if (prevProps.items.join(',') !== this.props.items.join(',')) {
31
+ this.dropUnder();
32
+ }
33
+ if (prevProps.disabled !== this.props.disabled) {
34
+ this.dropUnder();
35
+ if (this.props.disabled)
36
+ this.unsubscribeMoveUp();
37
+ }
38
+ }
39
+ componentWillUnmount() {
40
+ this.timers.clear();
41
+ }
42
+ subscribeMoveUp = () => {
43
+ document.addEventListener('pointermove', this.onPointerMove);
44
+ document.addEventListener('pointerup', this.onPointerUp);
45
+ };
46
+ unsubscribeMoveUp = () => {
47
+ document.removeEventListener('pointermove', this.onPointerMove);
48
+ document.removeEventListener('pointerup', this.onPointerUp);
49
+ };
50
+ onPointerDown = e => {
51
+ const { clientX: x, clientY: y, currentTarget } = e;
52
+ e.stopPropagation();
53
+ this.timers.clear();
54
+ this.startPos = { x, y };
55
+ this.draggingElem = currentTarget;
56
+ this.draggingElemBounds = currentTarget.getBoundingClientRect();
57
+ this.subscribeMoveUp();
58
+ };
59
+ onPointerMove = e => {
60
+ if (!this.draggingElem || this.props.disabled)
61
+ return;
62
+ const { clientX: x, clientY: y } = e;
63
+ if (!this.store.draggingId) {
64
+ this.store.draggingId = this.draggingElem.dataset.id;
65
+ }
66
+ if (!this.dragStartFired) {
67
+ this.dragStartFired = true;
68
+ this.props.onDragStart?.(this.store.draggingId);
69
+ }
70
+ const dx = x - this.startPos.x;
71
+ const dy = y - this.startPos.y;
72
+ this.transformInner(this.draggingElem, `translate(${dx}px, ${dy}px)`);
73
+ this.checkUnderElem(x, y);
74
+ };
75
+ checkUnderElem = throttle((x, y) => {
76
+ const underItem = document.elementFromPoint(x, y)?.closest(`.${S.item}`);
77
+ if (!underItem) {
78
+ this.store.underOffset = '';
79
+ this.store.underId = null;
80
+ return;
81
+ }
82
+ // @ts-ignore
83
+ const { id } = underItem.dataset;
84
+ const { draggingId, underId } = this.store;
85
+ if (!this.startPos || id === draggingId || id === underId)
86
+ return;
87
+ const { x: x1, y: y1 } = this.draggingElemBounds;
88
+ const { x: x2, y: y2 } = this.selectInner(underItem).getBoundingClientRect();
89
+ const dx = x1 - x2;
90
+ const dy = y1 - y2;
91
+ this.store.underOffset = `translate(${dx}px, ${dy}px)`;
92
+ this.store.underId = id;
93
+ }, 100);
94
+ onPointerOut = ({ target }) => {
95
+ const { id } = target.dataset;
96
+ if (!id || id === this.store.draggingId)
97
+ return;
98
+ this.transformInner(target, null);
99
+ this.dropUnder();
100
+ };
101
+ onPointerUp = e => {
102
+ const { underId, draggingId } = this.store;
103
+ const { onChange, onDragEnd } = this.props;
104
+ const { id } = this.draggingElem.dataset;
105
+ if (draggingId) {
106
+ e.stopPropagation();
107
+ e.preventDefault();
108
+ }
109
+ this.unsubscribeMoveUp();
110
+ this.dragStartFired = false;
111
+ this.startPos = null;
112
+ this.store.draggingId = null;
113
+ if (underId && onChange) {
114
+ const newItems = [...this.props.items];
115
+ const draggingIndex = newItems.indexOf(id);
116
+ const underIndex = newItems.indexOf(underId);
117
+ newItems[underIndex] = id;
118
+ newItems[draggingIndex] = underId;
119
+ onChange(newItems);
120
+ }
121
+ this.dropUnder();
122
+ this.timers.after(100, () => {
123
+ if (this.draggingElem) {
124
+ this.selectInner(this.draggingElem).style.transform = null;
125
+ this.draggingElem = null;
126
+ }
127
+ onDragEnd?.(draggingId);
128
+ });
129
+ };
130
+ selectInner = elem => elem.querySelector('& > div');
131
+ transformInner(elem, str) {
132
+ if (!elem)
133
+ return;
134
+ this.selectInner(elem).style.transform = str;
135
+ }
136
+ dropUnder() {
137
+ this.store.underId = null;
138
+ this.store.underOffset = null;
139
+ }
140
+ render() {
141
+ const { items, className, itemClassName, renderItem, children, disabled } = this.props;
142
+ const { draggingId, underId, underOffset } = this.store;
143
+ return (jsxs("div", { className: cn(S.root, draggingId && S.isDragging, className), children: [items.map((id, index) => (jsx("div", { "data-id": id, className: cn(S.item, itemClassName, id === draggingId && S.active), onPointerDown: disabled ? undefined : this.onPointerDown, children: jsx("div", { className: S.inner, style: underId === id ? { transform: underOffset } : null, children: renderItem(id, index, id === draggingId) }) }, id))), children] }));
144
+ }
145
+ }
146
+
147
+ export { Draggable };
@@ -1,2 +1,7 @@
1
- import styleInject from"../../../node_modules/style-inject/dist/style-inject.es.js";var css_248z=".Draggable_root__S1BgI{display:flex;flex-wrap:wrap;position:relative;touch-action:none}.Draggable_item__Z1pXk{display:flex}.Draggable_inner__c4syM{height:100%;transition:transform .2s ease-out;width:100%}.Draggable_isDragging__YTPu5 .Draggable_inner__c4syM{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.Draggable_isDragging__YTPu5 .Draggable_active__XcFM3{pointer-events:none}.Draggable_isDragging__YTPu5 .Draggable_active__XcFM3 .Draggable_inner__c4syM{transition-duration:0s;z-index:1}",S={root:"Draggable_root__S1BgI",item:"Draggable_item__Z1pXk",inner:"Draggable_inner__c4syM",isDragging:"Draggable_isDragging__YTPu5",active:"Draggable_active__XcFM3"};styleInject(css_248z);export{S as default};
2
- //# sourceMappingURL=Draggable.styl.js.map
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".Draggable_root__S1BgI{display:flex;flex-wrap:wrap;position:relative;touch-action:none}.Draggable_item__Z1pXk{display:flex}.Draggable_inner__c4syM{height:100%;transition:transform .2s ease-out;width:100%}.Draggable_isDragging__YTPu5 .Draggable_inner__c4syM{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.Draggable_isDragging__YTPu5 .Draggable_active__XcFM3{pointer-events:none}.Draggable_isDragging__YTPu5 .Draggable_active__XcFM3 .Draggable_inner__c4syM{transition-duration:0s;z-index:1}";
4
+ var S = {"root":"Draggable_root__S1BgI","item":"Draggable_item__Z1pXk","inner":"Draggable_inner__c4syM","isDragging":"Draggable_isDragging__YTPu5","active":"Draggable_active__XcFM3"};
5
+ styleInject(css_248z);
6
+
7
+ export { S as default };
@@ -1,2 +1,112 @@
1
- import{jsxs,jsx}from"react/jsx-runtime";import{useState,useRef,useCallback,useEffect}from"react";import cn from"classnames";import{generateUID}from"../../tools/uid.js";import S from"./DropZone.styl.js";function matchesAcceptPart(e,t){var r,t=t.trim().toLowerCase();return!!t&&(t.startsWith(".")?e.name.toLowerCase().endsWith(t):!!t.includes("/")&&(e=e.type.toLowerCase(),t.endsWith("/*")?(r=t.slice(0,-1),e.startsWith(r)):e===t))}function matchesAccept(t,e){var e=e.trim();return!e||0===(e=e.split(",").map(e=>e.trim()).filter(Boolean)).length||e.some(e=>matchesAcceptPart(t,e))}function DropZone(r){const{accept:a,label:e,error:t,disabled:s=!1,ghost:l=!1,id:n,className:o}=r,[i,c]=useState(!1),m=useRef(null);var d=useRef(generateUID()),d=n??d.current,u=useCallback(e=>{e.preventDefault(),c(!1),s||(e=Array.from(e.dataTransfer.files).filter(e=>matchesAccept(e,a)),!0===r.multiple?0<e.length&&r.onFiles(e):(e=e[0])&&r.onFile(e))},[a,s,r]),p=useCallback(e=>{var t;s||(t=e.target.files)?.length&&(t=Array.from(t).filter(e=>matchesAccept(e,a)),!0===r.multiple?0<t.length&&r.onFiles(t):(t=t[0])&&r.onFile(t),e.target.value="")},[a,s,r]),f=(useEffect(()=>{const t=m.current?.closest('[role="dialog"]')||document.body,e=e=>{e.preventDefault(),c(!0)},r=e=>{e.relatedTarget&&t.contains(e.relatedTarget)||c(!1)},a=()=>{c(!1)};return t.addEventListener("dragover",e),t.addEventListener("dragleave",r),t.addEventListener("drop",a),()=>{t.removeEventListener("dragover",e),t.removeEventListener("dragleave",r),t.removeEventListener("drop",a)}},[]),!l||i),v=!0===r.multiple;return jsxs("div",{className:cn(S.root,o),children:[f&&jsxs("div",{ref:m,className:cn(S.dropArea,i&&S.isDragging,s&&S.disabled),onDrop:u,children:[jsx("input",{type:"file",accept:a,multiple:v,onChange:p,className:S.fileInput,id:d,disabled:s}),jsx("label",{htmlFor:d,className:S.label,style:{cursor:s?"not-allowed":"pointer"},children:e})]}),t&&jsx("div",{className:S.error,children:t})]})}export{DropZone};
2
- //# sourceMappingURL=DropZone.js.map
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState, useRef, useCallback, useEffect } from 'react';
3
+ import cn from 'classnames';
4
+ import { generateUID } from '../../tools/uid.js';
5
+ import S from './DropZone.styl.js';
6
+
7
+ function matchesAcceptPart(file, part) {
8
+ const p = part.trim().toLowerCase();
9
+ if (!p)
10
+ return false;
11
+ if (p.startsWith('.')) {
12
+ return file.name.toLowerCase().endsWith(p);
13
+ }
14
+ if (p.includes('/')) {
15
+ const t = file.type.toLowerCase();
16
+ if (p.endsWith('/*')) {
17
+ const prefix = p.slice(0, -1);
18
+ return t.startsWith(prefix);
19
+ }
20
+ return t === p;
21
+ }
22
+ return false;
23
+ }
24
+ function matchesAccept(file, accept) {
25
+ const trimmed = accept.trim();
26
+ if (!trimmed)
27
+ return true;
28
+ const parts = trimmed
29
+ .split(',')
30
+ .map(s => s.trim())
31
+ .filter(Boolean);
32
+ if (parts.length === 0)
33
+ return true;
34
+ return parts.some(part => matchesAcceptPart(file, part));
35
+ }
36
+ function DropZone(props) {
37
+ const { accept, label, error, disabled = false, ghost = false, id, className, } = props;
38
+ const [isDragging, setIsDragging] = useState(false);
39
+ const dropAreaRef = useRef(null);
40
+ const fallbackInputIdRef = useRef(generateUID());
41
+ const inputId = id ?? fallbackInputIdRef.current;
42
+ const handleDrop = useCallback((e) => {
43
+ e.preventDefault();
44
+ setIsDragging(false);
45
+ if (disabled)
46
+ return;
47
+ const list = Array.from(e.dataTransfer.files).filter(f => matchesAccept(f, accept));
48
+ if (props.multiple === true) {
49
+ if (list.length > 0) {
50
+ props.onFiles(list);
51
+ }
52
+ }
53
+ else {
54
+ const file = list[0];
55
+ if (file) {
56
+ props.onFile(file);
57
+ }
58
+ }
59
+ }, [accept, disabled, props]);
60
+ const handleFileInput = useCallback((e) => {
61
+ if (disabled)
62
+ return;
63
+ const raw = e.target.files;
64
+ if (!raw?.length)
65
+ return;
66
+ const list = Array.from(raw).filter(f => matchesAccept(f, accept));
67
+ if (props.multiple === true) {
68
+ if (list.length > 0) {
69
+ props.onFiles(list);
70
+ }
71
+ }
72
+ else {
73
+ const file = list[0];
74
+ if (file) {
75
+ props.onFile(file);
76
+ }
77
+ }
78
+ e.target.value = '';
79
+ }, [accept, disabled, props]);
80
+ useEffect(() => {
81
+ const dialog = dropAreaRef.current?.closest('[role="dialog"]');
82
+ const targetElement = dialog || document.body;
83
+ const handleGlobalDragOver = (e) => {
84
+ e.preventDefault();
85
+ setIsDragging(true);
86
+ };
87
+ const handleGlobalDragLeave = (e) => {
88
+ if (!e.relatedTarget ||
89
+ !targetElement.contains(e.relatedTarget)) {
90
+ setIsDragging(false);
91
+ }
92
+ };
93
+ const handleGlobalDrop = () => {
94
+ setIsDragging(false);
95
+ };
96
+ targetElement.addEventListener('dragover', handleGlobalDragOver);
97
+ targetElement.addEventListener('dragleave', handleGlobalDragLeave);
98
+ targetElement.addEventListener('drop', handleGlobalDrop);
99
+ return () => {
100
+ targetElement.removeEventListener('dragover', handleGlobalDragOver);
101
+ targetElement.removeEventListener('dragleave', handleGlobalDragLeave);
102
+ targetElement.removeEventListener('drop', handleGlobalDrop);
103
+ };
104
+ }, []);
105
+ const shouldShowDropArea = !ghost || isDragging;
106
+ const multiple = props.multiple === true;
107
+ return (jsxs("div", { className: cn(S.root, className), children: [shouldShowDropArea && (jsxs("div", { ref: dropAreaRef, className: cn(S.dropArea, isDragging && S.isDragging, disabled && S.disabled), onDrop: handleDrop, children: [jsx("input", { type: "file", accept: accept, multiple: multiple, onChange: handleFileInput, className: S.fileInput, id: inputId, disabled: disabled }), jsx("label", { htmlFor: inputId, className: S.label, style: {
108
+ cursor: disabled ? 'not-allowed' : 'pointer',
109
+ }, children: label })] })), error && jsx("div", { className: S.error, children: error })] }));
110
+ }
111
+
112
+ export { DropZone };
@@ -1,2 +1,7 @@
1
- import styleInject from"../../../node_modules/style-inject/dist/style-inject.es.js";var css_248z='.DropZone_root__gk-Ef{display:flex;flex-direction:column;gap:var(--p-2)}.DropZone_dropArea__u-8Ye{background-color:var(--accent-color-alpha-100);border:2px dashed var(--decent-color-alpha-200);border-radius:var(--p-4);cursor:pointer;padding:var(--p-4);position:relative;text-align:center;transition:all .2s ease}.DropZone_dropArea__u-8Ye label:before{border-radius:var(--p-4);content:"";height:100%;left:0;position:absolute;top:0;width:100%}.DropZone_dropArea__u-8Ye.DropZone_isDragging__S-aQp,.DropZone_dropArea__u-8Ye:hover:not(.DropZone_disabled__qsAf6){border:2px dashed var(--active-color-alpha-500)}.DropZone_dropArea__u-8Ye:hover:not(.DropZone_disabled__qsAf6){background-color:var(--accent-color-alpha-50)}.DropZone_dropArea__u-8Ye.DropZone_isDragging__S-aQp{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:var(--decent-color-alpha-900)!important;display:flex;height:calc(100% - var(--p-2));justify-content:center;left:var(--p-1);position:fixed;top:var(--p-1);width:calc(100% - var(--p-2));z-index:9999}.DropZone_dropArea__u-8Ye.DropZone_disabled__qsAf6{cursor:not-allowed;opacity:.6}.DropZone_fileInput__E8DeE{display:none}.DropZone_label__u7-Pb{cursor:pointer}.DropZone_error__vSiwM{color:var(--danger-color);font-size:.875rem;padding:var(--p-1) var(--p-2)}',S={root:"DropZone_root__gk-Ef",dropArea:"DropZone_dropArea__u-8Ye",disabled:"DropZone_disabled__qsAf6",isDragging:"DropZone_isDragging__S-aQp",fileInput:"DropZone_fileInput__E8DeE",label:"DropZone_label__u7-Pb",error:"DropZone_error__vSiwM"};styleInject(css_248z);export{S as default};
2
- //# sourceMappingURL=DropZone.styl.js.map
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".DropZone_root__gk-Ef{display:flex;flex-direction:column;gap:var(--p-2)}.DropZone_dropArea__u-8Ye{background-color:var(--accent-color-alpha-100);border:2px dashed var(--decent-color-alpha-200);border-radius:var(--p-4);cursor:pointer;padding:var(--p-4);position:relative;text-align:center;transition:all .2s ease}.DropZone_dropArea__u-8Ye label:before{border-radius:var(--p-4);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.DropZone_dropArea__u-8Ye.DropZone_isDragging__S-aQp,.DropZone_dropArea__u-8Ye:hover:not(.DropZone_disabled__qsAf6){border:2px dashed var(--active-color-alpha-500)}.DropZone_dropArea__u-8Ye:hover:not(.DropZone_disabled__qsAf6){background-color:var(--accent-color-alpha-50)}.DropZone_dropArea__u-8Ye.DropZone_isDragging__S-aQp{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:var(--decent-color-alpha-900)!important;display:flex;height:calc(100% - var(--p-2));justify-content:center;left:var(--p-1);position:fixed;top:var(--p-1);width:calc(100% - var(--p-2));z-index:9999}.DropZone_dropArea__u-8Ye.DropZone_disabled__qsAf6{cursor:not-allowed;opacity:.6}.DropZone_fileInput__E8DeE{display:none}.DropZone_label__u7-Pb{cursor:pointer}.DropZone_error__vSiwM{color:var(--danger-color);font-size:.875rem;padding:var(--p-1) var(--p-2)}";
4
+ var S = {"root":"DropZone_root__gk-Ef","dropArea":"DropZone_dropArea__u-8Ye","disabled":"DropZone_disabled__qsAf6","isDragging":"DropZone_isDragging__S-aQp","fileInput":"DropZone_fileInput__E8DeE","label":"DropZone_label__u7-Pb","error":"DropZone_error__vSiwM"};
5
+ styleInject(css_248z);
6
+
7
+ export { S as default };