@ryuzaki13/react-foundation-lib 0.1.1

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 (570) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +654 -0
  3. package/dist/array/array.d.ts +30 -0
  4. package/dist/array/array.d.ts.map +1 -0
  5. package/dist/array/index.d.ts +3 -0
  6. package/dist/array/index.d.ts.map +1 -0
  7. package/dist/array/index.js +2 -0
  8. package/dist/array/reorder.d.ts +10 -0
  9. package/dist/array/reorder.d.ts.map +1 -0
  10. package/dist/auth/getClientFingerprint.d.ts +2 -0
  11. package/dist/auth/getClientFingerprint.d.ts.map +1 -0
  12. package/dist/binary/binaryToBlob.d.ts +13 -0
  13. package/dist/binary/binaryToBlob.d.ts.map +1 -0
  14. package/dist/binary/index.d.ts +3 -0
  15. package/dist/binary/index.d.ts.map +1 -0
  16. package/dist/binary/index.js +126 -0
  17. package/dist/binary/index.js.map +1 -0
  18. package/dist/binary/useBinaryFile.d.ts +8 -0
  19. package/dist/binary/useBinaryFile.d.ts.map +1 -0
  20. package/dist/bounded-copy-stack/boundedCopyStack.d.ts +26 -0
  21. package/dist/bounded-copy-stack/boundedCopyStack.d.ts.map +1 -0
  22. package/dist/bounded-copy-stack/index.d.ts +2 -0
  23. package/dist/bounded-copy-stack/index.d.ts.map +1 -0
  24. package/dist/bounded-copy-stack/index.js +26 -0
  25. package/dist/bounded-copy-stack/index.js.map +1 -0
  26. package/dist/chunks/array-BBSjoTRy.js +146 -0
  27. package/dist/chunks/array-BBSjoTRy.js.map +1 -0
  28. package/dist/chunks/dateUtils-D9dpdTl7.js +760 -0
  29. package/dist/chunks/dateUtils-D9dpdTl7.js.map +1 -0
  30. package/dist/chunks/formatters-CQppb89D.js +1234 -0
  31. package/dist/chunks/formatters-CQppb89D.js.map +1 -0
  32. package/dist/chunks/formulas-BxcH5Zjt.js +279 -0
  33. package/dist/chunks/formulas-BxcH5Zjt.js.map +1 -0
  34. package/dist/chunks/isRecord-DXDTW-jA.js +18 -0
  35. package/dist/chunks/isRecord-DXDTW-jA.js.map +1 -0
  36. package/dist/chunks/odata-service-BAYf08WI.js +1223 -0
  37. package/dist/chunks/odata-service-BAYf08WI.js.map +1 -0
  38. package/dist/chunks/string-comparison-BKT7PXmq.js +20 -0
  39. package/dist/chunks/string-comparison-BKT7PXmq.js.map +1 -0
  40. package/dist/chunks/validate-BChpTW6y.js +468 -0
  41. package/dist/chunks/validate-BChpTW6y.js.map +1 -0
  42. package/dist/context-menu/anchor.d.ts +19 -0
  43. package/dist/context-menu/anchor.d.ts.map +1 -0
  44. package/dist/context-menu/index.d.ts +4 -0
  45. package/dist/context-menu/index.d.ts.map +1 -0
  46. package/dist/context-menu/index.js +57 -0
  47. package/dist/context-menu/index.js.map +1 -0
  48. package/dist/context-menu/state.d.ts +6 -0
  49. package/dist/context-menu/state.d.ts.map +1 -0
  50. package/dist/context-menu/types.d.ts +25 -0
  51. package/dist/context-menu/types.d.ts.map +1 -0
  52. package/dist/copy/index.d.ts +5 -0
  53. package/dist/copy/index.d.ts.map +1 -0
  54. package/dist/copy/index.js +56 -0
  55. package/dist/copy/index.js.map +1 -0
  56. package/dist/copy/useCopyElementText.d.ts +6 -0
  57. package/dist/copy/useCopyElementText.d.ts.map +1 -0
  58. package/dist/copy/useCopyFeedback.d.ts +11 -0
  59. package/dist/copy/useCopyFeedback.d.ts.map +1 -0
  60. package/dist/copy/useCopyText.d.ts +4 -0
  61. package/dist/copy/useCopyText.d.ts.map +1 -0
  62. package/dist/copy/useElementText.d.ts +5 -0
  63. package/dist/copy/useElementText.d.ts.map +1 -0
  64. package/dist/crypto/hashString.d.ts +5 -0
  65. package/dist/crypto/hashString.d.ts.map +1 -0
  66. package/dist/crypto/index.d.ts +3 -0
  67. package/dist/crypto/index.d.ts.map +1 -0
  68. package/dist/crypto/index.js +62 -0
  69. package/dist/crypto/index.js.map +1 -0
  70. package/dist/crypto/uuid.d.ts +5 -0
  71. package/dist/crypto/uuid.d.ts.map +1 -0
  72. package/dist/currency/currency.d.ts +8 -0
  73. package/dist/currency/currency.d.ts.map +1 -0
  74. package/dist/currency/index.d.ts +2 -0
  75. package/dist/currency/index.d.ts.map +1 -0
  76. package/dist/currency/index.js +16 -0
  77. package/dist/currency/index.js.map +1 -0
  78. package/dist/date-segments/index.d.ts +3 -0
  79. package/dist/date-segments/index.d.ts.map +1 -0
  80. package/dist/date-segments/index.js +160 -0
  81. package/dist/date-segments/index.js.map +1 -0
  82. package/dist/date-segments/mask.d.ts +54 -0
  83. package/dist/date-segments/mask.d.ts.map +1 -0
  84. package/dist/dom/downloadFile.d.ts +4 -0
  85. package/dist/dom/downloadFile.d.ts.map +1 -0
  86. package/dist/dom/getOrCreatePortalRoot.d.ts +2 -0
  87. package/dist/dom/getOrCreatePortalRoot.d.ts.map +1 -0
  88. package/dist/dom/index.d.ts +10 -0
  89. package/dist/dom/index.d.ts.map +1 -0
  90. package/dist/dom/index.js +159 -0
  91. package/dist/dom/index.js.map +1 -0
  92. package/dist/dom/useClickOutside.d.ts +3 -0
  93. package/dist/dom/useClickOutside.d.ts.map +1 -0
  94. package/dist/dom/useElementHeightObserver.d.ts +3 -0
  95. package/dist/dom/useElementHeightObserver.d.ts.map +1 -0
  96. package/dist/dom/useEscapeDismiss.d.ts +14 -0
  97. package/dist/dom/useEscapeDismiss.d.ts.map +1 -0
  98. package/dist/dom/useFocusTrap.d.ts +5 -0
  99. package/dist/dom/useFocusTrap.d.ts.map +1 -0
  100. package/dist/dom/useIntersectionObserver.d.ts +4 -0
  101. package/dist/dom/useIntersectionObserver.d.ts.map +1 -0
  102. package/dist/dom/useIsTouchDevice.d.ts +2 -0
  103. package/dist/dom/useIsTouchDevice.d.ts.map +1 -0
  104. package/dist/dom/useOverlayFocus.d.ts +14 -0
  105. package/dist/dom/useOverlayFocus.d.ts.map +1 -0
  106. package/dist/error/index.d.ts +2 -0
  107. package/dist/error/index.d.ts.map +1 -0
  108. package/dist/error/index.js +20 -0
  109. package/dist/error/index.js.map +1 -0
  110. package/dist/error/missingContextError.d.ts +14 -0
  111. package/dist/error/missingContextError.d.ts.map +1 -0
  112. package/dist/error-report/breadcrumbs.d.ts +11 -0
  113. package/dist/error-report/breadcrumbs.d.ts.map +1 -0
  114. package/dist/error-report/capture.d.ts +6 -0
  115. package/dist/error-report/capture.d.ts.map +1 -0
  116. package/dist/error-report/diagnostics.d.ts +29 -0
  117. package/dist/error-report/diagnostics.d.ts.map +1 -0
  118. package/dist/error-report/drafts.d.ts +25 -0
  119. package/dist/error-report/drafts.d.ts.map +1 -0
  120. package/dist/error-report/environment.d.ts +19 -0
  121. package/dist/error-report/environment.d.ts.map +1 -0
  122. package/dist/error-report/errorInfo.d.ts +7 -0
  123. package/dist/error-report/errorInfo.d.ts.map +1 -0
  124. package/dist/error-report/index.d.ts +11 -0
  125. package/dist/error-report/index.d.ts.map +1 -0
  126. package/dist/error-report/index.js +464 -0
  127. package/dist/error-report/index.js.map +1 -0
  128. package/dist/error-report/runtime.d.ts +26 -0
  129. package/dist/error-report/runtime.d.ts.map +1 -0
  130. package/dist/error-report/safeValue.d.ts +14 -0
  131. package/dist/error-report/safeValue.d.ts.map +1 -0
  132. package/dist/error-report/transport.d.ts +32 -0
  133. package/dist/error-report/transport.d.ts.map +1 -0
  134. package/dist/error-report/types.d.ts +123 -0
  135. package/dist/error-report/types.d.ts.map +1 -0
  136. package/dist/excel/excel.d.ts +52 -0
  137. package/dist/excel/excel.d.ts.map +1 -0
  138. package/dist/excel/index.d.ts +3 -0
  139. package/dist/excel/index.d.ts.map +1 -0
  140. package/dist/excel/index.js +139 -0
  141. package/dist/excel/index.js.map +1 -0
  142. package/dist/excel/tableExport.d.ts +26 -0
  143. package/dist/excel/tableExport.d.ts.map +1 -0
  144. package/dist/file/contentDisposition.d.ts +11 -0
  145. package/dist/file/contentDisposition.d.ts.map +1 -0
  146. package/dist/file/image/index.d.ts +3 -0
  147. package/dist/file/image/index.d.ts.map +1 -0
  148. package/dist/file/image/readImageFile.d.ts +8 -0
  149. package/dist/file/image/readImageFile.d.ts.map +1 -0
  150. package/dist/file/image/types.d.ts +30 -0
  151. package/dist/file/image/types.d.ts.map +1 -0
  152. package/dist/file/index.d.ts +5 -0
  153. package/dist/file/index.d.ts.map +1 -0
  154. package/dist/file/index.js +211 -0
  155. package/dist/file/index.js.map +1 -0
  156. package/dist/file/mimeType.d.ts +2 -0
  157. package/dist/file/mimeType.d.ts.map +1 -0
  158. package/dist/file/read-file/assert.d.ts +4 -0
  159. package/dist/file/read-file/assert.d.ts.map +1 -0
  160. package/dist/file/read-file/index.d.ts +4 -0
  161. package/dist/file/read-file/index.d.ts.map +1 -0
  162. package/dist/file/read-file/readFile.d.ts +14 -0
  163. package/dist/file/read-file/readFile.d.ts.map +1 -0
  164. package/dist/file/read-file/types.d.ts +43 -0
  165. package/dist/file/read-file/types.d.ts.map +1 -0
  166. package/dist/form/formErrors.d.ts +2 -0
  167. package/dist/form/formErrors.d.ts.map +1 -0
  168. package/dist/form/index.d.ts +2 -0
  169. package/dist/form/index.d.ts.map +1 -0
  170. package/dist/form/index.js +19 -0
  171. package/dist/form/index.js.map +1 -0
  172. package/dist/formatters/boolean/index.d.ts +3 -0
  173. package/dist/formatters/boolean/index.d.ts.map +1 -0
  174. package/dist/formatters/boolean/parseAbapBoolean.d.ts +3 -0
  175. package/dist/formatters/boolean/parseAbapBoolean.d.ts.map +1 -0
  176. package/dist/formatters/boolean/toAbapBoolean.d.ts +3 -0
  177. package/dist/formatters/boolean/toAbapBoolean.d.ts.map +1 -0
  178. package/dist/formatters/date/calendarDate.d.ts +48 -0
  179. package/dist/formatters/date/calendarDate.d.ts.map +1 -0
  180. package/dist/formatters/date/calendarPeriod.d.ts +33 -0
  181. package/dist/formatters/date/calendarPeriod.d.ts.map +1 -0
  182. package/dist/formatters/date/dateRange.d.ts +25 -0
  183. package/dist/formatters/date/dateRange.d.ts.map +1 -0
  184. package/dist/formatters/date/educationDate.d.ts +79 -0
  185. package/dist/formatters/date/educationDate.d.ts.map +1 -0
  186. package/dist/formatters/date/formatDate.d.ts +98 -0
  187. package/dist/formatters/date/formatDate.d.ts.map +1 -0
  188. package/dist/formatters/date/index.d.ts +14 -0
  189. package/dist/formatters/date/index.d.ts.map +1 -0
  190. package/dist/formatters/date/parseDate.d.ts +44 -0
  191. package/dist/formatters/date/parseDate.d.ts.map +1 -0
  192. package/dist/formatters/date/pattern.d.ts +38 -0
  193. package/dist/formatters/date/pattern.d.ts.map +1 -0
  194. package/dist/formatters/date/presets.d.ts +108 -0
  195. package/dist/formatters/date/presets.d.ts.map +1 -0
  196. package/dist/formatters/date/relativeRanges.d.ts +35 -0
  197. package/dist/formatters/date/relativeRanges.d.ts.map +1 -0
  198. package/dist/formatters/date/types.d.ts +70 -0
  199. package/dist/formatters/date/types.d.ts.map +1 -0
  200. package/dist/formatters/formatName.d.ts +13 -0
  201. package/dist/formatters/formatName.d.ts.map +1 -0
  202. package/dist/formatters/formatPhone.d.ts +3 -0
  203. package/dist/formatters/formatPhone.d.ts.map +1 -0
  204. package/dist/formatters/formatTagAsHashtag.d.ts +6 -0
  205. package/dist/formatters/formatTagAsHashtag.d.ts.map +1 -0
  206. package/dist/formatters/index.d.ts +11 -0
  207. package/dist/formatters/index.d.ts.map +1 -0
  208. package/dist/formatters/index.js +6 -0
  209. package/dist/formatters/normalizeLeadingZeros.d.ts +27 -0
  210. package/dist/formatters/normalizeLeadingZeros.d.ts.map +1 -0
  211. package/dist/formatters/number/compact.d.ts +10 -0
  212. package/dist/formatters/number/compact.d.ts.map +1 -0
  213. package/dist/formatters/number/formatCompactNumber.d.ts +49 -0
  214. package/dist/formatters/number/formatCompactNumber.d.ts.map +1 -0
  215. package/dist/formatters/number/formatNumber.d.ts +93 -0
  216. package/dist/formatters/number/formatNumber.d.ts.map +1 -0
  217. package/dist/formatters/number/index.d.ts +6 -0
  218. package/dist/formatters/number/index.d.ts.map +1 -0
  219. package/dist/formatters/number/isZeroValue.d.ts +5 -0
  220. package/dist/formatters/number/isZeroValue.d.ts.map +1 -0
  221. package/dist/formatters/number/parseNumber.d.ts +12 -0
  222. package/dist/formatters/number/parseNumber.d.ts.map +1 -0
  223. package/dist/formatters/number/presets.d.ts +24 -0
  224. package/dist/formatters/number/presets.d.ts.map +1 -0
  225. package/dist/formatters/number/types.d.ts +46 -0
  226. package/dist/formatters/number/types.d.ts.map +1 -0
  227. package/dist/formatters/pipeline/clone.d.ts +15 -0
  228. package/dist/formatters/pipeline/clone.d.ts.map +1 -0
  229. package/dist/formatters/pipeline/definitions.d.ts +14 -0
  230. package/dist/formatters/pipeline/definitions.d.ts.map +1 -0
  231. package/dist/formatters/pipeline/dependencies.d.ts +38 -0
  232. package/dist/formatters/pipeline/dependencies.d.ts.map +1 -0
  233. package/dist/formatters/pipeline/execute.d.ts +21 -0
  234. package/dist/formatters/pipeline/execute.d.ts.map +1 -0
  235. package/dist/formatters/pipeline/index.d.ts +10 -0
  236. package/dist/formatters/pipeline/index.d.ts.map +1 -0
  237. package/dist/formatters/pipeline/normalize.d.ts +3 -0
  238. package/dist/formatters/pipeline/normalize.d.ts.map +1 -0
  239. package/dist/formatters/pipeline/registry.d.ts +11 -0
  240. package/dist/formatters/pipeline/registry.d.ts.map +1 -0
  241. package/dist/formatters/pipeline/rekey.d.ts +11 -0
  242. package/dist/formatters/pipeline/rekey.d.ts.map +1 -0
  243. package/dist/formatters/pipeline/runtime.d.ts +17 -0
  244. package/dist/formatters/pipeline/runtime.d.ts.map +1 -0
  245. package/dist/formatters/pipeline/types.d.ts +379 -0
  246. package/dist/formatters/pipeline/types.d.ts.map +1 -0
  247. package/dist/formatters/pipeline/validate.d.ts +29 -0
  248. package/dist/formatters/pipeline/validate.d.ts.map +1 -0
  249. package/dist/formatters/rowBased/context.d.ts +9 -0
  250. package/dist/formatters/rowBased/context.d.ts.map +1 -0
  251. package/dist/formatters/rowBased/definitions/index.d.ts +6 -0
  252. package/dist/formatters/rowBased/definitions/index.d.ts.map +1 -0
  253. package/dist/formatters/rowBased/index.d.ts +4 -0
  254. package/dist/formatters/rowBased/index.d.ts.map +1 -0
  255. package/dist/formatters/rowBased/registry.d.ts +19 -0
  256. package/dist/formatters/rowBased/registry.d.ts.map +1 -0
  257. package/dist/formatters/rowBased/types.d.ts +29 -0
  258. package/dist/formatters/rowBased/types.d.ts.map +1 -0
  259. package/dist/formatters/strings/index.d.ts +6 -0
  260. package/dist/formatters/strings/index.d.ts.map +1 -0
  261. package/dist/formatters/strings/normalizeText.d.ts +11 -0
  262. package/dist/formatters/strings/normalizeText.d.ts.map +1 -0
  263. package/dist/formatters/strings/startsWithIgnoringZeros.d.ts +2 -0
  264. package/dist/formatters/strings/startsWithIgnoringZeros.d.ts.map +1 -0
  265. package/dist/formatters/strings/stripInnerSpaces.d.ts +6 -0
  266. package/dist/formatters/strings/stripInnerSpaces.d.ts.map +1 -0
  267. package/dist/formatters/strings/stripLeadingZeros.d.ts +10 -0
  268. package/dist/formatters/strings/stripLeadingZeros.d.ts.map +1 -0
  269. package/dist/formatters/strings/truncateText.d.ts +2 -0
  270. package/dist/formatters/strings/truncateText.d.ts.map +1 -0
  271. package/dist/formatters/valueState/fixedValueStateResolver.d.ts +41 -0
  272. package/dist/formatters/valueState/fixedValueStateResolver.d.ts.map +1 -0
  273. package/dist/formatters/valueState/index.d.ts +7 -0
  274. package/dist/formatters/valueState/index.d.ts.map +1 -0
  275. package/dist/formatters/valueState/presentation.d.ts +4 -0
  276. package/dist/formatters/valueState/presentation.d.ts.map +1 -0
  277. package/dist/formatters/valueState/resolveValueStateClassName.d.ts +3 -0
  278. package/dist/formatters/valueState/resolveValueStateClassName.d.ts.map +1 -0
  279. package/dist/formatters/valueState/thresholdValueStateResolver.d.ts +40 -0
  280. package/dist/formatters/valueState/thresholdValueStateResolver.d.ts.map +1 -0
  281. package/dist/formatters/valueState/types.d.ts +35 -0
  282. package/dist/formatters/valueState/types.d.ts.map +1 -0
  283. package/dist/formatters/valueState/valueStateRegistry.d.ts +45 -0
  284. package/dist/formatters/valueState/valueStateRegistry.d.ts.map +1 -0
  285. package/dist/formulas/definitions/base.d.ts +7 -0
  286. package/dist/formulas/definitions/base.d.ts.map +1 -0
  287. package/dist/formulas/definitions/index.d.ts +3 -0
  288. package/dist/formulas/definitions/index.d.ts.map +1 -0
  289. package/dist/formulas/definitions/sales.d.ts +7 -0
  290. package/dist/formulas/definitions/sales.d.ts.map +1 -0
  291. package/dist/formulas/execute.d.ts +36 -0
  292. package/dist/formulas/execute.d.ts.map +1 -0
  293. package/dist/formulas/index.d.ts +5 -0
  294. package/dist/formulas/index.d.ts.map +1 -0
  295. package/dist/formulas/index.js +2 -0
  296. package/dist/formulas/perf.runtime.d.ts +48 -0
  297. package/dist/formulas/perf.runtime.d.ts.map +1 -0
  298. package/dist/formulas/registry.d.ts +10 -0
  299. package/dist/formulas/registry.d.ts.map +1 -0
  300. package/dist/formulas/types.d.ts +16 -0
  301. package/dist/formulas/types.d.ts.map +1 -0
  302. package/dist/formulas/validate.d.ts +22 -0
  303. package/dist/formulas/validate.d.ts.map +1 -0
  304. package/dist/hooks/index.d.ts +11 -0
  305. package/dist/hooks/index.d.ts.map +1 -0
  306. package/dist/hooks/index.js +291 -0
  307. package/dist/hooks/index.js.map +1 -0
  308. package/dist/hooks/types.d.ts +4 -0
  309. package/dist/hooks/types.d.ts.map +1 -0
  310. package/dist/hooks/useBlockBrowserZoom.d.ts +7 -0
  311. package/dist/hooks/useBlockBrowserZoom.d.ts.map +1 -0
  312. package/dist/hooks/useDebounce.d.ts +2 -0
  313. package/dist/hooks/useDebounce.d.ts.map +1 -0
  314. package/dist/hooks/useDebounceCallback.d.ts +22 -0
  315. package/dist/hooks/useDebounceCallback.d.ts.map +1 -0
  316. package/dist/hooks/useDndSortableSensors.d.ts +13 -0
  317. package/dist/hooks/useDndSortableSensors.d.ts.map +1 -0
  318. package/dist/hooks/useFloatingListbox.d.ts +61 -0
  319. package/dist/hooks/useFloatingListbox.d.ts.map +1 -0
  320. package/dist/hooks/useLazyComponent.d.ts +28 -0
  321. package/dist/hooks/useLazyComponent.d.ts.map +1 -0
  322. package/dist/hooks/useReferenceTrace.d.ts +2 -0
  323. package/dist/hooks/useReferenceTrace.d.ts.map +1 -0
  324. package/dist/hooks/useSearchLink.d.ts +5 -0
  325. package/dist/hooks/useSearchLink.d.ts.map +1 -0
  326. package/dist/hooks/useSearchParams.d.ts +8 -0
  327. package/dist/hooks/useSearchParams.d.ts.map +1 -0
  328. package/dist/hooks/useThrottledCallback.d.ts +43 -0
  329. package/dist/hooks/useThrottledCallback.d.ts.map +1 -0
  330. package/dist/http/httpHeaders.d.ts +3 -0
  331. package/dist/http/httpHeaders.d.ts.map +1 -0
  332. package/dist/http/index.d.ts +3 -0
  333. package/dist/http/index.d.ts.map +1 -0
  334. package/dist/http/index.js +18 -0
  335. package/dist/http/index.js.map +1 -0
  336. package/dist/http/textResponse.d.ts +7 -0
  337. package/dist/http/textResponse.d.ts.map +1 -0
  338. package/dist/media/breakpoints.d.ts +9 -0
  339. package/dist/media/breakpoints.d.ts.map +1 -0
  340. package/dist/media/getCurrentFontSize.d.ts +4 -0
  341. package/dist/media/getCurrentFontSize.d.ts.map +1 -0
  342. package/dist/media/index.d.ts +7 -0
  343. package/dist/media/index.d.ts.map +1 -0
  344. package/dist/media/index.js +147 -0
  345. package/dist/media/index.js.map +1 -0
  346. package/dist/media/pxToEm.d.ts +2 -0
  347. package/dist/media/pxToEm.d.ts.map +1 -0
  348. package/dist/media/responsive.d.ts +29 -0
  349. package/dist/media/responsive.d.ts.map +1 -0
  350. package/dist/media/useMatchMedia.d.ts +15 -0
  351. package/dist/media/useMatchMedia.d.ts.map +1 -0
  352. package/dist/media/useMediaQuery.d.ts +10 -0
  353. package/dist/media/useMediaQuery.d.ts.map +1 -0
  354. package/dist/notifications/index.d.ts +4 -0
  355. package/dist/notifications/index.d.ts.map +1 -0
  356. package/dist/notifications/index.js +124 -0
  357. package/dist/notifications/index.js.map +1 -0
  358. package/dist/notifications/notify.d.ts +32 -0
  359. package/dist/notifications/notify.d.ts.map +1 -0
  360. package/dist/notifications/store.d.ts +31 -0
  361. package/dist/notifications/store.d.ts.map +1 -0
  362. package/dist/notifications/types.d.ts +19 -0
  363. package/dist/notifications/types.d.ts.map +1 -0
  364. package/dist/number-scale/index.d.ts +3 -0
  365. package/dist/number-scale/index.d.ts.map +1 -0
  366. package/dist/number-scale/index.js +99 -0
  367. package/dist/number-scale/index.js.map +1 -0
  368. package/dist/number-scale/numberScale.d.ts +52 -0
  369. package/dist/number-scale/numberScale.d.ts.map +1 -0
  370. package/dist/number-scale/types.d.ts +44 -0
  371. package/dist/number-scale/types.d.ts.map +1 -0
  372. package/dist/odata/buildSeparatedArrays.d.ts +10 -0
  373. package/dist/odata/buildSeparatedArrays.d.ts.map +1 -0
  374. package/dist/odata/dateUtils.d.ts +14 -0
  375. package/dist/odata/dateUtils.d.ts.map +1 -0
  376. package/dist/odata/findCollectionPairs.d.ts +11 -0
  377. package/dist/odata/findCollectionPairs.d.ts.map +1 -0
  378. package/dist/odata/index.d.ts +6 -0
  379. package/dist/odata/index.d.ts.map +1 -0
  380. package/dist/odata/index.js +102 -0
  381. package/dist/odata/index.js.map +1 -0
  382. package/dist/odata/store.d.ts +42 -0
  383. package/dist/odata/store.d.ts.map +1 -0
  384. package/dist/odata/types.d.ts +12 -0
  385. package/dist/odata/types.d.ts.map +1 -0
  386. package/dist/odata-service/baseTypes.d.ts +6 -0
  387. package/dist/odata-service/baseTypes.d.ts.map +1 -0
  388. package/dist/odata-service/builder.d.ts +33 -0
  389. package/dist/odata-service/builder.d.ts.map +1 -0
  390. package/dist/odata-service/columns.d.ts +10 -0
  391. package/dist/odata-service/columns.d.ts.map +1 -0
  392. package/dist/odata-service/filterDefinitions.d.ts +113 -0
  393. package/dist/odata-service/filterDefinitions.d.ts.map +1 -0
  394. package/dist/odata-service/filters.d.ts +75 -0
  395. package/dist/odata-service/filters.d.ts.map +1 -0
  396. package/dist/odata-service/formatters.d.ts +33 -0
  397. package/dist/odata-service/formatters.d.ts.map +1 -0
  398. package/dist/odata-service/index.d.ts +16 -0
  399. package/dist/odata-service/index.d.ts.map +1 -0
  400. package/dist/odata-service/index.js +2 -0
  401. package/dist/odata-service/parser.d.ts +14 -0
  402. package/dist/odata-service/parser.d.ts.map +1 -0
  403. package/dist/odata-service/schema.d.ts +8 -0
  404. package/dist/odata-service/schema.d.ts.map +1 -0
  405. package/dist/odata-service/sorts.d.ts +26 -0
  406. package/dist/odata-service/sorts.d.ts.map +1 -0
  407. package/dist/odata-service/sqlFilters.d.ts +32 -0
  408. package/dist/odata-service/sqlFilters.d.ts.map +1 -0
  409. package/dist/odata-service/types.d.ts +166 -0
  410. package/dist/odata-service/types.d.ts.map +1 -0
  411. package/dist/odata-service/typesValidation.d.ts +6 -0
  412. package/dist/odata-service/typesValidation.d.ts.map +1 -0
  413. package/dist/odata-service/unwrapODataQueryResult.d.ts +22 -0
  414. package/dist/odata-service/unwrapODataQueryResult.d.ts.map +1 -0
  415. package/dist/odata-service/utils.d.ts +5 -0
  416. package/dist/odata-service/utils.d.ts.map +1 -0
  417. package/dist/odata-service/wrapParams.d.ts +7 -0
  418. package/dist/odata-service/wrapParams.d.ts.map +1 -0
  419. package/dist/presets/index.d.ts +2 -0
  420. package/dist/presets/index.d.ts.map +1 -0
  421. package/dist/presets/index.js +23 -0
  422. package/dist/presets/index.js.map +1 -0
  423. package/dist/presets/presets.d.ts +20 -0
  424. package/dist/presets/presets.d.ts.map +1 -0
  425. package/dist/pwa/index.d.ts +3 -0
  426. package/dist/pwa/index.d.ts.map +1 -0
  427. package/dist/pwa/index.js +206 -0
  428. package/dist/pwa/index.js.map +1 -0
  429. package/dist/pwa/serviceWorker.d.ts +31 -0
  430. package/dist/pwa/serviceWorker.d.ts.map +1 -0
  431. package/dist/pwa/swCachePolicy.d.ts +24 -0
  432. package/dist/pwa/swCachePolicy.d.ts.map +1 -0
  433. package/dist/pwa/useServiceWorkerUpdate.d.ts +6 -0
  434. package/dist/pwa/useServiceWorkerUpdate.d.ts.map +1 -0
  435. package/dist/query-client/broadcast.d.ts +23 -0
  436. package/dist/query-client/broadcast.d.ts.map +1 -0
  437. package/dist/query-client/index.d.ts +5 -0
  438. package/dist/query-client/index.d.ts.map +1 -0
  439. package/dist/query-client/index.js +204 -0
  440. package/dist/query-client/index.js.map +1 -0
  441. package/dist/query-client/persistence.d.ts +33 -0
  442. package/dist/query-client/persistence.d.ts.map +1 -0
  443. package/dist/query-client/queryClient.d.ts +127 -0
  444. package/dist/query-client/queryClient.d.ts.map +1 -0
  445. package/dist/query-client/queryPersistenceAdapter.d.ts +7 -0
  446. package/dist/query-client/queryPersistenceAdapter.d.ts.map +1 -0
  447. package/dist/range-output/index.d.ts +2 -0
  448. package/dist/range-output/index.d.ts.map +1 -0
  449. package/dist/range-output/index.js +22 -0
  450. package/dist/range-output/index.js.map +1 -0
  451. package/dist/range-output/rangeOutput.d.ts +15 -0
  452. package/dist/range-output/rangeOutput.d.ts.map +1 -0
  453. package/dist/seo/index.d.ts +3 -0
  454. package/dist/seo/index.d.ts.map +1 -0
  455. package/dist/seo/index.js +125 -0
  456. package/dist/seo/index.js.map +1 -0
  457. package/dist/seo/seo.d.ts +16 -0
  458. package/dist/seo/seo.d.ts.map +1 -0
  459. package/dist/seo/types.d.ts +28 -0
  460. package/dist/seo/types.d.ts.map +1 -0
  461. package/dist/session-storage/index.d.ts +2 -0
  462. package/dist/session-storage/index.d.ts.map +1 -0
  463. package/dist/session-storage/index.js +17 -0
  464. package/dist/session-storage/index.js.map +1 -0
  465. package/dist/session-storage/sessionId.d.ts +8 -0
  466. package/dist/session-storage/sessionId.d.ts.map +1 -0
  467. package/dist/string-comparison/compareStrings.d.ts +9 -0
  468. package/dist/string-comparison/compareStrings.d.ts.map +1 -0
  469. package/dist/string-comparison/index.d.ts +2 -0
  470. package/dist/string-comparison/index.d.ts.map +1 -0
  471. package/dist/string-comparison/index.js +2 -0
  472. package/dist/table/columnLayout.d.ts +23 -0
  473. package/dist/table/columnLayout.d.ts.map +1 -0
  474. package/dist/table/columnOrder.d.ts +21 -0
  475. package/dist/table/columnOrder.d.ts.map +1 -0
  476. package/dist/table/columnSizing.d.ts +7 -0
  477. package/dist/table/columnSizing.d.ts.map +1 -0
  478. package/dist/table/index.d.ts +9 -0
  479. package/dist/table/index.d.ts.map +1 -0
  480. package/dist/table/index.js +229 -0
  481. package/dist/table/index.js.map +1 -0
  482. package/dist/table/odataAdapter.d.ts +63 -0
  483. package/dist/table/odataAdapter.d.ts.map +1 -0
  484. package/dist/table/selection.d.ts +16 -0
  485. package/dist/table/selection.d.ts.map +1 -0
  486. package/dist/table/types.d.ts +60 -0
  487. package/dist/table/types.d.ts.map +1 -0
  488. package/dist/table/useTableRowSelection.d.ts +19 -0
  489. package/dist/table/useTableRowSelection.d.ts.map +1 -0
  490. package/dist/table/utils.d.ts +20 -0
  491. package/dist/table/utils.d.ts.map +1 -0
  492. package/dist/three-scene/index.d.ts +3 -0
  493. package/dist/three-scene/index.d.ts.map +1 -0
  494. package/dist/three-scene/index.js +84 -0
  495. package/dist/three-scene/index.js.map +1 -0
  496. package/dist/three-scene/threeSceneAvailability.d.ts +15 -0
  497. package/dist/three-scene/threeSceneAvailability.d.ts.map +1 -0
  498. package/dist/three-scene/useThreeSceneAvailability.d.ts +8 -0
  499. package/dist/three-scene/useThreeSceneAvailability.d.ts.map +1 -0
  500. package/dist/tree-table/buildTreeTableRows.d.ts +9 -0
  501. package/dist/tree-table/buildTreeTableRows.d.ts.map +1 -0
  502. package/dist/tree-table/index.d.ts +4 -0
  503. package/dist/tree-table/index.d.ts.map +1 -0
  504. package/dist/tree-table/index.js +126 -0
  505. package/dist/tree-table/index.js.map +1 -0
  506. package/dist/tree-table/transposeFlatRowsToTreeTableRows.d.ts +11 -0
  507. package/dist/tree-table/transposeFlatRowsToTreeTableRows.d.ts.map +1 -0
  508. package/dist/tree-table/types.d.ts +87 -0
  509. package/dist/tree-table/types.d.ts.map +1 -0
  510. package/dist/types/index.d.ts +2 -0
  511. package/dist/types/index.d.ts.map +1 -0
  512. package/dist/types/index.js +8 -0
  513. package/dist/types/index.js.map +1 -0
  514. package/dist/types/types.d.ts +12 -0
  515. package/dist/types/types.d.ts.map +1 -0
  516. package/dist/utils/childrenCount.d.ts +3 -0
  517. package/dist/utils/childrenCount.d.ts.map +1 -0
  518. package/dist/utils/cn.d.ts +6 -0
  519. package/dist/utils/cn.d.ts.map +1 -0
  520. package/dist/utils/createLazyComponent.d.ts +22 -0
  521. package/dist/utils/createLazyComponent.d.ts.map +1 -0
  522. package/dist/utils/deepCloneWithoutFunctions.d.ts +20 -0
  523. package/dist/utils/deepCloneWithoutFunctions.d.ts.map +1 -0
  524. package/dist/utils/deepCopyWithoutFunctions.d.ts +10 -0
  525. package/dist/utils/deepCopyWithoutFunctions.d.ts.map +1 -0
  526. package/dist/utils/index.d.ts +17 -0
  527. package/dist/utils/index.d.ts.map +1 -0
  528. package/dist/utils/index.js +209 -0
  529. package/dist/utils/index.js.map +1 -0
  530. package/dist/utils/keyboard.d.ts +36 -0
  531. package/dist/utils/keyboard.d.ts.map +1 -0
  532. package/dist/utils/logger.d.ts +2 -0
  533. package/dist/utils/logger.d.ts.map +1 -0
  534. package/dist/utils/selectNavigation.d.ts +8 -0
  535. package/dist/utils/selectNavigation.d.ts.map +1 -0
  536. package/dist/utils/stableStringify.d.ts +8 -0
  537. package/dist/utils/stableStringify.d.ts.map +1 -0
  538. package/dist/utils/toBase64.d.ts +3 -0
  539. package/dist/utils/toBase64.d.ts.map +1 -0
  540. package/dist/utils/treeNode.d.ts +9 -0
  541. package/dist/utils/treeNode.d.ts.map +1 -0
  542. package/dist/validators/index.d.ts +7 -0
  543. package/dist/validators/index.d.ts.map +1 -0
  544. package/dist/validators/index.js +54 -0
  545. package/dist/validators/index.js.map +1 -0
  546. package/dist/validators/isDomReference.d.ts +3 -0
  547. package/dist/validators/isDomReference.d.ts.map +1 -0
  548. package/dist/validators/isImageExtension.d.ts +3 -0
  549. package/dist/validators/isImageExtension.d.ts.map +1 -0
  550. package/dist/validators/isRecord.d.ts +5 -0
  551. package/dist/validators/isRecord.d.ts.map +1 -0
  552. package/dist/validators/isSafe.d.ts +2 -0
  553. package/dist/validators/isSafe.d.ts.map +1 -0
  554. package/dist/validators/positiveInteger.d.ts +2 -0
  555. package/dist/validators/positiveInteger.d.ts.map +1 -0
  556. package/dist/validators/validateUrl.d.ts +10 -0
  557. package/dist/validators/validateUrl.d.ts.map +1 -0
  558. package/dist/virtualizer/index.d.ts +2 -0
  559. package/dist/virtualizer/index.d.ts.map +1 -0
  560. package/dist/virtualizer/index.js +19 -0
  561. package/dist/virtualizer/index.js.map +1 -0
  562. package/dist/virtualizer/useFetchNextPageEffect.d.ts +8 -0
  563. package/dist/virtualizer/useFetchNextPageEffect.d.ts.map +1 -0
  564. package/dist/xml/index.d.ts +2 -0
  565. package/dist/xml/index.d.ts.map +1 -0
  566. package/dist/xml/index.js +17 -0
  567. package/dist/xml/index.js.map +1 -0
  568. package/dist/xml/xml.d.ts +5 -0
  569. package/dist/xml/xml.d.ts.map +1 -0
  570. package/package.json +428 -0
