palistor 0.0.25 → 0.0.26

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 (255) hide show
  1. package/README.md +574 -542
  2. package/README.ru.md +979 -0
  3. package/dist/index.d.ts +16 -27
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +17 -28
  6. package/dist/index.js.map +1 -1
  7. package/dist/react/createTrackingProxy.d.ts +27 -27
  8. package/dist/react/createTrackingProxy.d.ts.map +1 -1
  9. package/dist/react/createTrackingProxy.js +54 -53
  10. package/dist/react/createTrackingProxy.js.map +1 -1
  11. package/dist/react/useForm.d.ts +42 -43
  12. package/dist/react/useForm.d.ts.map +1 -1
  13. package/dist/react/useForm.js +38 -38
  14. package/dist/react/useForm.js.map +1 -1
  15. package/dist/react/usePersist.d.ts +14 -14
  16. package/dist/react/usePersist.js +18 -18
  17. package/dist/react/usePersist.js.map +1 -1
  18. package/dist/react/useStoreContext.d.ts +11 -11
  19. package/dist/react/useStoreContext.js +11 -11
  20. package/dist/react/useTranslator.d.ts +12 -12
  21. package/dist/react/useTranslator.js +12 -12
  22. package/dist/store/applyPatch/applyPatch.d.ts +8 -8
  23. package/dist/store/applyPatch/applyPatch.js +12 -12
  24. package/dist/store/applyPatch/applyPatch.js.map +1 -1
  25. package/dist/store/buildProxy/buildEntityProjectionProxy.js +6 -6
  26. package/dist/store/buildProxy/buildEntityProjectionProxy.js.map +1 -1
  27. package/dist/store/buildProxy/buildListProxy.d.ts +8 -8
  28. package/dist/store/buildProxy/buildListProxy.js +30 -30
  29. package/dist/store/buildProxy/buildListProxy.js.map +1 -1
  30. package/dist/store/buildProxy/buildProxy.d.ts +8 -8
  31. package/dist/store/buildProxy/buildProxy.js +39 -39
  32. package/dist/store/buildProxy/buildProxy.js.map +1 -1
  33. package/dist/store/buildProxy/computeProxyKeys.d.ts +8 -8
  34. package/dist/store/buildProxy/computeProxyKeys.js +9 -9
  35. package/dist/store/buildProxy/computeProxyKeys.js.map +1 -1
  36. package/dist/store/buildProxy/handleLazyResolve.d.ts +3 -3
  37. package/dist/store/buildProxy/handleLazyResolve.js +3 -3
  38. package/dist/store/buildProxy/initProxyCaches.d.ts +5 -5
  39. package/dist/store/buildProxy/initProxyCaches.js +5 -5
  40. package/dist/store/compute/computeFieldState.d.ts +3 -3
  41. package/dist/store/compute/computeFieldState.js +8 -8
  42. package/dist/store/compute/computeFieldState.js.map +1 -1
  43. package/dist/store/compute/fieldStateChanged.d.ts +1 -1
  44. package/dist/store/compute/fieldStateChanged.js +1 -1
  45. package/dist/store/compute/recompute/collectGroupComputeNodes.d.ts +4 -4
  46. package/dist/store/compute/recompute/collectGroupComputeNodes.js +7 -7
  47. package/dist/store/compute/recompute/collectGroupComputeNodes.js.map +1 -1
  48. package/dist/store/compute/recompute/recomputeAndNotify.d.ts +3 -3
  49. package/dist/store/compute/recompute/recomputeAndNotify.js +3 -3
  50. package/dist/store/compute/recompute/recomputeLeaves.d.ts +11 -10
  51. package/dist/store/compute/recompute/recomputeLeaves.d.ts.map +1 -1
  52. package/dist/store/compute/recompute/recomputeLeaves.js +26 -27
  53. package/dist/store/compute/recompute/recomputeLeaves.js.map +1 -1
  54. package/dist/store/compute/recompute/recomputeTargeted.d.ts +7 -7
  55. package/dist/store/compute/recompute/recomputeTargeted.js +12 -12
  56. package/dist/store/compute/recompute/recomputeTargeted.js.map +1 -1
  57. package/dist/store/compute/recompute/topologicalSortComputed.d.ts +4 -4
  58. package/dist/store/compute/recompute/topologicalSortComputed.d.ts.map +1 -1
  59. package/dist/store/compute/recompute/topologicalSortComputed.js +11 -13
  60. package/dist/store/compute/recompute/topologicalSortComputed.js.map +1 -1
  61. package/dist/store/compute/recompute/types.d.ts +4 -4
  62. package/dist/store/compute/resolveFlag.d.ts +2 -2
  63. package/dist/store/compute/resolveFlag.js +2 -2
  64. package/dist/store/compute/resolveString.d.ts +5 -5
  65. package/dist/store/compute/resolveString.js +6 -6
  66. package/dist/store/compute/resolveString.js.map +1 -1
  67. package/dist/store/compute/types.d.ts +3 -3
  68. package/dist/store/constants.d.ts +48 -48
  69. package/dist/store/constants.d.ts.map +1 -1
  70. package/dist/store/constants.js +45 -45
  71. package/dist/store/defineFieldMapping.d.ts +21 -19
  72. package/dist/store/defineFieldMapping.d.ts.map +1 -1
  73. package/dist/store/defineFieldMapping.js +21 -19
  74. package/dist/store/defineFieldMapping.js.map +1 -1
  75. package/dist/store/dirtyTracking/collectInitialSnapshot.js +1 -1
  76. package/dist/store/dirtyTracking/collectInitialSnapshot.js.map +1 -1
  77. package/dist/store/dirtyTracking/recomputeDirtyTargeted.d.ts +3 -3
  78. package/dist/store/dirtyTracking/recomputeDirtyTargeted.js +11 -11
  79. package/dist/store/dirtyTracking/recomputeDirtyTargeted.js.map +1 -1
  80. package/dist/store/dirtyTracking/setGroupRevalidate.d.ts +6 -6
  81. package/dist/store/dirtyTracking/setGroupRevalidate.js +7 -7
  82. package/dist/store/dirtyTracking/setGroupRevalidate.js.map +1 -1
  83. package/dist/store/entityRegistry/entityRegistry.d.ts +72 -72
  84. package/dist/store/entityRegistry/entityRegistry.d.ts.map +1 -1
  85. package/dist/store/entityRegistry/entityRegistry.js +91 -91
  86. package/dist/store/entityRegistry/entityRegistry.js.map +1 -1
  87. package/dist/store/entityRegistry/generateId.d.ts +3 -3
  88. package/dist/store/entityRegistry/generateId.js +3 -3
  89. package/dist/store/entityRegistry/types.d.ts +17 -17
  90. package/dist/store/entityRegistry/types.d.ts.map +1 -1
  91. package/dist/store/flow/buildFlowStepsProxy.d.ts +9 -9
  92. package/dist/store/flow/buildFlowStepsProxy.js +13 -13
  93. package/dist/store/flow/buildFlowStepsProxy.js.map +1 -1
  94. package/dist/store/flow/defineFlow.d.ts +27 -25
  95. package/dist/store/flow/defineFlow.d.ts.map +1 -1
  96. package/dist/store/flow/defineFlow.js +15 -13
  97. package/dist/store/flow/defineFlow.js.map +1 -1
  98. package/dist/store/flow/flowApi.d.ts +3 -2
  99. package/dist/store/flow/flowApi.d.ts.map +1 -1
  100. package/dist/store/flow/flowApi.js +1 -1
  101. package/dist/store/flow/flowApi.js.map +1 -1
  102. package/dist/store/flow/flowNavigation.d.ts +65 -63
  103. package/dist/store/flow/flowNavigation.d.ts.map +1 -1
  104. package/dist/store/flow/flowNavigation.js +74 -72
  105. package/dist/store/flow/flowNavigation.js.map +1 -1
  106. package/dist/store/flow/flowState.d.ts +16 -16
  107. package/dist/store/flow/flowState.d.ts.map +1 -1
  108. package/dist/store/flow/flowState.js +5 -5
  109. package/dist/store/flow/flowState.js.map +1 -1
  110. package/dist/store/groupDeps/createGroupDeps.d.ts +3 -3
  111. package/dist/store/groupDeps/createGroupDeps.js +6 -6
  112. package/dist/store/groupDeps/createGroupDeps.js.map +1 -1
  113. package/dist/store/groupDeps/createTrackingValues.d.ts +9 -9
  114. package/dist/store/groupDeps/createTrackingValues.js +11 -11
  115. package/dist/store/groupDeps/createTrackingValues.js.map +1 -1
  116. package/dist/store/groupDeps/getNodeGroupPath.d.ts +3 -3
  117. package/dist/store/groupDeps/getNodeGroupPath.js +5 -5
  118. package/dist/store/groupDeps/getNodeGroupPath.js.map +1 -1
  119. package/dist/store/groupDeps/getRecipientGroups.d.ts +1 -1
  120. package/dist/store/groupDeps/getRecipientGroups.js +1 -1
  121. package/dist/store/groupDeps/groupDeps.d.ts +7 -7
  122. package/dist/store/groupDeps/groupDeps.js +7 -7
  123. package/dist/store/groupDeps/pairKey.d.ts +3 -3
  124. package/dist/store/groupDeps/pairKey.d.ts.map +1 -1
  125. package/dist/store/groupDeps/pairKey.js +4 -4
  126. package/dist/store/groupDeps/pairKey.js.map +1 -1
  127. package/dist/store/groupDeps/resolveGroupByPath.d.ts +3 -3
  128. package/dist/store/groupDeps/resolveGroupByPath.js +3 -3
  129. package/dist/store/init/createNotificationHub.d.ts +31 -31
  130. package/dist/store/init/createNotificationHub.d.ts.map +1 -1
  131. package/dist/store/init/createNotificationHub.js +36 -37
  132. package/dist/store/init/createNotificationHub.js.map +1 -1
  133. package/dist/store/init/createResolveManager.d.ts +72 -69
  134. package/dist/store/init/createResolveManager.d.ts.map +1 -1
  135. package/dist/store/init/createResolveManager.js +101 -98
  136. package/dist/store/init/createResolveManager.js.map +1 -1
  137. package/dist/store/init/initGroupSubmitting.d.ts +2 -2
  138. package/dist/store/init/initGroupSubmitting.js +4 -4
  139. package/dist/store/init/initGroupSubmitting.js.map +1 -1
  140. package/dist/store/normalizeConfig.d.ts +20 -18
  141. package/dist/store/normalizeConfig.d.ts.map +1 -1
  142. package/dist/store/normalizeConfig.js +31 -29
  143. package/dist/store/normalizeConfig.js.map +1 -1
  144. package/dist/store/onChangePipeline/computeFieldKey.d.ts +2 -2
  145. package/dist/store/onChangePipeline/computeFieldKey.js +2 -2
  146. package/dist/store/onChangePipeline/findOnChangeAncestors.d.ts +2 -2
  147. package/dist/store/onChangePipeline/findOnChangeAncestors.js +4 -4
  148. package/dist/store/onChangePipeline/findOnChangeAncestors.js.map +1 -1
  149. package/dist/store/onChangePipeline/onChangePipeline.d.ts +13 -12
  150. package/dist/store/onChangePipeline/onChangePipeline.d.ts.map +1 -1
  151. package/dist/store/onChangePipeline/onChangePipeline.js +14 -13
  152. package/dist/store/onChangePipeline/onChangePipeline.js.map +1 -1
  153. package/dist/store/persist/drivers.d.ts +7 -7
  154. package/dist/store/persist/drivers.js +8 -8
  155. package/dist/store/persist/drivers.js.map +1 -1
  156. package/dist/store/persist/index.d.ts +1 -1
  157. package/dist/store/persist/persistManager.d.ts +23 -23
  158. package/dist/store/persist/persistManager.d.ts.map +1 -1
  159. package/dist/store/persist/persistManager.js +51 -51
  160. package/dist/store/persist/persistManager.js.map +1 -1
  161. package/dist/store/persist/types.d.ts +23 -23
  162. package/dist/store/persist/types.d.ts.map +1 -1
  163. package/dist/store/persist/types.js +4 -4
  164. package/dist/store/resetPipeline/buildResetPatch.d.ts +5 -5
  165. package/dist/store/resetPipeline/buildResetPatch.js +5 -5
  166. package/dist/store/resetPipeline/collectDefaults.d.ts +5 -5
  167. package/dist/store/resetPipeline/collectDefaults.js +6 -6
  168. package/dist/store/resetPipeline/collectDefaults.js.map +1 -1
  169. package/dist/store/resetPipeline/resetPipeline.d.ts +7 -7
  170. package/dist/store/resetPipeline/resetPipeline.js +15 -15
  171. package/dist/store/resetPipeline/resetPipeline.js.map +1 -1
  172. package/dist/store/resolvePipeline/applyPendingWrites.d.ts +10 -10
  173. package/dist/store/resolvePipeline/applyPendingWrites.d.ts.map +1 -1
  174. package/dist/store/resolvePipeline/applyPendingWrites.js +35 -38
  175. package/dist/store/resolvePipeline/applyPendingWrites.js.map +1 -1
  176. package/dist/store/resolvePipeline/createContextTrackingProxy.d.ts +8 -7
  177. package/dist/store/resolvePipeline/createContextTrackingProxy.d.ts.map +1 -1
  178. package/dist/store/resolvePipeline/createContextTrackingProxy.js +6 -5
  179. package/dist/store/resolvePipeline/createContextTrackingProxy.js.map +1 -1
  180. package/dist/store/resolvePipeline/createValuesTrackingProxy.d.ts +43 -43
  181. package/dist/store/resolvePipeline/createValuesTrackingProxy.d.ts.map +1 -1
  182. package/dist/store/resolvePipeline/createValuesTrackingProxy.js +70 -70
  183. package/dist/store/resolvePipeline/createValuesTrackingProxy.js.map +1 -1
  184. package/dist/store/resolvePipeline/executeListResolve.d.ts +14 -14
  185. package/dist/store/resolvePipeline/executeListResolve.js +27 -27
  186. package/dist/store/resolvePipeline/executeListResolve.js.map +1 -1
  187. package/dist/store/resolvePipeline/executeResolve.d.ts +15 -15
  188. package/dist/store/resolvePipeline/executeResolve.js +46 -46
  189. package/dist/store/resolvePipeline/executeResolve.js.map +1 -1
  190. package/dist/store/store/NodeRegistry/nodeRegistry.d.ts +61 -61
  191. package/dist/store/store/NodeRegistry/nodeRegistry.d.ts.map +1 -1
  192. package/dist/store/store/NodeRegistry/nodeRegistry.js +85 -86
  193. package/dist/store/store/NodeRegistry/nodeRegistry.js.map +1 -1
  194. package/dist/store/store/NodeRegistry/nodeUtils.d.ts +5 -5
  195. package/dist/store/store/NodeRegistry/nodeUtils.d.ts.map +1 -1
  196. package/dist/store/store/NodeRegistry/nodeUtils.js +5 -5
  197. package/dist/store/store/NodeRegistry/nodeUtils.js.map +1 -1
  198. package/dist/store/store/groupDepsMap.d.ts +23 -23
  199. package/dist/store/store/groupDepsMap.d.ts.map +1 -1
  200. package/dist/store/store/groupDepsMap.js +35 -34
  201. package/dist/store/store/groupDepsMap.js.map +1 -1
  202. package/dist/store/store/hasComputedProps.d.ts +2 -2
  203. package/dist/store/store/hasComputedProps.js +2 -2
  204. package/dist/store/store/nodeMap.d.ts +5 -5
  205. package/dist/store/store/nodeMap.js +7 -7
  206. package/dist/store/store/nodeMap.js.map +1 -1
  207. package/dist/store/store/palistor.d.ts +80 -80
  208. package/dist/store/store/palistor.d.ts.map +1 -1
  209. package/dist/store/store/palistor.js +149 -169
  210. package/dist/store/store/palistor.js.map +1 -1
  211. package/dist/store/store/registerNodes.d.ts +10 -10
  212. package/dist/store/store/registerNodes.js +15 -15
  213. package/dist/store/store/registerNodes.js.map +1 -1
  214. package/dist/store/store/serviceRegistry.d.ts +8 -8
  215. package/dist/store/store/serviceRegistry.d.ts.map +1 -1
  216. package/dist/store/store/serviceRegistry.js +8 -8
  217. package/dist/store/store/serviceRegistry.js.map +1 -1
  218. package/dist/store/store/types.d.ts +236 -234
  219. package/dist/store/store/types.d.ts.map +1 -1
  220. package/dist/store/submitPipeline/applyLeafBeforeSubmit.d.ts +2 -2
  221. package/dist/store/submitPipeline/applyLeafBeforeSubmit.js +2 -2
  222. package/dist/store/submitPipeline/collectLeafStates.d.ts +2 -2
  223. package/dist/store/submitPipeline/collectLeafStates.js +2 -2
  224. package/dist/store/submitPipeline/submitPipeline.d.ts +8 -8
  225. package/dist/store/submitPipeline/submitPipeline.js +12 -12
  226. package/dist/store/submitPipeline/submitPipeline.js.map +1 -1
  227. package/dist/store/submitPipeline/types.d.ts +1 -1
  228. package/dist/store/submitPipeline/types.d.ts.map +1 -1
  229. package/dist/store/traversal/nodeClassifier.d.ts +9 -9
  230. package/dist/store/traversal/nodeClassifier.d.ts.map +1 -1
  231. package/dist/store/traversal/nodeClassifier.js +11 -11
  232. package/dist/store/traversal/nodeClassifier.js.map +1 -1
  233. package/dist/store/traversal/walkFull.d.ts +14 -14
  234. package/dist/store/traversal/walkFull.js +2 -2
  235. package/dist/store/valuesCache/valuesCache.d.ts +9 -9
  236. package/dist/store/valuesCache/valuesCache.d.ts.map +1 -1
  237. package/dist/store/valuesCache/valuesCache.js +6 -6
  238. package/dist/store/writePipeline/formatPatch.d.ts +5 -5
  239. package/dist/store/writePipeline/formatPatch.js +7 -7
  240. package/dist/store/writePipeline/formatPatch.js.map +1 -1
  241. package/dist/store/writePipeline/formatValue.d.ts +5 -5
  242. package/dist/store/writePipeline/formatValue.js +5 -5
  243. package/dist/store/writePipeline/mergeChanged.d.ts +4 -4
  244. package/dist/store/writePipeline/mergeChanged.js +4 -4
  245. package/dist/store/writePipeline/runSetter.d.ts +6 -6
  246. package/dist/store/writePipeline/runSetter.js +8 -8
  247. package/dist/store/writePipeline/storeValue.d.ts +3 -3
  248. package/dist/store/writePipeline/storeValue.js +3 -3
  249. package/dist/store/writePipeline/types.d.ts +4 -4
  250. package/dist/store/writePipeline/types.d.ts.map +1 -1
  251. package/dist/store/writePipeline/writePipeline.d.ts +7 -7
  252. package/dist/store/writePipeline/writePipeline.d.ts.map +1 -1
  253. package/dist/store/writePipeline/writePipeline.js +15 -15
  254. package/dist/store/writePipeline/writePipeline.js.map +1 -1
  255. package/package.json +11 -4
