mlform 0.1.7 → 0.1.8

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 (218) hide show
  1. package/README.md +39 -12
  2. package/dist/builtins-DegwhFGA.js +3507 -0
  3. package/dist/builtins-ml-9qB2MOxt.js +51 -0
  4. package/dist/{design-system-CrrSGfFB.js → design-system-Dxx1Sh7r.js} +284 -268
  5. package/dist/errors-B3H1wRwj.js +8 -0
  6. package/dist/kit-CuRF6dhL.js +1847 -0
  7. package/dist/mlform/behaviors.mjs +32 -0
  8. package/dist/mlform/builtins-ml.mjs +3 -0
  9. package/dist/mlform/design-system.mjs +1 -1
  10. package/dist/mlform/kit.mjs +3 -3
  11. package/dist/mlform/presentation.mjs +2 -0
  12. package/dist/mlform/primitives.mjs +2 -2
  13. package/dist/mlform/runtime.mjs +5 -0
  14. package/dist/mlform/schema.mjs +102 -0
  15. package/dist/mlform/transport.mjs +2 -2
  16. package/dist/mlform.mjs +8 -4
  17. package/dist/presentation-CkQuYheR.js +200 -0
  18. package/dist/{primitives-BqjFDDhL.js → primitives-Duag8Lj0.js} +1367 -1312
  19. package/dist/runtime-DMjDVo0H.js +1824 -0
  20. package/dist/strings-CWwrrYzz.js +4 -0
  21. package/dist/{transport-A1RsnZhD.js → transport-CtVX8ZUT.js} +311 -336
  22. package/dist/types/src/behaviors/index.d.ts +3 -0
  23. package/dist/types/src/builtins-ml/index.d.ts +5 -0
  24. package/dist/types/src/design-system/runtime/fingerprint.d.ts +8 -0
  25. package/dist/types/src/design-system/runtime/host-observer.d.ts +1 -0
  26. package/dist/types/src/design-system/runtime/hydration-state.d.ts +13 -0
  27. package/dist/types/src/design-system/runtime/inherited-scheme.d.ts +5 -0
  28. package/dist/types/src/design-system/runtime/media.d.ts +19 -0
  29. package/dist/types/src/index.d.ts +10 -4
  30. package/dist/types/src/kit/accordion-root-styles.d.ts +1 -0
  31. package/dist/types/src/kit/accordion-root.d.ts +24 -0
  32. package/dist/types/src/kit/accordion.d.ts +2 -0
  33. package/dist/types/src/kit/constants.d.ts +29 -0
  34. package/dist/types/src/kit/defaults.d.ts +2 -2
  35. package/dist/types/src/kit/index.d.ts +6 -1
  36. package/dist/types/src/kit/layout-helpers.d.ts +29 -0
  37. package/dist/types/src/kit/layout-node-render.d.ts +18 -0
  38. package/dist/types/src/kit/layout-node-resolver.d.ts +3 -0
  39. package/dist/types/src/kit/layout-types.d.ts +124 -0
  40. package/dist/types/src/kit/layout-utils.d.ts +9 -0
  41. package/dist/types/src/kit/layout.d.ts +8 -0
  42. package/dist/types/src/kit/mount-types.d.ts +54 -0
  43. package/dist/types/src/kit/panel-nav.d.ts +9 -0
  44. package/dist/types/src/{questionnaire/primitives/components → kit}/step-indicator.d.ts +3 -3
  45. package/dist/types/src/kit/tabs-root-styles.d.ts +1 -0
  46. package/dist/types/src/kit/tabs-root.d.ts +24 -0
  47. package/dist/types/src/kit/tabs.d.ts +2 -0
  48. package/dist/types/src/kit/types.d.ts +4 -51
  49. package/dist/types/src/kit/view-layout-state.d.ts +14 -0
  50. package/dist/types/src/kit/view-navigation.d.ts +8 -0
  51. package/dist/types/src/kit/view-snapshot-cache.d.ts +14 -0
  52. package/dist/types/src/kit/view-snapshot.d.ts +15 -0
  53. package/dist/types/src/kit/view-types.d.ts +172 -0
  54. package/dist/types/src/kit/view.d.ts +8 -0
  55. package/dist/types/src/kit/wizard-constants.d.ts +19 -0
  56. package/dist/types/src/kit/wizard-root-styles.d.ts +1 -0
  57. package/dist/types/src/kit/wizard-root.d.ts +23 -0
  58. package/dist/types/src/kit/wizard.d.ts +2 -0
  59. package/dist/types/src/packs/default.d.ts +2 -0
  60. package/dist/types/src/packs/index.d.ts +3 -0
  61. package/dist/types/src/packs/ml.d.ts +2 -0
  62. package/dist/types/src/packs/shared.d.ts +25 -0
  63. package/dist/types/src/presentation/define-explanation-kind.d.ts +11 -0
  64. package/dist/types/src/presentation/define-field-kind.d.ts +18 -0
  65. package/dist/types/src/presentation/define-report-kind.d.ts +15 -0
  66. package/dist/types/src/presentation/index.d.ts +10 -0
  67. package/dist/types/src/presentation/register-kind.d.ts +6 -0
  68. package/dist/types/src/presentation/registry.d.ts +15 -0
  69. package/dist/types/src/presentation/types/explanation.d.ts +32 -0
  70. package/dist/types/src/presentation/types/field.d.ts +36 -0
  71. package/dist/types/src/presentation/types/report.d.ts +41 -0
  72. package/dist/types/src/primitives/base-explanation-element.d.ts +2 -1
  73. package/dist/types/src/primitives/base-field-element.d.ts +2 -1
  74. package/dist/types/src/primitives/base-report-element.d.ts +2 -1
  75. package/dist/types/src/primitives/components/explanation-panel.d.ts +4 -2
  76. package/dist/types/src/primitives/components/field-frame-feedback.d.ts +9 -0
  77. package/dist/types/src/primitives/components/field-frame-styles.d.ts +1 -0
  78. package/dist/types/src/primitives/components/field-frame.d.ts +5 -3
  79. package/dist/types/src/primitives/components/form-errors.d.ts +1 -1
  80. package/dist/types/src/primitives/components/form-root-presenters.d.ts +17 -0
  81. package/dist/types/src/primitives/components/form-root-state.d.ts +19 -0
  82. package/dist/types/src/primitives/components/form-root-styles.d.ts +1 -0
  83. package/dist/types/src/primitives/components/form-root-templates.d.ts +42 -0
  84. package/dist/types/src/primitives/components/form-root.d.ts +4 -2
  85. package/dist/types/src/primitives/components/presentation.d.ts +1 -1
  86. package/dist/types/src/primitives/components/report-frame.d.ts +4 -2
  87. package/dist/types/src/primitives/components/submit-button.d.ts +1 -1
  88. package/dist/types/src/primitives/constants.d.ts +1 -1
  89. package/dist/types/src/primitives/fields/series-field-helpers.d.ts +23 -0
  90. package/dist/types/src/primitives/fields/series-field-styles.d.ts +1 -0
  91. package/dist/types/src/primitives/mount-form.d.ts +1 -1
  92. package/dist/types/src/primitives/presentation.d.ts +8 -0
  93. package/dist/types/src/primitives/types.d.ts +4 -1
  94. package/dist/types/src/{engine → runtime}/builtins/index.d.ts +1 -3
  95. package/dist/types/src/{engine → runtime}/builtins/reports/classifier.d.ts +1 -1
  96. package/dist/types/src/{engine → runtime}/builtins/shared.d.ts +2 -0
  97. package/dist/types/src/runtime/declarative/presentation.d.ts +61 -0
  98. package/dist/types/src/runtime/fields/state-calculations.d.ts +25 -0
  99. package/dist/types/src/runtime/fields/state.d.ts +2 -0
  100. package/dist/types/src/runtime/form.d.ts +1 -0
  101. package/dist/types/src/runtime/index.d.ts +16 -0
  102. package/dist/types/src/runtime/registry/index.d.ts +5 -0
  103. package/dist/types/src/runtime/runtime-behaviors.d.ts +23 -0
  104. package/dist/types/src/runtime/runtime-controller.d.ts +34 -0
  105. package/dist/types/src/runtime/runtime-refresh.d.ts +14 -0
  106. package/dist/types/src/runtime/runtime-values.d.ts +19 -0
  107. package/dist/types/src/runtime/submission/create-submitter.d.ts +2 -0
  108. package/dist/types/src/runtime/submission/error-flow.d.ts +19 -0
  109. package/dist/types/src/runtime/submission/field-updates.d.ts +14 -0
  110. package/dist/types/src/runtime/submission/report-updates.d.ts +16 -0
  111. package/dist/types/src/runtime/submission/stream-progress.d.ts +4 -0
  112. package/dist/types/src/runtime/submission/submitter.d.ts +2 -0
  113. package/dist/types/src/runtime/submission/types.d.ts +60 -0
  114. package/dist/types/src/runtime/types/behavior.d.ts +32 -0
  115. package/dist/types/src/runtime/types/explanation.d.ts +22 -0
  116. package/dist/types/src/runtime/types/field.d.ts +24 -0
  117. package/dist/types/src/{engine → runtime}/types/form.d.ts +8 -11
  118. package/dist/types/src/runtime/types/index.d.ts +9 -0
  119. package/dist/types/src/runtime/types/registry.d.ts +6 -0
  120. package/dist/types/src/runtime/types/report.d.ts +23 -0
  121. package/dist/types/src/{engine → runtime}/utils.d.ts +2 -2
  122. package/dist/types/src/{engine/validation/field.d.ts → runtime/validation/field-state.d.ts} +3 -19
  123. package/dist/types/src/runtime/validation/field-validator.d.ts +18 -0
  124. package/dist/types/src/runtime/validation/field.d.ts +2 -0
  125. package/dist/types/src/schema/index.d.ts +7 -0
  126. package/dist/types/src/schema/normalize.d.ts +2 -0
  127. package/dist/types/src/schema/registry.d.ts +9 -0
  128. package/dist/types/src/schema/types/explanation.d.ts +43 -0
  129. package/dist/types/src/{engine → schema}/types/field.d.ts +3 -45
  130. package/dist/types/src/schema/types/form.d.ts +13 -0
  131. package/dist/types/src/schema/types/report.d.ts +43 -0
  132. package/dist/types/src/shared/index.d.ts +2 -0
  133. package/dist/types/src/shared/object.d.ts +1 -0
  134. package/dist/types/src/shared/strings.d.ts +1 -0
  135. package/dist/types/src/transport/composition/fanout-helpers.d.ts +2 -0
  136. package/dist/types/src/transport/composition/fanout.d.ts +1 -2
  137. package/dist/types/src/transport/composition/index.d.ts +1 -0
  138. package/dist/types/src/transport/composition/quorum-fanout.d.ts +2 -0
  139. package/dist/types/src/transport/internal-core.d.ts +21 -0
  140. package/dist/types/src/transport/internal-errors.d.ts +21 -0
  141. package/dist/types/src/transport/internal-request.d.ts +21 -0
  142. package/dist/types/src/transport/internal-routing.d.ts +25 -0
  143. package/dist/types/src/transport/internal-sse.d.ts +14 -0
  144. package/dist/types/src/transport/internal-stream.d.ts +13 -0
  145. package/dist/types/src/transport/internal.d.ts +6 -110
  146. package/dist/types/src/transport/types/options-http.d.ts +85 -0
  147. package/dist/types/src/transport/types/options-middleware.d.ts +96 -0
  148. package/dist/types/src/transport/types/options-routing.d.ts +82 -0
  149. package/dist/types/src/transport/types/options.d.ts +3 -258
  150. package/package.json +20 -8
  151. package/dist/engine-CEy1IX7y.js +0 -5367
  152. package/dist/kit-DrrbtxI2.js +0 -76
  153. package/dist/mlform/engine.mjs +0 -3
  154. package/dist/mlform/questionnaire.mjs +0 -640
  155. package/dist/types/src/engine/index.d.ts +0 -11
  156. package/dist/types/src/engine/registry/index.d.ts +0 -26
  157. package/dist/types/src/engine/submission/submitter.d.ts +0 -40
  158. package/dist/types/src/engine/types/explanation.d.ts +0 -109
  159. package/dist/types/src/engine/types/index.d.ts +0 -9
  160. package/dist/types/src/engine/types/report.d.ts +0 -87
  161. package/dist/types/src/questionnaire/constants.d.ts +0 -31
  162. package/dist/types/src/questionnaire/defaults.d.ts +0 -8
  163. package/dist/types/src/questionnaire/engine/controller.d.ts +0 -12
  164. package/dist/types/src/questionnaire/engine/schema.d.ts +0 -9
  165. package/dist/types/src/questionnaire/errors.d.ts +0 -3
  166. package/dist/types/src/questionnaire/index.d.ts +0 -6
  167. package/dist/types/src/questionnaire/mount.d.ts +0 -3
  168. package/dist/types/src/questionnaire/primitives/components/questionnaire-root.d.ts +0 -23
  169. package/dist/types/src/questionnaire/primitives/register.d.ts +0 -0
  170. package/dist/types/src/questionnaire/types.d.ts +0 -69
  171. package/dist/types/src/{engine/declarative → presentation/types}/presentation.d.ts +0 -0
  172. package/dist/types/src/{engine → runtime}/builtins/fields/boolean.d.ts +0 -0
  173. package/dist/types/src/{engine → runtime}/builtins/fields/category.d.ts +0 -0
  174. package/dist/types/src/{engine → runtime}/builtins/fields/date.d.ts +0 -0
  175. package/dist/types/src/{engine → runtime}/builtins/fields/long-text.d.ts +0 -0
  176. package/dist/types/src/{engine → runtime}/builtins/fields/mapped-category.d.ts +0 -0
  177. package/dist/types/src/{engine → runtime}/builtins/fields/multi-choice.d.ts +0 -0
  178. package/dist/types/src/{engine → runtime}/builtins/fields/number.d.ts +0 -0
  179. package/dist/types/src/{engine → runtime}/builtins/fields/rating.d.ts +0 -0
  180. package/dist/types/src/{engine → runtime}/builtins/fields/series.d.ts +0 -0
  181. package/dist/types/src/{engine → runtime}/builtins/fields/single-choice.d.ts +0 -0
  182. package/dist/types/src/{engine → runtime}/builtins/fields/text.d.ts +0 -0
  183. package/dist/types/src/{engine → runtime}/builtins/reports/regressor.d.ts +0 -0
  184. package/dist/types/src/{engine → runtime}/comparison.d.ts +0 -0
  185. package/dist/types/src/{engine → runtime}/constants.d.ts +0 -0
  186. package/dist/types/src/{engine/form.d.ts → runtime/create-runtime.d.ts} +0 -0
  187. package/dist/types/src/{engine → runtime}/declarative/explanation.d.ts +0 -0
  188. package/dist/types/src/{engine → runtime}/declarative/field.d.ts +0 -0
  189. package/dist/types/src/{engine → runtime}/declarative/report.d.ts +0 -0
  190. package/dist/types/src/{engine → runtime}/equality.d.ts +0 -0
  191. package/dist/types/src/{engine → runtime}/errors.d.ts +0 -0
  192. package/dist/types/src/{engine → runtime}/explanations/controller.d.ts +0 -0
  193. package/dist/types/src/{engine → runtime}/explanations/index.d.ts +0 -0
  194. package/dist/types/src/{engine → runtime}/fields/controller.d.ts +0 -0
  195. package/dist/types/src/{engine → runtime}/fields/index.d.ts +0 -0
  196. package/dist/types/src/{engine → runtime}/paths.d.ts +0 -0
  197. package/dist/types/src/{engine → runtime}/reports/controller.d.ts +0 -0
  198. package/dist/types/src/{engine → runtime}/reports/index.d.ts +0 -0
  199. package/dist/types/src/{engine → runtime}/schema/index.d.ts +0 -0
  200. package/dist/types/src/{engine → runtime}/state/engine.d.ts +0 -0
  201. package/dist/types/src/{engine → runtime}/state/index.d.ts +0 -0
  202. package/dist/types/src/{engine → runtime}/state/snapshots.d.ts +0 -0
  203. package/dist/types/src/{engine → runtime}/state/store.d.ts +0 -0
  204. package/dist/types/src/{engine → runtime}/submission/abort.d.ts +0 -0
  205. package/dist/types/src/{engine → runtime}/submission/explanations.d.ts +0 -0
  206. package/dist/types/src/{engine → runtime}/submission/index.d.ts +0 -0
  207. package/dist/types/src/{engine → runtime}/submission/lifecycle.d.ts +0 -0
  208. package/dist/types/src/{engine → runtime}/submission/pipeline.d.ts +0 -0
  209. package/dist/types/src/{engine → runtime}/submission/reports.d.ts +0 -0
  210. package/dist/types/src/{engine → runtime}/submission/request.d.ts +0 -0
  211. package/dist/types/src/{engine → runtime}/submission/result.d.ts +0 -0
  212. package/dist/types/src/{engine → runtime}/types/pipeline.d.ts +0 -0
  213. package/dist/types/src/{engine → runtime}/types/transport.d.ts +0 -0
  214. package/dist/types/src/{engine → runtime}/validation/conditions.d.ts +0 -0
  215. package/dist/types/src/{engine → runtime}/validation/form.d.ts +0 -0
  216. package/dist/types/src/{engine → runtime}/validation/index.d.ts +0 -0
  217. package/dist/types/src/{engine → runtime}/values.d.ts +0 -0
  218. package/dist/types/src/{engine → schema}/types/registry.d.ts +1 -1