@@ -0,0 +1,209 @@
1
+ import { r as e } from "../chunks/isRecord-DXDTW-jA.js";
2
+ import { Children as t, Fragment as n, isValidElement as r, lazy as i } from "react";
3
+ //#region src/utils/childrenCount.ts
4
+ function a(e) {
5
+ return r(e) && e.type === n;
6
+ }
7
+ function o(e) {
8
+ return t.toArray(e).reduce((e, t) => a(t) ? e + o(t.props.children) : e + 1, 0);
9
+ }
10
+ //#endregion
11
+ //#region src/utils/cn.ts
12
+ function s() {
13
+ let e = "";
14
+ for (let t = 0; t < arguments.length; t++) {
15
+ let n = arguments[t];
16
+ if (!(!n || n === !0)) {
17
+ if (typeof n == "string") {
18
+ e = e ? e + " " + n : n;
19
+ continue;
20
+ }
21
+ if (!(typeof n != "object" || Array.isArray(n))) for (let t in n) n[t] && (e = e ? e + " " + t : t);
22
+ }
23
+ }
24
+ return e;
25
+ }
26
+ //#endregion
27
+ //#region src/utils/createLazyComponent.ts
28
+ var c = /* @__PURE__ */ new WeakMap(), l = /* @__PURE__ */ new Map(), u = (e, t, n) => {
29
+ let r = n ? `${n}:${t ?? "default"}` : void 0;
30
+ if (r && l.has(r)) return l.get(r);
31
+ c.has(e) || c.set(e, /* @__PURE__ */ new Map());
32
+ let a = c.get(e);
33
+ if (!a.has(t)) {
34
+ let n = i(() => e().then((e) => {
35
+ if (!e) throw Error(`Component not found or invalid in module: ${t ?? "default"}`);
36
+ let n = t && e[t] ? e[t] : e.default ?? Object.values(e)[0];
37
+ if (!n || typeof n != "function") throw Error(`Could not lazy-load component "${t ?? "default"}"`);
38
+ return { default: n };
39
+ }));
40
+ a.set(t, n), r && l.set(r, n);
41
+ }
42
+ return a.get(t);
43
+ }, d = Symbol("deep-copy-skip");
44
+ function f(e, t = {}) {
45
+ let n = /* @__PURE__ */ new WeakMap(), r = (e) => {
46
+ if (typeof e == "function") return d;
47
+ if (typeof e != "object" || !e) return e;
48
+ let i = n.get(e);
49
+ if (i !== void 0) return i;
50
+ if (e instanceof Date) return new Date(e.getTime());
51
+ if (e instanceof RegExp) {
52
+ let t = new RegExp(e.source, e.flags);
53
+ return t.lastIndex = e.lastIndex, t;
54
+ }
55
+ if (e instanceof Map) {
56
+ let t = /* @__PURE__ */ new Map();
57
+ n.set(e, t);
58
+ for (let [n, i] of e) {
59
+ let e = r(n), a = r(i);
60
+ e !== d && a !== d && t.set(e, a);
61
+ }
62
+ return t;
63
+ }
64
+ if (e instanceof Set) {
65
+ let t = /* @__PURE__ */ new Set();
66
+ n.set(e, t);
67
+ for (let n of e) {
68
+ let e = r(n);
69
+ e !== d && t.add(e);
70
+ }
71
+ return t;
72
+ }
73
+ if (Array.isArray(e)) {
74
+ let i = [];
75
+ n.set(e, i);
76
+ for (let n = 0; n < e.length; n += 1) {
77
+ if (!(n in e)) continue;
78
+ let a = r(e[n]);
79
+ if (a === d) {
80
+ if (t.arrayFunctionStrategy === "omit") continue;
81
+ i[n] = void 0;
82
+ continue;
83
+ }
84
+ t.arrayFunctionStrategy === "omit" ? i.push(a) : i[n] = a;
85
+ }
86
+ return t.arrayFunctionStrategy !== "omit" && (i.length = e.length), i;
87
+ }
88
+ let a = t.preservePrototype ? Object.getPrototypeOf(e) : Object.prototype, o = Object.create(a);
89
+ n.set(e, o);
90
+ for (let t of Reflect.ownKeys(e)) {
91
+ let n = Object.getOwnPropertyDescriptor(e, t);
92
+ if (!n || !("value" in n)) continue;
93
+ let i = r(n.value);
94
+ i !== d && Object.defineProperty(o, t, {
95
+ ...n,
96
+ value: i
97
+ });
98
+ }
99
+ return o;
100
+ }, i = r(e);
101
+ if (i !== d) return i;
102
+ }
103
+ //#endregion
104
+ //#region src/utils/deepCopyWithoutFunctions.ts
105
+ var p = Symbol("SKIP_CLONE_VALUE");
106
+ function m(t, n = {}) {
107
+ let r = n.arrayFunctionStrategy ?? "omit", i = /* @__PURE__ */ new WeakMap(), a = (t) => {
108
+ if (typeof t == "function") return p;
109
+ if (typeof t != "object" || !t) return t;
110
+ let n = i.get(t);
111
+ if (n !== void 0) return n;
112
+ if (t instanceof Date) return new Date(t.getTime());
113
+ if (Array.isArray(t)) {
114
+ let e = [];
115
+ i.set(t, e);
116
+ for (let n = 0; n < t.length; n += 1) {
117
+ let i = a(t[n]);
118
+ if (i === p) {
119
+ r === "undefined" && (e[n] = void 0);
120
+ continue;
121
+ }
122
+ r === "omit" ? e.push(i) : e[n] = i;
123
+ }
124
+ return r === "undefined" && (e.length = t.length), e;
125
+ }
126
+ if (!e(t)) throw TypeError(`Unsupported object for config clone: ${Object.prototype.toString.call(t)}`);
127
+ let o = {};
128
+ i.set(t, o);
129
+ for (let e of Object.keys(t)) {
130
+ let n = a(t[e]);
131
+ n !== p && (o[e] = n);
132
+ }
133
+ return o;
134
+ }, o = a(t);
135
+ if (o !== p) return o;
136
+ }
137
+ //#endregion
138
+ //#region src/utils/keyboard.ts
139
+ var h = ["Enter", " "];
140
+ function g(e) {
141
+ return e === "Enter" || e === " ";
142
+ }
143
+ function _(e, t, n = {}) {
144
+ return n.disabled || !g(e.key) ? !1 : (e.preventDefault(), t(), !0);
145
+ }
146
+ function v({ currentIndex: e, itemCount: t, key: n, orientation: r, wrap: i = !0 }) {
147
+ if (t <= 0) return null;
148
+ let a = Math.min(t - 1, Math.max(0, e));
149
+ return n === "Home" ? 0 : n === "End" ? t - 1 : n === (r === "horizontal" ? "ArrowLeft" : "ArrowUp") ? a > 0 ? a - 1 : i ? t - 1 : 0 : n === (r === "horizontal" ? "ArrowRight" : "ArrowDown") ? a < t - 1 ? a + 1 : i ? 0 : t - 1 : null;
150
+ }
151
+ //#endregion
152
+ //#region src/utils/logger.ts
153
+ function y(...e) {
154
+ globalThis.console.error(...e);
155
+ }
156
+ //#endregion
157
+ //#region src/utils/selectNavigation.ts
158
+ function b(e, t) {
159
+ for (let n = 0; n < e.length; n += 1) if (!t?.(e[n])) return n;
160
+ return -1;
161
+ }
162
+ function x(e, t) {
163
+ for (let n = e.length - 1; n >= 0; --n) if (!t?.(e[n])) return n;
164
+ return -1;
165
+ }
166
+ function S(e, t, n, r, i = {}) {
167
+ let { wrap: a = !1 } = i, o = t >= 0 && t < e.length ? t : -1, s = (t, i) => {
168
+ for (let a = t; n === 1 ? a <= i : a >= i; a += n) if (!r?.(e[a])) return a;
169
+ return null;
170
+ }, c = s(t + n, n === 1 ? e.length - 1 : 0);
171
+ return c === null ? !a || e.length === 0 ? o : (n === 1 ? s(0, Math.min(t - 1, e.length - 1)) : s(e.length - 1, Math.max(t + 1, 0))) ?? o : c;
172
+ }
173
+ //#endregion
174
+ //#region src/utils/stableStringify.ts
175
+ function C(e) {
176
+ return JSON.stringify(e, (e, t) => {
177
+ if (!t || typeof t != "object" || Array.isArray(t)) return t;
178
+ if (t instanceof Date) return t.toISOString();
179
+ let n = t, r = {};
180
+ for (let e of Object.keys(n).sort()) r[e] = n[e];
181
+ return r;
182
+ });
183
+ }
184
+ //#endregion
185
+ //#region src/utils/toBase64.ts
186
+ function w(e) {
187
+ return btoa(new TextEncoder().encode(e).reduce((e, t) => e + String.fromCharCode(t), ""));
188
+ }
189
+ function T(e) {
190
+ return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g, (e, t) => String.fromCharCode(parseInt(t, 16))));
191
+ }
192
+ //#endregion
193
+ //#region src/utils/treeNode.ts
194
+ function E(e) {
195
+ return e.map((e) => {
196
+ let t = { ...e };
197
+ return e.children && (t.children = E(e.children)), t;
198
+ });
199
+ }
200
+ function D(e, t = "children") {
201
+ return e.map((e) => {
202
+ let n = { ...e }, r = e[t];
203
+ return r && Array.isArray(r) && (n[t] = D(r, t)), n;
204
+ });
205
+ }
206
+ //#endregion
207
+ export { o as childrenCount, s as classNames, s as cn, u as createLazyComponent, f as deepCloneWithoutFunctions, E as deepCopyNodes, D as deepCopyTree, m as deepCopyWithoutFunctions, T as encodeBase64, b as findFirstEnabledIndex, x as findLastEnabledIndex, S as findNextEnabledIndex, v as getRovingFocusTargetIndex, _ as handleKeyboardActivation, g as isKeyboardActivationKey, h as keyboardActivationKeys, y as logError, C as stableStringify, w as toBase64 };
208
+
209
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/utils/childrenCount.ts","../../src/utils/cn.ts","../../src/utils/createLazyComponent.ts","../../src/utils/deepCloneWithoutFunctions.ts","../../src/utils/deepCopyWithoutFunctions.ts","../../src/utils/keyboard.ts","../../src/utils/logger.ts","../../src/utils/selectNavigation.ts","../../src/utils/stableStringify.ts","../../src/utils/toBase64.ts","../../src/utils/treeNode.ts"],"sourcesContent":["import { Children, Fragment, isValidElement, PropsWithChildren, ReactElement, ReactNode } from \"react\";\n\nfunction isFragmentElement(node: ReactNode): node is ReactElement<PropsWithChildren> {\n\treturn isValidElement<PropsWithChildren>(node) && node.type === Fragment;\n}\n\nexport function childrenCount(node: ReactNode): number {\n\treturn Children.toArray(node).reduce<number>((count, child) => {\n\t\tif (isFragmentElement(child)) {\n\t\t\treturn count + childrenCount(child.props.children);\n\t\t}\n\t\treturn count + 1;\n\t}, 0);\n}\n","export type ToggleClassName = Record<string, boolean | undefined>;\nexport type PureClassName = string | boolean | undefined | null;\ntype ClassNameArg = PureClassName | ToggleClassName;\n\nexport function cn(...args: ClassNameArg[]): string;\nexport function cn(): string {\n\tlet out = \"\";\n\n\tfor (let i = 0; i < arguments.length; i++) {\n\t\tconst v = arguments[i] as ClassNameArg;\n\n\t\tif (!v || v === true) continue;\n\n\t\tif (typeof v === \"string\") {\n\t\t\tout = out ? out + \" \" + v : v;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof v !== \"object\" || Array.isArray(v)) continue;\n\n\t\tfor (const k in v) {\n\t\t\tif (v[k]) {\n\t\t\t\tout = out ? out + \" \" + k : k;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn out;\n}\n","import { lazy, type ComponentType, type LazyExoticComponent } from \"react\";\n\ntype LazyComponentModule<TProps extends object> = Record<string, ComponentType<TProps>>;\ntype LazyComponentImport<TProps extends object> = () => Promise<LazyComponentModule<TProps> | null>;\n\nconst lazyComponentCache = new WeakMap<object, Map<string | undefined, unknown>>();\nconst lazyComponentCacheByKey = new Map<string, unknown>();\n\n/**\n * Создает ленивую компоненту, которая будет загружена только при первом рендере.\n *\n * @example\n *\n * ```tsx\n * const TextEditor = createLazyComponent(\n * () => import(\"@components/content/article/editor/TextEditor\"),\n * \"TextEditor\"\n * );\n * ```\n *\n * @param importPath - функция, которая возвращает промис, который резолвится в объект с компонентами\n * @param componentName - имя компонента, который нужно загрузить\n * @returns\n */\nexport const createLazyComponent = <TProps extends object>(\n\timportPath: LazyComponentImport<TProps>,\n\tcomponentName: string,\n\tcacheKey?: string\n): LazyExoticComponent<ComponentType<TProps>> => {\n\tconst lazyCacheKey = cacheKey ? `${cacheKey}:${componentName ?? \"default\"}` : undefined;\n\tif (lazyCacheKey && lazyComponentCacheByKey.has(lazyCacheKey)) {\n\t\treturn lazyComponentCacheByKey.get(lazyCacheKey)! as LazyExoticComponent<ComponentType<TProps>>;\n\t}\n\n\tif (!lazyComponentCache.has(importPath)) {\n\t\tlazyComponentCache.set(importPath, new Map());\n\t}\n\n\tconst componentMap = lazyComponentCache.get(importPath)!;\n\n\tif (!componentMap.has(componentName)) {\n\t\tconst lazyComponent = lazy(() =>\n\t\t\timportPath().then((module) => {\n\t\t\t\tif (!module) {\n\t\t\t\t\tthrow new Error(`Component not found or invalid in module: ${componentName ?? \"default\"}`);\n\t\t\t\t}\n\n\t\t\t\tconst component =\n\t\t\t\t\tcomponentName && module[componentName] ? module[componentName] : (module.default ?? Object.values(module)[0]);\n\n\t\t\t\tif (!component || typeof component !== \"function\") {\n\t\t\t\t\tthrow new Error(`Could not lazy-load component \"${componentName ?? \"default\"}\"`);\n\t\t\t\t}\n\n\t\t\t\treturn { default: component };\n\t\t\t})\n\t\t);\n\n\t\tcomponentMap.set(componentName, lazyComponent);\n\t\tif (lazyCacheKey) {\n\t\t\tlazyComponentCacheByKey.set(lazyCacheKey, lazyComponent);\n\t\t}\n\t}\n\n\treturn componentMap.get(componentName)! as LazyExoticComponent<ComponentType<TProps>>;\n};\n","type DeepCloneOptions = {\n\t/**\n\t * undefined — сохраняет длину массива и индексную структуру.\n\t * omit — удаляет элементы-функции из массива.\n\t */\n\tarrayFunctionStrategy?: \"undefined\" | \"omit\";\n\n\t/**\n\t * false — возвращает plain object.\n\t * true — сохраняет prototype исходного объекта.\n\t *\n\t * Для Zustand-состояния обычно лучше false.\n\t */\n\tpreservePrototype?: boolean;\n};\n\ntype DeepCloneWithoutFunctions<T> = T extends (...args: infer _Args) => unknown\n\t? never\n\t: T extends Date\n\t\t? Date\n\t\t: T extends RegExp\n\t\t\t? RegExp\n\t\t\t: T extends Map<infer K, infer V>\n\t\t\t\t? Map<DeepCloneWithoutFunctions<K>, DeepCloneWithoutFunctions<V>>\n\t\t\t\t: T extends Set<infer V>\n\t\t\t\t\t? Set<DeepCloneWithoutFunctions<V>>\n\t\t\t\t\t: T extends readonly (infer Item)[]\n\t\t\t\t\t\t? DeepCloneWithoutFunctions<Item>[]\n\t\t\t\t\t\t: T extends object\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t[K in keyof T as T[K] extends (...args: infer _Args) => unknown ? never : K]: DeepCloneWithoutFunctions<\n\t\t\t\t\t\t\t\t\t\tT[K]\n\t\t\t\t\t\t\t\t\t>;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: T;\n\nconst SKIP = Symbol(\"deep-copy-skip\");\n\nexport function deepCloneWithoutFunctions<T>(value: T, options: DeepCloneOptions = {}): DeepCloneWithoutFunctions<T> {\n\tconst seen = new WeakMap<object, unknown>();\n\n\tconst clone = (input: unknown): unknown => {\n\t\tif (typeof input === \"function\") {\n\t\t\treturn SKIP;\n\t\t}\n\n\t\tif (input === null || typeof input !== \"object\") {\n\t\t\treturn input;\n\t\t}\n\n\t\tconst cached = seen.get(input);\n\n\t\tif (cached !== undefined) {\n\t\t\treturn cached;\n\t\t}\n\n\t\tif (input instanceof Date) {\n\t\t\treturn new Date(input.getTime());\n\t\t}\n\n\t\tif (input instanceof RegExp) {\n\t\t\tconst result = new RegExp(input.source, input.flags);\n\t\t\tresult.lastIndex = input.lastIndex;\n\t\t\treturn result;\n\t\t}\n\n\t\tif (input instanceof Map) {\n\t\t\tconst result = new Map<unknown, unknown>();\n\t\t\tseen.set(input, result);\n\n\t\t\tfor (const [key, mapValue] of input) {\n\t\t\t\tconst clonedKey = clone(key);\n\t\t\t\tconst clonedValue = clone(mapValue);\n\n\t\t\t\tif (clonedKey !== SKIP && clonedValue !== SKIP) {\n\t\t\t\t\tresult.set(clonedKey, clonedValue);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tif (input instanceof Set) {\n\t\t\tconst result = new Set<unknown>();\n\t\t\tseen.set(input, result);\n\n\t\t\tfor (const item of input) {\n\t\t\t\tconst clonedItem = clone(item);\n\n\t\t\t\tif (clonedItem !== SKIP) {\n\t\t\t\t\tresult.add(clonedItem);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tif (Array.isArray(input)) {\n\t\t\tconst result: unknown[] = [];\n\t\t\tseen.set(input, result);\n\n\t\t\tfor (let index = 0; index < input.length; index += 1) {\n\t\t\t\tif (!(index in input)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst clonedItem = clone(input[index]);\n\n\t\t\t\tif (clonedItem === SKIP) {\n\t\t\t\t\tif (options.arrayFunctionStrategy === \"omit\") {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tresult[index] = undefined;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (options.arrayFunctionStrategy === \"omit\") {\n\t\t\t\t\tresult.push(clonedItem);\n\t\t\t\t} else {\n\t\t\t\t\tresult[index] = clonedItem;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.arrayFunctionStrategy !== \"omit\") {\n\t\t\t\tresult.length = input.length;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tconst prototype = options.preservePrototype ? Object.getPrototypeOf(input) : Object.prototype;\n\n\t\tconst result = Object.create(prototype) as Record<PropertyKey, unknown>;\n\t\tseen.set(input, result);\n\n\t\tfor (const key of Reflect.ownKeys(input)) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(input, key);\n\n\t\t\tif (!descriptor) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Getters/setters не вызываем.\n\t\t\t * В Zustand-состоянии их лучше вообще не хранить.\n\t\t\t */\n\t\t\tif (!(\"value\" in descriptor)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst clonedValue = clone(descriptor.value);\n\n\t\t\tif (clonedValue === SKIP) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tObject.defineProperty(result, key, {\n\t\t\t\t...descriptor,\n\t\t\t\tvalue: clonedValue\n\t\t\t});\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tconst result = clone(value);\n\n\tif (result === SKIP) {\n\t\treturn undefined as DeepCloneWithoutFunctions<T>;\n\t}\n\n\treturn result as DeepCloneWithoutFunctions<T>;\n}\n","import { isPlainObject } from \"../validators/isRecord\";\n\ntype CopyFunctionStrategy = \"omit\" | \"undefined\";\n\ntype CopyOptions = {\n\tarrayFunctionStrategy?: CopyFunctionStrategy;\n};\n\ntype DeepCopyWithoutFunctions<T> = T extends (...args: never[]) => unknown\n\t? never\n\t: T extends Date\n\t\t? Date\n\t\t: T extends readonly (infer Item)[]\n\t\t\t? DeepCopyWithoutFunctions<Item>[]\n\t\t\t: T extends object\n\t\t\t\t? {\n\t\t\t\t\t\t[K in keyof T as T[K] extends (...args: never[]) => unknown ? never : K]: DeepCopyWithoutFunctions<T[K]>;\n\t\t\t\t\t}\n\t\t\t\t: T;\n\nconst SKIP_CLONE_VALUE = Symbol(\"SKIP_CLONE_VALUE\");\n\nexport function deepCopyWithoutFunctions<T>(value: T, options: CopyOptions = {}): DeepCopyWithoutFunctions<T> {\n\tconst arrayFunctionStrategy = options.arrayFunctionStrategy ?? \"omit\";\n\tconst seen = new WeakMap<object, unknown>();\n\n\tconst clone = (input: unknown): unknown => {\n\t\tif (typeof input === \"function\") {\n\t\t\treturn SKIP_CLONE_VALUE;\n\t\t}\n\n\t\tif (input === null || typeof input !== \"object\") {\n\t\t\treturn input;\n\t\t}\n\n\t\tconst cached = seen.get(input);\n\n\t\tif (cached !== undefined) {\n\t\t\treturn cached;\n\t\t}\n\n\t\tif (input instanceof Date) {\n\t\t\treturn new Date(input.getTime());\n\t\t}\n\n\t\tif (Array.isArray(input)) {\n\t\t\tconst result: unknown[] = [];\n\t\t\tseen.set(input, result);\n\n\t\t\tfor (let index = 0; index < input.length; index += 1) {\n\t\t\t\tconst clonedItem = clone(input[index]);\n\n\t\t\t\tif (clonedItem === SKIP_CLONE_VALUE) {\n\t\t\t\t\tif (arrayFunctionStrategy === \"undefined\") {\n\t\t\t\t\t\tresult[index] = undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (arrayFunctionStrategy === \"omit\") {\n\t\t\t\t\tresult.push(clonedItem);\n\t\t\t\t} else {\n\t\t\t\t\tresult[index] = clonedItem;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (arrayFunctionStrategy === \"undefined\") {\n\t\t\t\tresult.length = input.length;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tif (!isPlainObject(input)) {\n\t\t\tthrow new TypeError(`Unsupported object for config clone: ${Object.prototype.toString.call(input)}`);\n\t\t}\n\n\t\tconst result: Record<string, unknown> = {};\n\t\tseen.set(input, result);\n\n\t\tfor (const key of Object.keys(input)) {\n\t\t\tconst clonedValue = clone(input[key]);\n\n\t\t\tif (clonedValue !== SKIP_CLONE_VALUE) {\n\t\t\t\tresult[key] = clonedValue;\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tconst result = clone(value);\n\n\tif (result === SKIP_CLONE_VALUE) {\n\t\treturn undefined as DeepCopyWithoutFunctions<T>;\n\t}\n\n\treturn result as DeepCopyWithoutFunctions<T>;\n}\n","/**\n * Клавиши, которые должны активировать кастомные элементы с поведением кнопки.\n */\nexport const keyboardActivationKeys = [\"Enter\", \" \"] as const;\n\nexport type KeyboardActivationKey = (typeof keyboardActivationKeys)[number];\n\ninterface KeyboardActivationEventLike {\n\tkey: string;\n\tpreventDefault: () => void;\n}\n\n/**\n * Проверяет, что нажатая клавиша должна активировать действие элемента.\n */\nexport function isKeyboardActivationKey(key: string): key is KeyboardActivationKey {\n\treturn key === \"Enter\" || key === \" \";\n}\n\ninterface HandleKeyboardActivationOptions {\n\tdisabled?: boolean;\n}\n\n/**\n * Выполняет действие по Enter/Space для кастомных интерактивных элементов.\n *\n * Возвращает `true`, если событие было обработано библиотечной логикой.\n */\nexport function handleKeyboardActivation(\n\tevent: KeyboardActivationEventLike,\n\taction: () => void,\n\toptions: HandleKeyboardActivationOptions = {}\n) {\n\tif (options.disabled || !isKeyboardActivationKey(event.key)) {\n\t\treturn false;\n\t}\n\n\tevent.preventDefault();\n\taction();\n\treturn true;\n}\n\nexport interface RovingFocusTargetOptions {\n\tcurrentIndex: number;\n\titemCount: number;\n\tkey: string;\n\torientation: \"horizontal\" | \"vertical\";\n\twrap?: boolean;\n}\n\n/**\n * Вычисляет следующую позицию для паттерна roving focus в `Tabs`, `RadioGroup`\n * и других линейных составных виджетах.\n */\nexport function getRovingFocusTargetIndex({ currentIndex, itemCount, key, orientation, wrap = true }: RovingFocusTargetOptions) {\n\tif (itemCount <= 0) {\n\t\treturn null;\n\t}\n\n\tconst safeCurrentIndex = Math.min(itemCount - 1, Math.max(0, currentIndex));\n\tconst previousKey = orientation === \"horizontal\" ? \"ArrowLeft\" : \"ArrowUp\";\n\tconst nextKey = orientation === \"horizontal\" ? \"ArrowRight\" : \"ArrowDown\";\n\n\tif (key === \"Home\") {\n\t\treturn 0;\n\t}\n\n\tif (key === \"End\") {\n\t\treturn itemCount - 1;\n\t}\n\n\tif (key === previousKey) {\n\t\tif (safeCurrentIndex > 0) {\n\t\t\treturn safeCurrentIndex - 1;\n\t\t}\n\n\t\treturn wrap ? itemCount - 1 : 0;\n\t}\n\n\tif (key === nextKey) {\n\t\tif (safeCurrentIndex < itemCount - 1) {\n\t\t\treturn safeCurrentIndex + 1;\n\t\t}\n\n\t\treturn wrap ? 0 : itemCount - 1;\n\t}\n\n\treturn null;\n}\n","export function logError(...args: unknown[]) {\n\t// косвенный вызов, terser не удалит\n\tglobalThis.console.error(...args);\n}\n","export function findFirstEnabledIndex<T>(options: readonly T[], getOptionDisabled?: (option: T) => boolean) {\n\tfor (let index = 0; index < options.length; index += 1) {\n\t\tif (!getOptionDisabled?.(options[index])) {\n\t\t\treturn index;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\nexport function findLastEnabledIndex<T>(options: readonly T[], getOptionDisabled?: (option: T) => boolean) {\n\tfor (let index = options.length - 1; index >= 0; index -= 1) {\n\t\tif (!getOptionDisabled?.(options[index])) {\n\t\t\treturn index;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\ninterface FindNextEnabledIndexOptions {\n\twrap?: boolean;\n}\n\nexport function findNextEnabledIndex<T>(\n\toptions: readonly T[],\n\tcurrentIndex: number,\n\tstep: 1 | -1,\n\tgetOptionDisabled?: (option: T) => boolean,\n\toptionsConfig: FindNextEnabledIndexOptions = {}\n) {\n\tconst { wrap = false } = optionsConfig;\n\tconst fallbackIndex = currentIndex >= 0 && currentIndex < options.length ? currentIndex : -1;\n\n\tconst tryResolve = (start: number, end: number) => {\n\t\tfor (let index = start; step === 1 ? index <= end : index >= end; index += step) {\n\t\t\tif (!getOptionDisabled?.(options[index])) {\n\t\t\t\treturn index;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tconst inBoundsResult = tryResolve(currentIndex + step, step === 1 ? options.length - 1 : 0);\n\tif (inBoundsResult !== null) {\n\t\treturn inBoundsResult;\n\t}\n\n\tif (!wrap || options.length === 0) {\n\t\treturn fallbackIndex;\n\t}\n\n\tconst wrappedResult =\n\t\tstep === 1\n\t\t\t? tryResolve(0, Math.min(currentIndex - 1, options.length - 1))\n\t\t\t: tryResolve(options.length - 1, Math.max(currentIndex + 1, 0));\n\n\treturn wrappedResult ?? fallbackIndex;\n}\n","/**\n * Детерминированная JSON-сериализация: ключи объектов сортируются по алфавиту.\n *\n * Зачем: стандартный `JSON.stringify` не гарантирует порядок ключей,\n * что делает его непригодным для кэш-ключей и сравнений на равенство.\n */\nexport function stableStringify(value: unknown): string {\n\treturn JSON.stringify(value, (_k, v) => {\n\t\tif (!v || typeof v !== \"object\") return v;\n\n\t\tif (Array.isArray(v)) return v;\n\n\t\t// Дата -> ISO (на всякий случай)\n\t\tif (v instanceof Date) return v.toISOString();\n\n\t\tconst obj = v as Record<string, unknown>;\n\t\tconst out: Record<string, unknown> = {};\n\t\tfor (const key of Object.keys(obj).sort()) out[key] = obj[key];\n\t\treturn out;\n\t});\n}\n","export function toBase64(str: string): string {\n\treturn btoa(new TextEncoder().encode(str).reduce((acc, byte) => acc + String.fromCharCode(byte), \"\"));\n}\n\nexport function encodeBase64(str: string): string {\n\treturn btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (_, p1) => String.fromCharCode(parseInt(p1, 16))));\n}\n","type TreeNode<T> = T & {\n\tchildren?: TreeNode<T>[];\n};\n\nexport function deepCopyNodes<T extends { children?: TreeNode<T>[] }>(nodes: TreeNode<T>[]): TreeNode<T>[] {\n\treturn nodes.map((node) => {\n\t\tconst copy = { ...node } as TreeNode<T>;\n\n\t\tif (node.children) {\n\t\t\tcopy.children = deepCopyNodes(node.children);\n\t\t}\n\n\t\treturn copy;\n\t});\n}\n\nexport function deepCopyTree<T>(nodes: T[], childrenField: keyof T = \"children\" as keyof T): T[] {\n\treturn nodes.map((node) => {\n\t\tconst copy = { ...node };\n\n\t\tconst children = node[childrenField] as unknown as T[];\n\t\tif (children && Array.isArray(children)) {\n\t\t\t(copy[childrenField] as unknown) = deepCopyTree(children, childrenField);\n\t\t}\n\n\t\treturn copy;\n\t});\n}\n"],"mappings":";;;AAEA,SAAS,EAAkB,GAA0D;CACpF,OAAO,EAAkC,CAAI,KAAK,EAAK,SAAS;AACjE;AAEA,SAAgB,EAAc,GAAyB;CACtD,OAAO,EAAS,QAAQ,CAAI,CAAC,CAAC,QAAgB,GAAO,MAChD,EAAkB,CAAK,IACnB,IAAQ,EAAc,EAAM,MAAM,QAAQ,IAE3C,IAAQ,GACb,CAAC;AACL;;;ACRA,SAAgB,IAAa;CAC5B,IAAI,IAAM;CAEV,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAC1C,IAAM,IAAI,UAAU;EAEhB,OAAC,KAAK,MAAM,KAEhB;OAAI,OAAO,KAAM,UAAU;IAC1B,IAAM,IAAM,IAAM,MAAM,IAAI;IAC5B;GACD;GAEI,aAAO,KAAM,YAAY,MAAM,QAAQ,CAAC,IAE5C,KAAK,IAAM,KAAK,GACf,AAAI,EAAE,OACL,IAAM,IAAM,IAAM,MAAM,IAAI;EAN9B;CASD;CAEA,OAAO;AACR;;;ACvBA,IAAM,oBAAqB,IAAI,QAAkD,GAC3E,oBAA0B,IAAI,IAAqB,GAkB5C,KACZ,GACA,GACA,MACgD;CAChD,IAAM,IAAe,IAAW,GAAG,EAAS,GAAG,KAAiB,cAAc,KAAA;CAC9E,IAAI,KAAgB,EAAwB,IAAI,CAAY,GAC3D,OAAO,EAAwB,IAAI,CAAY;CAGhD,AAAK,EAAmB,IAAI,CAAU,KACrC,EAAmB,IAAI,mBAAY,IAAI,IAAI,CAAC;CAG7C,IAAM,IAAe,EAAmB,IAAI,CAAU;CAEtD,IAAI,CAAC,EAAa,IAAI,CAAa,GAAG;EACrC,IAAM,IAAgB,QACrB,EAAW,CAAC,CAAC,MAAM,MAAW;GAC7B,IAAI,CAAC,GACJ,MAAU,MAAM,6CAA6C,KAAiB,WAAW;GAG1F,IAAM,IACL,KAAiB,EAAO,KAAiB,EAAO,KAAkB,EAAO,WAAW,OAAO,OAAO,CAAM,CAAC,CAAC;GAE3G,IAAI,CAAC,KAAa,OAAO,KAAc,YACtC,MAAU,MAAM,kCAAkC,KAAiB,UAAU,EAAE;GAGhF,OAAO,EAAE,SAAS,EAAU;EAC7B,CAAC,CACF;EAGA,AADA,EAAa,IAAI,GAAe,CAAa,GACzC,KACH,EAAwB,IAAI,GAAc,CAAa;CAEzD;CAEA,OAAO,EAAa,IAAI,CAAa;AACtC,GC7BM,IAAO,OAAO,gBAAgB;AAEpC,SAAgB,EAA6B,GAAU,IAA4B,CAAC,GAAiC;CACpH,IAAM,oBAAO,IAAI,QAAyB,GAEpC,KAAS,MAA4B;EAC1C,IAAI,OAAO,KAAU,YACpB,OAAO;EAGR,IAAsB,OAAO,KAAU,aAAnC,GACH,OAAO;EAGR,IAAM,IAAS,EAAK,IAAI,CAAK;EAE7B,IAAI,MAAW,KAAA,GACd,OAAO;EAGR,IAAI,aAAiB,MACpB,OAAO,IAAI,KAAK,EAAM,QAAQ,CAAC;EAGhC,IAAI,aAAiB,QAAQ;GAC5B,IAAM,IAAS,IAAI,OAAO,EAAM,QAAQ,EAAM,KAAK;GAEnD,OADA,EAAO,YAAY,EAAM,WAClB;EACR;EAEA,IAAI,aAAiB,KAAK;GACzB,IAAM,oBAAS,IAAI,IAAsB;GACzC,EAAK,IAAI,GAAO,CAAM;GAEtB,KAAK,IAAM,CAAC,GAAK,MAAa,GAAO;IACpC,IAAM,IAAY,EAAM,CAAG,GACrB,IAAc,EAAM,CAAQ;IAElC,AAAI,MAAc,KAAQ,MAAgB,KACzC,EAAO,IAAI,GAAW,CAAW;GAEnC;GAEA,OAAO;EACR;EAEA,IAAI,aAAiB,KAAK;GACzB,IAAM,oBAAS,IAAI,IAAa;GAChC,EAAK,IAAI,GAAO,CAAM;GAEtB,KAAK,IAAM,KAAQ,GAAO;IACzB,IAAM,IAAa,EAAM,CAAI;IAE7B,AAAI,MAAe,KAClB,EAAO,IAAI,CAAU;GAEvB;GAEA,OAAO;EACR;EAEA,IAAI,MAAM,QAAQ,CAAK,GAAG;GACzB,IAAM,IAAoB,CAAC;GAC3B,EAAK,IAAI,GAAO,CAAM;GAEtB,KAAK,IAAI,IAAQ,GAAG,IAAQ,EAAM,QAAQ,KAAS,GAAG;IACrD,IAAI,EAAE,KAAS,IACd;IAGD,IAAM,IAAa,EAAM,EAAM,EAAM;IAErC,IAAI,MAAe,GAAM;KACxB,IAAI,EAAQ,0BAA0B,QACrC;KAGD,EAAO,KAAS,KAAA;KAChB;IACD;IAEA,AAAI,EAAQ,0BAA0B,SACrC,EAAO,KAAK,CAAU,IAEtB,EAAO,KAAS;GAElB;GAMA,OAJI,EAAQ,0BAA0B,WACrC,EAAO,SAAS,EAAM,SAGhB;EACR;EAEA,IAAM,IAAY,EAAQ,oBAAoB,OAAO,eAAe,CAAK,IAAI,OAAO,WAE9E,IAAS,OAAO,OAAO,CAAS;EACtC,EAAK,IAAI,GAAO,CAAM;EAEtB,KAAK,IAAM,KAAO,QAAQ,QAAQ,CAAK,GAAG;GACzC,IAAM,IAAa,OAAO,yBAAyB,GAAO,CAAG;GAU7D,IARI,CAAC,KAQD,EAAE,WAAW,IAChB;GAGD,IAAM,IAAc,EAAM,EAAW,KAAK;GAEtC,MAAgB,KAIpB,OAAO,eAAe,GAAQ,GAAK;IAClC,GAAG;IACH,OAAO;GACR,CAAC;EACF;EAEA,OAAO;CACR,GAEM,IAAS,EAAM,CAAK;CAEtB,UAAW,GAIf,OAAO;AACR;;;ACzJA,IAAM,IAAmB,OAAO,kBAAkB;AAElD,SAAgB,EAA4B,GAAU,IAAuB,CAAC,GAAgC;CAC7G,IAAM,IAAwB,EAAQ,yBAAyB,QACzD,oBAAO,IAAI,QAAyB,GAEpC,KAAS,MAA4B;EAC1C,IAAI,OAAO,KAAU,YACpB,OAAO;EAGR,IAAsB,OAAO,KAAU,aAAnC,GACH,OAAO;EAGR,IAAM,IAAS,EAAK,IAAI,CAAK;EAE7B,IAAI,MAAW,KAAA,GACd,OAAO;EAGR,IAAI,aAAiB,MACpB,OAAO,IAAI,KAAK,EAAM,QAAQ,CAAC;EAGhC,IAAI,MAAM,QAAQ,CAAK,GAAG;GACzB,IAAM,IAAoB,CAAC;GAC3B,EAAK,IAAI,GAAO,CAAM;GAEtB,KAAK,IAAI,IAAQ,GAAG,IAAQ,EAAM,QAAQ,KAAS,GAAG;IACrD,IAAM,IAAa,EAAM,EAAM,EAAM;IAErC,IAAI,MAAe,GAAkB;KACpC,AAAI,MAA0B,gBAC7B,EAAO,KAAS,KAAA;KAGjB;IACD;IAEA,AAAI,MAA0B,SAC7B,EAAO,KAAK,CAAU,IAEtB,EAAO,KAAS;GAElB;GAMA,OAJI,MAA0B,gBAC7B,EAAO,SAAS,EAAM,SAGhB;EACR;EAEA,IAAI,CAAC,EAAc,CAAK,GACvB,MAAU,UAAU,wCAAwC,OAAO,UAAU,SAAS,KAAK,CAAK,GAAG;EAGpG,IAAM,IAAkC,CAAC;EACzC,EAAK,IAAI,GAAO,CAAM;EAEtB,KAAK,IAAM,KAAO,OAAO,KAAK,CAAK,GAAG;GACrC,IAAM,IAAc,EAAM,EAAM,EAAI;GAEpC,AAAI,MAAgB,MACnB,EAAO,KAAO;EAEhB;EAEA,OAAO;CACR,GAEM,IAAS,EAAM,CAAK;CAEtB,UAAW,GAIf,OAAO;AACR;;;AChGA,IAAa,IAAyB,CAAC,SAAS,GAAG;AAYnD,SAAgB,EAAwB,GAA2C;CAClF,OAAO,MAAQ,WAAW,MAAQ;AACnC;AAWA,SAAgB,EACf,GACA,GACA,IAA2C,CAAC,GAC3C;CAOD,OANI,EAAQ,YAAY,CAAC,EAAwB,EAAM,GAAG,IAClD,MAGR,EAAM,eAAe,GACrB,EAAO,GACA;AACR;AAcA,SAAgB,EAA0B,EAAE,iBAAc,cAAW,QAAK,gBAAa,UAAO,MAAkC;CAC/H,IAAI,KAAa,GAChB,OAAO;CAGR,IAAM,IAAmB,KAAK,IAAI,IAAY,GAAG,KAAK,IAAI,GAAG,CAAY,CAAC;CA4B1E,OAxBI,MAAQ,SACJ,IAGJ,MAAQ,QACJ,IAAY,IAGhB,OAXgB,MAAgB,eAAe,cAAc,aAY5D,IAAmB,IACf,IAAmB,IAGpB,IAAO,IAAY,IAAI,IAG3B,OAlBY,MAAgB,eAAe,eAAe,eAmBzD,IAAmB,IAAY,IAC3B,IAAmB,IAGpB,IAAO,IAAI,IAAY,IAGxB;AACR;;;ACxFA,SAAgB,EAAS,GAAG,GAAiB;CAE5C,WAAW,QAAQ,MAAM,GAAG,CAAI;AACjC;;;ACHA,SAAgB,EAAyB,GAAuB,GAA4C;CAC3G,KAAK,IAAI,IAAQ,GAAG,IAAQ,EAAQ,QAAQ,KAAS,GACpD,IAAI,CAAC,IAAoB,EAAQ,EAAM,GACtC,OAAO;CAIT,OAAO;AACR;AAEA,SAAgB,EAAwB,GAAuB,GAA4C;CAC1G,KAAK,IAAI,IAAQ,EAAQ,SAAS,GAAG,KAAS,GAAG,KAChD,IAAI,CAAC,IAAoB,EAAQ,EAAM,GACtC,OAAO;CAIT,OAAO;AACR;AAMA,SAAgB,EACf,GACA,GACA,GACA,GACA,IAA6C,CAAC,GAC7C;CACD,IAAM,EAAE,UAAO,OAAU,GACnB,IAAgB,KAAgB,KAAK,IAAe,EAAQ,SAAS,IAAe,IAEpF,KAAc,GAAe,MAAgB;EAClD,KAAK,IAAI,IAAQ,GAAO,MAAS,IAAI,KAAS,IAAM,KAAS,GAAK,KAAS,GAC1E,IAAI,CAAC,IAAoB,EAAQ,EAAM,GACtC,OAAO;EAIT,OAAO;CACR,GAEM,IAAiB,EAAW,IAAe,GAAM,MAAS,IAAI,EAAQ,SAAS,IAAI,CAAC;CAc1F,OAbI,MAAmB,OAInB,CAAC,KAAQ,EAAQ,WAAW,IACxB,KAIP,MAAS,IACN,EAAW,GAAG,KAAK,IAAI,IAAe,GAAG,EAAQ,SAAS,CAAC,CAAC,IAC5D,EAAW,EAAQ,SAAS,GAAG,KAAK,IAAI,IAAe,GAAG,CAAC,CAAC,MAExC,IAZhB;AAaT;;;ACrDA,SAAgB,EAAgB,GAAwB;CACvD,OAAO,KAAK,UAAU,IAAQ,GAAI,MAAM;EAGvC,IAFI,CAAC,KAAK,OAAO,KAAM,YAEnB,MAAM,QAAQ,CAAC,GAAG,OAAO;EAG7B,IAAI,aAAa,MAAM,OAAO,EAAE,YAAY;EAE5C,IAAM,IAAM,GACN,IAA+B,CAAC;EACtC,KAAK,IAAM,KAAO,OAAO,KAAK,CAAG,CAAC,CAAC,KAAK,GAAG,EAAI,KAAO,EAAI;EAC1D,OAAO;CACR,CAAC;AACF;;;ACpBA,SAAgB,EAAS,GAAqB;CAC7C,OAAO,KAAK,IAAI,YAAY,CAAC,CAAC,OAAO,CAAG,CAAC,CAAC,QAAQ,GAAK,MAAS,IAAM,OAAO,aAAa,CAAI,GAAG,EAAE,CAAC;AACrG;AAEA,SAAgB,EAAa,GAAqB;CACjD,OAAO,KAAK,mBAAmB,CAAG,CAAC,CAAC,QAAQ,oBAAoB,GAAG,MAAO,OAAO,aAAa,SAAS,GAAI,EAAE,CAAC,CAAC,CAAC;AACjH;;;ACFA,SAAgB,EAAsD,GAAqC;CAC1G,OAAO,EAAM,KAAK,MAAS;EAC1B,IAAM,IAAO,EAAE,GAAG,EAAK;EAMvB,OAJI,EAAK,aACR,EAAK,WAAW,EAAc,EAAK,QAAQ,IAGrC;CACR,CAAC;AACF;AAEA,SAAgB,EAAgB,GAAY,IAAyB,YAA4B;CAChG,OAAO,EAAM,KAAK,MAAS;EAC1B,IAAM,IAAO,EAAE,GAAG,EAAK,GAEjB,IAAW,EAAK;EAKtB,OAJI,KAAY,MAAM,QAAQ,CAAQ,MACrC,EAAM,KAA6B,EAAa,GAAU,CAAa,IAGjE;CACR,CAAC;AACF"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Клавиши, которые должны активировать кастомные элементы с поведением кнопки.
3
+ */
4
+ export declare const keyboardActivationKeys: readonly ["Enter", " "];
5
+ export type KeyboardActivationKey = (typeof keyboardActivationKeys)[number];
6
+ interface KeyboardActivationEventLike {
7
+ key: string;
8
+ preventDefault: () => void;
9
+ }
10
+ /**
11
+ * Проверяет, что нажатая клавиша должна активировать действие элемента.
12
+ */
13
+ export declare function isKeyboardActivationKey(key: string): key is KeyboardActivationKey;
14
+ interface HandleKeyboardActivationOptions {
15
+ disabled?: boolean;
16
+ }
17
+ /**
18
+ * Выполняет действие по Enter/Space для кастомных интерактивных элементов.
19
+ *
20
+ * Возвращает `true`, если событие было обработано библиотечной логикой.
21
+ */
22
+ export declare function handleKeyboardActivation(event: KeyboardActivationEventLike, action: () => void, options?: HandleKeyboardActivationOptions): boolean;
23
+ export interface RovingFocusTargetOptions {
24
+ currentIndex: number;
25
+ itemCount: number;
26
+ key: string;
27
+ orientation: "horizontal" | "vertical";
28
+ wrap?: boolean;
29
+ }
30
+ /**
31
+ * Вычисляет следующую позицию для паттерна roving focus в `Tabs`, `RadioGroup`
32
+ * и других линейных составных виджетах.
33
+ */
34
+ export declare function getRovingFocusTargetIndex({ currentIndex, itemCount, key, orientation, wrap }: RovingFocusTargetOptions): number | null;
35
+ export {};
36
+ //# sourceMappingURL=keyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../src/utils/keyboard.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,sBAAsB,yBAA0B,CAAC;AAE9D,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,UAAU,2BAA2B;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,qBAAqB,CAEjF;AAED,UAAU,+BAA+B;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,2BAA2B,EAClC,MAAM,EAAE,MAAM,IAAI,EAClB,OAAO,GAAE,+BAAoC,WAS7C;AAED,MAAM,WAAW,wBAAwB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,IAAW,EAAE,EAAE,wBAAwB,iBAkC7H"}
@@ -0,0 +1,2 @@
1
+ export declare function logError(...args: unknown[]): void;
2
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,QAG1C"}
@@ -0,0 +1,8 @@
1
+ export declare function findFirstEnabledIndex<T>(options: readonly T[], getOptionDisabled?: (option: T) => boolean): number;
2
+ export declare function findLastEnabledIndex<T>(options: readonly T[], getOptionDisabled?: (option: T) => boolean): number;
3
+ interface FindNextEnabledIndexOptions {
4
+ wrap?: boolean;
5
+ }
6
+ export declare function findNextEnabledIndex<T>(options: readonly T[], currentIndex: number, step: 1 | -1, getOptionDisabled?: (option: T) => boolean, optionsConfig?: FindNextEnabledIndexOptions): number;
7
+ export {};
8
+ //# sourceMappingURL=selectNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectNavigation.d.ts","sourceRoot":"","sources":["../../src/utils/selectNavigation.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,UAQzG;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,UAQxG;AAED,UAAU,2BAA2B;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACrC,OAAO,EAAE,SAAS,CAAC,EAAE,EACrB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EACZ,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,EAC1C,aAAa,GAAE,2BAAgC,UA8B/C"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Детерминированная JSON-сериализация: ключи объектов сортируются по алфавиту.
3
+ *
4
+ * Зачем: стандартный `JSON.stringify` не гарантирует порядок ключей,
5
+ * что делает его непригодным для кэш-ключей и сравнений на равенство.
6
+ */
7
+ export declare function stableStringify(value: unknown): string;
8
+ //# sourceMappingURL=stableStringify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stableStringify.d.ts","sourceRoot":"","sources":["../../src/utils/stableStringify.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CActD"}
@@ -0,0 +1,3 @@
1
+ export declare function toBase64(str: string): string;
2
+ export declare function encodeBase64(str: string): string;
3
+ //# sourceMappingURL=toBase64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toBase64.d.ts","sourceRoot":"","sources":["../../src/utils/toBase64.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD"}
@@ -0,0 +1,9 @@
1
+ type TreeNode<T> = T & {
2
+ children?: TreeNode<T>[];
3
+ };
4
+ export declare function deepCopyNodes<T extends {
5
+ children?: TreeNode<T>[];
6
+ }>(nodes: TreeNode<T>[]): TreeNode<T>[];
7
+ export declare function deepCopyTree<T>(nodes: T[], childrenField?: keyof T): T[];
8
+ export {};
9
+ //# sourceMappingURL=treeNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeNode.d.ts","sourceRoot":"","sources":["../../src/utils/treeNode.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CACzB,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;CAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAUzG;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,GAAE,MAAM,CAAyB,GAAG,CAAC,EAAE,CAW/F"}
@@ -0,0 +1,7 @@
1
+ export * from "./isDomReference";
2
+ export * from "./isImageExtension";
3
+ export * from "./isRecord";
4
+ export * from "./isSafe";
5
+ export * from "./positiveInteger";
6
+ export * from "./validateUrl";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { i as e, n as t, r as n, t as r } from "../chunks/isRecord-DXDTW-jA.js";
2
+ //#region src/validators/isDomReference.ts
3
+ var i = (e) => e instanceof Element, a = [
4
+ "png",
5
+ "jpg",
6
+ "jpeg",
7
+ "gif",
8
+ "webp",
9
+ "svg"
10
+ ];
11
+ function o(e) {
12
+ return a.includes((e || "").toLowerCase());
13
+ }
14
+ //#endregion
15
+ //#region src/validators/isSafe.ts
16
+ function s(e) {
17
+ return e != null;
18
+ }
19
+ //#endregion
20
+ //#region src/validators/positiveInteger.ts
21
+ function c(e) {
22
+ let t = typeof e == "string" ? Number(e) : e;
23
+ if (!(typeof t != "number" || !Number.isInteger(t) || t <= 0)) return t;
24
+ }
25
+ //#endregion
26
+ //#region src/validators/validateUrl.ts
27
+ var l = (e) => {
28
+ if (!e) return {
29
+ isValid: !1,
30
+ error: "URL не может быть пустым"
31
+ };
32
+ try {
33
+ let t = e.startsWith("http") ? e : `https://${e}`;
34
+ return new URL(t), e.length > 2048 ? {
35
+ isValid: !1,
36
+ error: "URL слишком длинный"
37
+ } : /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/.test(e) ? {
38
+ isValid: !0,
39
+ error: ""
40
+ } : {
41
+ isValid: !1,
42
+ error: "URL содержит недопустимые символы"
43
+ };
44
+ } catch {
45
+ return {
46
+ isValid: !1,
47
+ error: "Некорректный формат URL"
48
+ };
49
+ }
50
+ };
51
+ //#endregion
52
+ export { a as IMAGE_EXTENSIONS, r as asRecord, i as isDomReference, o as isImageExtension, t as isObject, n as isPlainObject, e as isRecord, s as isSafe, c as readPositiveInteger, l as validateUrl };
53
+
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/validators/isDomReference.ts","../../src/validators/isImageExtension.ts","../../src/validators/isSafe.ts","../../src/validators/positiveInteger.ts","../../src/validators/validateUrl.ts"],"sourcesContent":["import { ReferenceType } from \"@floating-ui/react\";\n\nexport const isDomReference = (ref: ReferenceType | null): ref is Element => ref instanceof Element;\n","export const IMAGE_EXTENSIONS = [\"png\", \"jpg\", \"jpeg\", \"gif\", \"webp\", \"svg\"];\n\nexport function isImageExtension(ext: string): boolean {\n\treturn IMAGE_EXTENSIONS.includes((ext || \"\").toLowerCase());\n}\n","export function isSafe<T>(value: T | null | undefined): value is T {\n\treturn value !== null && value !== undefined;\n}\n","export function readPositiveInteger(value: unknown): number | undefined {\n\tconst numericValue = typeof value === \"string\" ? Number(value) : value;\n\n\tif (typeof numericValue !== \"number\" || !Number.isInteger(numericValue) || numericValue <= 0) {\n\t\treturn undefined;\n\t}\n\n\treturn numericValue;\n}\n","/**\n * Проверяет корректность URL\n * @param url - проверяемый URL\n * @returns объект с результатом валидации\n */\nexport const validateUrl = (url: string) => {\n\tif (!url) {\n\t\treturn {\n\t\t\tisValid: false,\n\t\t\terror: \"URL не может быть пустым\"\n\t\t};\n\t}\n\n\ttry {\n\t\t// Добавляем протокол, если его нет\n\t\tconst urlToCheck = url.startsWith(\"http\") ? url : `https://${url}`;\n\t\tnew URL(urlToCheck);\n\n\t\t// Дополнительные проверки\n\t\tif (url.length > 2048) {\n\t\t\treturn {\n\t\t\t\tisValid: false,\n\t\t\t\terror: \"URL слишком длинный\"\n\t\t\t};\n\t\t}\n\n\t\t// Проверка на допустимые символы\n\t\tconst urlPattern = /^(https?:\\/\\/)?([\\da-z.-]+)\\.([a-z.]{2,6})([/\\w .-]*)*\\/?$/;\n\t\tif (!urlPattern.test(url)) {\n\t\t\treturn {\n\t\t\t\tisValid: false,\n\t\t\t\terror: \"URL содержит недопустимые символы\"\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tisValid: true,\n\t\t\terror: \"\"\n\t\t};\n\t} catch {\n\t\treturn {\n\t\t\tisValid: false,\n\t\t\terror: \"Некорректный формат URL\"\n\t\t};\n\t}\n};\n"],"mappings":";;AAEA,IAAa,KAAkB,MAA8C,aAAe,SCF/E,IAAmB;CAAC;CAAO;CAAO;CAAQ;CAAO;CAAQ;AAAK;AAE3E,SAAgB,EAAiB,GAAsB;CACtD,OAAO,EAAiB,UAAU,KAAO,GAAA,CAAI,YAAY,CAAC;AAC3D;;;ACJA,SAAgB,EAAU,GAAyC;CAClE,OAAO,KAAU;AAClB;;;ACFA,SAAgB,EAAoB,GAAoC;CACvE,IAAM,IAAe,OAAO,KAAU,WAAW,OAAO,CAAK,IAAI;CAE7D,aAAO,KAAiB,YAAY,CAAC,OAAO,UAAU,CAAY,KAAK,KAAgB,IAI3F,OAAO;AACR;;;ACHA,IAAa,KAAe,MAAgB;CAC3C,IAAI,CAAC,GACJ,OAAO;EACN,SAAS;EACT,OAAO;CACR;CAGD,IAAI;EAEH,IAAM,IAAa,EAAI,WAAW,MAAM,IAAI,IAAM,WAAW;EAoB7D,OAnBA,IAAI,IAAI,CAAU,GAGd,EAAI,SAAS,OACT;GACN,SAAS;GACT,OAAO;EACR,IAKI,6DAAW,KAAK,CAAG,IAOjB;GACN,SAAS;GACT,OAAO;EACR,IATQ;GACN,SAAS;GACT,OAAO;EACR;CAOF,QAAQ;EACP,OAAO;GACN,SAAS;GACT,OAAO;EACR;CACD;AACD"}
@@ -0,0 +1,3 @@
1
+ import { ReferenceType } from "@floating-ui/react";
2
+ export declare const isDomReference: (ref: ReferenceType | null) => ref is Element;
3
+ //# sourceMappingURL=isDomReference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isDomReference.d.ts","sourceRoot":"","sources":["../../src/validators/isDomReference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,eAAO,MAAM,cAAc,GAAI,KAAK,aAAa,GAAG,IAAI,KAAG,GAAG,IAAI,OAAiC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const IMAGE_EXTENSIONS: string[];
2
+ export declare function isImageExtension(ext: string): boolean;
3
+ //# sourceMappingURL=isImageExtension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isImageExtension.d.ts","sourceRoot":"","sources":["../../src/validators/isImageExtension.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,UAA+C,CAAC;AAE7E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErD"}
@@ -0,0 +1,5 @@
1
+ export declare function isObject(value: unknown): value is object;
2
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
3
+ export declare function asRecord(value: unknown): Record<string, unknown> | null;
4
+ export declare function isPlainObject(value: object): value is Record<string, unknown>;
5
+ //# sourceMappingURL=isRecord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isRecord.d.ts","sourceRoot":"","sources":["../../src/validators/isRecord.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAGvE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAI7E"}
@@ -0,0 +1,2 @@
1
+ export declare function isSafe<T>(value: T | null | undefined): value is T;
2
+ //# sourceMappingURL=isSafe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isSafe.d.ts","sourceRoot":"","sources":["../../src/validators/isSafe.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAEjE"}
@@ -0,0 +1,2 @@
1
+ export declare function readPositiveInteger(value: unknown): number | undefined;
2
+ //# sourceMappingURL=positiveInteger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"positiveInteger.d.ts","sourceRoot":"","sources":["../../src/validators/positiveInteger.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAQtE"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Проверяет корректность URL
3
+ * @param url - проверяемый URL
4
+ * @returns объект с результатом валидации
5
+ */
6
+ export declare const validateUrl: (url: string) => {
7
+ isValid: boolean;
8
+ error: string;
9
+ };
10
+ //# sourceMappingURL=validateUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateUrl.d.ts","sourceRoot":"","sources":["../../src/validators/validateUrl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM;;;CAwCtC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./useFetchNextPageEffect";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/virtualizer/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { useEffect as e, useRef as t } from "react";
2
+ //#region src/virtualizer/useFetchNextPageEffect.ts
3
+ function n({ virtualItems: n, currentItemsCount: r, fetchNextPage: i, hasNextPage: a }) {
4
+ let o = t(!1);
5
+ e(() => {
6
+ !n.length || !r || n[n.length - 1].index >= r - 1 && a && !o.current && (o.current = !0, i?.().finally(() => {
7
+ o.current = !1;
8
+ }));
9
+ }, [
10
+ n,
11
+ r,
12
+ a,
13
+ i
14
+ ]);
15
+ }
16
+ //#endregion
17
+ export { n as useFetchNextPageEffect };
18
+
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/virtualizer/useFetchNextPageEffect.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\nimport { VirtualItem } from \"@tanstack/react-virtual\";\n\nexport function useFetchNextPageEffect({\n\tvirtualItems,\n\tcurrentItemsCount,\n\tfetchNextPage,\n\thasNextPage\n}: {\n\tvirtualItems: VirtualItem[];\n\tcurrentItemsCount: number;\n\thasNextPage: boolean;\n\tfetchNextPage: () => Promise<unknown>;\n}) {\n\tconst fetchingRef = useRef(false);\n\n\tuseEffect(() => {\n\t\tif (!virtualItems.length || !currentItemsCount) return;\n\t\tconst lastVirtual = virtualItems[virtualItems.length - 1];\n\n\t\tif (lastVirtual.index >= currentItemsCount - 1 && hasNextPage && !fetchingRef.current) {\n\t\t\tfetchingRef.current = true;\n\t\t\tfetchNextPage?.().finally(() => {\n\t\t\t\tfetchingRef.current = false;\n\t\t\t});\n\t\t}\n\t}, [virtualItems, currentItemsCount, hasNextPage, fetchNextPage]);\n}\n"],"mappings":";;AAIA,SAAgB,EAAuB,EACtC,iBACA,sBACA,kBACA,kBAME;CACF,IAAM,IAAc,EAAO,EAAK;CAEhC,QAAgB;EACX,CAAC,EAAa,UAAU,CAAC,KACT,EAAa,EAAa,SAAS,EAEnD,CAAY,SAAS,IAAoB,KAAK,KAAe,CAAC,EAAY,YAC7E,EAAY,UAAU,IACtB,IAAgB,CAAC,CAAC,cAAc;GAC/B,EAAY,UAAU;EACvB,CAAC;CAEH,GAAG;EAAC;EAAc;EAAmB;EAAa;CAAa,CAAC;AACjE"}
@@ -0,0 +1,8 @@
1
+ import { VirtualItem } from "@tanstack/react-virtual";
2
+ export declare function useFetchNextPageEffect({ virtualItems, currentItemsCount, fetchNextPage, hasNextPage }: {
3
+ virtualItems: VirtualItem[];
4
+ currentItemsCount: number;
5
+ hasNextPage: boolean;
6
+ fetchNextPage: () => Promise<unknown>;
7
+ }): void;
8
+ //# sourceMappingURL=useFetchNextPageEffect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFetchNextPageEffect.d.ts","sourceRoot":"","sources":["../../src/virtualizer/useFetchNextPageEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,wBAAgB,sBAAsB,CAAC,EACtC,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,EAAE;IACF,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC,QAcA"}
@@ -0,0 +1,2 @@
1
+ export * from "./xml";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/xml/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
@@ -0,0 +1,17 @@
1
+ //#region src/xml/xml.ts
2
+ function e(e) {
3
+ return String(e ?? "").replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll("\"", "&quot;").replaceAll("'", "&apos;");
4
+ }
5
+ function t(t, n) {
6
+ return `<${t}>${e(n)}</${t}>`;
7
+ }
8
+ function n(e) {
9
+ return Object.entries(e).map(([e, n]) => t(e, n)).join("");
10
+ }
11
+ function r(e, t) {
12
+ return (new DOMParser().parseFromString(e, "application/xml").getElementsByTagName(t)[0]?.textContent)?.trim() || void 0;
13
+ }
14
+ //#endregion
15
+ export { n as buildXmlFields, e as escapeXmlValue, r as getXmlTagText };
16
+
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/xml/xml.ts"],"sourcesContent":["export type XmlPrimitive = string | number | null | undefined;\n\nexport function escapeXmlValue(value: XmlPrimitive) {\n\treturn String(value ?? \"\")\n\t\t.replaceAll(\"&\", \"&amp;\")\n\t\t.replaceAll(\"<\", \"&lt;\")\n\t\t.replaceAll(\">\", \"&gt;\")\n\t\t.replaceAll('\"', \"&quot;\")\n\t\t.replaceAll(\"'\", \"&apos;\");\n}\n\nfunction buildXmlTag(name: string, value: XmlPrimitive) {\n\treturn `<${name}>${escapeXmlValue(value)}</${name}>`;\n}\n\nexport function buildXmlFields(fields: Record<string, XmlPrimitive>) {\n\treturn Object.entries(fields)\n\t\t.map(([name, value]) => buildXmlTag(name, value))\n\t\t.join(\"\");\n}\n\nexport function getXmlTagText(xml: string, tagName: string) {\n\tconst parser = new DOMParser();\n\n\tconst xmlDoc = parser.parseFromString(xml, \"application/xml\");\n\tconst value = xmlDoc.getElementsByTagName(tagName)[0]?.textContent;\n\n\treturn value?.trim() || undefined;\n}\n"],"mappings":";AAEA,SAAgB,EAAe,GAAqB;CACnD,OAAO,OAAO,KAAS,EAAE,CAAC,CACxB,WAAW,KAAK,OAAO,CAAC,CACxB,WAAW,KAAK,MAAM,CAAC,CACvB,WAAW,KAAK,MAAM,CAAC,CACvB,WAAW,MAAK,QAAQ,CAAC,CACzB,WAAW,KAAK,QAAQ;AAC3B;AAEA,SAAS,EAAY,GAAc,GAAqB;CACvD,OAAO,IAAI,EAAK,GAAG,EAAe,CAAK,EAAE,IAAI,EAAK;AACnD;AAEA,SAAgB,EAAe,GAAsC;CACpE,OAAO,OAAO,QAAQ,CAAM,CAAC,CAC3B,KAAK,CAAC,GAAM,OAAW,EAAY,GAAM,CAAK,CAAC,CAAC,CAChD,KAAK,EAAE;AACV;AAEA,SAAgB,EAAc,GAAa,GAAiB;CAM3D,QAHe,IAFI,UAEJ,CAAA,CAAO,gBAAgB,GAAK,iBAC7B,CAAA,CAAO,qBAAqB,CAAO,CAAC,CAAC,EAAE,EAAE,YAAA,EAEzC,KAAK,KAAK,KAAA;AACzB"}
@@ -0,0 +1,5 @@
1
+ export type XmlPrimitive = string | number | null | undefined;
2
+ export declare function escapeXmlValue(value: XmlPrimitive): string;
3
+ export declare function buildXmlFields(fields: Record<string, XmlPrimitive>): string;
4
+ export declare function getXmlTagText(xml: string, tagName: string): string | undefined;
5
+ //# sourceMappingURL=xml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../../src/xml/xml.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9D,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,UAOjD;AAMD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,UAIlE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,sBAOzD"}