@@ -1,8 +1,8 @@
1
1
  /**
2
- * useForm — React хук для подключения к ProxyStore
2
+ * useForm — the React hook that connects a component to a ProxyStore.
3
3
  *
4
- * Возвращает реактивный прокси. Доступ к полям через точку это и есть
5
- * подписка: компонент перерендерится только при изменении прочитанных полей.
4
+ * Returns a reactive proxy. Dot access to fields IS the subscription: the
5
+ * component re-renders only when a field it actually read changes.
6
6
  *
7
7
  * @example
8
8
  * ```tsx
@@ -22,54 +22,53 @@
22
22
  * );
23
23
  * }
24
24
  *
25
- * // Дочерний компонент с useForm для независимой подписки:
25
+ * // Child component with its own useForm for an independent subscription:
26
26
  * function PassportSection({ passport }) {
27
- * const p = useForm(passport); // ← принимает поддерево!
27
+ * const p = useForm(passport); // ← accepts a subtree!
28
28
  * if (!p.isVisible) return null;
29
29
  * return <NumberField field={p.number} />;
30
30
  * }
31
31
  * ```
32
32
  *
33
- * Как работает:
34
- * 1. useSyncExternalStore подписывается на глобальные изменения store.
35
- * 2. getSnapshot сравнивает версии только прочитанных узлов
36
- * re-render происходит только если изменилось то, что читалось.
37
- * 3. store.proxy оборачивается в tracking proxy. Каждый GET записывает
38
- * config-ноду в tracked set. getSnapshot проверяет только эти ноды.
39
- * 4. Запись `form.email.value = "X"` → store.proxy.email.value = "X" →
33
+ * How it works:
34
+ * 1. useSyncExternalStore subscribes to global store changes.
35
+ * 2. getSnapshot compares versions of only the nodes that were read
36
+ * a re-render happens only when something that was read changed.
37
+ * 3. store.proxy is wrapped in a tracking proxy. Every GET records the
38
+ * config node into a tracked set. getSnapshot checks only those nodes.
39
+ * 4. A write `form.email.value = "X"` → store.proxy.email.value = "X" →
40
40
  * SET trap → formatter → validate → recompute → notify → re-render
41
- * (только компонентов, которые читали изменившиеся ноды).
41
+ * (only of components that read the changed nodes).
42
42
  *
43
- * Перегрузки:
44
- * - useForm(store) — основной вариант, передаём ProxyStore
45
- * - useForm(proxySubtree) — принимает tracking proxy поддерево (из пропса),
46
- * создаёт **независимый** tracking для этого компонента
47
- * - useForm(entityProxy, templateSelector) — привязка entity к template.
48
- * entityProxy из list.items/list.getById. templateSelector = (s) => s.editForm.
49
- * Вызывает entityRegistry.bind на mount, unbind на unmount.
43
+ * Overloads:
44
+ * - useForm(store) — the main form, pass the ProxyStore
45
+ * - useForm(proxySubtree) — accepts a tracking-proxy subtree (from a prop),
46
+ * creating an **independent** tracking scope for this component
47
+ * - useForm(entityProxy, templateSelector) — binds an entity to a template.
48
+ * entityProxy comes from list.items/list.getById. templateSelector = (s) => s.editForm.
49
+ * Calls entityRegistry.bind on mount, unbind on unmount.
50
50
  */