@@ -0,0 +1,1824 @@
1
+ import { d as e, f as t, g as n, h as r, m as i } from "./builtins-DegwhFGA.js";
2
+ import { t as a } from "./errors-B3H1wRwj.js";
3
+ import { t as o } from "./strings-CWwrrYzz.js";
4
+ import { createRegistry as s } from "./mlform/schema.mjs";
5
+ import { K as c, q as l } from "./transport-CtVX8ZUT.js";
6
+ //#region src/runtime/equality.ts
7
+ var u = (e) => typeof e == "object" && !!e && !Array.isArray(e), d = (e, t) => Object.is(e, t), f = (e, t) => e === t ? !0 : e.length === t.length ? e.every((e, n) => Object.is(e, t[n])) : !1, p = (e, t) => {
8
+ if (e === t) return !0;
9
+ let n = Object.keys(e), r = Object.keys(t);
10
+ return n.length === r.length ? n.every((n) => Object.is(e[n], t[n])) : !1;
11
+ }, m = (e, t) => Object.is(e, t) ? !0 : Array.isArray(e) && Array.isArray(t) ? f(e, t) : u(e) && u(t) ? p(e, t) : !1, h = class extends a {
12
+ constructor(e) {
13
+ super(e), this.name = "EngineError";
14
+ }
15
+ }, g = class extends h {
16
+ constructor(e) {
17
+ super(e), this.name = "RegistryError";
18
+ }
19
+ }, _ = class extends h {
20
+ result;
21
+ constructor(e) {
22
+ super("Form validation failed."), this.name = "ValidationError", this.result = e;
23
+ }
24
+ }, v = class extends h {
25
+ cause;
26
+ constructor(e, t) {
27
+ super(e), this.name = "SubmitError", this.cause = t;
28
+ }
29
+ }, y = class extends v {
30
+ reportId;
31
+ constructor(e, t, n) {
32
+ super(`Invalid payload for report "${e}": ${t}`, n), this.name = "ReportPayloadError", this.reportId = e;
33
+ }
34
+ }, b = class extends v {
35
+ code = l.ABORTED;
36
+ constructor(e = "Form submission was aborted.", t) {
37
+ super(e, t), this.name = "SubmissionAbortedError";
38
+ }
39
+ }, x = (e) => new b(e ? `Form submission was aborted: ${e}` : void 0), S = (e) => e instanceof b || e instanceof Error && e.name === "AbortError", C = (e) => ArrayBuffer.isView(e) && !(e instanceof DataView), w = (e) => {
40
+ let t = new Uint8Array(e.byteLength);
41
+ return t.set(new Uint8Array(e)), t.buffer;
42
+ }, T = (e) => typeof File < "u" && e instanceof File ? new File([e], e.name, {
43
+ type: e.type,
44
+ lastModified: e.lastModified
45
+ }) : typeof Blob < "u" && e instanceof Blob ? e.slice(0, e.size, e.type) : e, E = (e, t) => e.length === t.length && e.every((e, n) => e === t[n]), D = (e, t) => e.byteLength === t.byteLength ? E(new Uint8Array(e), new Uint8Array(t)) : !1, O = (e) => {
46
+ if (e instanceof Date) return new Date(e.getTime());
47
+ if (e instanceof RegExp) return new RegExp(e.source, e.flags);
48
+ if (e instanceof ArrayBuffer) return w(e);
49
+ if (e instanceof DataView) return new DataView(w(e.buffer), e.byteOffset, e.byteLength);
50
+ if (C(e)) {
51
+ let t = e.constructor;
52
+ return new t(w(e.buffer), e.byteOffset, e.length);
53
+ }
54
+ return e instanceof Map ? new Map(Array.from(e.entries(), ([e, t]) => [O(e), O(t)])) : e instanceof Set ? new Set(Array.from(e.values(), (e) => O(e))) : typeof File < "u" && e instanceof File || typeof Blob < "u" && e instanceof Blob ? T(e) : Array.isArray(e) ? e.map((e) => O(e)) : n(e) ? Object.fromEntries(Object.entries(e).map(([e, t]) => [e, O(t)])) : e;
55
+ }, k = (e, t) => {
56
+ if (Object.is(e, t)) return !0;
57
+ if (e instanceof Date && t instanceof Date) return e.getTime() === t.getTime();
58
+ if (e instanceof RegExp && t instanceof RegExp) return e.source === t.source && e.flags === t.flags;
59
+ if (e instanceof ArrayBuffer && t instanceof ArrayBuffer) return D(e, t);
60
+ if (e instanceof DataView && t instanceof DataView) return e.byteOffset === t.byteOffset && e.byteLength === t.byteLength && D(e.buffer, t.buffer);
61
+ if (C(e) && C(t)) {
62
+ let n = new Uint8Array(e.buffer, e.byteOffset, e.byteLength), r = new Uint8Array(t.buffer, t.byteOffset, t.byteLength);
63
+ return e.constructor === t.constructor && E(n, r);
64
+ }
65
+ if (e instanceof Map && t instanceof Map) return e.size === t.size && Array.from(e.entries()).every(([e, n], r) => {
66
+ let i = Array.from(t.entries())[r];
67
+ return i !== void 0 && k(e, i[0]) && k(n, i[1]);
68
+ });
69
+ if (e instanceof Set && t instanceof Set) {
70
+ let n = Array.from(t.values());
71
+ for (let t of e.values()) {
72
+ let e = n.findIndex((e) => k(t, e));
73
+ if (e < 0) return !1;
74
+ n.splice(e, 1);
75
+ }
76
+ return n.length === 0;
77
+ }
78
+ if (typeof Blob < "u" && typeof File < "u" && e instanceof Blob && t instanceof Blob) return e.size === t.size && e.type === t.type ? e instanceof File && t instanceof File ? e.name === t.name && e.lastModified === t.lastModified : !0 : !1;
79
+ if (Array.isArray(e) && Array.isArray(t)) return e.length === t.length && e.every((e, n) => k(e, t[n]));
80
+ if (n(e) && n(t)) {
81
+ let n = Object.keys(e), r = Object.keys(t);
82
+ return n.length === r.length && n.every((n) => k(e[n], t[n]));
83
+ }
84
+ return !1;
85
+ }, A = {
86
+ status: "idle",
87
+ result: void 0,
88
+ error: null
89
+ }, j = (e) => e instanceof Error ? e.message : typeof e == "string" && e.trim().length > 0 ? e : String(e), M = (e, t, n) => {
90
+ e.update((e) => ({
91
+ ...e,
92
+ explanationStates: {
93
+ ...e.explanationStates,
94
+ [t]: n
95
+ }
96
+ }));
97
+ }, ee = (e) => {
98
+ let t = e.filter((e) => e !== void 0);
99
+ if (t.length === 0) return {
100
+ signal: void 0,
101
+ cleanup: () => {}
102
+ };
103
+ let n = new AbortController(), r = [];
104
+ for (let e of t) {
105
+ if (e.aborted) return n.abort(e.reason), {
106
+ signal: n.signal,
107
+ cleanup: () => {}
108
+ };
109
+ let t = () => n.abort(e.reason);
110
+ e.addEventListener("abort", t, { once: !0 }), r.push(() => e.removeEventListener("abort", t));
111
+ }
112
+ return {
113
+ signal: n.signal,
114
+ cleanup: () => {
115
+ for (let e of r) e();
116
+ }
117
+ };
118
+ }, te = ({ config: t, definition: n, store: r, hooks: i }) => {
119
+ let a = e(O(t));
120
+ M(r, a.id, A);
121
+ let o = null;
122
+ return {
123
+ get id() {
124
+ return a.id;
125
+ },
126
+ get kind() {
127
+ return a.kind;
128
+ },
129
+ get config() {
130
+ return a;
131
+ },
132
+ get state() {
133
+ return O(r.getState().explanationStates[a.id] ?? A);
134
+ },
135
+ async fetch(e) {
136
+ if ((r.getState().explanationStates[a.id] ?? A).status !== "idle") return;
137
+ o?.abort();
138
+ let t = new AbortController();
139
+ o = t, M(r, a.id, {
140
+ status: "loading",
141
+ result: void 0,
142
+ error: null
143
+ });
144
+ let s = n.transport(a), { signal: c, cleanup: l } = ee([e.signal, t.signal]);
145
+ try {
146
+ let n = await s.submit({
147
+ ...e,
148
+ signal: c
149
+ });
150
+ if (t.signal.aborted || c?.aborted) {
151
+ M(r, a.id, A);
152
+ return;
153
+ }
154
+ M(r, a.id, {
155
+ status: "done",
156
+ result: n,
157
+ error: null
158
+ }), await i?.afterExplanation?.({
159
+ explanationId: a.id,
160
+ kind: a.kind,
161
+ result: n
162
+ });
163
+ } catch (e) {
164
+ if (t.signal.aborted || c?.aborted || S(e)) {
165
+ M(r, a.id, A);
166
+ return;
167
+ }
168
+ let n = j(e);
169
+ M(r, a.id, {
170
+ status: "error",
171
+ result: void 0,
172
+ error: n
173
+ }), await i?.onExplanationError?.({
174
+ explanationId: a.id,
175
+ kind: a.kind,
176
+ error: e
177
+ });
178
+ } finally {
179
+ o === t && (o = null), l();
180
+ }
181
+ },
182
+ abort() {
183
+ o?.abort(), o = null, M(r, a.id, A);
184
+ },
185
+ reset() {
186
+ o?.abort(), o = null, M(r, a.id, A);
187
+ },
188
+ subscribe(e) {
189
+ let t = r.getState().explanationStates[a.id] ?? A;
190
+ return r.subscribe(() => {
191
+ let n = r.getState().explanationStates[a.id] ?? A;
192
+ d(t, n) || (t = n, e(O(n)));
193
+ });
194
+ }
195
+ };
196
+ }, ne = "Unknown explanation error.", re = async ({ explanations: e, request: t }) => {
197
+ if (e.length === 0) return {
198
+ results: {},
199
+ errors: {}
200
+ };
201
+ for (let t of e) t.reset();
202
+ await Promise.allSettled(e.map((e) => e.fetch({
203
+ ...t,
204
+ explanationId: e.id
205
+ })));
206
+ let n = {}, r = {};
207
+ for (let t of e) {
208
+ let e = t.state;
209
+ if (e.status === "done") {
210
+ n[t.id] = e.result;
211
+ continue;
212
+ }
213
+ e.status === "error" && (r[t.id] = e.error ?? ne);
214
+ }
215
+ return {
216
+ results: n,
217
+ errors: r
218
+ };
219
+ }, ie = Object.freeze({}), ae = (e, t) => ({
220
+ explanationId: "",
221
+ backend: e.backend,
222
+ values: e.values,
223
+ fieldValues: e.fieldValues,
224
+ serializedValues: e.serializedValues,
225
+ serializedFieldValues: e.serializedFieldValues,
226
+ reports: e.reports,
227
+ meta: e.meta,
228
+ raw: e.raw,
229
+ signal: t
230
+ }), oe = async ({ form: e, submit: t, artifactAdapter: n, explanationMode: r = "all" }) => {
231
+ let i = await e.submit(t), a = r === "all" ? await re({
232
+ explanations: e.explanations,
233
+ request: ae(i, t?.signal)
234
+ }) : {
235
+ results: {},
236
+ errors: {}
237
+ }, o = {
238
+ submitResult: i,
239
+ explanationResults: a.results,
240
+ explanationErrors: a.errors
241
+ }, s = n ? await n.derive(o) : ie;
242
+ return {
243
+ submitResult: i,
244
+ explanationResults: a.results,
245
+ explanationErrors: a.errors,
246
+ artifacts: s
247
+ };
248
+ }, se = (e, t) => (Array.isArray(e) ? e : (e ?? t).split(".")).map((e) => e.trim()).filter(Boolean), ce = (e, t, r) => {
249
+ if (t.length === 0) return;
250
+ let i = e;
251
+ for (let e of t.slice(0, -1)) {
252
+ let t = i[e];
253
+ if (!n(t)) {
254
+ let t = {};
255
+ i[e] = t, i = t;
256
+ continue;
257
+ }
258
+ i = t;
259
+ }
260
+ i[t[t.length - 1]] = r;
261
+ }, le = (e) => {
262
+ try {
263
+ return new TextEncoder().encode(JSON.stringify(e)).byteLength;
264
+ } catch {
265
+ return;
266
+ }
267
+ }, N = (e) => ({
268
+ values: O(e.values),
269
+ fieldValues: O(e.fieldValues),
270
+ serializedValues: O(e.serializedValues),
271
+ serializedFieldValues: O(e.serializedFieldValues)
272
+ }), ue = (e, t) => {
273
+ if (e.config.includeInSubmission === !1) return !1;
274
+ let n = t(e), r = e.state;
275
+ return !((!r.visible || r.disabled) && (n === "omit" || n === "reset-on-hide"));
276
+ }, de = (e, t) => {
277
+ let n = {}, r = {}, i = {}, a = {};
278
+ for (let o of e) {
279
+ if (!ue(o, t)) continue;
280
+ let e = se(o.config.valuePath, o.id), s = o.state.value, c = o.serialize();
281
+ r[o.id] = O(s), a[o.id] = O(c), ce(n, e, O(s)), ce(i, e, O(c));
282
+ }
283
+ return {
284
+ values: n,
285
+ fieldValues: r,
286
+ serializedValues: i,
287
+ serializedFieldValues: a
288
+ };
289
+ }, fe = (e) => n(e) ? {
290
+ reports: n(e.reports) ? e.reports : void 0,
291
+ meta: n(e.meta) ? e.meta : void 0,
292
+ raw: "raw" in e ? e.raw : e
293
+ } : { raw: e }, pe = async (e, t) => {
294
+ let n = /* @__PURE__ */ new Map();
295
+ return await Promise.all(e.map(async (e) => {
296
+ n.set(e.id, await e.prepareState(t));
297
+ })), n;
298
+ }, me = (e, t) => {
299
+ for (let n of e) {
300
+ let e = t.get(n.id);
301
+ if (!e) throw new h(`Prepared report state missing for "${n.id}".`);
302
+ n.commitState(e);
303
+ }
304
+ }, he = (e, t) => Object.fromEntries(e.map((e) => {
305
+ let n = t.get(e.id);
306
+ if (!n) throw new h(`Prepared report state missing for "${e.id}".`);
307
+ return [e.id, e.cloneState(n)];
308
+ })), ge = () => {
309
+ let e = null, t = "", n = null, r = 0, i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = (e) => {
310
+ let t = a.get(e);
311
+ t && (a.delete(e), t());
312
+ };
313
+ return {
314
+ ensureIdle() {
315
+ if (n !== null) throw new h("Form submission is already in progress.");
316
+ },
317
+ begin() {
318
+ let e = ++r;
319
+ return n = e, e;
320
+ },
321
+ getCurrentRequestId() {
322
+ return n;
323
+ },
324
+ getAbortReason(e) {
325
+ return t || i.get(e) || "";
326
+ },
327
+ isAborted(e) {
328
+ return i.has(e);
329
+ },
330
+ setActiveController(n, r) {
331
+ e = r, t = i.get(n) ?? "", t && e && e.abort(t);
332
+ },
333
+ createSignal(t) {
334
+ return e?.signal ?? t?.signal ?? new AbortController().signal;
335
+ },
336
+ attachExternalSignal(r, i) {
337
+ if (!r?.signal) return;
338
+ if (r.signal.aborted) throw this.clear(i), x(String(r.signal.reason ?? ""));
339
+ let s = () => {
340
+ if (n !== i) {
341
+ o(i);
342
+ return;
343
+ }
344
+ t = r.signal?.reason instanceof Error ? r.signal.reason.message : String(r.signal?.reason ?? ""), e?.abort(r.signal?.reason), o(i);
345
+ };
346
+ r.signal.addEventListener("abort", s, { once: !0 }), a.set(i, () => {
347
+ r.signal?.removeEventListener("abort", s);
348
+ });
349
+ },
350
+ abort(r) {
351
+ if (n === null) return;
352
+ let a = r ?? "";
353
+ i.set(n, a), t = a, e?.abort(a);
354
+ },
355
+ clear(r) {
356
+ o(r), n === r && (n = null), e = null, t = "", i.delete(r);
357
+ },
358
+ reset() {
359
+ for (let e of a.keys()) o(e);
360
+ n = null, e = null, t = "", i.clear();
361
+ }
362
+ };
363
+ }, _e = () => ({
364
+ status: "idle",
365
+ submitCount: 0,
366
+ lastResult: null,
367
+ formErrors: [],
368
+ fieldStates: {},
369
+ reportStates: {},
370
+ explanationStates: {},
371
+ submissionProgress: null,
372
+ lifecycleVersion: 0,
373
+ activeValidationVersion: 0,
374
+ activeSubmissionVersion: null
375
+ }), P = (e, t) => {
376
+ switch (ye(e.status, t.type), t.type) {
377
+ case "bump-lifecycle": return {
378
+ ...e,
379
+ lifecycleVersion: e.lifecycleVersion + 1
380
+ };
381
+ case "rest": return {
382
+ ...e,
383
+ status: t.status
384
+ };
385
+ case "editing": return {
386
+ ...e,
387
+ status: "editing",
388
+ formErrors: t.clearFormErrors ? [] : e.formErrors,
389
+ lifecycleVersion: t.bumpLifecycle ? e.lifecycleVersion + 1 : e.lifecycleVersion
390
+ };
391
+ case "start-validation": return {
392
+ ...e,
393
+ status: "validating",
394
+ formErrors: [],
395
+ activeValidationVersion: t.validationVersion
396
+ };
397
+ case "validation-error": return {
398
+ ...e,
399
+ status: "error",
400
+ formErrors: [t.message]
401
+ };
402
+ case "start-submission": return {
403
+ ...e,
404
+ status: "submitting",
405
+ submitCount: e.submitCount + 1,
406
+ formErrors: [],
407
+ lastResult: null,
408
+ submissionProgress: null,
409
+ activeSubmissionVersion: t.submissionVersion
410
+ };
411
+ case "submission-stream-update": return {
412
+ ...e,
413
+ submissionProgress: t.progress
414
+ };
415
+ case "submission-success": return {
416
+ ...e,
417
+ status: "success",
418
+ formErrors: [],
419
+ lastResult: t.result,
420
+ submissionProgress: null
421
+ };
422
+ case "submission-aborted": return {
423
+ ...e,
424
+ status: "idle",
425
+ formErrors: [t.message],
426
+ lastResult: null,
427
+ submissionProgress: null
428
+ };
429
+ case "submission-error": return {
430
+ ...e,
431
+ status: "error",
432
+ formErrors: [t.message],
433
+ lastResult: null,
434
+ submissionProgress: null
435
+ };
436
+ case "clear-active-submission": return {
437
+ ...e,
438
+ activeSubmissionVersion: e.activeSubmissionVersion === t.submissionVersion ? null : e.activeSubmissionVersion
439
+ };
440
+ case "reset": return {
441
+ ...e,
442
+ status: "idle",
443
+ submitCount: 0,
444
+ formErrors: [],
445
+ lastResult: null,
446
+ submissionProgress: null,
447
+ activeSubmissionVersion: null
448
+ };
449
+ default: return ve(t);
450
+ }
451
+ }, ve = (e) => {
452
+ throw Error("Unsupported engine transition.");
453
+ }, ye = (e, t) => {
454
+ if (!(t === "submission-success" || t === "submission-aborted" ? e === "submitting" : t === "submission-error" ? e === "submitting" || e === "success" : t !== "validation-error" || e === "validating")) throw Error(`Invalid engine transition "${t}" from status "${e}".`);
455
+ }, F = (e) => ({
456
+ value: O(e.value),
457
+ initialValue: O(e.initialValue),
458
+ touched: e.touched,
459
+ dirty: e.dirty,
460
+ valid: e.valid,
461
+ visible: e.visible,
462
+ disabled: e.disabled,
463
+ readOnly: e.readOnly,
464
+ errors: [...e.errors],
465
+ status: e.status
466
+ }), be = (e) => Object.fromEntries(Object.entries(e).map(([e, t]) => [e, F(t)])), I = (e) => {
467
+ let t = Object.fromEntries(Object.entries(e.fieldStates).map(([e, t]) => [e, O(t.value)])), n = be(e.fieldStates), r = Object.fromEntries(Object.entries(n).map(([e, t]) => [e, t.errors])), i = e.formErrors.length === 0 && Object.values(n).every((e) => e.valid), a = Object.values(n).some((e) => e.dirty), o = Object.values(n).some((e) => e.touched);
468
+ return {
469
+ status: e.status,
470
+ submitCount: e.submitCount,
471
+ valid: i,
472
+ dirty: a,
473
+ touched: o,
474
+ values: t,
475
+ reportStates: O(e.reportStates),
476
+ explanationStates: O(e.explanationStates),
477
+ submissionProgress: O(e.submissionProgress),
478
+ errors: {
479
+ form: [...e.formErrors],
480
+ fields: r
481
+ },
482
+ lastResult: O(e.lastResult)
483
+ };
484
+ }, xe = (e) => typeof AggregateError < "u" ? AggregateError(e, "Store listener notification failed.") : /* @__PURE__ */ Error("Store listener notification failed."), Se = (e, t = {}) => {
485
+ let n = e, r = 0, i = !1, a = /* @__PURE__ */ new Set(), o = () => {
486
+ let e = [];
487
+ for (let r of a) try {
488
+ r(n);
489
+ } catch (r) {
490
+ e.push(r), t.onListenerError?.(r, n);
491
+ }
492
+ if (e.length > 0 && t.listenerErrorPolicy === "throw-aggregate") throw xe(e);
493
+ };
494
+ return {
495
+ getState() {
496
+ return n;
497
+ },
498
+ setState(e) {
499
+ if (n = e, r > 0) {
500
+ i = !0;
501
+ return;
502
+ }
503
+ o();
504
+ },
505
+ update(e) {
506
+ this.setState(e(n));
507
+ },
508
+ batch(e) {
509
+ r += 1;
510
+ try {
511
+ e();
512
+ } finally {
513
+ --r, r === 0 && i && (i = !1, o());
514
+ }
515
+ },
516
+ subscribe(e) {
517
+ return a.add(e), () => a.delete(e);
518
+ }
519
+ };
520
+ }, Ce = ({ store: e, resetReports: t, resetExplanations: n, syncAfterSubmissionTransition: r }) => ({
521
+ start(t) {
522
+ e.batch(() => {
523
+ n(), e.update((e) => P(e, {
524
+ type: "start-submission",
525
+ submissionVersion: t
526
+ })), r();
527
+ });
528
+ },
529
+ succeed(t) {
530
+ e.batch(() => {
531
+ e.update((e) => P(e, {
532
+ type: "submission-success",
533
+ result: t
534
+ })), r();
535
+ });
536
+ },
537
+ abort(i) {
538
+ e.batch(() => {
539
+ t(), n(), e.update((e) => P(e, {
540
+ type: "submission-aborted",
541
+ message: i
542
+ })), r();
543
+ });
544
+ },
545
+ fail(i) {
546
+ e.batch(() => {
547
+ t(), n(), e.update((e) => P(e, {
548
+ type: "submission-error",
549
+ message: i
550
+ })), r();
551
+ });
552
+ },
553
+ clear(t) {
554
+ e.update((e) => P(e, {
555
+ type: "clear-active-submission",
556
+ submissionVersion: t
557
+ }));
558
+ }
559
+ }), we = (e, t, n) => ({
560
+ ...t,
561
+ reportStates: he(e, n)
562
+ }), L = (e, t) => {
563
+ let n = Object.fromEntries(e.map((e) => {
564
+ let n = t.reportStates[e.id];
565
+ return [e.id, n && e.cloneState(n)];
566
+ }));
567
+ return {
568
+ backend: t.backend,
569
+ values: O(t.values),
570
+ fieldValues: O(t.fieldValues),
571
+ serializedValues: O(t.serializedValues),
572
+ serializedFieldValues: O(t.serializedFieldValues),
573
+ reports: O(t.reports),
574
+ reportStates: n,
575
+ meta: O(t.meta),
576
+ raw: O(t.raw)
577
+ };
578
+ }, Te = ({ hooks: e, abortManager: t, lifecycle: n, store: r }) => {
579
+ let i = async (t, n, r, i) => {
580
+ let a = N(n);
581
+ await e?.onSubmitError?.({
582
+ backend: t,
583
+ ...a,
584
+ submitCount: r,
585
+ error: i
586
+ });
587
+ };
588
+ return {
589
+ notifySubmitError: i,
590
+ handleSubmissionAbort: async (e, a, o, s, c, l) => {
591
+ let u = e instanceof b ? e : x(t.getAbortReason(a));
592
+ throw t.getCurrentRequestId() === a && r.getState().lifecycleVersion === o && n.abort(u.message), await i(l, c, s, u), u;
593
+ },
594
+ handleSubmissionError: async (e, a, o, s, c, l) => {
595
+ let u = e instanceof Error ? e.message : String(e);
596
+ throw t.getCurrentRequestId() === a && r.getState().lifecycleVersion === o && n.fail(u), await i(l, c, s, e), new v(`Form submission failed: ${u}`, e);
597
+ }
598
+ };
599
+ }, R = (e) => typeof e == "object" && !!e && !Array.isArray(e), z = (e, t, n = "deep-merge") => {
600
+ if (n === "replace") return O(t);
601
+ if (n === "shallow-merge") return !R(e) || !R(t) ? O(t) : {
602
+ ...O(e),
603
+ ...O(t)
604
+ };
605
+ if (!R(e) || !R(t)) return O(t);
606
+ let r = { ...O(e) };
607
+ for (let [e, n] of Object.entries(t)) r[e] = e in r ? z(r[e], n, "deep-merge") : O(n);
608
+ return r;
609
+ }, Ee = ({ reportMap: e, getReportState: t, getReportStates: n, getSubmissionMeta: r, storePendingPatch: i }) => {
610
+ let a = (t, n) => {
611
+ let r = e.get(t);
612
+ r && r.commitState({
613
+ payload: O(n),
614
+ error: null,
615
+ status: n === void 0 ? "idle" : "ready"
616
+ });
617
+ }, o = (t, i, a, o) => {
618
+ let s = e.get(a)?.config?.source ?? a;
619
+ return {
620
+ backend: i,
621
+ values: O(t.values),
622
+ fieldValues: O(t.fieldValues),
623
+ serializedValues: O(t.serializedValues),
624
+ serializedFieldValues: O(t.serializedFieldValues),
625
+ reports: { [s]: O(o) },
626
+ reportStates: O(n()),
627
+ meta: O(r()),
628
+ raw: O(o)
629
+ };
630
+ }, s = async (t, n, r, s) => {
631
+ let c = e.get(t);
632
+ if (c) {
633
+ if (c.partialUpdatePolicy === "trust") {
634
+ a(t, n);
635
+ return;
636
+ }
637
+ if (c.partialUpdatePolicy === "defer") {
638
+ i(t, {
639
+ type: "replace",
640
+ payload: O(n)
641
+ });
642
+ return;
643
+ }
644
+ try {
645
+ let e = await c.prepareState(o(r, s, t, n));
646
+ c.commitState(e);
647
+ } catch (e) {
648
+ let t = e instanceof Error ? e.message : String(e);
649
+ c.commitState({
650
+ payload: void 0,
651
+ error: t,
652
+ status: "error"
653
+ });
654
+ }
655
+ }
656
+ }, c = (n, r, i = "deep-merge") => {
657
+ let a = e.get(n);
658
+ if (!a) return;
659
+ let o = z(t(n)?.payload, r, i);
660
+ a.commitState({
661
+ payload: o,
662
+ error: null,
663
+ status: o === void 0 ? "idle" : "ready"
664
+ });
665
+ };
666
+ return {
667
+ applyValidatedReportReplace: s,
668
+ applyValidatedReportPatch: async (n, r, a = "deep-merge", s, l) => {
669
+ let u = e.get(n);
670
+ if (!u) return;
671
+ if (u.partialUpdatePolicy === "trust") {
672
+ c(n, r, a);
673
+ return;
674
+ }
675
+ if (u.partialUpdatePolicy === "defer") {
676
+ i(n, {
677
+ type: "patch",
678
+ patch: O(r),
679
+ strategy: a
680
+ });
681
+ return;
682
+ }
683
+ let d = z(t(n)?.payload, r, a);
684
+ try {
685
+ let e = await u.prepareState(o(s, l, n, d));
686
+ u.commitState(e);
687
+ } catch (e) {
688
+ let t = e instanceof Error ? e.message : String(e);
689
+ u.commitState({
690
+ payload: void 0,
691
+ error: t,
692
+ status: "error"
693
+ });
694
+ }
695
+ }
696
+ };
697
+ }, De = (e) => {
698
+ if (e instanceof Date) return Number.isNaN(e.getTime()) ? null : e.getTime();
699
+ if (typeof e == "number") return Number.isNaN(e) ? null : e;
700
+ if (typeof e == "string") {
701
+ let t = Date.parse(e);
702
+ return !Number.isNaN(t) && /^\d{4}-\d{2}-\d{2}/.test(e) ? t : e;
703
+ }
704
+ return typeof e == "bigint" ? e : null;
705
+ }, Oe = (e, t) => {
706
+ let n = De(e), r = De(t);
707
+ return n === null || r === null || typeof n != typeof r ? null : n === r ? 0 : n < r ? -1 : 1;
708
+ }, B = (e, t, n) => e ? typeof e == "function" ? e(t) : H(e, t) : n, ke = (e, t) => t.some((t) => Object.is(t, e)), V = (e, t, n) => {
709
+ let r = Oe(e, t);
710
+ if (r === null) return !1;
711
+ switch (n) {
712
+ case "eq": return r === 0;
713
+ case "neq": return r !== 0;
714
+ case "gt": return r > 0;
715
+ case "gte": return r >= 0;
716
+ case "lt": return r < 0;
717
+ case "lte": return r <= 0;
718
+ default: return Ae(n);
719
+ }
720
+ }, Ae = (e) => {
721
+ throw Error("Unsupported comparison operator.");
722
+ }, H = (e, t) => {
723
+ switch (e.kind) {
724
+ case "field-value": {
725
+ let n = t.values[e.field];
726
+ return !(e.equals !== void 0 && !Object.is(n, e.equals) || e.notEquals !== void 0 && Object.is(n, e.notEquals) || e.greaterThan !== void 0 && !V(n, e.greaterThan, "gt") || e.greaterThanOrEqual !== void 0 && !V(n, e.greaterThanOrEqual, "gte") || e.lessThan !== void 0 && !V(n, e.lessThan, "lt") || e.lessThanOrEqual !== void 0 && !V(n, e.lessThanOrEqual, "lte") || e.in && !ke(n, e.in) || e.notIn && ke(n, e.notIn) || e.empty === !0 && !i(n) || e.notEmpty === !0 && i(n) || e.truthy === !0 && !n || e.falsy === !0 && n);
727
+ }
728
+ case "field-comparison": return V(t.values[e.field], t.values[e.otherField], e.operator);
729
+ case "form-status": return (Array.isArray(e.equals) ? e.equals : [e.equals]).includes(t.formStatus);
730
+ case "submit-count": return !(e.eq !== void 0 && t.submitCount !== e.eq || e.gte !== void 0 && t.submitCount < e.gte || e.lte !== void 0 && t.submitCount > e.lte);
731
+ case "all": return e.conditions.every((e) => H(e, t));
732
+ case "any": return e.conditions.some((e) => H(e, t));
733
+ case "not": return !H(e.condition, t);
734
+ default: return je(e);
735
+ }
736
+ }, je = (e) => {
737
+ throw Error("Unsupported field condition.");
738
+ }, U = (e, t, n, r) => {
739
+ let i = {
740
+ field: e,
741
+ values: t,
742
+ submitCount: n,
743
+ formStatus: r
744
+ };
745
+ return {
746
+ visible: !B(e.hiddenWhen, i, !!e.hidden),
747
+ disabled: B(e.disabledWhen, i, !!e.disabled),
748
+ readOnly: B(e.readOnlyWhen, i, !!e.readOnly)
749
+ };
750
+ }, W = (e) => [
751
+ ...e.syncErrors,
752
+ ...e.validationErrors,
753
+ ...e.externalErrors
754
+ ], G = (e) => {
755
+ let t = W(e);
756
+ return {
757
+ ...e,
758
+ errors: t,
759
+ valid: t.length === 0,
760
+ status: t.length === 0 ? "valid" : "invalid"
761
+ };
762
+ }, Me = (e) => ({
763
+ ...e,
764
+ errors: W(e),
765
+ valid: W(e).length === 0,
766
+ status: "validating"
767
+ }), Ne = (e, t) => e.required && i(t) ? ["This field is required."] : [], Pe = (e, t, n) => e.cloneValue ? e.cloneValue(n, t) : O(n), K = (e, t, n) => e.normalizeValue ? Pe(e, t, e.normalizeValue(n, t)) : Pe(e, t, n), q = (e, t, n, r) => e.isEqual ? e.isEqual(n, r, t) : k(n, r), Fe = (e, t, n, i, a) => {
768
+ if (!e.validate || typeof t.asyncValidationDebounceMs == "number" && t.asyncValidationDebounceMs > 0) return [];
769
+ let o = e.validate(n, t, {
770
+ field: t,
771
+ values: i,
772
+ submitCount: a,
773
+ validationVersion: 0,
774
+ signal: void 0
775
+ });
776
+ return r(o) ? [] : o;
777
+ }, J = (e, t, n, r, i, a) => {
778
+ if (!a.visible || a.disabled) return [];
779
+ let o = Ne(t, n);
780
+ return o.length > 0 ? o : Fe(e, t, n, r, i);
781
+ }, Ie = (e, t, n, r, i, a) => {
782
+ let o = K(e, t, n), s = U(t, r, i, a), c = J(e, t, o, r, i, s);
783
+ return G({
784
+ value: o,
785
+ initialValue: o,
786
+ touched: !1,
787
+ dirty: !1,
788
+ visible: s.visible,
789
+ disabled: s.disabled,
790
+ readOnly: s.readOnly,
791
+ syncErrors: c,
792
+ validationErrors: [],
793
+ externalErrors: [],
794
+ validationVersion: 0,
795
+ errors: [],
796
+ valid: c.length === 0,
797
+ status: c.length === 0 ? "valid" : "invalid"
798
+ });
799
+ }, Le = ({ config: e, definition: n, store: i, getValues: a, getSubmitCount: o, getFormStatus: s, commitState: c }) => {
800
+ let l = null, u = 0;
801
+ return {
802
+ abort(e) {
803
+ l?.abort(e), l = null;
804
+ },
805
+ async validate(d, f = i.getState().activeValidationVersion) {
806
+ let p = i.getState().lifecycleVersion, m = a(), h = K(n, e, d.value), g = o(), _ = U(e, m, g, s()), v = ++u, y = typeof AbortController < "u" ? new AbortController() : null, b = J(n, e, h, m, g, _);
807
+ if (l?.abort("validation-restarted"), l = y, !_.visible || _.disabled) {
808
+ let t = G({
809
+ ...d,
810
+ value: h,
811
+ visible: _.visible,
812
+ disabled: _.disabled,
813
+ readOnly: _.readOnly,
814
+ syncErrors: b,
815
+ validationErrors: [],
816
+ externalErrors: []
817
+ });
818
+ return l === y && (l = null), c(e.id, t), {
819
+ fieldId: e.id,
820
+ valid: !0,
821
+ errors: []
822
+ };
823
+ }
824
+ c(e.id, Me({
825
+ ...d,
826
+ visible: _.visible,
827
+ disabled: _.disabled,
828
+ readOnly: _.readOnly,
829
+ validationVersion: f,
830
+ syncErrors: b,
831
+ validationErrors: [...d.validationErrors],
832
+ externalErrors: [...d.externalErrors],
833
+ status: "validating"
834
+ }));
835
+ let x = [];
836
+ if (b.length === 0 && n.validate) try {
837
+ let i = typeof e.asyncValidationDebounceMs == "number" ? e.asyncValidationDebounceMs : 0;
838
+ i > 0 && await t(i, y?.signal);
839
+ let a = n.validate(h, e, {
840
+ field: e,
841
+ values: m,
842
+ submitCount: g,
843
+ validationVersion: f,
844
+ signal: y?.signal
845
+ });
846
+ r(a) && (x = await a);
847
+ } catch (t) {
848
+ if (y?.signal.aborted || S(t)) return {
849
+ fieldId: e.id,
850
+ valid: d.valid,
851
+ errors: [...d.errors]
852
+ };
853
+ throw t;
854
+ }
855
+ let C = i.getState().activeValidationVersion === f && i.getState().lifecycleVersion === p && u === v && !y?.signal.aborted, w = G({
856
+ ...d,
857
+ value: h,
858
+ touched: !0,
859
+ dirty: !q(n, e, h, d.initialValue),
860
+ visible: _.visible,
861
+ disabled: _.disabled,
862
+ readOnly: _.readOnly,
863
+ syncErrors: b,
864
+ validationErrors: x,
865
+ externalErrors: [...d.externalErrors],
866
+ validationVersion: f
867
+ });
868
+ return C && c(e.id, w), l === y && (l = null), {
869
+ fieldId: e.id,
870
+ valid: w.valid,
871
+ errors: [...w.errors]
872
+ };
873
+ }
874
+ };
875
+ }, Y = (e) => {
876
+ let t = I(e.getState());
877
+ return {
878
+ valid: t.valid,
879
+ fields: t.errors.fields,
880
+ formErrors: t.errors.form
881
+ };
882
+ }, Re = (e, t, n) => {
883
+ if (n) {
884
+ if (Array.isArray(n)) {
885
+ t.push(...n);
886
+ return;
887
+ }
888
+ if (n.form && t.push(...n.form), n.fields) for (let [t, r] of Object.entries(n.fields)) e[t] = [...e[t] ?? [], ...r];
889
+ }
890
+ }, ze = ({ store: e, fields: t, normalizedSchema: n, validators: r, hooks: i, getValues: a, getSubmitCount: o, getFormStatus: s, syncDerivedFieldState: c, setRestingStatus: l, shouldResetInactiveFields: u, inactiveFieldPolicy: d }) => {
891
+ let f = 0, p = new Set(t.map((e) => e.id)), m = async (i, c) => {
892
+ let l = [], u = Object.fromEntries(t.map((e) => [e.id, []]));
893
+ if (r?.length) {
894
+ let t = {
895
+ values: a(),
896
+ submitCount: o(),
897
+ formStatus: s(),
898
+ fields: be(e.getState().fieldStates),
899
+ schema: {
900
+ fields: n.fields,
901
+ reports: n.reports
902
+ }
903
+ };
904
+ for (let n of r) if (Re(u, l, await n(t)), e.getState().activeValidationVersion !== i || e.getState().lifecycleVersion !== c) return Y(e);
905
+ }
906
+ let d = Object.keys(u).filter((e) => !p.has(e));
907
+ if (d.length > 0) throw new h(`Form validator returned errors for unknown fields: ${d.join(", ")}.`);
908
+ if (e.getState().activeValidationVersion !== i || e.getState().lifecycleVersion !== c) return Y(e);
909
+ for (let e of t) e.setExternalErrors(u[e.id] ?? []);
910
+ return e.update((e) => ({
911
+ ...e,
912
+ formErrors: l
913
+ })), Y(e);
914
+ };
915
+ return { async validate() {
916
+ let n = e.getState().lifecycleVersion, r = ++f;
917
+ e.update((e) => P(e, {
918
+ type: "start-validation",
919
+ validationVersion: r
920
+ }));
921
+ try {
922
+ if (await i?.beforeValidate?.({
923
+ values: a(),
924
+ submitCount: o()
925
+ }), await Promise.all(t.map((e) => e.validate(r))), e.getState().lifecycleVersion !== n) return Y(e);
926
+ c({
927
+ preserveValidationErrors: !0,
928
+ preserveExternalErrors: !1,
929
+ resetInactiveToInitial: u(),
930
+ inactiveFieldPolicy: d
931
+ });
932
+ let s = await m(r, n);
933
+ return await i?.afterValidate?.({
934
+ values: a(),
935
+ result: s,
936
+ submitCount: o()
937
+ }), e.getState().activeValidationVersion === r && l(), s;
938
+ } catch (t) {
939
+ let i = t instanceof Error ? t.message : String(t);
940
+ throw e.getState().activeValidationVersion === r && e.getState().lifecycleVersion === n && (e.update((e) => P(e, {
941
+ type: "validation-error",
942
+ message: i
943
+ })), c({
944
+ preserveValidationErrors: !0,
945
+ preserveExternalErrors: !0,
946
+ resetInactiveToInitial: u(),
947
+ inactiveFieldPolicy: d
948
+ })), t;
949
+ }
950
+ } };
951
+ }, Be = ({ store: e, fieldMap: t, onRemoteFieldUpdate: n }) => ({ applyFieldUpdate: (r) => {
952
+ let i = t.get(r.fieldId);
953
+ if (!i) return;
954
+ let a = e.getState().fieldStates[r.fieldId];
955
+ if (!a) return;
956
+ let o = r.value === void 0 ? a.value : i.coerceValue(r.value);
957
+ i.commitState(G({
958
+ ...a,
959
+ value: o,
960
+ touched: r.touched ?? a.touched,
961
+ dirty: r.dirty ?? a.dirty,
962
+ externalErrors: r.errors ? [...r.errors] : a.externalErrors
963
+ })), n?.(r.fieldId);
964
+ } }), Ve = (e, t, n, r, i) => {
965
+ t() !== r || e.getState().lifecycleVersion !== i || e.update((e) => ({
966
+ ...e,
967
+ submissionProgress: n
968
+ }));
969
+ }, He = (e, t) => {
970
+ let n = e ?? {
971
+ meta: {},
972
+ chunkCount: 0
973
+ };
974
+ switch (t.type) {
975
+ case "progress": return {
976
+ ...n,
977
+ loaded: t.loaded ?? n.loaded,
978
+ total: t.total ?? n.total,
979
+ message: t.message ?? n.message,
980
+ meta: {
981
+ ...n.meta,
982
+ ...t.meta
983
+ },
984
+ lastEventType: t.type
985
+ };
986
+ case "meta": return {
987
+ ...n,
988
+ sessionState: t.meta.sessionClosed === !0 ? "closed" : t.meta.sessionOpening === !0 ? "opening" : t.meta.sessionOpen === !0 ? "open" : t.meta.sessionClosing === !0 ? "closing" : n.sessionState,
989
+ bufferedMessages: typeof t.meta.bufferedMessages == "number" ? t.meta.bufferedMessages : n.bufferedMessages,
990
+ meta: {
991
+ ...n.meta,
992
+ ...t.meta
993
+ },
994
+ lastEventType: t.type
995
+ };
996
+ case "chunk": return {
997
+ ...n,
998
+ chunkCount: n.chunkCount + 1,
999
+ sessionState: t.meta?.session === !0 ? "open" : n.sessionState,
1000
+ bufferedMessages: typeof t.meta?.bufferedMessages == "number" ? t.meta.bufferedMessages : n.bufferedMessages,
1001
+ sessionMessageCount: t.meta?.session === !0 ? (n.sessionMessageCount ?? 0) + 1 : n.sessionMessageCount,
1002
+ lastSessionMessageType: t.meta?.session === !0 && typeof t.meta?.messageType == "string" ? t.meta.messageType : n.lastSessionMessageType,
1003
+ meta: {
1004
+ ...n.meta,
1005
+ ...t.meta
1006
+ },
1007
+ lastEventType: t.type
1008
+ };
1009
+ case "report-replace":
1010
+ case "report-patch":
1011
+ case "field-update":
1012
+ case "result":
1013
+ case "error": return {
1014
+ ...n,
1015
+ meta: {
1016
+ ...n.meta,
1017
+ ...t.meta
1018
+ },
1019
+ lastEventType: t.type
1020
+ };
1021
+ }
1022
+ }, Ue = ({ store: e, transport: t, hooks: n, hookFailurePolicy: r, normalizedSchema: i, fields: a, reports: o, validate: s, getSubmitCount: u, markReportsLoading: d, resetReports: f, resetExplanations: p, syncDerivedFieldState: m, shouldResetInactiveFields: h, resolveInactiveFieldPolicy: g, inactiveFieldPolicy: v, onRemoteFieldUpdate: y, beforeSubmitRecords: b }) => {
1023
+ let C = ge(), w = Ce({
1024
+ store: e,
1025
+ resetReports: f,
1026
+ resetExplanations: p,
1027
+ syncAfterSubmissionTransition: () => {
1028
+ m({
1029
+ preserveValidationErrors: !0,
1030
+ preserveExternalErrors: !0,
1031
+ resetInactiveToInitial: h(),
1032
+ inactiveFieldPolicy: v
1033
+ });
1034
+ }
1035
+ }), T = new Map(a.map((e) => [e.id, e])), E = new Map(o.map((e) => [e.id, e])), { notifySubmitError: D, handleSubmissionAbort: O, handleSubmissionError: k } = Te({
1036
+ hooks: n,
1037
+ abortManager: C,
1038
+ lifecycle: w,
1039
+ store: e
1040
+ }), { applyValidatedReportReplace: A, applyValidatedReportPatch: j } = Ee({
1041
+ reportMap: E,
1042
+ getReportState: (t) => e.getState().reportStates[t],
1043
+ getReportStates: () => e.getState().reportStates,
1044
+ getSubmissionMeta: () => e.getState().submissionProgress?.meta ?? {},
1045
+ storePendingPatch: (t, n) => {
1046
+ e.update((e) => ({
1047
+ ...e,
1048
+ submissionProgress: e.submissionProgress ? {
1049
+ ...e.submissionProgress,
1050
+ meta: {
1051
+ ...e.submissionProgress.meta,
1052
+ pendingReportPatches: {
1053
+ ...e.submissionProgress.meta.pendingReportPatches,
1054
+ [t]: n
1055
+ }
1056
+ }
1057
+ } : e.submissionProgress
1058
+ }));
1059
+ }
1060
+ }), { applyFieldUpdate: M } = Be({
1061
+ store: e,
1062
+ fieldMap: T,
1063
+ onRemoteFieldUpdate: y
1064
+ }), ee = async (e, t, n) => {
1065
+ switch (e.type) {
1066
+ case "report-replace":
1067
+ await A(e.reportId, e.payload, t, n);
1068
+ break;
1069
+ case "report-patch":
1070
+ await j(e.reportId, e.patch, e.strategy, t, n);
1071
+ break;
1072
+ case "field-update":
1073
+ M(e);
1074
+ break;
1075
+ default: break;
1076
+ }
1077
+ };
1078
+ return {
1079
+ async submit(f) {
1080
+ C.ensureIdle();
1081
+ let p = C.begin(), m = f?.backend, h;
1082
+ try {
1083
+ h = await s();
1084
+ } catch (e) {
1085
+ throw C.clear(p), e;
1086
+ }
1087
+ if (C.getCurrentRequestId() !== p) throw C.clear(p), x(C.getAbortReason(p) || "superseded");
1088
+ if (!h.valid) throw C.clear(p), new _(h);
1089
+ if (f?.signal?.aborted) throw C.clear(p), x(String(f.signal.reason ?? ""));
1090
+ let v = de(a, g);
1091
+ await b?.(v), C.setActiveController(p, typeof AbortController < "u" ? new AbortController() : null), C.attachExternalSignal(f, p), e.batch(() => {
1092
+ d(), w.start(p);
1093
+ });
1094
+ let y = u(), T = e.getState().lifecycleVersion, E = C.createSignal(f);
1095
+ try {
1096
+ let a = N(v);
1097
+ if (await n?.beforeSubmit?.({
1098
+ backend: m,
1099
+ ...a,
1100
+ submitCount: y,
1101
+ signal: E
1102
+ }), E.aborted || C.isAborted(p)) throw x(C.getAbortReason(p));
1103
+ let s = N(v), u = {
1104
+ backend: m,
1105
+ ...s,
1106
+ fields: i.fields,
1107
+ reports: i.reports,
1108
+ metadata: { estimatedPayloadBytes: le({
1109
+ values: s.serializedValues,
1110
+ fieldValues: s.serializedFieldValues
1111
+ }) },
1112
+ signal: E
1113
+ }, d;
1114
+ if (t.stream) {
1115
+ let n = !1, r = await t.stream(u);
1116
+ for await (let t of r) if (Ve(e, () => C.getCurrentRequestId(), He(e.getState().submissionProgress, t), p, T), await ee(t, v, m), t.type === "result") d = t.result, n = !0;
1117
+ else if (t.type === "error") throw t.error;
1118
+ if (!n) throw new c("Form submission failed: stream completed without a result.", {
1119
+ code: l.SESSION_RESULT_MISSING,
1120
+ retryable: !1,
1121
+ details: { backend: m }
1122
+ });
1123
+ } else d = await t.submit(u);
1124
+ if (!(C.getCurrentRequestId() === p && e.getState().lifecycleVersion === T && !E.aborted && !C.isAborted(p))) throw x(C.getAbortReason(p));
1125
+ let f = fe(d), h = {
1126
+ backend: m,
1127
+ ...v,
1128
+ reports: f.reports ?? {},
1129
+ meta: f.meta ?? {},
1130
+ raw: f.raw
1131
+ }, g = await pe(o, {
1132
+ ...h,
1133
+ reportStates: {}
1134
+ }), _ = we(o, h, g), b = L(o, _);
1135
+ e.batch(() => {
1136
+ me(o, g), w.succeed(b);
1137
+ });
1138
+ try {
1139
+ let e = N(v);
1140
+ await n?.afterSubmit?.({
1141
+ backend: m,
1142
+ ...e,
1143
+ submitCount: y,
1144
+ result: L(o, _)
1145
+ });
1146
+ } catch (e) {
1147
+ if (r?.afterSubmit !== "preserve-success") throw e;
1148
+ await D(m, v, y, e);
1149
+ }
1150
+ return L(o, _);
1151
+ } catch (e) {
1152
+ return S(e) || E.aborted || C.isAborted(p) ? await O(e, p, T, y, v, m) : await k(e, p, T, y, v, m);
1153
+ } finally {
1154
+ C.clear(p), w.clear(p);
1155
+ }
1156
+ },
1157
+ abort(e) {
1158
+ C.abort(e);
1159
+ },
1160
+ reset() {
1161
+ C.reset();
1162
+ }
1163
+ };
1164
+ }, We = (e, t, n, r) => U(e, t, n(), r()), Ge = ({ config: e, definition: t, value: n, values: r, currentState: i, getSubmitCount: a, getFormStatus: o }) => {
1165
+ let s = K(t, e, n), c = We(e, r, a, o);
1166
+ if (!c.visible) throw new h(`Field "${e.id}" is hidden and cannot be updated.`);
1167
+ if (c.disabled) throw new h(`Field "${e.id}" is disabled and cannot be updated.`);
1168
+ if (c.readOnly) throw new h(`Field "${e.id}" is read-only and cannot be updated.`);
1169
+ let l = J(t, e, s, r, a(), c);
1170
+ return G({
1171
+ ...i,
1172
+ value: s,
1173
+ touched: !0,
1174
+ dirty: !q(t, e, s, i.initialValue),
1175
+ visible: c.visible,
1176
+ disabled: c.disabled,
1177
+ readOnly: c.readOnly,
1178
+ syncErrors: l,
1179
+ validationErrors: [],
1180
+ externalErrors: []
1181
+ });
1182
+ }, Ke = ({ config: e, definition: t, currentState: n, values: r, getSubmitCount: i, getFormStatus: a, options: o }) => {
1183
+ let s = We(e, r, i, a), c = e.inactiveFieldPolicy ?? o?.inactiveFieldPolicy, l = K(t, e, (o?.resetInactiveToInitial === !0 || c === "reset-on-hide") && (!s.visible || s.disabled) ? n.initialValue : n.value), u = J(t, e, l, r, i(), s);
1184
+ return G({
1185
+ ...n,
1186
+ value: l,
1187
+ dirty: !q(t, e, l, n.initialValue),
1188
+ visible: s.visible,
1189
+ disabled: s.disabled,
1190
+ readOnly: s.readOnly,
1191
+ syncErrors: u,
1192
+ validationErrors: o?.preserveValidationErrors && s.visible && !s.disabled ? [...n.validationErrors] : [],
1193
+ externalErrors: o?.preserveExternalErrors && s.visible && !s.disabled ? [...n.externalErrors] : [],
1194
+ validationVersion: n.validationVersion
1195
+ });
1196
+ }, X = (e, t, n) => {
1197
+ e.update((e) => ({
1198
+ ...e,
1199
+ fieldStates: {
1200
+ ...e.fieldStates,
1201
+ [t]: n
1202
+ }
1203
+ }));
1204
+ }, qe = ({ config: t, definition: n, store: r, getValues: i, getSubmitCount: a, getFormStatus: o, onValueChange: s }) => {
1205
+ let c = e(O(t)), l = Ie(n, c, c.defaultValue === void 0 ? n.getDefaultValue?.(c) : c.defaultValue, i(), a(), o());
1206
+ X(r, t.id, l);
1207
+ let u = () => r.getState().fieldStates[t.id], f = Le({
1208
+ config: c,
1209
+ definition: n,
1210
+ store: r,
1211
+ getValues: i,
1212
+ getSubmitCount: a,
1213
+ getFormStatus: o,
1214
+ commitState: (e, t) => X(r, e, t)
1215
+ });
1216
+ return {
1217
+ get id() {
1218
+ return c.id;
1219
+ },
1220
+ get kind() {
1221
+ return c.kind;
1222
+ },
1223
+ get config() {
1224
+ return c;
1225
+ },
1226
+ get state() {
1227
+ return F(u());
1228
+ },
1229
+ setValue(e) {
1230
+ let n = {
1231
+ ...i(),
1232
+ [c.id]: this.coerceValue(e)
1233
+ };
1234
+ if (this.applyValue(e, n), s) {
1235
+ s(t.id, n);
1236
+ return;
1237
+ }
1238
+ r.update((e) => ({
1239
+ ...e,
1240
+ status: "editing",
1241
+ formErrors: [],
1242
+ lifecycleVersion: e.lifecycleVersion + 1
1243
+ }));
1244
+ },
1245
+ applyValue(e, t) {
1246
+ f.abort("value-updated"), this.commitState(this.prepareValue(e, t));
1247
+ },
1248
+ prepareValue(e, t) {
1249
+ return Ge({
1250
+ config: c,
1251
+ definition: n,
1252
+ value: e,
1253
+ values: t,
1254
+ currentState: u(),
1255
+ getSubmitCount: a,
1256
+ getFormStatus: o
1257
+ });
1258
+ },
1259
+ commitState(e) {
1260
+ X(r, c.id, e);
1261
+ },
1262
+ blur() {
1263
+ let e = u();
1264
+ X(r, c.id, {
1265
+ ...e,
1266
+ touched: !0
1267
+ }), r.update((e) => ({
1268
+ ...e,
1269
+ status: "editing"
1270
+ }));
1271
+ },
1272
+ focus() {},
1273
+ async validate(e) {
1274
+ return f.validate(u(), e);
1275
+ },
1276
+ reset() {
1277
+ f.abort("field-reset"), X(r, c.id, { ...l });
1278
+ },
1279
+ subscribe(e) {
1280
+ let t = u();
1281
+ return r.subscribe(() => {
1282
+ let n = r.getState().fieldStates[c.id];
1283
+ d(t, n) || (t = n, e(F(n)));
1284
+ });
1285
+ },
1286
+ serialize() {
1287
+ let e = u().value;
1288
+ return n.serializeValue ? n.serializeValue(e, c) : e;
1289
+ },
1290
+ coerceValue(e) {
1291
+ return K(n, c, e);
1292
+ },
1293
+ setExternalErrors(e) {
1294
+ let t = u();
1295
+ X(r, c.id, G({
1296
+ ...t,
1297
+ externalErrors: [...e]
1298
+ }));
1299
+ },
1300
+ refresh(e) {
1301
+ let t = Ke({
1302
+ config: c,
1303
+ definition: n,
1304
+ currentState: u(),
1305
+ values: e?.values ?? i(),
1306
+ getSubmitCount: a,
1307
+ getFormStatus: o,
1308
+ options: e
1309
+ });
1310
+ return X(r, c.id, t), t;
1311
+ }
1312
+ };
1313
+ }, Je = {
1314
+ payload: void 0,
1315
+ error: null,
1316
+ status: "idle"
1317
+ }, Ye = {
1318
+ payload: void 0,
1319
+ error: null,
1320
+ status: "loading"
1321
+ }, Z = (e, t, n) => {
1322
+ if (n !== void 0) return e.clonePayload ? e.clonePayload(n, t) : O(n);
1323
+ }, Xe = (e, t, n) => ({
1324
+ payload: Z(e, t, n.payload),
1325
+ error: n.error,
1326
+ status: n.status
1327
+ }), Q = (e, t, n) => {
1328
+ e.update((e) => ({
1329
+ ...e,
1330
+ reportStates: {
1331
+ ...e.reportStates,
1332
+ [t]: n
1333
+ }
1334
+ }));
1335
+ }, Ze = ({ config: t, definition: n, store: r }) => {
1336
+ let i = e(O(t));
1337
+ return Q(r, i.id, Je), {
1338
+ get id() {
1339
+ return i.id;
1340
+ },
1341
+ get kind() {
1342
+ return i.kind;
1343
+ },
1344
+ get config() {
1345
+ return i;
1346
+ },
1347
+ get partialUpdatePolicy() {
1348
+ return n.partialUpdatePolicy ?? "trust";
1349
+ },
1350
+ get state() {
1351
+ return Xe(n, i, r.getState().reportStates[i.id]);
1352
+ },
1353
+ cloneState(e) {
1354
+ return Xe(n, i, e);
1355
+ },
1356
+ async prepareState(e) {
1357
+ let t;
1358
+ try {
1359
+ t = n.resolvePayload ? await n.resolvePayload(i, {
1360
+ report: i,
1361
+ result: e
1362
+ }) : e.reports[i.source];
1363
+ } catch (e) {
1364
+ return {
1365
+ payload: void 0,
1366
+ error: e instanceof Error ? e.message : String(e),
1367
+ status: "error"
1368
+ };
1369
+ }
1370
+ if (t === void 0 || !n.payloadSchema) return {
1371
+ payload: Z(n, i, t),
1372
+ error: null,
1373
+ status: t === void 0 ? "idle" : "ready"
1374
+ };
1375
+ try {
1376
+ return {
1377
+ payload: Z(n, i, n.payloadSchema.parse(t)),
1378
+ error: null,
1379
+ status: "ready"
1380
+ };
1381
+ } catch (e) {
1382
+ let t = e instanceof Error ? e.message : String(e);
1383
+ if (n.payloadValidationPolicy === "fail-submit") throw new y(i.id, t, e);
1384
+ return {
1385
+ payload: void 0,
1386
+ error: t,
1387
+ status: "error"
1388
+ };
1389
+ }
1390
+ },
1391
+ commitState(e) {
1392
+ Q(r, i.id, this.cloneState(e));
1393
+ },
1394
+ async update(e) {
1395
+ this.commitState(await this.prepareState(e));
1396
+ },
1397
+ markLoading() {
1398
+ Q(r, i.id, Ye);
1399
+ },
1400
+ reset() {
1401
+ Q(r, i.id, Je);
1402
+ },
1403
+ subscribe(e) {
1404
+ let t = r.getState().reportStates[i.id];
1405
+ return r.subscribe(() => {
1406
+ let n = r.getState().reportStates[i.id];
1407
+ d(t, n) || (t = n, e(this.cloneState(n)));
1408
+ });
1409
+ }
1410
+ };
1411
+ }, Qe = (e, t, n, r) => {
1412
+ if (typeof n != "object" || !n) throw new h(`Series field "${e}" requires "${t}" configuration.`);
1413
+ let i = "kind" in n && typeof n.kind == "string" ? n.kind : "";
1414
+ if (i.length === 0) throw new h(`Series field "${e}" requires "${t}.kind".`);
1415
+ if (i === "series") throw new h(`Series field "${e}" cannot nest series in "${t}".`);
1416
+ if (!r.getField(i)) throw new g(`Series field "${e}" uses unknown sub-field kind "${i}" in "${t}".`);
1417
+ }, $e = (e, t) => {
1418
+ if (e.kind === "series" && (Qe(e.label, "field1", e.field1, t), Qe(e.label, "field2", e.field2, t), typeof e.minPoints == "number" && typeof e.maxPoints == "number" && e.minPoints > e.maxPoints)) throw new h(`Series field "${e.label}" requires minPoints to be less than or equal to maxPoints.`);
1419
+ }, $ = (e, t, n, r) => {
1420
+ let i = o((e ?? t) || r);
1421
+ if (e) {
1422
+ if (n.has(i)) throw new h(`Duplicate explicit id "${i}" in schema.`);
1423
+ return n.add(i), i;
1424
+ }
1425
+ let a = i, s = 2;
1426
+ for (; n.has(a);) a = `${i}-${s}`, s += 1;
1427
+ return n.add(a), a;
1428
+ }, et = (e, t, n, r) => {
1429
+ let i = n.getField(e.kind);
1430
+ if (!i) throw new g(`Unknown field kind "${e.kind}".`);
1431
+ let a = i.schema.parse(e);
1432
+ $e(a, n);
1433
+ let o = $(a.id, a.label, r, `field-${t + 1}`);
1434
+ return {
1435
+ ...a,
1436
+ id: o
1437
+ };
1438
+ }, tt = (e, t, n, r) => {
1439
+ let i = n.getReport(e.kind);
1440
+ if (!i) throw new g(`Unknown report kind "${e.kind}".`);
1441
+ let a = i.schema.parse(e), o = $(a.id, a.label ?? a.kind, r, `report-${t + 1}`);
1442
+ return {
1443
+ ...a,
1444
+ id: o,
1445
+ source: a.source ?? o
1446
+ };
1447
+ }, nt = (e, t, n, r) => {
1448
+ let i = n.getExplanation(e.kind);
1449
+ if (!i) throw new g(`Unknown explanation kind "${e.kind}".`);
1450
+ let a = i.schema.parse(e), o = $(a.id, a.label ?? a.kind, r, `explanation-${t + 1}`);
1451
+ return {
1452
+ ...a,
1453
+ id: o
1454
+ };
1455
+ }, rt = (e, t) => {
1456
+ let n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set();
1457
+ return {
1458
+ fields: e.fields.map((e, r) => et(e, r, t, n)),
1459
+ reports: (e.reports ?? []).map((e, n) => tt(e, n, t, r)),
1460
+ explanations: (e.explanations ?? []).map((e, n) => nt(e, n, t, i))
1461
+ };
1462
+ }, it = ({ registry: e, behaviors: t, fields: n, getValues: i, getSubmitCount: a, getFormStatus: s, commitDerivedValue: c, syncDerivedState: l, onListenerError: u }) => {
1463
+ let d = new Map(n.map((e) => [e.id, e])), f = (e) => d.get(e) ?? d.get(o(e)), p = () => ({
1464
+ registry: e,
1465
+ fields: n,
1466
+ getField(e) {
1467
+ return f(e);
1468
+ },
1469
+ resolveFieldId(e) {
1470
+ return f(e)?.id;
1471
+ },
1472
+ getValues: i,
1473
+ getSubmitCount: a,
1474
+ getFormStatus: s,
1475
+ commitDerivedValue: c,
1476
+ syncDerivedState: l
1477
+ });
1478
+ return {
1479
+ createBehaviorContext: p,
1480
+ runBehaviorValueChange: (e) => {
1481
+ let n = p();
1482
+ for (let i of t) {
1483
+ let t = i.onValuesChanged?.(e, n);
1484
+ r(t) && Promise.resolve(t).catch((e) => {
1485
+ u?.(e);
1486
+ });
1487
+ }
1488
+ },
1489
+ runBeforeSubmitRecords: async (e) => {
1490
+ let n = p();
1491
+ for (let r of t) await r.beforeSubmitRecords?.(e, n);
1492
+ },
1493
+ validateBehaviors: () => {
1494
+ let e = p();
1495
+ for (let n of t) n.validate?.(e);
1496
+ },
1497
+ fieldMap: d,
1498
+ resolveField: f
1499
+ };
1500
+ }, at = ({ fields: e, reports: t, explanations: n, fieldMap: r, reportMap: i, explanationMap: a, store: o, getPublicState: s, getValues: c, getInternalValues: l, formValidator: u, formSubmitter: d, syncDerivedFieldState: f, shouldResetInactiveFields: p, inactiveFieldPolicy: g, bumpLifecycleVersion: _, resetReports: v, resetExplanations: y, runBehaviorValueChange: b }) => {
1501
+ let x = Object.freeze([...e]), S = Object.freeze([...t]), C = Object.freeze([...n]);
1502
+ return {
1503
+ get fields() {
1504
+ return x;
1505
+ },
1506
+ get reports() {
1507
+ return S;
1508
+ },
1509
+ get explanations() {
1510
+ return C;
1511
+ },
1512
+ get state() {
1513
+ return s();
1514
+ },
1515
+ getField(e) {
1516
+ return r.get(e);
1517
+ },
1518
+ getReport(e) {
1519
+ return i.get(e);
1520
+ },
1521
+ getExplanation(e) {
1522
+ return a.get(e);
1523
+ },
1524
+ getValues() {
1525
+ return c();
1526
+ },
1527
+ setValues(e) {
1528
+ o.batch(() => {
1529
+ let t = Object.entries(e), n = { ...l() }, i = /* @__PURE__ */ new Map();
1530
+ for (let [e, i] of t) {
1531
+ let t = r.get(e);
1532
+ if (!t) throw new h(`Unknown field "${e}".`);
1533
+ n[e] = t.coerceValue(i);
1534
+ }
1535
+ for (let [e, a] of t) {
1536
+ let t = r.get(e);
1537
+ if (!t) throw new h(`Unknown field "${e}".`);
1538
+ i.set(e, t.prepareValue(a, n));
1539
+ }
1540
+ _();
1541
+ for (let [e, t] of i) {
1542
+ let n = r.get(e);
1543
+ if (!n) throw new h(`Unknown field "${e}".`);
1544
+ n.commitState(t);
1545
+ }
1546
+ o.update((e) => P(e, {
1547
+ type: "editing",
1548
+ clearFormErrors: !0
1549
+ })), f({
1550
+ values: n,
1551
+ preserveValidationErrors: !1,
1552
+ preserveExternalErrors: !1,
1553
+ resetInactiveToInitial: p(),
1554
+ inactiveFieldPolicy: g
1555
+ });
1556
+ for (let [e] of t) b({
1557
+ fieldId: e,
1558
+ source: "local",
1559
+ values: n
1560
+ });
1561
+ });
1562
+ },
1563
+ validate() {
1564
+ return u.validate();
1565
+ },
1566
+ submit(e) {
1567
+ return d.submit(e);
1568
+ },
1569
+ abortSubmit(e) {
1570
+ d.abort(e);
1571
+ },
1572
+ reset() {
1573
+ o.batch(() => {
1574
+ d.abort("reset"), _();
1575
+ for (let t of e) t.reset();
1576
+ v(), y(), d.reset(), o.update((e) => P(e, { type: "reset" })), f({
1577
+ preserveValidationErrors: !1,
1578
+ preserveExternalErrors: !1
1579
+ });
1580
+ });
1581
+ },
1582
+ subscribe(e) {
1583
+ return o.subscribe(() => {
1584
+ e(s());
1585
+ });
1586
+ },
1587
+ subscribeSelector(e, t, n) {
1588
+ let r = n?.equality ?? m, i = e(s());
1589
+ return n?.emitInitial && t(i, s()), o.subscribe(() => {
1590
+ let n = s(), a = e(n);
1591
+ r(i, a) || (i = a, t(a, n));
1592
+ });
1593
+ }
1594
+ };
1595
+ }, ot = ({ store: e, fields: t, shouldResetInactiveFields: n, inactiveFieldPolicy: r, hasInteractiveFieldState: i }) => {
1596
+ function a(n) {
1597
+ e.batch(() => {
1598
+ let e = n?.resetInactiveToInitial === !0 ? { ...n.values } : n?.values;
1599
+ for (let i of t) {
1600
+ let t = i.refresh({
1601
+ ...n,
1602
+ values: e,
1603
+ inactiveFieldPolicy: n?.inactiveFieldPolicy ?? r
1604
+ });
1605
+ e && (e[i.id] = t.value);
1606
+ }
1607
+ });
1608
+ }
1609
+ return {
1610
+ syncDerivedFieldState: a,
1611
+ setRestingStatus: () => {
1612
+ e.batch(() => {
1613
+ let t = i(e.getState().fieldStates) ? "editing" : "idle";
1614
+ e.update((e) => P(e, {
1615
+ type: "rest",
1616
+ status: t
1617
+ })), a({
1618
+ preserveValidationErrors: !0,
1619
+ preserveExternalErrors: !0,
1620
+ resetInactiveToInitial: n(),
1621
+ inactiveFieldPolicy: r
1622
+ });
1623
+ });
1624
+ }
1625
+ };
1626
+ }, st = (e, t) => e.get(t), ct = ({ getFieldMap: e, getValues: t, getCurrentFieldState: n, syncDerivedFieldState: r, shouldResetInactiveFields: i, inactiveFieldPolicy: a }) => ({
1627
+ getValues: () => Object.fromEntries(Object.entries(t()).map(([e, t]) => [e, O(t)])),
1628
+ commitDerivedValue: (o, s) => {
1629
+ let c = st(e(), o);
1630
+ if (!c) throw new h(`Unknown field "${o}".`);
1631
+ let l = c.coerceValue(s), u = {
1632
+ ...t(),
1633
+ [c.id]: l
1634
+ }, d = n(c.id);
1635
+ d && (c.commitState({
1636
+ ...d,
1637
+ value: l
1638
+ }), r({
1639
+ values: u,
1640
+ preserveValidationErrors: !1,
1641
+ preserveExternalErrors: !1,
1642
+ resetInactiveToInitial: i(),
1643
+ inactiveFieldPolicy: a
1644
+ }), c.validate());
1645
+ }
1646
+ }), lt = (e) => {
1647
+ if (!e || typeof e.submit != "function") throw new h("createForm requires a transport with a submit(request) function.");
1648
+ }, ut = (e) => {
1649
+ for (let t in e) {
1650
+ let n = e[t];
1651
+ if (n?.dirty || n?.touched) return !0;
1652
+ }
1653
+ return !1;
1654
+ }, dt = (e, t) => e.config.inactiveFieldPolicy ?? t ?? "omit", ft = (e) => {
1655
+ lt(e.transport);
1656
+ let t = rt(e.schema, e.registry), n = e.behaviors ?? [], r = Se(_e(), {
1657
+ listenerErrorPolicy: e.listenerErrorPolicy ?? "ignore",
1658
+ onListenerError: e.onListenerError
1659
+ }), i = r.getState(), a = I(i), o = () => {
1660
+ let e = r.getState();
1661
+ return e !== i && (i = e, a = I(e)), a;
1662
+ }, s = () => r.getState().submitCount, c = () => r.getState().status, l = () => e.inactiveFieldPolicy === "reset-on-hide", u = () => Object.fromEntries(Object.entries(r.getState().fieldStates).map(([e, t]) => [e, t.value])), d = t.fields.map((t) => {
1663
+ let n = e.registry.getField(t.kind);
1664
+ if (!n) throw new h(`Field definition "${t.kind}" disappeared during form creation.`);
1665
+ return qe({
1666
+ config: {
1667
+ ...t,
1668
+ defaultValue: e.initialValues?.[t.id] === void 0 ? t.defaultValue : e.initialValues[t.id]
1669
+ },
1670
+ definition: n,
1671
+ store: r,
1672
+ getValues: () => u(),
1673
+ getSubmitCount: s,
1674
+ getFormStatus: c,
1675
+ onValueChange: (t, n) => {
1676
+ r.batch(() => {
1677
+ r.update((e) => P(e, {
1678
+ type: "editing",
1679
+ clearFormErrors: !0,
1680
+ bumpLifecycle: !0
1681
+ })), y({
1682
+ values: n,
1683
+ preserveValidationErrors: !1,
1684
+ preserveExternalErrors: !1,
1685
+ resetInactiveToInitial: l(),
1686
+ inactiveFieldPolicy: e.inactiveFieldPolicy
1687
+ });
1688
+ }), C({
1689
+ fieldId: t,
1690
+ source: "local",
1691
+ values: n
1692
+ });
1693
+ }
1694
+ });
1695
+ }), f = t.reports.map((t) => {
1696
+ let n = e.registry.getReport(t.kind);
1697
+ if (!n) throw new h(`Report definition "${t.kind}" disappeared during form creation.`);
1698
+ return Ze({
1699
+ config: t,
1700
+ definition: n,
1701
+ store: r
1702
+ });
1703
+ }), p = t.explanations.map((t) => {
1704
+ let n = e.registry.getExplanation(t.kind);
1705
+ if (!n) throw new h(`Explanation definition "${t.kind}" disappeared during form creation.`);
1706
+ return te({
1707
+ config: t,
1708
+ definition: n,
1709
+ store: r,
1710
+ hooks: e.hooks
1711
+ });
1712
+ }), m = new Map(d.map((e) => [e.id, e])), g = new Map(f.map((e) => [e.id, e])), _ = new Map(p.map((e) => [e.id, e])), v = (e) => r.getState().fieldStates[e], { syncDerivedFieldState: y, setRestingStatus: b } = ot({
1713
+ store: r,
1714
+ fields: d,
1715
+ shouldResetInactiveFields: l,
1716
+ inactiveFieldPolicy: e.inactiveFieldPolicy,
1717
+ hasInteractiveFieldState: ut
1718
+ }), { getValues: x, commitDerivedValue: S } = ct({
1719
+ getFieldMap: () => m,
1720
+ getValues: u,
1721
+ getCurrentFieldState: v,
1722
+ syncDerivedFieldState: y,
1723
+ shouldResetInactiveFields: l,
1724
+ inactiveFieldPolicy: e.inactiveFieldPolicy
1725
+ }), { runBehaviorValueChange: C, runBeforeSubmitRecords: w, validateBehaviors: T } = it({
1726
+ registry: e.registry,
1727
+ behaviors: n,
1728
+ fields: d,
1729
+ getValues: x,
1730
+ getSubmitCount: s,
1731
+ getFormStatus: c,
1732
+ commitDerivedValue: S,
1733
+ syncDerivedState(t) {
1734
+ y({
1735
+ values: t,
1736
+ preserveValidationErrors: !0,
1737
+ preserveExternalErrors: !0,
1738
+ resetInactiveToInitial: l(),
1739
+ inactiveFieldPolicy: e.inactiveFieldPolicy
1740
+ });
1741
+ },
1742
+ onListenerError: e.onListenerError
1743
+ }), E = () => {
1744
+ for (let e of f) e.reset();
1745
+ }, D = () => {
1746
+ for (let e of p) e.reset();
1747
+ }, O = () => {
1748
+ for (let e of f) e.markLoading();
1749
+ }, k = () => (r.update((e) => P(e, { type: "bump-lifecycle" })), r.getState().lifecycleVersion), A = ze({
1750
+ store: r,
1751
+ fields: d,
1752
+ normalizedSchema: t,
1753
+ validators: e.validators,
1754
+ hooks: e.hooks,
1755
+ getValues: x,
1756
+ getSubmitCount: s,
1757
+ getFormStatus: c,
1758
+ syncDerivedFieldState: y,
1759
+ setRestingStatus: b,
1760
+ shouldResetInactiveFields: l,
1761
+ inactiveFieldPolicy: e.inactiveFieldPolicy
1762
+ }), j = at({
1763
+ fields: d,
1764
+ reports: f,
1765
+ explanations: p,
1766
+ fieldMap: m,
1767
+ reportMap: g,
1768
+ explanationMap: _,
1769
+ store: r,
1770
+ getPublicState: o,
1771
+ getValues: x,
1772
+ getInternalValues: u,
1773
+ formValidator: A,
1774
+ formSubmitter: Ue({
1775
+ store: r,
1776
+ transport: e.transport,
1777
+ hooks: e.hooks,
1778
+ hookFailurePolicy: e.hookFailurePolicy,
1779
+ normalizedSchema: t,
1780
+ fields: d,
1781
+ reports: f,
1782
+ validate: () => A.validate(),
1783
+ getSubmitCount: s,
1784
+ markReportsLoading: O,
1785
+ resetReports: E,
1786
+ resetExplanations: D,
1787
+ syncDerivedFieldState: y,
1788
+ shouldResetInactiveFields: l,
1789
+ resolveInactiveFieldPolicy: (t) => dt(t, e.inactiveFieldPolicy),
1790
+ inactiveFieldPolicy: e.inactiveFieldPolicy,
1791
+ onRemoteFieldUpdate: async (t) => {
1792
+ let n = x();
1793
+ y({
1794
+ values: n,
1795
+ preserveValidationErrors: !0,
1796
+ preserveExternalErrors: !0,
1797
+ resetInactiveToInitial: l(),
1798
+ inactiveFieldPolicy: e.inactiveFieldPolicy
1799
+ }), C({
1800
+ fieldId: t,
1801
+ source: "remote",
1802
+ values: n
1803
+ });
1804
+ },
1805
+ beforeSubmitRecords: w
1806
+ }),
1807
+ syncDerivedFieldState: y,
1808
+ shouldResetInactiveFields: l,
1809
+ inactiveFieldPolicy: e.inactiveFieldPolicy,
1810
+ bumpLifecycleVersion: k,
1811
+ resetReports: E,
1812
+ resetExplanations: D,
1813
+ runBehaviorValueChange: C
1814
+ });
1815
+ return y({
1816
+ values: x(),
1817
+ preserveValidationErrors: !1,
1818
+ preserveExternalErrors: !1,
1819
+ resetInactiveToInitial: l(),
1820
+ inactiveFieldPolicy: e.inactiveFieldPolicy
1821
+ }), T(), j;
1822
+ }, pt = () => s(), mt = (e) => e, ht = (e) => e, gt = (e) => e;
1823
+ //#endregion
1824
+ export { m as _, ft as a, te as c, y as d, b as f, f as g, d as h, ht as i, h as l, _ as m, gt as n, oe as o, v as p, mt as r, re as s, pt as t, g as u, p as v };