@reformer/core 11.0.0-beta.1 → 11.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/README.md +90 -68
  2. package/dist/behaviors-value-D05z3my6.js +109 -0
  3. package/dist/behaviors.d.ts +1 -1
  4. package/dist/behaviors.js +376 -211
  5. package/dist/create-model-DPSG3I0O.js +30 -0
  6. package/dist/date-utils-90-qZbse.js +43 -0
  7. package/dist/en-HP8XEych.js +44 -0
  8. package/dist/form/aggregate-signals.d.ts +21 -63
  9. package/dist/form/behaviors/collections.d.ts +84 -0
  10. package/dist/form/behaviors/context.d.ts +56 -0
  11. package/dist/form/behaviors/index.d.ts +30 -0
  12. package/dist/form/behaviors/internals.d.ts +41 -0
  13. package/dist/form/{behaviors-node.d.ts → behaviors/node.d.ts} +28 -5
  14. package/dist/form/behaviors/operators.d.ts +59 -0
  15. package/dist/form/behaviors/schema-operators.d.ts +83 -0
  16. package/dist/form/behaviors/types.d.ts +37 -0
  17. package/dist/form/create-form.d.ts +59 -70
  18. package/dist/form/flow/flow.d.ts +87 -0
  19. package/dist/form/form-bundle.d.ts +153 -0
  20. package/dist/form/form-level.d.ts +121 -0
  21. package/dist/form/form-proxy-builder.d.ts +6 -22
  22. package/dist/form/index.d.ts +23 -24
  23. package/dist/form/nodes/form-array-node.d.ts +100 -0
  24. package/dist/form/nodes/form-control-node.d.ts +73 -0
  25. package/dist/form/nodes/form-group-node.d.ts +66 -0
  26. package/dist/form/nodes/node-kind.d.ts +29 -0
  27. package/dist/form/nodes/state/availability.d.ts +6 -0
  28. package/dist/form/nodes/state/component.d.ts +6 -0
  29. package/dist/form/nodes/state/index.d.ts +12 -0
  30. package/dist/form/nodes/state/interaction.d.ts +13 -0
  31. package/dist/form/nodes/state/issues.d.ts +9 -0
  32. package/dist/form/nodes/state/pending.d.ts +6 -0
  33. package/dist/form/schema/compile.d.ts +59 -0
  34. package/dist/form/schema/compiled.d.ts +143 -0
  35. package/dist/form/schema/row-key.d.ts +11 -0
  36. package/dist/form/schema-controller.d.ts +159 -0
  37. package/dist/form/schema-subtree.d.ts +28 -0
  38. package/dist/form/signal-node-registry.d.ts +27 -22
  39. package/dist/form/submission.d.ts +93 -0
  40. package/dist/form/type-guards.d.ts +14 -73
  41. package/dist/form/types/contracts.d.ts +21 -85
  42. package/dist/form/types/field-config.d.ts +27 -0
  43. package/dist/form/types/index.d.ts +5 -57
  44. package/dist/form/types/nodes.d.ts +159 -0
  45. package/dist/form/types/schema-node.d.ts +147 -46
  46. package/dist/form/types/validation-schema.d.ts +25 -17
  47. package/dist/form/validation/context.d.ts +67 -0
  48. package/dist/form/validation/index.d.ts +24 -28
  49. package/dist/form/validation/operators.d.ts +101 -0
  50. package/dist/form/validation/run.d.ts +120 -0
  51. package/dist/form/validation/strategy.d.ts +89 -0
  52. package/dist/form/validation/types.d.ts +83 -0
  53. package/dist/form/validators/date-utils.d.ts +42 -0
  54. package/dist/form/validators/email.d.ts +23 -0
  55. package/dist/form/{validation/validators → validators}/file-type.d.ts +10 -10
  56. package/dist/form/{validation/validators → validators}/file-utils.d.ts +3 -2
  57. package/dist/form/validators/future-date.d.ts +23 -0
  58. package/dist/form/{validation/validators → validators}/index.d.ts +7 -4
  59. package/dist/form/validators/integer.d.ts +22 -0
  60. package/dist/form/validators/is-date.d.ts +24 -0
  61. package/dist/form/validators/is-number.d.ts +25 -0
  62. package/dist/form/validators/max-age.d.ts +28 -0
  63. package/dist/form/validators/max-date.d.ts +25 -0
  64. package/dist/form/{validation/validators → validators}/max-file-size.d.ts +10 -10
  65. package/dist/form/validators/max-files.d.ts +26 -0
  66. package/dist/form/validators/max-length.d.ts +33 -0
  67. package/dist/form/validators/max-total-file-size.d.ts +26 -0
  68. package/dist/form/validators/max.d.ts +26 -0
  69. package/dist/form/validators/min-age.d.ts +27 -0
  70. package/dist/form/validators/min-date.d.ts +25 -0
  71. package/dist/form/{validation/validators → validators}/min-file-size.d.ts +10 -10
  72. package/dist/form/validators/min-files.d.ts +27 -0
  73. package/dist/form/validators/min-length.d.ts +33 -0
  74. package/dist/form/validators/min.d.ts +26 -0
  75. package/dist/form/validators/multiple-of.d.ts +25 -0
  76. package/dist/form/validators/non-negative.d.ts +22 -0
  77. package/dist/form/validators/non-zero.d.ts +22 -0
  78. package/dist/form/validators/past-date.d.ts +23 -0
  79. package/dist/form/validators/pattern.d.ts +26 -0
  80. package/dist/form/{validation/validators → validators}/phone.d.ts +11 -11
  81. package/dist/form/validators/required.d.ts +29 -0
  82. package/dist/form/validators/url.d.ts +45 -0
  83. package/dist/form/validators/validation-issue.d.ts +8 -0
  84. package/dist/i18n/descriptor.d.ts +54 -0
  85. package/dist/i18n/en.json.d.ts +49 -0
  86. package/dist/i18n/loader.d.ts +71 -0
  87. package/dist/i18n/locale-store.d.ts +46 -0
  88. package/dist/i18n/locale.d.ts +90 -0
  89. package/dist/i18n/message-format.d.ts +136 -0
  90. package/dist/i18n/resolve-localized.d.ts +17 -0
  91. package/dist/i18n/ru.json.d.ts +49 -0
  92. package/dist/i18n/translator.d.ts +61 -0
  93. package/dist/i18n/validation-message.d.ts +53 -0
  94. package/dist/i18n.d.ts +26 -0
  95. package/dist/i18n.js +86 -0
  96. package/dist/index.d.ts +17 -5
  97. package/dist/index.js +942 -2601
  98. package/dist/loader-BWkigpVe.js +52 -0
  99. package/dist/locale/en.d.ts +2 -0
  100. package/dist/locale/en.js +5 -0
  101. package/dist/locale/en.json +45 -0
  102. package/dist/locale/index.d.ts +18 -0
  103. package/dist/locale/ru.d.ts +2 -0
  104. package/dist/locale/ru.js +44 -0
  105. package/dist/locale/ru.json +45 -0
  106. package/dist/locale-CG54AU2Q.js +219 -0
  107. package/dist/locale.d.ts +2 -0
  108. package/dist/locale.js +9 -0
  109. package/dist/{state → model}/behaviors-value.d.ts +24 -6
  110. package/dist/{state/form-model.d.ts → model/create-model.d.ts} +18 -4
  111. package/dist/{state → model}/derived-registry.d.ts +1 -1
  112. package/dist/model/index.d.ts +42 -0
  113. package/dist/model/model-nodes.d.ts +190 -0
  114. package/dist/model/model-signals-proxy.d.ts +63 -0
  115. package/dist/model/model-value-proxy.d.ts +84 -0
  116. package/dist/{state → model}/safe-effect.d.ts +50 -2
  117. package/dist/model/types.d.ts +239 -0
  118. package/dist/model.d.ts +2 -0
  119. package/dist/model.js +27 -0
  120. package/dist/node-kind-C-r6ZMdo.js +15 -0
  121. package/dist/platforms/react/field-binding/field-adapter.d.ts +87 -0
  122. package/dist/platforms/react/field-binding/field-handle.d.ts +53 -0
  123. package/dist/platforms/react/form-bundle-context.d.ts +27 -0
  124. package/dist/{form → platforms/react}/hooks/types.d.ts +58 -36
  125. package/dist/platforms/react/hooks/use-form-bundle.d.ts +41 -0
  126. package/dist/platforms/react/hooks/use-form-flow.d.ts +40 -0
  127. package/dist/{form → platforms/react}/hooks/use-form-validation.d.ts +13 -7
  128. package/dist/{form → platforms/react}/hooks/useArrayLength.d.ts +6 -6
  129. package/dist/{form → platforms/react}/hooks/useFormControl.d.ts +7 -9
  130. package/dist/{form → platforms/react}/hooks/useFormControlValue.d.ts +18 -18
  131. package/dist/{form → platforms/react}/hooks/useSignalSubscription.d.ts +9 -1
  132. package/dist/platforms/react/i18n/context.d.ts +18 -0
  133. package/dist/platforms/react/i18n/hooks.d.ts +65 -0
  134. package/dist/platforms/react/i18n/provider.d.ts +59 -0
  135. package/dist/platforms/react/index.d.ts +30 -0
  136. package/dist/react.d.ts +22 -0
  137. package/dist/react.js +505 -0
  138. package/dist/runtime-token.d.ts +1 -2
  139. package/dist/safe-effect-BazLOv1g.js +669 -0
  140. package/dist/schema-controller-CpiO2JoK.js +143 -0
  141. package/dist/signals.d.ts +15 -9
  142. package/dist/signals.js +11 -6
  143. package/dist/strategy-DzvnsWLh.js +375 -0
  144. package/dist/type-guards-D-N_5Ddh.js +19 -0
  145. package/dist/validation-issue-B9mjI8jz.js +7 -0
  146. package/dist/validation-message-Ced9MGxs.js +194 -0
  147. package/dist/validation.d.ts +1 -1
  148. package/dist/validation.js +11 -165
  149. package/dist/validators/email.d.ts +1 -1
  150. package/dist/validators/email.js +5 -8
  151. package/dist/validators/future-date.d.ts +1 -1
  152. package/dist/validators/future-date.js +10 -13
  153. package/dist/validators/integer.d.ts +1 -1
  154. package/dist/validators/integer.js +4 -7
  155. package/dist/validators/is-date.d.ts +1 -1
  156. package/dist/validators/is-date.js +5 -8
  157. package/dist/validators/is-number.d.ts +1 -1
  158. package/dist/validators/is-number.js +4 -7
  159. package/dist/validators/max-age.d.ts +1 -1
  160. package/dist/validators/max-age.js +8 -12
  161. package/dist/validators/max-date.d.ts +1 -1
  162. package/dist/validators/max-date.js +10 -13
  163. package/dist/validators/max-length.d.ts +1 -1
  164. package/dist/validators/max-length.js +7 -10
  165. package/dist/validators/max.d.ts +1 -1
  166. package/dist/validators/max.js +4 -7
  167. package/dist/validators/min-age.d.ts +1 -1
  168. package/dist/validators/min-age.js +10 -11
  169. package/dist/validators/min-date.d.ts +1 -1
  170. package/dist/validators/min-date.js +8 -11
  171. package/dist/validators/min-length.d.ts +1 -1
  172. package/dist/validators/min-length.js +4 -7
  173. package/dist/validators/min.d.ts +1 -1
  174. package/dist/validators/min.js +4 -7
  175. package/dist/validators/multiple-of.d.ts +1 -1
  176. package/dist/validators/multiple-of.js +11 -10
  177. package/dist/validators/non-negative.d.ts +1 -1
  178. package/dist/validators/non-negative.js +2 -5
  179. package/dist/validators/non-zero.d.ts +1 -1
  180. package/dist/validators/non-zero.js +4 -7
  181. package/dist/validators/past-date.d.ts +1 -1
  182. package/dist/validators/past-date.js +10 -13
  183. package/dist/validators/pattern.d.ts +1 -1
  184. package/dist/validators/pattern.js +5 -8
  185. package/dist/validators/phone.d.ts +1 -1
  186. package/dist/validators/phone.js +10 -11
  187. package/dist/validators/required.d.ts +1 -1
  188. package/dist/validators/required.js +4 -7
  189. package/dist/validators/url.d.ts +1 -1
  190. package/dist/validators/url.js +48 -17
  191. package/dist/validators.d.ts +1 -1
  192. package/dist/validators.js +86 -108
  193. package/docs/llms/01-api-reference.md +60 -34
  194. package/docs/llms/02-quick-start.md +112 -74
  195. package/docs/llms/03-api-signatures.md +369 -148
  196. package/docs/llms/04-common-patterns.md +58 -56
  197. package/docs/llms/05-common-mistakes.md +69 -44
  198. package/docs/llms/06-troubleshooting.md +14 -9
  199. package/docs/llms/07-complete-import.md +74 -43
  200. package/docs/llms/08-form-types.md +11 -4
  201. package/docs/llms/09-formschema.md +132 -84
  202. package/docs/llms/10-arrays.md +141 -61
  203. package/docs/llms/11-async-watchfield.md +2 -2
  204. package/docs/llms/13-multi-step.md +134 -63
  205. package/docs/llms/14-extended-mistakes.md +20 -17
  206. package/docs/llms/15-project-structure.md +224 -70
  207. package/docs/llms/16-ui-components.md +86 -46
  208. package/docs/llms/17-nonexistent-api.md +217 -32
  209. package/docs/llms/18-conditional-fields.md +71 -32
  210. package/docs/llms/19-reading-values.md +45 -4
  211. package/docs/llms/20-compute-vs-watch.md +25 -10
  212. package/docs/llms/21-array-operations.md +76 -26
  213. package/docs/llms/22-cycle-detection.md +1 -1
  214. package/docs/llms/23-copy-from.md +2 -2
  215. package/docs/llms/24-sync-fields.md +6 -5
  216. package/docs/llms/25-reset-when.md +14 -7
  217. package/docs/llms/26-transform-value.md +4 -4
  218. package/docs/llms/27-revalidate-when.md +16 -15
  219. package/docs/llms/28-submit-and-reset.md +278 -128
  220. package/docs/llms/29-async-preload.md +41 -31
  221. package/docs/llms/30-type-safety-recipes.md +105 -51
  222. package/docs/llms/31-async-validator-debounce.md +96 -53
  223. package/docs/llms/33-validation-strategy.md +178 -66
  224. package/docs/llms/34-i18n.md +298 -0
  225. package/docs/llms/35-unified-contract.md +309 -0
  226. package/docs/llms/36-issue-messages.md +284 -0
  227. package/docs/llms/37-compiled-schema.md +332 -0
  228. package/docs/llms/38-form-flow.md +396 -0
  229. package/llms-index.json +1 -0
  230. package/llms.txt +10690 -3089
  231. package/package.json +48 -9
  232. package/dist/behaviors-node-DGEFMTQu.js +0 -18
  233. package/dist/behaviors-value-C7dSEhCc.js +0 -134
  234. package/dist/date-utils-dTT_x_Be.js +0 -31
  235. package/dist/derived-registry-CluZCQ7U.js +0 -16
  236. package/dist/form/behaviors.d.ts +0 -133
  237. package/dist/form/error-handler.d.ts +0 -166
  238. package/dist/form/factories/index.d.ts +0 -6
  239. package/dist/form/factories/node-factory.d.ts +0 -188
  240. package/dist/form/form-submitter.d.ts +0 -121
  241. package/dist/form/nodes/array-node.d.ts +0 -276
  242. package/dist/form/nodes/field-node.d.ts +0 -294
  243. package/dist/form/nodes/form-node.d.ts +0 -326
  244. package/dist/form/nodes/group-node.d.ts +0 -284
  245. package/dist/form/nodes/model-array-node.d.ts +0 -121
  246. package/dist/form/status-machine.d.ts +0 -115
  247. package/dist/form/types/deep-schema.d.ts +0 -107
  248. package/dist/form/types/form-proxy.d.ts +0 -141
  249. package/dist/form/unique-id.d.ts +0 -45
  250. package/dist/form/validation/validators/date-utils.d.ts +0 -30
  251. package/dist/form/validation/validators/email.d.ts +0 -23
  252. package/dist/form/validation/validators/future-date.d.ts +0 -23
  253. package/dist/form/validation/validators/integer.d.ts +0 -22
  254. package/dist/form/validation/validators/is-date.d.ts +0 -23
  255. package/dist/form/validation/validators/is-number.d.ts +0 -24
  256. package/dist/form/validation/validators/max-age.d.ts +0 -25
  257. package/dist/form/validation/validators/max-date.d.ts +0 -25
  258. package/dist/form/validation/validators/max-files.d.ts +0 -26
  259. package/dist/form/validation/validators/max-length.d.ts +0 -27
  260. package/dist/form/validation/validators/max-total-file-size.d.ts +0 -26
  261. package/dist/form/validation/validators/max.d.ts +0 -25
  262. package/dist/form/validation/validators/min-age.d.ts +0 -25
  263. package/dist/form/validation/validators/min-date.d.ts +0 -25
  264. package/dist/form/validation/validators/min-files.d.ts +0 -26
  265. package/dist/form/validation/validators/min-length.d.ts +0 -27
  266. package/dist/form/validation/validators/min.d.ts +0 -25
  267. package/dist/form/validation/validators/multiple-of.d.ts +0 -24
  268. package/dist/form/validation/validators/non-negative.d.ts +0 -22
  269. package/dist/form/validation/validators/non-zero.d.ts +0 -22
  270. package/dist/form/validation/validators/past-date.d.ts +0 -23
  271. package/dist/form/validation/validators/pattern.d.ts +0 -33
  272. package/dist/form/validation/validators/required.d.ts +0 -32
  273. package/dist/form/validation/validators/url.d.ts +0 -43
  274. package/dist/form/validation-schema.d.ts +0 -106
  275. package/dist/form/validation-strategy.d.ts +0 -55
  276. package/dist/form/validators.d.ts +0 -11
  277. package/dist/form-model-DYCzGGKF.js +0 -286
  278. package/dist/state/index.d.ts +0 -31
  279. package/dist/state/subscription-manager.d.ts +0 -180
  280. package/dist/state/types.d.ts +0 -144
  281. package/dist/state.d.ts +0 -2
  282. package/dist/state.js +0 -21
  283. package/dist/subscription-manager-705bls97.js +0 -171