51
51
  import type { ProxyStore, ConfigProxy, GroupProxyNode, RawStoreProxyMarker } from "../store/store";
52
52
  import type { PalistorRef, PalistorList, Palistor, PalistorEntityProxy, FieldMapping } from "../store/store/types";
53
53
  /**
54
- * Подключает React-компонент к ProxyStore.
54
+ * Connects a React component to a ProxyStore.
55
55
  *
56
- * Компонент перерендерится только при изменении полей, которые он читал
57
- * во время предыдущего рендера. Tracking proxy автоматически записывает
58
- * обращения к FIELD_STATE_PROPS (value, label, isVisible, error…) и
59
- * getSnapshot проверяет версии только этих нод.
56
+ * The component re-renders only when fields it read during the previous
57
+ * render change. The tracking proxy automatically records accesses to
58
+ * FIELD_STATE_PROPS (value, label, isVisible, error…) and getSnapshot
59
+ * checks the versions of only those nodes.
60
60
  *
61
- * На первом рендере tracked set пустиспользуется глобальная версия
62
- * (fallback). После первого рендера tracking работает точечно.
61
+ * On the first render the tracked set is empty the global version is used
62
+ * (fallback). After the first render tracking is fully targeted.
63
63
  *
64
- * @param input — ProxyStore, созданный через new Palistor(), ИЛИ
65
- * tracking proxy поддерево (из пропса другого useForm)
66
- * @returns tracking proxy — типизированный по конфигу (или поддереву)
64
+ * @param input — a ProxyStore created via new Palistor(), OR a tracking-proxy
65
+ * subtree (from another useForm's prop)
66
+ * @returns a tracking proxy — typed by the config (or subtree)
67
67
  */
