@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,334 @@
1
- import{useRef,useState,useMemo,useEffect,useCallback,createElement}from"react";import{jsx,jsxs,Fragment}from"react/jsx-runtime";import{mapById,isMultiple,renderLabel}from"./Select.helpers.js";import{INTERACTION_MODE,getInteractionMode}from"../../tools/dom.js";import cn from"classnames";import omit from"lodash.omit";import{AssistiveText}from"../AssistiveText/AssistiveText.js";import{Button}from"../Button/Button.js";import{Chip}from"../Chip/Chip.js";import{Input}from"../Input/Input.js";import{Icon}from"../Icon/Icon.js";import{Label}from"../Label/Label.js";import{Popup}from"../Popup/Popup.js";import{RequiredStar}from"../RequiredStar/RequiredStar.js";import{Scroll}from"../Scroll/Scroll.js";import{useThrottle}from"../../hooks/useThrottle.js";import useEvent from"../../hooks/useEvent.js";import S from"./Select.styl.js";function Select2(t){const{className:L,value:c,onChange:s,onChipClick:q,onSearchChange:D,disableTriggerArrow:F,inputProps:e,popupProps:r,scrollProps:o,size:u="m",round:n,optionClassName:G,selectedChipClassName:H,additionalOptions:l=[],options:i,variant:a,label:p,additionalLabel:U,error:m,blur:V,disabled:_,trigger:$,required:J,hideRequiredStar:K,isSearchable:Q,presets:W=[],selectAllButton:X,clearButton:Y,showSelectedCount:Z,disableLabel:ee,selectedChipRemoveTooltip:te,selectedChipIds:re,onOpen:se,onClose:oe}=t,d=isMultiple(c),ne=t.closeOnSelect??!d,h=useRef(null),le=useRef(null),f=useRef(null),ie=useRef(null),g=useRef(-1),v=useRef(!1),ae=useRef(""),[C,ce]=useState(""),j=e=>{ce(e),ae.current=e.toLowerCase()},[b,x]=useState(!1),[N,ue]=useState(!1),[pe,me]=useState(""),[R,de]=useState(-1),[I,he]=useState([]),k=useMemo(()=>mapById(t.options),[t.options]),[E,T]=useState(d?c:[c]),[Se,fe]=useState(0),P=!b&&!!m,ge=useMemo(()=>({label:p,size:u,round:n,variant:a,...t.triggerProps}),[t.triggerProps,p,u,n,a]),y=e=>d?E.includes(e):E[0]===e,ve=e=>{g.current=e.length-1,he(e),fe(Se+1),R>g.current&&0<=g.current&&(de(g.current),f.current=e[g.current]?.id)},B=e=>{f.current=I[e]?.id,de(e)},[Ce,je]=useState(!1),be=(e,t)=>{j(t),je(!0),D?.(t),ve(i.filter(Ee))},xe=()=>{var e=i.map(({id:e})=>e);T(e),s?.(e)},Ne=()=>{T([]),s?.([])},Re=e=>{var t,r,s;(ie.current=e)&&h.current&&({top:e,bottom:t}=e.getBoundingClientRect(),r=h.current.getBoundingClientRect(),s=le.current,e<r.top?s.scrollTop-=r.top-e:t>r.bottom&&(s.scrollTop+=t-r.bottom))};const Ie=useThrottle(t=>{var e;getInteractionMode()===INTERACTION_MODE.POINTER&&(e=I.findIndex(e=>e.id===t),B(e))},100,{trailing:!0}),O=t=>{var e,r;d?(e=y(t)?E.filter(e=>e!==t):[...E,t],T(e),s?.(e)):(e=y(t)?null:t,r=y(t)?[]:[t],T(r),s?.(e)),j(""),ne&&x(!1)},A=e=>k.items[e]?.label||"",ke=e=>{var t;return ee?null:(t=c?.length,d&&t&&Z?e+` (${t})`:e)},Ee=({label:e})=>e.toLowerCase().includes(ae.current),Te=useMemo(()=>d?c?c.reduce((e,t)=>{t=A(t);return t?[...e,t]:e},[]).join(", "):"":A(c),[d,c,k]),z=useMemo(()=>F||e?.hasClear&&C?null:jsx(Icon,{type:"chevronDown",className:cn(S.triggerArrow,b&&S.isOpen),size:u}),[b,C]);const Pe=()=>(v.current=!1,[...l,...I].map(e=>{{var[e,t=0]=[e];const{id:n,isGroupHeader:l}=e;var r=n===f.current,s=E.includes(n),o=[],t={className:cn(S.option,l&&S.isGroup,r&&S.isFocused,s&&S.isSelected,S["level-"+t],G),onPointerUp:()=>O(n),onPointerEnter:()=>Ie(n)};return r&&(t.ref=Re),s&&!v.current&&(v.current=!0),Ee(e)&&o.unshift(jsx("div",{...t,children:renderLabel(e)},n)),o}}).flat());useEffect(()=>{var e=l?.length?[...l,...i]:i;ve(e)},[i]),useEffect(()=>{x(t.isOpen)},[t.isOpen]),useEffect(()=>{var e=t.searchValue;e&&j(e)},[t.searchValue]);var M,w,ye=useCallback(e=>{var t=R;"ArrowUp"===e.key&&0<t&&B(t-1),"ArrowDown"===e.key&&t<g.current&&B(t+1),-1!==t&&b&&"Enter"===e.key&&(e.preventDefault(),e.stopPropagation(),O(I[t].id))},[I,R,b,E]),ye=(useEvent({event:"keydown",isActive:b,callback:ye}),useEvent({event:"click",callback:e=>{(e=e.target)instanceof Element&&(e.closest("."+S.root)||e.closest("."+S.options))||x(!1)}}),useMemo(()=>{return jsxs("div",{ref:h,children:[(e=W.map(({label:e,ids:t})=>({children:e,onClick:()=>T(t),key:e})),X&&e.push({children:"Select all",onClick:xe,key:"select-all-button"}),Y&&e.push({children:"Clear",onClick:Ne,key:"clear-button"}),0===e.length?null:jsx("div",{className:S.presetPanel,children:e.map(e=>jsx(Button,{className:S.presetButton,variant:"clear",...e}))},"preset-panel")),createElement(Scroll,{y:!0,...o,offset:{y:{before:10,after:10}},className:cn(S.options,S["size-"+u],o?.className),onInnerRef:e=>le.current=e,key:"items-scroll"},Pe())]});var e},[I,C,R,E])),Be=cn(S.root,L,S["size-"+u]);return jsxs(Fragment,{children:[jsx(Popup,{className:Be,direction:"bottom",size:u,focusControl:!0,hoverControl:N,blur:V,isOpen:b,disabled:_,...r,onOpen:()=>{x(!0),-1===R&&B(0),r?.onOpen?.(),se?.()},onClose:()=>{x(!1),j(""),je(!1),B(0),r?.onClose?.(),oe?.()},trigger:$||(M=Q?(M=d&&c&&0<c.length,w=d?N&&Ce?C:"":N&&Ce?C:Te,jsx(Input,{...ge,...e,addonRight:z,error:P,value:w,onChange:be,label:ke(p),placeholder:M&&!w?"":e?.placeholder})):(()=>{const{label:e,className:t,...r}=ge;var s=omit(r,["name","inputProps"]),o=(d&&c&&c.length,[Te,U].filter(Boolean)),n=0<o.length,l=n?o:e,o=n&&!d?o:null,i=P,a=cn(S.triggerButton,i&&S.isError,z&&S.hasTriggerArrow,t);return jsxs("div",{children:[jsxs(Button,{className:a,variant:"default",...s,style:{clipPath:pe},title:o?.join?.(", "),children:[jsx("div",{className:cn(S.triggerButtonLabel,n&&S.hasSelected),children:l}),z]}),!d&&jsx(Label,{size:u,isOnTop:n,isError:i,onClipPathChange:me,children:ke(e)})]})})(),w=d&&c&&0<c.length,jsxs("div",{className:S.trigger,children:[w&&jsx(Scroll,{y:!0,className:S.chipsContainer,innerClassName:S.chipContainerInner,size:u,fadeSize:u,autoHide:!0,children:d&&c&&c.length?c.map(e=>{var t=A(e);return t?jsx(Chip,{className:cn(S.chip,re?.includes(e)&&H,k.items[e]?.chipClassName),size:u,selected:re?.includes(e),onRemove:()=>O(e),onClick:()=>q?.(e),removeTooltip:te,children:t},e):null}):null}),M,J&&!K&&jsx(RequiredStar,{size:u})]})),triggerProps:{onFocus:()=>{ue(!0)},onBlur:()=>{ue(!1)}},content:ye}),P&&jsx(AssistiveText,{variant:"danger",size:u,children:m})]})}export{Select2};
2
- //# sourceMappingURL=Select2.js.map
1
+ import { useRef, useState, useMemo, useEffect, useCallback, createElement } from 'react';
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import { mapById, isMultiple, renderLabel } from './Select.helpers.js';
4
+ import { INTERACTION_MODE, getInteractionMode } from '../../tools/dom.js';
5
+ import cn from 'classnames';
6
+ import omit from 'lodash.omit';
7
+ import { AssistiveText } from '../AssistiveText/AssistiveText.js';
8
+ import { Button } from '../Button/Button.js';
9
+ import { Chip } from '../Chip/Chip.js';
10
+ import { Input } from '../Input/Input.js';
11
+ import { Icon } from '../Icon/Icon.js';
12
+ import { Label } from '../Label/Label.js';
13
+ import { Popup } from '../Popup/Popup.js';
14
+ import { RequiredStar } from '../RequiredStar/RequiredStar.js';
15
+ import { Scroll } from '../Scroll/Scroll.js';
16
+ import { useThrottle } from '../../hooks/useThrottle.js';
17
+ import useEvent from '../../hooks/useEvent.js';
18
+ import S from './Select.styl.js';
19
+
20
+ function Select2(props) {
21
+ const { className, value, onChange, onChipClick, onSearchChange, disableTriggerArrow, inputProps, popupProps, scrollProps, size = 'm', round, optionClassName, selectedChipClassName, additionalOptions = [], options, variant, label, additionalLabel, error, blur, disabled, trigger, required, hideRequiredStar, isSearchable, presets = [], selectAllButton, clearButton, showSelectedCount, disableLabel, selectedChipRemoveTooltip, selectedChipIds, onOpen, onClose, } = props;
22
+ const isMultiple$1 = isMultiple(value);
23
+ const closeOnSelect = props.closeOnSelect ?? !isMultiple$1;
24
+ const contentRef = useRef(null);
25
+ const scrollInnerRef = useRef(null);
26
+ const focusedItemId = useRef(null);
27
+ const focusedElem = useRef(null);
28
+ const maxIndex = useRef(-1);
29
+ const isFirstSelectedMeet = useRef(false);
30
+ const searchValLower = useRef('');
31
+ const [searchVal, _setSearchVal] = useState('');
32
+ const setSearchVal = (val) => {
33
+ _setSearchVal(val);
34
+ searchValLower.current = val.toLowerCase();
35
+ };
36
+ const [isOpen, setIsOpen] = useState(false);
37
+ const [isFocused, setIsFocused] = useState(false);
38
+ const [labelClipPath, setLabelClipPath] = useState('');
39
+ const [focusedItemIndex, setFocusedItemIndex] = useState(-1);
40
+ // Add tree-related state from Select.tsx
41
+ const [items, setItems] = useState([]);
42
+ const ids = useMemo(() => mapById(props.options), [props.options]);
43
+ // Add basic selection state
44
+ const [selected, setSelected] = useState(isMultiple$1 ? value : [value]);
45
+ const [optionsUpdated, setOptionsUpdated] = useState(0);
46
+ const isErrorVisible = !isOpen && !!error;
47
+ const triggerProps = useMemo(() => ({
48
+ label,
49
+ size,
50
+ round,
51
+ variant,
52
+ ...props.triggerProps,
53
+ }), [props.triggerProps, label, size, round, variant]);
54
+ const isSelected = (id) => isMultiple$1
55
+ ? selected.includes(id)
56
+ : selected[0] === id;
57
+ const isClickedInside = (elem) => !!(elem instanceof Element &&
58
+ (elem.closest(`.${S.root}`) || elem.closest(`.${S.options}`)));
59
+ const setNewItems = (newItems) => {
60
+ maxIndex.current = newItems.length - 1;
61
+ setItems(newItems);
62
+ setOptionsUpdated(optionsUpdated + 1);
63
+ if (focusedItemIndex > maxIndex.current && maxIndex.current >= 0) {
64
+ setFocusedItemIndex(maxIndex.current);
65
+ focusedItemId.current = newItems[maxIndex.current]?.id;
66
+ }
67
+ };
68
+ const setItemFocus = index => {
69
+ focusedItemId.current = items[index]?.id;
70
+ setFocusedItemIndex(index);
71
+ };
72
+ const [isSearchActive, setIsSearchActive] = useState(false);
73
+ const handleSearchChange = (e, value) => {
74
+ setSearchVal(value);
75
+ setIsSearchActive(true);
76
+ onSearchChange?.(value);
77
+ setNewItems(options.filter(filterOption));
78
+ };
79
+ const selectAll = () => {
80
+ const newValue = options.map(({ id }) => id);
81
+ setSelected(newValue);
82
+ onChange?.(newValue);
83
+ };
84
+ const dropSelected = () => {
85
+ setSelected([]);
86
+ onChange?.([]);
87
+ };
88
+ const onFocusedElemRef = elem => {
89
+ focusedElem.current = elem;
90
+ if (elem) {
91
+ const content = contentRef.current;
92
+ if (!content)
93
+ return;
94
+ const { top, bottom } = elem.getBoundingClientRect();
95
+ const rect = contentRef.current.getBoundingClientRect();
96
+ const list = scrollInnerRef.current;
97
+ if (top < rect.top) {
98
+ list.scrollTop -= rect.top - top;
99
+ }
100
+ else if (bottom > rect.bottom) {
101
+ list.scrollTop += bottom - rect.bottom;
102
+ }
103
+ }
104
+ };
105
+ const onPopupOpen = () => {
106
+ setIsOpen(true);
107
+ if (focusedItemIndex === -1) {
108
+ setItemFocus(0);
109
+ }
110
+ popupProps?.onOpen?.();
111
+ onOpen?.();
112
+ };
113
+ const onPopupClose = () => {
114
+ setIsOpen(false);
115
+ setSearchVal('');
116
+ setIsSearchActive(false);
117
+ setItemFocus(0);
118
+ popupProps?.onClose?.();
119
+ onClose?.();
120
+ };
121
+ const onFocus = () => {
122
+ setIsFocused(true);
123
+ };
124
+ const onBlur = () => {
125
+ setIsFocused(false);
126
+ };
127
+ const onOptionHover = useThrottle(id => {
128
+ const mode = getInteractionMode();
129
+ if (mode !== INTERACTION_MODE.POINTER)
130
+ return;
131
+ const index = items.findIndex(item => item.id === id);
132
+ setItemFocus(index);
133
+ }, 100, { trailing: true });
134
+ const onItemToggle = (id) => {
135
+ if (isMultiple$1) {
136
+ const newValue = isSelected(id)
137
+ ? selected.filter(i => i !== id)
138
+ : [...selected, id];
139
+ setSelected(newValue);
140
+ onChange?.(newValue);
141
+ }
142
+ else {
143
+ // mono select
144
+ const newValue = isSelected(id) ? null : id;
145
+ const newSelected = isSelected(id) ? [] : [id];
146
+ setSelected(newSelected);
147
+ onChange?.(newValue);
148
+ }
149
+ setSearchVal('');
150
+ if (closeOnSelect)
151
+ setIsOpen(false);
152
+ };
153
+ const getLabel = (id) => ids.items[id]?.label || '';
154
+ const getFieldLabel = (label) => {
155
+ if (disableLabel)
156
+ return null;
157
+ // @ts-ignore
158
+ const length = value?.length;
159
+ if (isMultiple$1 && length && showSelectedCount)
160
+ return `${label} (${length})`;
161
+ return label;
162
+ };
163
+ const filterOption = ({ label }) => {
164
+ return label.toLowerCase().includes(searchValLower.current);
165
+ };
166
+ const selectedLabel = useMemo(() => {
167
+ if (!isMultiple$1)
168
+ return getLabel(value);
169
+ if (!value)
170
+ return '';
171
+ return (value
172
+ // @ts-ignore
173
+ .reduce((acc, id) => {
174
+ const label = getLabel(id);
175
+ return label ? [...acc, label] : acc;
176
+ }, [])
177
+ .join(', '));
178
+ }, [isMultiple$1, value, ids]);
179
+ const renderSelectedChips = () => {
180
+ if (!isMultiple$1 || !value || !value.length)
181
+ return null;
182
+ return value.map(id => {
183
+ const label = getLabel(id);
184
+ if (!label)
185
+ return null;
186
+ return (jsx(Chip, { className: cn(S.chip, selectedChipIds?.includes(id) && selectedChipClassName, ids.items[id]?.chipClassName), size: size, selected: selectedChipIds?.includes(id), onRemove: () => onItemToggle(id), onClick: () => onChipClick?.(id), removeTooltip: selectedChipRemoveTooltip, children: label }, id));
187
+ });
188
+ };
189
+ const triggerArrow = useMemo(() => {
190
+ if (disableTriggerArrow || (inputProps?.hasClear && searchVal))
191
+ return null;
192
+ return (jsx(Icon, { type: "chevronDown", className: cn(S.triggerArrow, isOpen && S.isOpen), size: size }));
193
+ }, [isOpen, searchVal]);
194
+ const renderTriggerInput = () => {
195
+ const hasChips = isMultiple$1 && value && value.length > 0;
196
+ const inputValue = isMultiple$1
197
+ ? isFocused && isSearchActive
198
+ ? searchVal
199
+ : ''
200
+ : isFocused && isSearchActive
201
+ ? searchVal
202
+ : selectedLabel;
203
+ return (jsx(Input, { ...triggerProps, ...inputProps,
204
+ // TODO: autoComplete
205
+ addonRight: triggerArrow, error: isErrorVisible, value: inputValue, onChange: handleSearchChange, label: getFieldLabel(label), placeholder: hasChips && !inputValue ? '' : inputProps?.placeholder }));
206
+ };
207
+ const renderTriggerButton = () => {
208
+ const { label, className, ...rest } = triggerProps;
209
+ const props = omit(rest, ['name', 'inputProps']);
210
+ isMultiple$1 && value && value.length > 0;
211
+ const fullSelectedLabel = [selectedLabel, additionalLabel].filter(Boolean);
212
+ const hasSelected = fullSelectedLabel.length > 0;
213
+ const displayLabel = hasSelected ? fullSelectedLabel : label;
214
+ const title = hasSelected && !isMultiple$1 ? fullSelectedLabel : null;
215
+ const isError = isErrorVisible;
216
+ const classes = cn(S.triggerButton, isError && S.isError, triggerArrow && S.hasTriggerArrow, className);
217
+ return (jsxs("div", { children: [jsxs(Button, { className: classes, variant: "default", ...props, style: { clipPath: labelClipPath }, title: title?.join?.(', '), children: [jsx("div", { className: cn(S.triggerButtonLabel, hasSelected && S.hasSelected), children: displayLabel }), triggerArrow] }), !isMultiple$1 && (jsx(Label, { size: size, isOnTop: hasSelected, isError: isError, onClipPathChange: setLabelClipPath, children: getFieldLabel(label) }))] }));
218
+ };
219
+ const renderTrigger = () => {
220
+ if (trigger)
221
+ return trigger;
222
+ const triggerElem = isSearchable
223
+ ? renderTriggerInput()
224
+ : renderTriggerButton();
225
+ const hasChips = isMultiple$1 && value && value.length > 0;
226
+ return (jsxs("div", { className: S.trigger, children: [hasChips && (jsx(Scroll, { y: true, className: S.chipsContainer, innerClassName: S.chipContainerInner, size: size, fadeSize: size, autoHide: true, children: renderSelectedChips() })), triggerElem, required && !hideRequiredStar && jsx(RequiredStar, { size: size })] }));
227
+ };
228
+ const renderPresets = () => {
229
+ const items = presets.map(({ label, ids }) => ({
230
+ children: label,
231
+ onClick: () => setSelected(ids),
232
+ key: label,
233
+ }));
234
+ if (selectAllButton) {
235
+ items.push({
236
+ children: 'Select all',
237
+ onClick: selectAll,
238
+ key: 'select-all-button',
239
+ });
240
+ }
241
+ if (clearButton) {
242
+ items.push({
243
+ children: 'Clear',
244
+ onClick: dropSelected,
245
+ key: 'clear-button',
246
+ });
247
+ }
248
+ if (items.length === 0)
249
+ return null;
250
+ return (jsx("div", { className: S.presetPanel, children: items.map(props => (jsx(Button, { className: S.presetButton, variant: "clear", ...props }))) }, "preset-panel"));
251
+ };
252
+ const renderOption = (item, level = 0) => {
253
+ const { id, isGroupHeader } = item;
254
+ const isFocused = id === focusedItemId.current;
255
+ const isSelected = selected.includes(id);
256
+ const items = [];
257
+ const className = cn(S.option, isGroupHeader && S.isGroup, isFocused && S.isFocused, isSelected && S.isSelected, S[`level-${level}`], optionClassName);
258
+ const optionProps = {
259
+ className,
260
+ onPointerUp: () => onItemToggle(id),
261
+ onPointerEnter: () => onOptionHover(id),
262
+ };
263
+ // @ts-ignore
264
+ if (isFocused)
265
+ optionProps.ref = onFocusedElemRef;
266
+ if (isSelected && !isFirstSelectedMeet.current) {
267
+ isFirstSelectedMeet.current = true;
268
+ }
269
+ if (filterOption(item)) {
270
+ items.unshift(jsx("div", { ...optionProps, children: renderLabel(item) }, id));
271
+ }
272
+ return items;
273
+ };
274
+ const renderOptions = () => {
275
+ isFirstSelectedMeet.current = false;
276
+ return [...additionalOptions, ...items]
277
+ .map(item => renderOption(item))
278
+ .flat();
279
+ };
280
+ useEffect(() => {
281
+ const items = additionalOptions?.length
282
+ ? [...additionalOptions, ...options]
283
+ : options;
284
+ setNewItems(items);
285
+ }, [options]);
286
+ useEffect(() => {
287
+ setIsOpen(props.isOpen);
288
+ }, [props.isOpen]);
289
+ useEffect(() => {
290
+ const searchVal = props.searchValue;
291
+ if (searchVal)
292
+ setSearchVal(searchVal);
293
+ }, [props.searchValue]);
294
+ const onKeyDown = useCallback((e) => {
295
+ const currIndex = focusedItemIndex;
296
+ if (e.key === 'ArrowUp') {
297
+ if (currIndex > 0)
298
+ setItemFocus(currIndex - 1);
299
+ }
300
+ if (e.key === 'ArrowDown') {
301
+ if (currIndex < maxIndex.current)
302
+ setItemFocus(currIndex + 1);
303
+ }
304
+ if (currIndex === -1 || !isOpen)
305
+ return;
306
+ if (e.key === 'Enter') {
307
+ e.preventDefault();
308
+ e.stopPropagation();
309
+ onItemToggle(items[currIndex].id);
310
+ }
311
+ }, [items, focusedItemIndex, isOpen, selected]);
312
+ useEvent({
313
+ event: 'keydown',
314
+ isActive: isOpen,
315
+ callback: onKeyDown,
316
+ });
317
+ useEvent({
318
+ event: 'click',
319
+ // isActive: isMultiple,
320
+ callback: e => {
321
+ if (!isClickedInside(e.target)) {
322
+ setIsOpen(false);
323
+ }
324
+ },
325
+ });
326
+ const optionsList = useMemo(() => (jsxs("div", { ref: contentRef, children: [renderPresets(), createElement(Scroll, { y: true, ...scrollProps, offset: { y: { before: 10, after: 10 } }, className: cn(S.options, S[`size-${size}`], scrollProps?.className), onInnerRef: elem => (scrollInnerRef.current = elem), key: "items-scroll" }, renderOptions())] })), [items, searchVal, focusedItemIndex, selected]);
327
+ const classes = cn(S.root, className, S[`size-${size}`]);
328
+ return (jsxs(Fragment, { children: [jsx(Popup, { className: classes, direction: "bottom", size: size, focusControl: true, hoverControl: isFocused, blur: blur, isOpen: isOpen, disabled: disabled, ...popupProps, onOpen: onPopupOpen, onClose: onPopupClose, trigger: renderTrigger(), triggerProps: {
329
+ onFocus: onFocus,
330
+ onBlur: onBlur,
331
+ }, content: optionsList }), isErrorVisible && (jsx(AssistiveText, { variant: "danger", size: size, children: error }))] }));
332
+ }
333
+
334
+ export { Select2 };
@@ -1,2 +1,7 @@
1
- import{jsx}from"react/jsx-runtime";import S from"./Shimmer.styl.js";import cn from"classnames";const Shimmer=({className:r,size:m="m",round:s=!1,children:e})=>jsx("div",{className:cn(S.root,r,S["size-"+m],s&&S.round),children:jsx("div",{className:S.inner,children:e})});export{Shimmer};
2
- //# sourceMappingURL=Shimmer.js.map
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import S from './Shimmer.styl.js';
3
+ import cn from 'classnames';
4
+
5
+ const Shimmer = ({ className, size = 'm', round = false, children, }) => (jsx("div", { className: cn(S.root, className, S[`size-${size}`], round && S.round), children: jsx("div", { className: S.inner, children: children }) }));
6
+
7
+ export { Shimmer };
@@ -1,2 +1,7 @@
1
- import styleInject from"../../../node_modules/style-inject/dist/style-inject.es.js";var css_248z=".Shimmer_root__XaY5r{height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%}.Shimmer_inner__zssMV{animation:Shimmer_shimmer__hGfzF 1.5s linear infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2) 50%,transparent);background:linear-gradient(90deg,transparent 0,var(--shimmer-color,var(--accent-color-alpha-200,hsla(0,0%,100%,.2))) 50%,transparent 100%);inset:0;position:absolute}.Shimmer_size-xs__RAP4h{border-radius:4px}.Shimmer_round__rwhjn.Shimmer_size-xs__RAP4h{border-radius:12px}.Shimmer_size-s__EYKhC{border-radius:4px}.Shimmer_round__rwhjn.Shimmer_size-s__EYKhC{border-radius:16px}.Shimmer_size-m__AYziL{border-radius:6px}.Shimmer_round__rwhjn.Shimmer_size-m__AYziL{border-radius:20px}.Shimmer_size-l__GqE0a{border-radius:8px}.Shimmer_round__rwhjn.Shimmer_size-l__GqE0a{border-radius:24px}.Shimmer_size-xl__VwXMx{border-radius:10px}.Shimmer_round__rwhjn.Shimmer_size-xl__VwXMx{border-radius:28px}@keyframes Shimmer_shimmer__hGfzF{0%{transform:translateX(-100%)}50%{transform:translateX(100%)}to{transform:translateX(100%)}}",S={root:"Shimmer_root__XaY5r",inner:"Shimmer_inner__zssMV",shimmer:"Shimmer_shimmer__hGfzF","size-xs":"Shimmer_size-xs__RAP4h",round:"Shimmer_round__rwhjn","size-s":"Shimmer_size-s__EYKhC","size-m":"Shimmer_size-m__AYziL","size-l":"Shimmer_size-l__GqE0a","size-xl":"Shimmer_size-xl__VwXMx"};styleInject(css_248z);export{S as default};
2
- //# sourceMappingURL=Shimmer.styl.js.map
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".Shimmer_root__XaY5r{height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%}.Shimmer_inner__zssMV{animation:Shimmer_shimmer__hGfzF 1.5s linear infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2) 50%,transparent);background:linear-gradient(90deg,transparent 0,var(--shimmer-color,var(--accent-color-alpha-200,hsla(0,0%,100%,.2))) 50%,transparent 100%);inset:0;position:absolute}.Shimmer_size-xs__RAP4h{border-radius:4px}.Shimmer_round__rwhjn.Shimmer_size-xs__RAP4h{border-radius:12px}.Shimmer_size-s__EYKhC{border-radius:4px}.Shimmer_round__rwhjn.Shimmer_size-s__EYKhC{border-radius:16px}.Shimmer_size-m__AYziL{border-radius:6px}.Shimmer_round__rwhjn.Shimmer_size-m__AYziL{border-radius:20px}.Shimmer_size-l__GqE0a{border-radius:8px}.Shimmer_round__rwhjn.Shimmer_size-l__GqE0a{border-radius:24px}.Shimmer_size-xl__VwXMx{border-radius:10px}.Shimmer_round__rwhjn.Shimmer_size-xl__VwXMx{border-radius:28px}@keyframes Shimmer_shimmer__hGfzF{0%{transform:translateX(-100%)}50%{transform:translateX(100%)}to{transform:translateX(100%)}}";
4
+ var S = {"root":"Shimmer_root__XaY5r","inner":"Shimmer_inner__zssMV","shimmer":"Shimmer_shimmer__hGfzF","size-xs":"Shimmer_size-xs__RAP4h","round":"Shimmer_round__rwhjn","size-s":"Shimmer_size-s__EYKhC","size-m":"Shimmer_size-m__AYziL","size-l":"Shimmer_size-l__GqE0a","size-xl":"Shimmer_size-xl__VwXMx"};
5
+ styleInject(css_248z);
6
+
7
+ export { S as default };
@@ -1,2 +1,11 @@
1
- import{jsx}from"react/jsx-runtime";import cn from"classnames";import SvgSpinner from"./spinner.svg.js";import S from"./Spinner.styl.js";const Spinner=({size:r="m",className:n="",...s})=>{r=cn(S.root,S["size-"+r],n);return jsx(SvgSpinner,{className:r,...s})};export{Spinner};
2
- //# sourceMappingURL=Spinner.js.map
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import cn from 'classnames';
3
+ import SvgSpinner from './spinner.svg.js';
4
+ import S from './Spinner.styl.js';
5
+
6
+ const Spinner = ({ size = 'm', className = '', ...props }) => {
7
+ const classes = cn(S.root, S[`size-${size}`], className);
8
+ return jsx(SvgSpinner, { className: classes, ...props });
9
+ };
10
+
11
+ export { Spinner };
@@ -1,2 +1,7 @@
1
- import styleInject from"../../../node_modules/style-inject/dist/style-inject.es.js";var css_248z=".Spinner_root__DsSOz{animation:Spinner_spin__7XKOR .5s linear infinite;color:inherit;display:inline-block}.Spinner_size-xs__rhfme{height:12px;width:12px}.Spinner_size-s__sc9kC{height:16px;width:16px}.Spinner_size-m__MY4q0{height:20px;width:20px}.Spinner_size-l__p16ZU{height:30px;width:30px}.Spinner_size-xl__vqU9I{height:38px;width:38px}@keyframes Spinner_spin__7XKOR{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}",S={root:"Spinner_root__DsSOz",spin:"Spinner_spin__7XKOR","size-xs":"Spinner_size-xs__rhfme","size-s":"Spinner_size-s__sc9kC","size-m":"Spinner_size-m__MY4q0","size-l":"Spinner_size-l__p16ZU","size-xl":"Spinner_size-xl__vqU9I"};styleInject(css_248z);export{S as default};
2
- //# sourceMappingURL=Spinner.styl.js.map
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".Spinner_root__DsSOz{animation:Spinner_spin__7XKOR .5s linear infinite;color:inherit;display:inline-block}.Spinner_size-xs__rhfme{height:12px;width:12px}.Spinner_size-s__sc9kC{height:16px;width:16px}.Spinner_size-m__MY4q0{height:20px;width:20px}.Spinner_size-l__p16ZU{height:30px;width:30px}.Spinner_size-xl__vqU9I{height:38px;width:38px}@keyframes Spinner_spin__7XKOR{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}";
4
+ var S = {"root":"Spinner_root__DsSOz","spin":"Spinner_spin__7XKOR","size-xs":"Spinner_size-xs__rhfme","size-s":"Spinner_size-s__sc9kC","size-m":"Spinner_size-m__MY4q0","size-l":"Spinner_size-l__p16ZU","size-xl":"Spinner_size-xl__vqU9I"};
5
+ styleInject(css_248z);
6
+
7
+ export { S as default };
@@ -1,2 +1,24 @@
1
- import*as React from"react";var _circle;function _extends(){return(_extends=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t,n=arguments[r];for(t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e}).apply(this,arguments)}var SvgSpinner=function(e){return React.createElement("svg",_extends({width:50,height:50,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"},e),_circle=_circle||React.createElement("circle",{cx:50,cy:50,fill:"none",stroke:"currentColor",strokeWidth:8,r:45,strokeDasharray:"212.05750411731105 72.68583470577035",transform:"rotate(270 50 50)"}))};export{SvgSpinner as default};
2
- //# sourceMappingURL=spinner.svg.js.map
1
+ import * as React from 'react';
2
+
3
+ var _circle;
4
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
5
+ var SvgSpinner = function SvgSpinner(props) {
6
+ return /*#__PURE__*/React.createElement("svg", _extends({
7
+ width: 50,
8
+ height: 50,
9
+ xmlns: "http://www.w3.org/2000/svg",
10
+ viewBox: "0 0 100 100",
11
+ preserveAspectRatio: "xMidYMid"
12
+ }, props), _circle || (_circle = /*#__PURE__*/React.createElement("circle", {
13
+ cx: 50,
14
+ cy: 50,
15
+ fill: "none",
16
+ stroke: "currentColor",
17
+ strokeWidth: 8,
18
+ r: 45,
19
+ strokeDasharray: "212.05750411731105 72.68583470577035",
20
+ transform: "rotate(270 50 50)"
21
+ })));
22
+ };
23
+
24
+ export { SvgSpinner as default };
@@ -1,2 +1,24 @@
1
- import{jsx,jsxs}from"react/jsx-runtime";import{Component}from"react";import cn from"classnames";import{Paranja}from"../Paranja/Paranja.js";import{Scroll}from"../Scroll/Scroll.js";import{Spinner}from"../Spinner/Spinner.js";import S from"./Table.styl.js";class Table extends Component{renderHeaderColumn=({id:r,label:e,sticky:a})=>jsx("th",{className:cn(a&&S.sticky),children:e},r);renderRow=e=>{var r=this.props["columns"];return jsx("tr",{className:e.className,children:r.map(r=>this.renderDataCol(r,e))},e.id)};renderDataCol({id:r,dataField:e,render:a,sticky:s},l){return jsx("td",{className:cn(s&&S.sticky),children:a?a(l):l[e||r]},r)}render(){var{className:r,columns:e,isLoading:a=!1,loadingText:s,blur:l,data:n}=this.props;return jsxs("div",{className:cn(S.root,l&&S.blur,r),children:[jsx(Scroll,{x:!0,y:!0,offset:{x:{before:10,after:10}},className:S.scroll,xScrollbarClassName:S.xScrollbar,yScrollbarClassName:S.yScrollbar,children:jsxs("table",{children:[jsx("thead",{children:jsx("tr",{children:e.map(this.renderHeaderColumn)})}),jsx("tbody",{children:n.map(this.renderRow)})]})}),jsx(Paranja,{inline:!0,visible:a,blur:l,children:a&&(s??jsx(Spinner,{}))})]})}}export{Table};
2
- //# sourceMappingURL=Table.js.map
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Component } from 'react';
3
+ import cn from 'classnames';
4
+ import { Paranja } from '../Paranja/Paranja.js';
5
+ import { Scroll } from '../Scroll/Scroll.js';
6
+ import { Spinner } from '../Spinner/Spinner.js';
7
+ import S from './Table.styl.js';
8
+
9
+ class Table extends Component {
10
+ renderHeaderColumn = ({ id, label, sticky }) => (jsx("th", { className: cn(sticky && S.sticky), children: label }, id));
11
+ renderRow = (data) => {
12
+ const { columns } = this.props;
13
+ return (jsx("tr", { className: data.className, children: columns.map(param => this.renderDataCol(param, data)) }, data.id));
14
+ };
15
+ renderDataCol({ id, dataField, render, sticky }, data) {
16
+ return (jsx("td", { className: cn(sticky && S.sticky), children: render ? render(data) : data[dataField || id] }, id));
17
+ }
18
+ render() {
19
+ const { className, columns, isLoading = false, loadingText, blur, data, } = this.props;
20
+ return (jsxs("div", { className: cn(S.root, blur && S.blur, className), children: [jsx(Scroll, { x: true, y: true, offset: { x: { before: 10, after: 10 } }, className: S.scroll, xScrollbarClassName: S.xScrollbar, yScrollbarClassName: S.yScrollbar, children: jsxs("table", { children: [jsx("thead", { children: jsx("tr", { children: columns.map(this.renderHeaderColumn) }) }), jsx("tbody", { children: data.map(this.renderRow) })] }) }), jsx(Paranja, { inline: true, visible: isLoading, blur: blur, children: isLoading && (loadingText ?? jsx(Spinner, {})) })] }));
21
+ }
22
+ }
23
+
24
+ export { Table };
@@ -1,2 +1,7 @@
1
- import styleInject from"../../../node_modules/style-inject/dist/style-inject.es.js";var css_248z=".Table_root__PxLR-{--brad:var(--border-radius-l);border-radius:var(--border-radius-l);border-radius:var(--brad);box-shadow:0 0 0 2px var(--accent-color-alpha-100);max-height:100%;overflow:hidden;position:relative}.Table_root__PxLR- table{min-width:100%}.Table_root__PxLR- tbody{overflow-scrolling:touch;overflow:auto}.Table_root__PxLR- thead{position:sticky;top:0;z-index:1}.Table_root__PxLR- td{box-shadow:inset 0 1px 0 0 var(--accent-color-alpha-100)}.Table_root__PxLR- td,.Table_root__PxLR- th{min-width:5em;padding:var(--p-3);text-align:left}.Table_root__PxLR- th{background-color:var(--accent-color-alpha-100);padding-bottom:16px}.Table_root__PxLR- td{vertical-align:top}.Table_root__PxLR- tr:last-child td{border-bottom-left-radius:var(--brad);border-bottom-right-radius:var(--brad);padding-bottom:var(--p-8)}.Table_scroll__a04XZ{position:static}.Table_xScrollbar__FODoD{transform:translateY(4px)}.Table_yScrollbar__KwMOv{transform:translateX(4px)}.Table_sticky__99lks{background-color:var(--decent-color);left:0;position:sticky;z-index:1}th.Table_sticky__99lks{background-color:var(--accent-color);color:var(--decent-color)}.Table_blur__UwMAo .Table_sticky__99lks{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background-color:var(--decent-color-alpha-500)}.Table_blur__UwMAo th.Table_sticky__99lks{background-color:var(--accent-color-alpha-500);color:var(--decent-color-alpha-800)}",S={root:"Table_root__PxLR-",scroll:"Table_scroll__a04XZ",xScrollbar:"Table_xScrollbar__FODoD",yScrollbar:"Table_yScrollbar__KwMOv",sticky:"Table_sticky__99lks",blur:"Table_blur__UwMAo"};styleInject(css_248z);export{S as default};
2
- //# sourceMappingURL=Table.styl.js.map
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".Table_root__PxLR-{--brad:var(--border-radius-l);border-radius:var(--border-radius-l);border-radius:var(--brad);box-shadow:0 0 0 2px var(--accent-color-alpha-100);max-height:100%;overflow:hidden;position:relative}.Table_root__PxLR- table{min-width:100%}.Table_root__PxLR- tbody{overflow-scrolling:touch;overflow:auto}.Table_root__PxLR- thead{position:sticky;top:0;z-index:1}.Table_root__PxLR- td{box-shadow:inset 0 1px 0 0 var(--accent-color-alpha-100)}.Table_root__PxLR- td,.Table_root__PxLR- th{min-width:5em;padding:var(--p-3);text-align:left}.Table_root__PxLR- th{background-color:var(--accent-color-alpha-100);padding-bottom:16px}.Table_root__PxLR- td{vertical-align:top}.Table_root__PxLR- tr:last-child td{border-bottom-left-radius:var(--brad);border-bottom-right-radius:var(--brad);padding-bottom:var(--p-8)}.Table_scroll__a04XZ{position:static}.Table_xScrollbar__FODoD{transform:translateY(4px)}.Table_yScrollbar__KwMOv{transform:translateX(4px)}.Table_sticky__99lks{background-color:var(--decent-color);left:0;position:sticky;z-index:1}th.Table_sticky__99lks{background-color:var(--accent-color);color:var(--decent-color)}.Table_blur__UwMAo .Table_sticky__99lks{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background-color:var(--decent-color-alpha-500)}.Table_blur__UwMAo th.Table_sticky__99lks{background-color:var(--accent-color-alpha-500);color:var(--decent-color-alpha-800)}";
4
+ var S = {"root":"Table_root__PxLR-","scroll":"Table_scroll__a04XZ","xScrollbar":"Table_xScrollbar__FODoD","yScrollbar":"Table_yScrollbar__KwMOv","sticky":"Table_sticky__99lks","blur":"Table_blur__UwMAo"};
5
+ styleInject(css_248z);
6
+
7
+ export { S as default };
@@ -1,2 +1,48 @@
1
- import{useState,useEffect,useCallback,createElement}from"react";import{jsx,jsxs,Fragment}from"react/jsx-runtime";import cn from"classnames";import{Scroll}from"../Scroll/Scroll.js";import{Button}from"../Button/Button.js";import{ButtonGroup}from"../ButtonGroup/ButtonGroup.js";import S from"./Tabs.styl.js";const isId=e=>["string","number"].includes(typeof e);function Tabs(e){const{size:i="m",className:t,tabsWrapperClassName:s,tabsClassName:n,contentClassName:m,items:a,hideTabsIfSingle:o=!1,allowEmpty:r=!1,onChange:l,renderAll:u,activeId:c,children:f,...p}=e,[d,b]=useState(isId(c)?c:r?null:a[0].id),j=(useEffect(()=>{isId(c)&&b(c)},[c]),useCallback((e,{id:t,onClick:s}={})=>{s&&!s(e)?e.preventDefault():(s=r&&t===d?null:t,b(s),l?.(s))},[d])),N=[];e=a.map(t=>{const{id:e,label:s,forceRender:n,content:a,contentClassName:o,...r}=t;var l=d===e,c="function"==typeof a?a():a;return(u||n||l)&&N.push(jsx("div",{className:cn(m,o,!l&&S.inactive),children:c},e)),createElement(Button,{...r,className:cn(S.tab,r.className),size:i,key:e,onClick:e=>j(e,t),checked:l},s)}),e=1===e.length&&o?null:jsx(Scroll,{x:!0,offset:{x:{before:10,after:10}},className:s,innerClassName:cn(S.tabsScroll,S["size-"+i]),autoHide:!0,fadeSize:i,size:i,children:jsx(ButtonGroup,{className:n,...p,children:e})});return"function"==typeof f?f({tabs:e,content:N}):jsxs(Fragment,{children:[e,f,N]})}export{Tabs};
2
- //# sourceMappingURL=Tabs.js.map
1
+ import { useState, useEffect, useCallback, createElement } from 'react';
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import cn from 'classnames';
4
+ import { Scroll } from '../Scroll/Scroll.js';
5
+ import { Button } from '../Button/Button.js';
6
+ import { ButtonGroup } from '../ButtonGroup/ButtonGroup.js';
7
+ import S from './Tabs.styl.js';
8
+
9
+ const isId = id => ['string', 'number'].includes(typeof id);
10
+ function Tabs(props) {
11
+ const { size = 'm', className, tabsWrapperClassName, tabsClassName, contentClassName, items, hideTabsIfSingle = false, allowEmpty = false, onChange, renderAll, activeId: initialId, children, ...rest } = props;
12
+ const [activeId, setActiveId] = useState(isId(initialId) ? initialId : allowEmpty ? null : items[0].id);
13
+ useEffect(() => {
14
+ if (isId(initialId)) {
15
+ setActiveId(initialId);
16
+ }
17
+ }, [initialId]);
18
+ const onTabClick = useCallback((e, { id, onClick } = {}) => {
19
+ // @ts-ignore
20
+ if (onClick && !onClick(e)) {
21
+ e.preventDefault();
22
+ return;
23
+ }
24
+ const newId = allowEmpty && id === activeId ? null : id;
25
+ setActiveId(newId);
26
+ onChange?.(newId);
27
+ }, [activeId]);
28
+ const tabsContent = [];
29
+ const tabsButtons = items.map((params) => {
30
+ const { id, label, forceRender, content, contentClassName: currContentClassName, ...rest } = params;
31
+ const isActive = activeId === id;
32
+ const tabContent = typeof content === 'function' ? content() : content;
33
+ if (renderAll || forceRender || isActive) {
34
+ tabsContent.push(jsx("div", { className: cn(contentClassName, currContentClassName, !isActive && S.inactive), children: tabContent }, id));
35
+ }
36
+ return (createElement(Button, { ...rest, className: cn(S.tab, rest.className), size: size, key: id, onClick: e => onTabClick(e, params), checked: isActive }, label));
37
+ });
38
+ const tabs = tabsButtons.length === 1 && hideTabsIfSingle ? null : (jsx(Scroll, { x: true, offset: { x: { before: 10, after: 10 } }, className: tabsWrapperClassName, innerClassName: cn(S.tabsScroll, S[`size-${size}`]), autoHide: true, fadeSize: size, size: size, children: jsx(ButtonGroup, { className: tabsClassName, ...rest, children: tabsButtons }) }));
39
+ if (typeof children === 'function') {
40
+ return children({
41
+ tabs,
42
+ content: tabsContent,
43
+ });
44
+ }
45
+ return (jsxs(Fragment, { children: [tabs, children, tabsContent] }));
46
+ }
47
+
48
+ export { Tabs };
@@ -1,2 +1,7 @@
1
- import styleInject from"../../../node_modules/style-inject/dist/style-inject.es.js";var css_248z="div .Tabs_inactive__H0mPh{display:none}.Tabs_tabsScroll__7Dj0S{padding-bottom:var(--p-5)}.Tabs_size-xs__J0-xo.Tabs_tabsScroll__7Dj0S{padding-bottom:var(--p-3)}.Tabs_size-s__bz7NO.Tabs_tabsScroll__7Dj0S{padding-bottom:var(--p-4)}.Tabs_size-l__emJzX.Tabs_tabsScroll__7Dj0S{padding-bottom:calc(var(--p-5)*1.2)}.Tabs_size-xl__Kqzt-.Tabs_tabsScroll__7Dj0S{padding-bottom:calc(var(--p-5)*1.35)}.Tabs_tab__-oN-g{flex-shrink:0;white-space:nowrap}",S={inactive:"Tabs_inactive__H0mPh",tabsScroll:"Tabs_tabsScroll__7Dj0S","size-xs":"Tabs_size-xs__J0-xo","size-s":"Tabs_size-s__bz7NO","size-l":"Tabs_size-l__emJzX","size-xl":"Tabs_size-xl__Kqzt-",tab:"Tabs_tab__-oN-g"};styleInject(css_248z);export{S as default};
2
- //# sourceMappingURL=Tabs.styl.js.map
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = "div .Tabs_inactive__H0mPh{display:none}.Tabs_tabsScroll__7Dj0S{padding-bottom:var(--p-5)}.Tabs_size-xs__J0-xo.Tabs_tabsScroll__7Dj0S{padding-bottom:var(--p-3)}.Tabs_size-s__bz7NO.Tabs_tabsScroll__7Dj0S{padding-bottom:var(--p-4)}.Tabs_size-l__emJzX.Tabs_tabsScroll__7Dj0S{padding-bottom:calc(var(--p-5)*1.2)}.Tabs_size-xl__Kqzt-.Tabs_tabsScroll__7Dj0S{padding-bottom:calc(var(--p-5)*1.35)}.Tabs_tab__-oN-g{flex-shrink:0;white-space:nowrap}";
4
+ var S = {"inactive":"Tabs_inactive__H0mPh","tabsScroll":"Tabs_tabsScroll__7Dj0S","size-xs":"Tabs_size-xs__J0-xo","size-s":"Tabs_size-s__bz7NO","size-l":"Tabs_size-l__emJzX","size-xl":"Tabs_size-xl__Kqzt-","tab":"Tabs_tab__-oN-g"};
5
+ styleInject(css_248z);
6
+
7
+ export { S as default };
@@ -1,2 +1,44 @@
1
- import{jsx,jsxs,Fragment}from"react/jsx-runtime";import cn from"classnames";import{useCallback}from"react";import{Link}from"../Router/Link/Link.js";import{isBrowser}from"../../tools/env.js";import"nanoid";import"../../tools/dom.js";import"timen";import"compareq";import"lodash.pick";import"../../tools/queryParams.js";import S from"./Text.styl.js";const textToAnchorId=o=>o.toLowerCase().split(" ").join("_"),getPath=()=>(isBrowser&&location.pathname)??"/",scrollIntoHeader=o=>document.getElementById(o)?.scrollIntoView();function useAnchor(o){if("string"!=typeof o)return[];const s=textToAnchorId(o);var o=getPath()+"#"+s,r=useCallback(()=>scrollIntoHeader(s),[s]);return[s,jsxs(Fragment,{children:[" ",jsx(Link,{href:o,className:S.anchor,onClick:r,children:"#"})]})]}function H({As:o,className:s,children:r,anchor:t,...e}){var[t,n]=useAnchor(t??r);return jsxs(o,{...e,className:cn(S.heading,s),id:t,children:[r,n]})}const H1=o=>jsx(H,{...o,As:"h1",anchor:!1}),H2=o=>jsx(H,{...o,As:"h2"}),H3=o=>jsx(H,{...o,As:"h3"}),H4=o=>jsx(H,{...o,As:"h4"}),H5=o=>jsx(H,{...o,As:"h5"}),H6=o=>jsx(H,{...o,As:"h6"});isBrowser&&window.addEventListener("load",()=>{scrollIntoHeader(location.hash.slice(1))});export{H1,H2,H3,H4,H5,H6};
2
- //# sourceMappingURL=Text.js.map
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import cn from 'classnames';
3
+ import { useCallback } from 'react';
4
+ import { Link } from '../Router/Link/Link.js';
5
+ import { isBrowser } from '../../tools/env.js';
6
+ import 'nanoid';
7
+ import '../../tools/dom.js';
8
+ import 'timen';
9
+ import 'compareq';
10
+ import 'lodash.pick';
11
+ import '../../tools/queryParams.js';
12
+ import S from './Text.styl.js';
13
+
14
+ const textToAnchorId = text => text.toLowerCase().split(' ').join('_');
15
+ const getPath = () => (isBrowser && location.pathname) ?? '/';
16
+ const scrollIntoHeader = id => document.getElementById(id)?.scrollIntoView();
17
+ function useAnchor(text) {
18
+ if (typeof text !== 'string')
19
+ return [];
20
+ const id = textToAnchorId(text);
21
+ const href = `${getPath()}#${id}`;
22
+ const scrollUp = useCallback(() => scrollIntoHeader(id), [id]);
23
+ return [
24
+ id,
25
+ jsxs(Fragment, { children: ["\u00A0", jsx(Link, { href: href, className: S.anchor, onClick: scrollUp, children: "#" })] }),
26
+ ];
27
+ }
28
+ function H({ As, className, children, anchor, ...rest }) {
29
+ const [id, anchorEl] = useAnchor(anchor ?? children);
30
+ return (jsxs(As, { ...rest, className: cn(S.heading, className), id: id, children: [children, anchorEl] }));
31
+ }
32
+ const H1 = props => jsx(H, { ...props, As: "h1", anchor: false });
33
+ const H2 = props => jsx(H, { ...props, As: "h2" });
34
+ const H3 = props => jsx(H, { ...props, As: "h3" });
35
+ const H4 = props => jsx(H, { ...props, As: "h4" });
36
+ const H5 = props => jsx(H, { ...props, As: "h5" });
37
+ const H6 = props => jsx(H, { ...props, As: "h6" });
38
+ if (isBrowser) {
39
+ window.addEventListener('load', () => {
40
+ scrollIntoHeader(location.hash.slice(1));
41
+ });
42
+ }
43
+
44
+ export { H1, H2, H3, H4, H5, H6 };
@@ -1,2 +1,7 @@
1
- import styleInject from"../../../node_modules/style-inject/dist/style-inject.es.js";var css_248z=".Text_heading__DR-MG{position:relative}.Text_anchor__hq6W6{align-items:flex-start;border-radius:50%;height:100%;opacity:0;padding:0 .5em;transform:translateX(-1em);transition:.2s ease-out;transition-property:transform,opacity;-webkit-user-select:none;-moz-user-select:none;user-select:none}.Text_anchor__hq6W6:before{background:none!important;height:100%;position:absolute;width:2em}.Text_heading__DR-MG:hover .Text_anchor__hq6W6{opacity:1;transform:translateX(0)}.Text_heading__DR-MG .Text_anchor__hq6W6:hover{color:var(--active-color)}",S={heading:"Text_heading__DR-MG",anchor:"Text_anchor__hq6W6"};styleInject(css_248z);export{S as default};
2
- //# sourceMappingURL=Text.styl.js.map
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".Text_heading__DR-MG{position:relative}.Text_anchor__hq6W6{align-items:flex-start;border-radius:50%;height:100%;opacity:0;padding:0 .5em;transform:translateX(-1em);transition:.2s ease-out;transition-property:transform,opacity;-webkit-user-select:none;-moz-user-select:none;user-select:none}.Text_anchor__hq6W6:before{background:none!important;height:100%;position:absolute;width:2em}.Text_heading__DR-MG:hover .Text_anchor__hq6W6{opacity:1;transform:translateX(0)}.Text_heading__DR-MG .Text_anchor__hq6W6:hover{color:var(--active-color)}";
4
+ var S = {"heading":"Text_heading__DR-MG","anchor":"Text_anchor__hq6W6"};
5
+ styleInject(css_248z);
6
+
7
+ export { S as default };
@@ -0,0 +1,29 @@
1
+ import { jsx, Fragment } from 'react/jsx-runtime';
2
+ import cn from 'classnames';
3
+ import React__default, { useMemo } from 'react';
4
+ import S from './TextShimmer.styl.js';
5
+
6
+ function TextShimmerComponent({ children, as: Component = 'p', className, duration = 1, spread = 3, inverted = false, active = true, }) {
7
+ const { backgroundGradient } = useMemo(() => {
8
+ const raw = Math.min(48, 3.5 + Math.max(0, Math.min(1, spread / 10)) * 100.5);
9
+ // Wide blend stops “vertical knife” artefacts when the ramp only spans few pixels inside the glyph mask.
10
+ const ridgeHalf = Math.min(49, Math.max(36, raw + 17));
11
+ const baseColor = inverted
12
+ ? 'var(--txt-sh-highlight)'
13
+ : 'var(--txt-sh-fill)';
14
+ const bandColor = inverted
15
+ ? 'var(--txt-sh-fill)'
16
+ : 'var(--txt-sh-highlight)';
17
+ const backgroundGradient = `linear-gradient(90deg, ${baseColor} calc(50% - ${ridgeHalf}%), ${bandColor} 50%, ${baseColor} calc(50% + ${ridgeHalf}%))`;
18
+ return { backgroundGradient };
19
+ }, [spread, inverted]);
20
+ if (!active)
21
+ return jsx(Fragment, { children: children });
22
+ return (jsx(Component, { className: cn(S.root, className), style: {
23
+ '--text-shimmer-duration': `${duration}s`,
24
+ backgroundImage: backgroundGradient,
25
+ }, children: children }));
26
+ }
27
+ const TextShimmer = React__default.memo(TextShimmerComponent);
28
+
29
+ export { TextShimmer };