@@ -0,0 +1,53 @@
1
+ import { ValidationIssue } from '../form/types/contracts';
2
+ import { I18nHandle } from './translator';
3
+ /**
4
+ * Текст замечания в словаре формы: шаблон с параметрами либо функция.
5
+ *
6
+ * Шаблон — тот же формат сообщений, что в словарях локали: `{minLength}`, `plural`, `select`.
7
+ * Параметры в него приходят подготовленными: дата — по языку, массив — перечнем, размер файла —
8
+ * строкой с единицей. Число шаблон печатает как есть, без разрядов: «50 000 ₽» пишут готовым
9
+ * текстом либо функцией, которая форматирует число сама.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const byTemplate: IssueMessage = 'Не меньше {minLength} символов';
14
+ * const byFunction: IssueMessage = (params, i18n) => `Не меньше ${i18n.number(Number(params.min))} ₽`;
15
+ * ```
16
+ */
17
+ export type IssueMessage = string | ((params: Readonly<Record<string, unknown>>, i18n: I18nHandle) => string);
18
+ /**
19
+ * Словарь формы: код замечания → текст. Ключ — `code` замечания: встроенный (`required`) либо
20
+ * свой (`loanAmount.required`).
21
+ */
22
+ export type IssueMessages = Readonly<Record<string, IssueMessage>>;
23
+ /**
24
+ * Объявить словарь формы. Возвращает аргумент как есть — функция нужна типам: коды остаются
25
+ * литералами, а значения проверяются как {@link IssueMessage}.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * export const loanMessages = defineIssueMessages({
30
+ * 'loanAmount.required': 'Укажите сумму кредита',
31
+ * 'loanPurpose.minLength': 'Минимум {minLength} символов',
32
+ * 'carYear.max': (params) => `Не позднее ${String(params.max)}`,
33
+ * });
34
+ * ```
35
+ */
36
+ export declare function defineIssueMessages<const Messages extends IssueMessages>(messages: Messages): Messages;
37
+ /**
38
+ * Отображаемый текст замечания валидации. Порядок источников — в шапке модуля.
39
+ *
40
+ * @param issue - Замечание от правила: `code` и `params`.
41
+ * @param i18n - Ручка активной локали (`createI18n` / `useI18n`).
42
+ * @param messages - Словарь формы; его записи важнее словаря локали.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * resolveIssueMessage({ code: 'minLength', params: { minLength: 8 } }, i18n);
47
+ * // 'Enter at least 8 characters' · в русской локали — 'Не меньше 8 символов'
48
+ *
49
+ * resolveIssueMessage({ code: 'phone.required' }, i18n, { 'phone.required': 'Укажите телефон' });
50
+ * // 'Укажите телефон' — текст поля из словаря формы
51
+ * ```
52
+ */
53
+ export declare function resolveIssueMessage(issue: ValidationIssue, i18n: I18nHandle, messages?: IssueMessages): string;
package/dist/i18n.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Подпуть `@reformer/core/i18n` — локализация форм без React: объект локали, загрузка словарей,
3
+ * перевод и форматирование, тексты ошибок, описатели авторских подписей.
4
+ *
5
+ * Провайдер и хуки (`I18nProvider`, `useI18n`, `useMessages`, `useIssueMessage`) отдаёт вход
6
+ * `@reformer/core/react`. Из главной бочки `@reformer/core` этот модуль не реэкспортируется:
7
+ * канонический импорт один.
8
+ *
9
+ * @group i18n
10
+ * @module i18n
11
+ */
12
+ export { parseMessage, formatPattern, createMessageFormatter, MessageSyntaxError, } from './i18n/message-format';
13
+ export type { MessageNode, MessagePattern, MessageBranches, MessageValues, MessageFormatOptions, } from './i18n/message-format';
14
+ export { DEFAULT_LOCALE, extendLocale, validateLocale, messageArguments } from './i18n/locale';
15
+ export type { FormLocale, Messages, WeekStart, LocaleIssue } from './i18n/locale';
16
+ export { createLocaleLoader, fetchMessages, bundledLocaleSource } from './i18n/loader';
17
+ export type { LocaleLoader, LocaleSource, LocaleSourceResult } from './i18n/loader';
18
+ export { createLocaleStore } from './i18n/locale-store';
19
+ export type { LocaleLoad, LocaleStore, LocaleStoreState, LocaleStoreOptions, } from './i18n/locale-store';
20
+ export { createI18n, translateBuiltin } from './i18n/translator';
21
+ export type { I18nHandle } from './i18n/translator';
22
+ export { resolveIssueMessage, defineIssueMessages } from './i18n/validation-message';
23
+ export type { IssueMessage, IssueMessages } from './i18n/validation-message';
24
+ export { msg, defineMessages, isMessageDescriptor, MESSAGE_DESCRIPTOR } from './i18n/descriptor';
25
+ export type { MessageDescriptor, LocalizableText } from './i18n/descriptor';
26
+ export { resolveLocalized } from './i18n/resolve-localized';
package/dist/i18n.js ADDED
@@ -0,0 +1,86 @@
1
+ import { D as j, M as x, c as A, e as E, f as _, m as k, p as l, v as D } from "./locale-CG54AU2Q.js";
2
+ import { b as P, c as z, f as C } from "./loader-BWkigpVe.js";
3
+ import { a as R, c as T, d as $, r as q, t as w } from "./validation-message-Ced9MGxs.js";
4
+ import { isSignal as a } from "./signals.js";
5
+ const d = Symbol.for("reformer.i18n.message");
6
+ function g(e, r, t) {
7
+ return Object.freeze({
8
+ [d]: !0,
9
+ key: e,
10
+ ...r === void 0 ? {} : { values: r },
11
+ ...t === void 0 ? {} : { defaultMessage: t }
12
+ });
13
+ }
14
+ function m(e) {
15
+ return e !== null && typeof e == "object" && e[d] === !0;
16
+ }
17
+ function L(e) {
18
+ return { msg: (r, t) => g(r, t, e[r]) };
19
+ }
20
+ function u(e) {
21
+ const r = Object.getPrototypeOf(e);
22
+ return r === Object.prototype || r === null;
23
+ }
24
+ function p(e) {
25
+ if (a(e)) return !0;
26
+ const r = e;
27
+ return r.$$typeof !== void 0 || r.__path !== void 0 || r.__kind !== void 0;
28
+ }
29
+ function y(e) {
30
+ if (e === void 0) return;
31
+ const r = {};
32
+ for (const t of Object.keys(e)) {
33
+ const o = e[t];
34
+ r[t] = a(o) ? o.value : o;
35
+ }
36
+ return r;
37
+ }
38
+ function f(e, r, t) {
39
+ if (e === null || typeof e != "object") return e;
40
+ if (m(e))
41
+ return r.t(e.key, y(e.values), e.defaultMessage);
42
+ if (p(e) || t.has(e)) return e;
43
+ if (Array.isArray(e)) {
44
+ t.add(e);
45
+ let s = !1;
46
+ const c = e.map((n) => {
47
+ const i = f(n, r, t);
48
+ return i !== n && (s = !0), i;
49
+ });
50
+ return t.delete(e), s ? c : e;
51
+ }
52
+ if (!u(e)) return e;
53
+ t.add(e);
54
+ let o;
55
+ for (const s of Object.keys(e)) {
56
+ const c = e[s], n = f(c, r, t);
57
+ n !== c && (o ??= { ...e }, o[s] = n);
58
+ }
59
+ return t.delete(e), o ?? e;
60
+ }
61
+ function M(e, r) {
62
+ return f(e, r, /* @__PURE__ */ new Set());
63
+ }
64
+ export {
65
+ j as DEFAULT_LOCALE,
66
+ d as MESSAGE_DESCRIPTOR,
67
+ x as MessageSyntaxError,
68
+ P as bundledLocaleSource,
69
+ R as createI18n,
70
+ z as createLocaleLoader,
71
+ T as createLocaleStore,
72
+ A as createMessageFormatter,
73
+ $ as defineIssueMessages,
74
+ L as defineMessages,
75
+ E as extendLocale,
76
+ C as fetchMessages,
77
+ _ as formatPattern,
78
+ m as isMessageDescriptor,
79
+ k as messageArguments,
80
+ g as msg,
81
+ l as parseMessage,
82
+ q as resolveIssueMessage,
83
+ M as resolveLocalized,
84
+ w as translateBuiltin,
85
+ D as validateLocale
86
+ };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,23 @@
1
1
  /**
2
- * Публичный barrel `@reformer/core` — зонтик над модулями `model` (state) и `form`.
2
+ * Публичный barrel `@reformer/core` — зонтик над слоями `model` и `form`.
3
3
  *
4
- * Состав экспортов НЕ изменился при модуляризации (реорг в src/model + src/form): реализация
5
- * разложена по модулям, а этот barrel по-прежнему отдаёт единую поверхность.
4
+ * `model` — реактивная модель данных (сабпат `@reformer/core/model`); `form` — узлы, поведение и
5
+ * валидация поверх её сигналов. React здесь нет ни в рантайме, ни в типах: хуки, связка поля с
6
+ * контролом и React-привязки локализации живут в отдельном входе `@reformer/core/react`
7
+ * (`src/react.ts`), поэтому корень работает на сервере и с любым слоем представления.
8
+ *
9
+ * @module index
10
+ * @mergeModuleWith <project>
6
11
  */
7
12
  export * from './form/types/index';
8
- export * from './form/factories/index';
9
- export * from './state/index';
13
+ export { createModel, eachLeafSignal, eachValueSignal } from './model/create-model';
14
+ export { arrayOf } from './model/model-nodes';
15
+ export type { DeepPartial, FormModel, ModelArray, ModelArraySignals, ModelGroupSignals, ModelObject, ModelValue, ModelSignals, ModelApi, PathAwareSignal, } from './model/types';
16
+ export { isModelContainerSignal, isValueSignal } from './model/model-signals-proxy';
17
+ export { modelOf } from './model/model-value-proxy';
18
+ export type { ModelOf } from './model/model-value-proxy';
19
+ export type { BehaviorCleanup } from './model/behaviors-value';
20
+ export { markDerived, isDerived, unmarkDerived } from './model/derived-registry';
21
+ export { runOutsideEffect, safeCallback, safeDebouncedCallback } from './model/safe-effect';
10
22
  export * from './form/index';
11
23
  export { CORE_RUNTIME_TOKEN } from './runtime-token';