68
68
  /**
69
- * Тип-«ошибка», который TypeScript показывает в диагностике, если в
70
- * `useForm` передали сырой `store.proxy` или его поддерево. Имя интерфейса
71
- * специально длинное и описательное оно появится в тексте ошибки и
72
- * подскажет, что делать.
69
+ * An "error" type TypeScript surfaces in diagnostics when a raw `store.proxy`
70
+ * or its subtree is passed into `useForm`. The interface name is deliberately
71
+ * long and descriptiveit appears in the error text and explains the fix.
73
72
  *
74
73
  * @see {@link RawStoreProxyMarker}
75
74
  */
@@ -77,9 +76,9 @@ export interface _PALISTOR_ERROR__do_not_pass_store_proxy_subtree_to_useForm__ca
77
76
  readonly _palistorError: "useForm received a raw store.proxy subtree. Use: const form = useForm(store); then drill into form.subtree (a tracking proxy). See useForm-raw-proxy-pitfall.md.";
78
77
  }
79
78
  /**
80
- * Превращает T в тип-ошибку, если T помечен {@link RawStoreProxyMarker}.
81
- * Применяется к параметру subtree-перегрузки `useForm`, чтобы сделать
82
- * `useForm(store.proxy.subtree)` ошибкой компиляции.
79
+ * Turns T into the error type when T carries {@link RawStoreProxyMarker}.
80
+ * Applied to the subtree overload's parameter to make
81
+ * `useForm(store.proxy.subtree)` a compile-time error.
83
82
  */
84
83
  type ForbidRawStoreProxy<T> = T extends RawStoreProxyMarker ? _PALISTOR_ERROR__do_not_pass_store_proxy_subtree_to_useForm__call_useForm_store_first : T;
85
84
  export declare function useForm<T extends Record<string, any>>(input: PalistorRef<T>): PalistorEntityProxy<T>;
@@ -90,18 +89,18 @@ export declare function useForm<T extends Record<string, any> & {
90
89
  export declare function useForm<T extends GroupProxyNode>(input: ForbidRawStoreProxy<T>): T;
91
90
  export declare function useForm<TConfig extends Record<string, any>, TMapping extends FieldMapping = {}>(input: ProxyStore<TConfig, TMapping>): ConfigProxy<TConfig, TMapping>;
92
91
  /**
93
- * Перегрузка: привязка entity к template для отображения/редактирования.
92
+ * Overload: bind an entity to a template for display/editing.
94
93
  *
95
- * @param entity — EntityProjectionProxy из list.items или list.getById
96
- * @param templateSelector — функция выбора template: (store) => store.editUserForm
97
- * @returns tracking proxy entity через template (поля template + значения entity)
94
+ * @param entity — an EntityProjectionProxy from list.items or list.getById
95
+ * @param templateSelector — template selector function: (store) => store.editUserForm
96
+ * @returns a tracking proxy of the entity through the template (template fields + entity values)
98
97
  *
99
98
  * Lifecycle:
100
99
  * - mount: entityRegistry.bind(entityId, templateNode)
101
100
  * - unmount: entityRegistry.unbind(entityId, templateNode)
102
101
  *
103
- * Resolved cache (3A.4): при повторном открытии той же entity+template
104
- * `isResolved` возвращает true → resolve будет пропущен (Phase 3B).
102
+ * Resolved cache: when the same entity+template is opened again,
103
+ * `isResolved` returns true → the resolve is skipped.
105
104
  */
106
105
  export declare function useForm(entity: object, templateSelector: (store: any) => any): any;
107
106
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../react/useForm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA2CnH;;;;;;;;;;;;;;GAcG;AACH;;;;;;;GAOG;AACH,MAAM,WAAW,qFAAqF;IACpG,QAAQ,CAAC,cAAc,EACrB,kKAAkK,CAAC;CACtK;AAED;;;;GAIG;AACH,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,mBAAmB,GACvD,qFAAqF,GACrF,CAAC,CAAC;AAEN,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AACtG,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAChG,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,GAAG,CAAA;CAAE,EAClE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GACjB,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC1B,wBAAgB,OAAO,CAAC,CAAC,SAAS,cAAc,EAC9C,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC5B,CAAC,CAAC;AAEL,wBAAgB,OAAO,CACrB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,QAAQ,SAAS,YAAY,GAAG,EAAE,EAElC,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,GACnC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAElC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,GACpC,GAAG,CAAC"}
1
+ {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../react/useForm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA2CnH;;;;;;;;;;;;;;GAcG;AACH;;;;;;GAMG;AACH,MAAM,WAAW,qFAAqF;IACpG,QAAQ,CAAC,cAAc,EACrB,kKAAkK,CAAC;CACtK;AAED;;;;GAIG;AACH,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,mBAAmB,GACvD,qFAAqF,GACrF,CAAC,CAAC;AAEN,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AACtG,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAChG,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,GAAG,CAAA;CAAE,EAClE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GACjB,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC1B,wBAAgB,OAAO,CAAC,CAAC,SAAS,cAAc,EAC9C,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC5B,CAAC,CAAC;AAEL,wBAAgB,OAAO,CACrB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,QAAQ,SAAS,YAAY,GAAG,EAAE,EAElC,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,GACnC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAElC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,GACpC,GAAG,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * useForm — React хук для подключения к ProxyStore
2
+ * useForm — the React hook that connects a component to a ProxyStore.
3
3
  *
4
- * Возвращает реактивный прокси. Доступ к полям через точку это и есть
5
- * подписка: компонент перерендерится только при изменении прочитанных полей.
4
+ * Returns a reactive proxy. Dot access to fields IS the subscription: the
5
+ * component re-renders only when a field it actually read changes.
6
6
  *
7
7
  * @example
8
8
  * ```tsx
@@ -22,60 +22,60 @@
22
22
  * );
23
23
  * }
24
24
  *
25
- * // Дочерний компонент с useForm для независимой подписки:
25
+ * // Child component with its own useForm for an independent subscription:
26
26
  * function PassportSection({ passport }) {
27
- * const p = useForm(passport); // ← принимает поддерево!
27
+ * const p = useForm(passport); // ← accepts a subtree!
28
28
  * if (!p.isVisible) return null;
29
29
  * return <NumberField field={p.number} />;
30
30
  * }
31
31
  * ```
32
32
  *
33
- * Как работает:
34
- * 1. useSyncExternalStore подписывается на глобальные изменения store.
35
- * 2. getSnapshot сравнивает версии только прочитанных узлов
36
- * re-render происходит только если изменилось то, что читалось.
37
- * 3. store.proxy оборачивается в tracking proxy. Каждый GET записывает
38
- * config-ноду в tracked set. getSnapshot проверяет только эти ноды.
39
- * 4. Запись `form.email.value = "X"` → store.proxy.email.value = "X" →
33
+ * How it works:
34
+ * 1. useSyncExternalStore subscribes to global store changes.
35
+ * 2. getSnapshot compares versions of only the nodes that were read
36
+ * a re-render happens only when something that was read changed.
37
+ * 3. store.proxy is wrapped in a tracking proxy. Every GET records the
38
+ * config node into a tracked set. getSnapshot checks only those nodes.
39
+ * 4. A write `form.email.value = "X"` → store.proxy.email.value = "X" →
40
40
  * SET trap → formatter → validate → recompute → notify → re-render
41
- * (только компонентов, которые читали изменившиеся ноды).
41
+ * (only of components that read the changed nodes).
42
42
  *
43
- * Перегрузки:
44
- * - useForm(store) — основной вариант, передаём ProxyStore
45
- * - useForm(proxySubtree) — принимает tracking proxy поддерево (из пропса),
46
- * создаёт **независимый** tracking для этого компонента
47
- * - useForm(entityProxy, templateSelector) — привязка entity к template.
48
- * entityProxy из list.items/list.getById. templateSelector = (s) => s.editForm.
49
- * Вызывает entityRegistry.bind на mount, unbind на unmount.
43
+ * Overloads:
44
+ * - useForm(store) — the main form, pass the ProxyStore
45
+ * - useForm(proxySubtree) — accepts a tracking-proxy subtree (from a prop),
46
+ * creating an **independent** tracking scope for this component
47
+ * - useForm(entityProxy, templateSelector) — binds an entity to a template.
48
+ * entityProxy comes from list.items/list.getById. templateSelector = (s) => s.editForm.
49
+ * Calls entityRegistry.bind on mount, unbind on unmount.
50
50
  */
51
51
  import { useSyncExternalStore, useCallback, useRef, useMemo, useEffect } from "react";
52
52
  import { createTrackingProxy, unwrapTrackingProxy, } from "./createTrackingProxy";
53
53
  import { ENTITY_ID, STORE_REF, CONFIG_NODE } from "../store/constants";
54
54
  import { buildEntityProjectionProxy } from "../store/buildProxy/buildEntityProjectionProxy";
55
55
  /**
56
- * Извлечь store и sourceProxy из аргумента useForm.
57
- * Поддерживает ProxyStore напрямую и tracking proxy поддеревья.
56
+ * Extract the store and sourceProxy from the useForm argument.
57
+ * Supports a ProxyStore directly and tracking-proxy subtrees.
58
58
  */
59
59
  function resolveInput(input) {
60
- // Если это tracking proxy (поддерево переданное пропсом)
60
+ // A tracking proxy (a subtree passed as a prop)
61
61
  const unwrapped = unwrapTrackingProxy(input);
62
62
  if (unwrapped)
63
63
  return unwrapped;
64
- // Сырой GroupProxyNode из store.proxy.someGroup НЕ подходит.
65
- // Пользователь должен передавать либо ProxyStore (new Palistor()),
66
- // либо tracking proxy (из пропса родительского useForm).
64
+ // A raw GroupProxyNode from store.proxy.someGroup is NOT acceptable.
65
+ // The user must pass either a ProxyStore (new Palistor()) or a tracking
66
+ // proxy (from a parent useForm's prop).
67
67
  if (input != null && typeof input === "object" && input[CONFIG_NODE]) {
68
- throw new Error("useForm: получен сырой proxy-узел стора (store.proxy.someGroup). " +
69
- "Это не допустимо.\n\n" +
70
- "Правильный способ:\n" +
71
- " 1. Получите tracking proxy через useForm(store):\n" +
68
+ throw new Error("useForm: received a raw store proxy node (store.proxy.someGroup). " +
69
+ "This is not allowed.\n\n" +
70
+ "The correct way:\n" +
71
+ " 1. Get a tracking proxy via useForm(store):\n" +
72
72
  " const form = useForm(store);\n" +
73
- " 2. Передайте поддерево как проп дочернему компоненту:\n" +
73
+ " 2. Pass the subtree as a prop to the child component:\n" +
74
74
  " <Child section={form.someGroup} />\n" +
75
- " 3. В дочернем компоненте вызовите useForm(props.section).\n\n" +
76
- "Нельзя передавать store.proxy или его дочерние узлы напрямую в useForm.");
75
+ " 3. In the child component call useForm(props.section).\n\n" +
76
+ "Never pass store.proxy or its child nodes directly into useForm.");
77
77
  }
78
- // Иначе это ProxyStore — берём store.proxy как sourceProxy
78
+ // Otherwise it's a ProxyStore — use store.proxy as the sourceProxy
79
79
  return { store: input, sourceProxy: input.proxy };
80
80
  }
81
81
  export function useForm(input, templateSelector) {
@@ -114,7 +114,7 @@ export function useForm(input, templateSelector) {
114
114
  const sourceProxy = isEntityMode
115
115
  ? entityMetaRef.current.entityProxy
116
116
  : stdSourceProxy;
117
- // ─── Tracking state (per-component, стабильные ref-ы) ────────────────────
117
+ // ─── Tracking state (per-component, stable refs) ─────────────────────────
118
118
  const refsRef = useRef(null);
119
119
  if (!refsRef.current) {
120
120
  refsRef.current = {
@@ -138,16 +138,16 @@ export function useForm(input, templateSelector) {
138
138
  const meta = entityMetaRef.current;
139
139
  if (!meta)
140
140
  return;
141
- // Привязываем entity к template — регистрируем, что этот шаблон сейчас отображает данную entity
141
+ // Bind the entity to the template — register that this template is currently displaying it
142
142
  meta.entityStore.entityRegistry.bind(meta.entityId, meta.templateNode);
143
- // Запускаем resolve на уровне template, если он ещё не выполнялся для этой entity+template пары
143
+ // Run the template-level resolve unless it already ran for this entity+template pair
144
144
  if (!meta.entityStore.entityRegistry.isResolved(meta.entityId, meta.templateNode)) {
145
145
  meta.entityStore.resolveManager.triggerEntityTemplateResolve(meta.entityId, meta.templateNode, meta.entityProxy);
146
146
  }
147
147
  // Per-field resolves are now triggered lazily from the entity leaf proxy GET trap
148
148
  // (on first access to .value or .loading) — no eager loop needed here.
149
149
  return () => {
150
- // При размонтировании отвязываем entity от template — шаблон больше не отображает эту entity
150
+ // On unmount unbind the entity from the template — it no longer displays this entity
151
151
  meta.entityStore.entityRegistry.unbind(meta.entityId, meta.templateNode);
152
152
  };
153
153
  }, []); // bind once on mount, unbind on unmount
@@ -1 +1 @@
1
- {"version":3,"file":"useForm.js","sourceRoot":"","sources":["../../react/useForm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useForm.js","sourceRoot":"","sources":["../../react/useForm.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * usePersist — React хук для подключения персистенции к ProxyStore.
2
+ * usePersist — React hook wiring persistence into a ProxyStore.
3
3
  *
4
- * Регистрирует драйвер и ключ при маунте, отключает при анмаунте.
5
- * Позволяет задавать ключ, который известен только в React-контексте
6
- * (например, из роутера или пропсов).
4
+ * Registers the driver and key on mount, disconnects on unmount.
5
+ * Lets you provide a key that is only known in the React context
6
+ * (e.g. from the router or props).
7
7
  *
8
8
  * @example
9
9
  * ```tsx
@@ -12,7 +12,7 @@
12
12
  * import { paymentStore } from "./config/appConfig";
13
13
  *
14
14
  * function PaymentPage({ orderId }: { orderId: string }) {
15
- * // Ключ зависит от orderId — становится известен только в React
15
+ * // The key depends on orderId — known only inside React
16
16
  * usePersist(paymentStore, {
17
17
  * key: `payment-${orderId}`,
18
18
  * driver: localStorageDriver,
@@ -27,19 +27,19 @@
27
27
  import type { ProxyStore } from "../store/store";
28
28
  import type { PersistOptions } from "../store/persist/types";
29
29
  /**
30
- * Подключает персистенцию к ProxyStore из React-компонента.
30
+ * Wires persistence into a ProxyStore from a React component.
31
31
  *
32
- * При маунте:
33
- * - Вызывает `store.persist.enable(options)` — гидратация + auto-save.
32
+ * On mount:
33
+ * - Calls `store.persist.enable(options)` — hydration + auto-save.
34
34
  *
35
- * При анмаунте:
36
- * - Вызывает `store.persist.flush()` (финальное сохранение).
37
- * - Вызывает `store.persist.disable()` — отписка.
35
+ * On unmount:
36
+ * - Calls `store.persist.flush()` (final save).
37
+ * - Calls `store.persist.disable()` — unsubscribes.
38
38
  *
39
- * При смене ключа переподключается.
39
+ * Reconnects when the key changes.
40
40
  *
41
- * @param store — ProxyStore, созданный через new Palistor()
42
- * @param options — опции персистенции (key, driver, debounce, …)
41
+ * @param store — a ProxyStore created via new Palistor()
42
+ * @param options — persistence options (key, driver, debounce, …)
43
43
  */
44
44
  export declare function usePersist<TConfig extends Record<string, any>>(store: ProxyStore<TConfig>, options: PersistOptions): void;
45
45
  //# sourceMappingURL=usePersist.d.ts.map
@@ -1,9 +1,9 @@
1
1
  /**
2
- * usePersist — React хук для подключения персистенции к ProxyStore.
2
+ * usePersist — React hook wiring persistence into a ProxyStore.
3
3
  *
4
- * Регистрирует драйвер и ключ при маунте, отключает при анмаунте.
5
- * Позволяет задавать ключ, который известен только в React-контексте
6
- * (например, из роутера или пропсов).
4
+ * Registers the driver and key on mount, disconnects on unmount.
5
+ * Lets you provide a key that is only known in the React context
6
+ * (e.g. from the router or props).
7
7
  *
8
8
  * @example
9
9
  * ```tsx
@@ -12,7 +12,7 @@
12
12
  * import { paymentStore } from "./config/appConfig";
13
13
  *
14
14
  * function PaymentPage({ orderId }: { orderId: string }) {
15
- * // Ключ зависит от orderId — становится известен только в React
15
+ * // The key depends on orderId — known only inside React
16
16
  * usePersist(paymentStore, {
17
17
  * key: `payment-${orderId}`,
18
18
  * driver: localStorageDriver,
@@ -26,34 +26,34 @@
26
26
  */
27
27
  import { useEffect, useRef } from "react";
28
28
  /**
29
- * Подключает персистенцию к ProxyStore из React-компонента.
29
+ * Wires persistence into a ProxyStore from a React component.
30
30
  *
31
- * При маунте:
32
- * - Вызывает `store.persist.enable(options)` — гидратация + auto-save.
31
+ * On mount:
32
+ * - Calls `store.persist.enable(options)` — hydration + auto-save.
33
33
  *
34
- * При анмаунте:
35
- * - Вызывает `store.persist.flush()` (финальное сохранение).
36
- * - Вызывает `store.persist.disable()` — отписка.
34
+ * On unmount:
35
+ * - Calls `store.persist.flush()` (final save).
36
+ * - Calls `store.persist.disable()` — unsubscribes.
37
37
  *
38
- * При смене ключа переподключается.
38
+ * Reconnects when the key changes.
39
39
  *
40
- * @param store — ProxyStore, созданный через new Palistor()
41
- * @param options — опции персистенции (key, driver, debounce, …)
40
+ * @param store — a ProxyStore created via new Palistor()
41
+ * @param options — persistence options (key, driver, debounce, …)
42
42
  */
43
43
  export function usePersist(store, options) {
44
- // Храним options в ref, чтобы не пересоздавать эффект при каждом рендере
44
+ // Keep options in a ref so the effect isn't recreated on every render
45
45
  const optionsRef = useRef(options);
46
46
  optionsRef.current = options;
47
47
  useEffect(() => {
48
48
  const opts = optionsRef.current;
49
- // Включаем persist (hydrate + auto-save)
49
+ // Enable persist (hydrate + auto-save)
50
50
  store.persist.enable(opts);
51
51
  return () => {
52
- // Финальное сохранение перед размонтированием
52
+ // Final save before unmount
53
53
  store.persist.flush();
54
54
  store.persist.disable();
55
55
  };
56
- // Переподключение при смене store или ключа
56
+ // Reconnect when the store or key changes
57
57
  // eslint-disable-next-line react-hooks/exhaustive-deps
58
58
  }, [store, options.key, options.driver]);
59
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"usePersist.js","sourceRoot":"","sources":["../../react/usePersist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAI1C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,UAAU,CACxB,KAA0B,EAC1B,OAAuB;IAEvB,yEAAyE;IACzE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;QAEhC,yCAAyC;QACzC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE3B,OAAO,GAAG,EAAE;YACV,8CAA8C;YAC9C,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC,CAAC;QACF,4CAA4C;QAC5C,uDAAuD;IACzD,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"usePersist.js","sourceRoot":"","sources":["../../react/usePersist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAI1C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,UAAU,CACxB,KAA0B,EAC1B,OAAuB;IAEvB,sEAAsE;IACtE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;QAEhC,uCAAuC;QACvC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE3B,OAAO,GAAG,EAAE;YACV,4BAA4B;YAC5B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC,CAAC;QACF,0CAA0C;QAC1C,uDAAuD;IACzD,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3C,CAAC"}
@@ -1,12 +1,12 @@
1
1
  /**
2
- * useStoreContext — регистрирует нереактивный контекст в ProxyStore.
2
+ * useStoreContext — registers non-reactive context with a ProxyStore.
3
3
  *
4
- * Контекст доступен во всех callback-ах (resolve.resolver, onSubmit, onChange, …)
5
- * через `store.context`. Не является частью формыне попадает в
4
+ * The context is available in all callbacks (resolve.resolver, onSubmit,
5
+ * onChange, …) via `store.context`. Not part of the form excluded from
6
6
  * getValues(), submit, persist.
7
7
  *
8
- * Используется для глобальных переменных (accountId, tenant, …),
9
- * которые нужны в запросах, но не являются полями формы.
8
+ * Used for global variables (accountId, tenant, …) that requests need but
9
+ * that are not form fields.
10
10
  *
11
11
  * @example
12
12
  * ```tsx
@@ -14,13 +14,13 @@
14
14
  * import { paymentStore } from './config/appConfig';
15
15
  *
16
16
  * function Layout({ children }: { children: React.ReactNode }) {
17
- * const accountId = useAccountId(); // из auth-провайдера
17
+ * const accountId = useAccountId(); // from the auth provider
18
18
  * useStoreContext(paymentStore, { accountId });
19
19
  * return <>{children}</>;
20
20
  * }
21
21
  * ```
22
22
  *
23
- * В конфиге:
23
+ * In the config:
24
24
  * ```ts
25
25
  * resolve: {
26
26
  * resolver: async (values, store) => {
@@ -31,12 +31,12 @@
31
31
  */
32
32
  import type { ProxyStore } from "../store/store";
33
33
  /**
34
- * Регистрирует нереактивный контекст в ProxyStore.
34
+ * Registers non-reactive context with a ProxyStore.
35
35
  *
36
- * При изменении `ctx` — мержит новые ключи в существующий контекст.
36
+ * When `ctx` changes merges the new keys into the existing context.
37
37
  *
38
- * @param store — ProxyStore, созданный через new Palistor()
39
- * @param ctx — объект с произвольными данными (accountId, tenant, …)
38
+ * @param store — a ProxyStore created via new Palistor()
39
+ * @param ctx — an object with arbitrary data (accountId, tenant, …)
40
40
  */
41
41
  export declare function useStoreContext<TConfig extends Record<string, any>>(store: ProxyStore<TConfig>, ctx: Record<string, unknown>): void;
42
42
  //# sourceMappingURL=useStoreContext.d.ts.map
@@ -1,12 +1,12 @@
1
1
  /**
2
- * useStoreContext — регистрирует нереактивный контекст в ProxyStore.
2
+ * useStoreContext — registers non-reactive context with a ProxyStore.
3
3
  *
4
- * Контекст доступен во всех callback-ах (resolve.resolver, onSubmit, onChange, …)
5
- * через `store.context`. Не является частью формыне попадает в
4
+ * The context is available in all callbacks (resolve.resolver, onSubmit,
5
+ * onChange, …) via `store.context`. Not part of the form excluded from
6
6
  * getValues(), submit, persist.
7
7
  *
8
- * Используется для глобальных переменных (accountId, tenant, …),
9
- * которые нужны в запросах, но не являются полями формы.
8
+ * Used for global variables (accountId, tenant, …) that requests need but
9
+ * that are not form fields.
10
10
  *
11
11
  * @example
12
12
  * ```tsx
@@ -14,13 +14,13 @@
14
14
  * import { paymentStore } from './config/appConfig';
15
15
  *
16
16
  * function Layout({ children }: { children: React.ReactNode }) {
17
- * const accountId = useAccountId(); // из auth-провайдера
17
+ * const accountId = useAccountId(); // from the auth provider
18
18
  * useStoreContext(paymentStore, { accountId });
19
19
  * return <>{children}</>;
20
20
  * }
21
21
  * ```
22
22
  *
23
- * В конфиге:
23
+ * In the config:
24
24
  * ```ts
25
25
  * resolve: {
26
26
  * resolver: async (values, store) => {
@@ -31,12 +31,12 @@
31
31
  */
32
32
  import { useEffect } from "react";
33
33
  /**
34
- * Регистрирует нереактивный контекст в ProxyStore.
34
+ * Registers non-reactive context with a ProxyStore.
35
35
  *
36
- * При изменении `ctx` — мержит новые ключи в существующий контекст.
36
+ * When `ctx` changes merges the new keys into the existing context.
37
37
  *
38
- * @param store — ProxyStore, созданный через new Palistor()
39
- * @param ctx — объект с произвольными данными (accountId, tenant, …)
38
+ * @param store — a ProxyStore created via new Palistor()
39
+ * @param ctx — an object with arbitrary data (accountId, tenant, …)
40
40
  */
41
41
  export function useStoreContext(store, ctx) {
42
42
  useEffect(() => {
@@ -1,9 +1,9 @@
1
1
  /**
2
- * useTranslator — регистрирует функцию перевода в ProxyStore.
2
+ * useTranslator — registers a translation function with a ProxyStore.
3
3
  *
4
- * Вызывайте один раз в layout/провайдере. После регистрации все компоненты,
5
- * использующие useForm, автоматически получат переведённые
6
- * label / placeholder / description (если в конфиге они заданы как функции).
4
+ * Call it once in a layout/provider. Once registered, every component using
5
+ * useForm automatically receives translated label / placeholder / description
6
+ * (when the config defines them as functions).
7
7
  *
8
8
  * @example
9
9
  * ```tsx
@@ -18,20 +18,20 @@
18
18
  * }
19
19
  * ```
20
20
  *
21
- * Без translator — label/placeholder возвращают ключи перевода как есть
22
- * (fallback, удобно для тестов и SSR без i18n).
21
+ * Without a translator — label/placeholder return the translation keys as-is
22
+ * (a fallback, convenient for tests and SSR without i18n).
23
23
  */
24
24
  import type { ProxyStore } from "../store/store";
25
25
  import type { TranslateFn } from "../store/store/types";
26
26
  /**
27
- * Регистрирует функцию перевода в ProxyStore.
27
+ * Registers a translation function with a ProxyStore.
28
28
  *
29
- * При смене `translator` (например, при смене локали) —
30
- * все подписанные через useForm компоненты перерендерятся
31
- * с актуальными переводами.
29
+ * When `translator` changes (e.g. on a locale switch) —
30
+ * all components subscribed via useForm re-render with
31
+ * up-to-date translations.
32
32
  *
33
- * @param store — ProxyStore, созданный через new Palistor()
34
- * @param translator — функция перевода (next-intl `t`, i18next `t`, …)
33
+ * @param store — a ProxyStore created via new Palistor()
34
+ * @param translator — translation function (next-intl `t`, i18next `t`, …)
35
35
  */
36
36
  export declare function useTranslator<TConfig extends Record<string, any>>(store: ProxyStore<TConfig>, translator: TranslateFn): void;
37
37
  //# sourceMappingURL=useTranslator.d.ts.map