cogsbox-state 0.5.359 → 0.5.361

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.
@@ -1,61 +1,61 @@
1
1
  "use client";
2
- import { jsx as mt } from "react/jsx-runtime";
3
- import { useState as Y, useRef as X, useEffect as tt, useLayoutEffect as lt, useMemo as ht, createElement as st, useSyncExternalStore as Pt, startTransition as Vt, useCallback as pt } from "react";
4
- import { transformStateFunc as xt, isDeepEqual as B, isFunction as Z, getNestedValue as z, getDifferences as vt, debounce as _t } from "./utility.js";
5
- import { pushFunc as St, updateFn as at, cutFunc as ct, ValidationWrapper as Ot, FormControlComponent as Mt } from "./Functions.jsx";
6
- import Rt from "superjson";
7
- import { v4 as It } from "uuid";
2
+ import { jsx as ye } from "react/jsx-runtime";
3
+ import { useState as ee, useRef as J, useEffect as oe, useLayoutEffect as ie, useMemo as Ie, createElement as ce, useSyncExternalStore as Me, startTransition as Oe, useCallback as Te } from "react";
4
+ import { transformStateFunc as Re, isDeepEqual as B, isFunction as X, getNestedValue as q, getDifferences as pe, debounce as Ue } from "./utility.js";
5
+ import { pushFunc as ve, updateFn as se, cutFunc as ue, ValidationWrapper as je, FormControlComponent as Fe } from "./Functions.jsx";
6
+ import De from "superjson";
7
+ import { v4 as we } from "uuid";
8
8
  import "zod";
9
- import { getGlobalStore as r, formRefStore as wt } from "./store.js";
10
- import { useCogsConfig as $t } from "./CogsStateClient.jsx";
11
- import { applyPatch as Ut } from "fast-json-patch";
12
- import jt from "react-use-measure";
13
- function Et(t, c) {
14
- const m = r.getState().getInitialOptions, u = r.getState().setInitialStateOptions, I = m(t) || {};
15
- u(t, {
16
- ...I,
17
- ...c
9
+ import { getGlobalStore as r, formRefStore as $e } from "./store.js";
10
+ import { useCogsConfig as xe } from "./CogsStateClient.jsx";
11
+ import { applyPatch as Le } from "fast-json-patch";
12
+ import We from "react-use-measure";
13
+ function ke(e, i) {
14
+ const S = r.getState().getInitialOptions, g = r.getState().setInitialStateOptions, y = S(e) || {};
15
+ g(e, {
16
+ ...y,
17
+ ...i
18
18
  });
19
19
  }
20
- function At({
21
- stateKey: t,
22
- options: c,
23
- initialOptionsPart: m
20
+ function be({
21
+ stateKey: e,
22
+ options: i,
23
+ initialOptionsPart: S
24
24
  }) {
25
- const u = nt(t) || {}, I = m[t] || {}, b = r.getState().setInitialStateOptions, w = { ...I, ...u };
26
- let p = !1;
27
- if (c)
28
- for (const a in c)
29
- w.hasOwnProperty(a) ? (a == "localStorage" && c[a] && w[a].key !== c[a]?.key && (p = !0, w[a] = c[a]), a == "initialState" && c[a] && w[a] !== c[a] && // Different references
30
- !B(w[a], c[a]) && (p = !0, w[a] = c[a])) : (p = !0, w[a] = c[a]);
31
- p && b(t, w);
25
+ const g = re(e) || {}, y = S[e] || {}, C = r.getState().setInitialStateOptions, w = { ...y, ...g };
26
+ let I = !1;
27
+ if (i)
28
+ for (const a in i)
29
+ w.hasOwnProperty(a) ? (a == "localStorage" && i[a] && w[a].key !== i[a]?.key && (I = !0, w[a] = i[a]), a == "initialState" && i[a] && w[a] !== i[a] && // Different references
30
+ !B(w[a], i[a]) && (I = !0, w[a] = i[a])) : (I = !0, w[a] = i[a]);
31
+ I && C(e, w);
32
32
  }
33
- function se(t, { formElements: c, validation: m }) {
34
- return { initialState: t, formElements: c, validation: m };
33
+ function dt(e, { formElements: i, validation: S }) {
34
+ return { initialState: e, formElements: i, validation: S };
35
35
  }
36
- const ie = (t, c) => {
37
- let m = t;
38
- const [u, I] = xt(m);
39
- (Object.keys(I).length > 0 || c && Object.keys(c).length > 0) && Object.keys(I).forEach((p) => {
40
- I[p] = I[p] || {}, I[p].formElements = {
41
- ...c?.formElements,
36
+ const ut = (e, i) => {
37
+ let S = e;
38
+ const [g, y] = Re(S);
39
+ (Object.keys(y).length > 0 || i && Object.keys(i).length > 0) && Object.keys(y).forEach((I) => {
40
+ y[I] = y[I] || {}, y[I].formElements = {
41
+ ...i?.formElements,
42
42
  // Global defaults first
43
- ...c?.validation,
44
- ...I[p].formElements || {}
43
+ ...i?.validation,
44
+ ...y[I].formElements || {}
45
45
  // State-specific overrides
46
- }, nt(p) || r.getState().setInitialStateOptions(p, I[p]);
47
- }), r.getState().setInitialStates(u), r.getState().setCreatedState(u);
48
- const b = (p, a) => {
49
- const [v] = Y(a?.componentId ?? It());
50
- At({
51
- stateKey: p,
46
+ }, re(I) || r.getState().setInitialStateOptions(I, y[I]);
47
+ }), r.getState().setInitialStates(g), r.getState().setCreatedState(g);
48
+ const C = (I, a) => {
49
+ const [v] = ee(a?.componentId ?? we());
50
+ be({
51
+ stateKey: I,
52
52
  options: a,
53
- initialOptionsPart: I
53
+ initialOptionsPart: y
54
54
  });
55
- const n = r.getState().cogsStateStore[p] || u[p], f = a?.modifyState ? a.modifyState(n) : n, [F, U] = Bt(
55
+ const n = r.getState().cogsStateStore[I] || g[I], f = a?.modifyState ? a.modifyState(n) : n, [G, U] = Ye(
56
56
  f,
57
57
  {
58
- stateKey: p,
58
+ stateKey: I,
59
59
  syncUpdate: a?.syncUpdate,
60
60
  componentId: v,
61
61
  localStorage: a?.localStorage,
@@ -70,109 +70,109 @@ const ie = (t, c) => {
70
70
  );
71
71
  return U;
72
72
  };
73
- function w(p, a) {
74
- At({ stateKey: p, options: a, initialOptionsPart: I }), a.localStorage && Wt(p, a), ft(p);
73
+ function w(I, a) {
74
+ be({ stateKey: I, options: a, initialOptionsPart: y }), a.localStorage && qe(I, a), me(I);
75
75
  }
76
- return { useCogsState: b, setCogsOptions: w };
76
+ return { useCogsState: C, setCogsOptions: w };
77
77
  }, {
78
- setUpdaterState: dt,
79
- setState: et,
80
- getInitialOptions: nt,
81
- getKeyState: Nt,
82
- getValidationErrors: Lt,
83
- setStateLog: Dt,
84
- updateInitialStateGlobal: yt,
85
- addValidationError: Ft,
86
- removeValidationError: J,
87
- setServerSyncActions: Gt
88
- } = r.getState(), Tt = (t, c, m, u, I) => {
89
- m?.log && console.log(
78
+ setUpdaterState: ge,
79
+ setState: te,
80
+ getInitialOptions: re,
81
+ getKeyState: Ve,
82
+ getValidationErrors: Ge,
83
+ setStateLog: He,
84
+ updateInitialStateGlobal: Ee,
85
+ addValidationError: ze,
86
+ removeValidationError: Z,
87
+ setServerSyncActions: Be
88
+ } = r.getState(), Ce = (e, i, S, g, y) => {
89
+ S?.log && console.log(
90
90
  "saving to localstorage",
91
- c,
92
- m.localStorage?.key,
93
- u
91
+ i,
92
+ S.localStorage?.key,
93
+ g
94
94
  );
95
- const b = Z(m?.localStorage?.key) ? m.localStorage?.key(t) : m?.localStorage?.key;
96
- if (b && u) {
97
- const w = `${u}-${c}-${b}`;
98
- let p;
95
+ const C = X(S?.localStorage?.key) ? S.localStorage?.key(e) : S?.localStorage?.key;
96
+ if (C && g) {
97
+ const w = `${g}-${i}-${C}`;
98
+ let I;
99
99
  try {
100
- p = gt(w)?.lastSyncedWithServer;
100
+ I = Se(w)?.lastSyncedWithServer;
101
101
  } catch {
102
102
  }
103
103
  const a = {
104
- state: t,
104
+ state: e,
105
105
  lastUpdated: Date.now(),
106
- lastSyncedWithServer: I ?? p
107
- }, v = Rt.serialize(a);
106
+ lastSyncedWithServer: y ?? I
107
+ }, v = De.serialize(a);
108
108
  window.localStorage.setItem(
109
109
  w,
110
110
  JSON.stringify(v.json)
111
111
  );
112
112
  }
113
- }, gt = (t) => {
114
- if (!t) return null;
113
+ }, Se = (e) => {
114
+ if (!e) return null;
115
115
  try {
116
- const c = window.localStorage.getItem(t);
117
- return c ? JSON.parse(c) : null;
118
- } catch (c) {
119
- return console.error("Error loading from localStorage:", c), null;
116
+ const i = window.localStorage.getItem(e);
117
+ return i ? JSON.parse(i) : null;
118
+ } catch (i) {
119
+ return console.error("Error loading from localStorage:", i), null;
120
120
  }
121
- }, Wt = (t, c) => {
122
- const m = r.getState().cogsStateStore[t], { sessionId: u } = $t(), I = Z(c?.localStorage?.key) ? c.localStorage.key(m) : c?.localStorage?.key;
123
- if (I && u) {
124
- const b = gt(
125
- `${u}-${t}-${I}`
121
+ }, qe = (e, i) => {
122
+ const S = r.getState().cogsStateStore[e], { sessionId: g } = xe(), y = X(i?.localStorage?.key) ? i.localStorage.key(S) : i?.localStorage?.key;
123
+ if (y && g) {
124
+ const C = Se(
125
+ `${g}-${e}-${y}`
126
126
  );
127
- if (b && b.lastUpdated > (b.lastSyncedWithServer || 0))
128
- return et(t, b.state), ft(t), !0;
127
+ if (C && C.lastUpdated > (C.lastSyncedWithServer || 0))
128
+ return te(e, C.state), me(e), !0;
129
129
  }
130
130
  return !1;
131
- }, Ct = (t, c, m, u, I, b) => {
131
+ }, Pe = (e, i, S, g, y, C) => {
132
132
  const w = {
133
- initialState: c,
134
- updaterState: ut(
135
- t,
136
- u,
137
- I,
138
- b
133
+ initialState: i,
134
+ updaterState: fe(
135
+ e,
136
+ g,
137
+ y,
138
+ C
139
139
  ),
140
- state: m
140
+ state: S
141
141
  };
142
- yt(t, w.initialState), dt(t, w.updaterState), et(t, w.state);
143
- }, ft = (t) => {
144
- const c = r.getState().stateComponents.get(t);
145
- if (!c) return;
146
- const m = /* @__PURE__ */ new Set();
147
- c.components.forEach((u) => {
148
- (u ? Array.isArray(u.reactiveType) ? u.reactiveType : [u.reactiveType || "component"] : null)?.includes("none") || m.add(() => u.forceUpdate());
142
+ Ee(e, w.initialState), ge(e, w.updaterState), te(e, w.state);
143
+ }, me = (e) => {
144
+ const i = r.getState().stateComponents.get(e);
145
+ if (!i) return;
146
+ const S = /* @__PURE__ */ new Set();
147
+ i.components.forEach((g) => {
148
+ (g ? Array.isArray(g.reactiveType) ? g.reactiveType : [g.reactiveType || "component"] : null)?.includes("none") || S.add(() => g.forceUpdate());
149
149
  }), queueMicrotask(() => {
150
- m.forEach((u) => u());
150
+ S.forEach((g) => g());
151
151
  });
152
- }, ce = (t, c) => {
153
- const m = r.getState().stateComponents.get(t);
154
- if (m) {
155
- const u = `${t}////${c}`, I = m.components.get(u);
156
- if ((I ? Array.isArray(I.reactiveType) ? I.reactiveType : [I.reactiveType || "component"] : null)?.includes("none"))
152
+ }, gt = (e, i) => {
153
+ const S = r.getState().stateComponents.get(e);
154
+ if (S) {
155
+ const g = `${e}////${i}`, y = S.components.get(g);
156
+ if ((y ? Array.isArray(y.reactiveType) ? y.reactiveType : [y.reactiveType || "component"] : null)?.includes("none"))
157
157
  return;
158
- I && I.forceUpdate();
158
+ y && y.forceUpdate();
159
159
  }
160
- }, Ht = (t, c, m, u) => {
161
- switch (t) {
160
+ }, Je = (e, i, S, g) => {
161
+ switch (e) {
162
162
  case "update":
163
163
  return {
164
- oldValue: z(c, u),
165
- newValue: z(m, u)
164
+ oldValue: q(i, g),
165
+ newValue: q(S, g)
166
166
  };
167
167
  case "insert":
168
168
  return {
169
169
  oldValue: null,
170
170
  // or undefined
171
- newValue: z(m, u)
171
+ newValue: q(S, g)
172
172
  };
173
173
  case "cut":
174
174
  return {
175
- oldValue: z(c, u),
175
+ oldValue: q(i, g),
176
176
  newValue: null
177
177
  // or undefined
178
178
  };
@@ -180,327 +180,327 @@ const ie = (t, c) => {
180
180
  return { oldValue: null, newValue: null };
181
181
  }
182
182
  };
183
- function Bt(t, {
184
- stateKey: c,
185
- serverSync: m,
186
- localStorage: u,
187
- formElements: I,
188
- reactiveDeps: b,
183
+ function Ye(e, {
184
+ stateKey: i,
185
+ serverSync: S,
186
+ localStorage: g,
187
+ formElements: y,
188
+ reactiveDeps: C,
189
189
  reactiveType: w,
190
- componentId: p,
190
+ componentId: I,
191
191
  initialState: a,
192
192
  syncUpdate: v,
193
193
  dependencies: n,
194
194
  serverState: f
195
195
  } = {}) {
196
- const [F, U] = Y({}), { sessionId: j } = $t();
197
- let G = !c;
198
- const [h] = Y(c ?? It()), l = r.getState().stateLog[h], it = X(/* @__PURE__ */ new Set()), Q = X(p ?? It()), O = X(
196
+ const [G, U] = ee({}), { sessionId: j } = xe();
197
+ let H = !i;
198
+ const [m] = ee(i ?? we()), l = r.getState().stateLog[m], le = J(/* @__PURE__ */ new Set()), Q = J(I ?? we()), _ = J(
199
199
  null
200
200
  );
201
- O.current = nt(h) ?? null, tt(() => {
202
- if (v && v.stateKey === h && v.path?.[0]) {
203
- et(h, (o) => ({
201
+ _.current = re(m) ?? null, oe(() => {
202
+ if (v && v.stateKey === m && v.path?.[0]) {
203
+ te(m, (o) => ({
204
204
  ...o,
205
205
  [v.path[0]]: v.newValue
206
206
  }));
207
- const e = `${v.stateKey}:${v.path.join(".")}`;
208
- r.getState().setSyncInfo(e, {
207
+ const t = `${v.stateKey}:${v.path.join(".")}`;
208
+ r.getState().setSyncInfo(t, {
209
209
  timeStamp: v.timeStamp,
210
210
  userId: v.userId
211
211
  });
212
212
  }
213
- }, [v]), tt(() => {
213
+ }, [v]), oe(() => {
214
214
  if (a) {
215
- Et(h, {
215
+ ke(m, {
216
216
  initialState: a
217
217
  });
218
- const e = O.current, s = e?.serverState?.id !== void 0 && e?.serverState?.status === "success" && e?.serverState?.data, i = r.getState().initialStateGlobal[h];
219
- if (!(i && !B(i, a) || !i) && !s)
218
+ const t = _.current, s = t?.serverState?.id !== void 0 && t?.serverState?.status === "success" && t?.serverState?.data, c = r.getState().initialStateGlobal[m];
219
+ if (!(c && !B(c, a) || !c) && !s)
220
220
  return;
221
- let g = null;
222
- const A = Z(e?.localStorage?.key) ? e?.localStorage?.key(a) : e?.localStorage?.key;
223
- A && j && (g = gt(`${j}-${h}-${A}`));
224
- let y = a, T = !1;
225
- const P = s ? Date.now() : 0, C = g?.lastUpdated || 0, N = g?.lastSyncedWithServer || 0;
226
- s && P > C ? (y = e.serverState.data, T = !0) : g && C > N && (y = g.state, e?.localStorage?.onChange && e?.localStorage?.onChange(y)), r.getState().initializeShadowState(h, a), Ct(
227
- h,
221
+ let d = null;
222
+ const p = X(t?.localStorage?.key) ? t?.localStorage?.key(a) : t?.localStorage?.key;
223
+ p && j && (d = Se(`${j}-${m}-${p}`));
224
+ let E = a, A = !1;
225
+ const P = s ? Date.now() : 0, x = d?.lastUpdated || 0, M = d?.lastSyncedWithServer || 0;
226
+ s && P > x ? (E = t.serverState.data, A = !0) : d && x > M && (E = d.state, t?.localStorage?.onChange && t?.localStorage?.onChange(E)), r.getState().initializeShadowState(m, a), Pe(
227
+ m,
228
228
  a,
229
- y,
230
- rt,
229
+ E,
230
+ ae,
231
231
  Q.current,
232
232
  j
233
- ), T && A && j && Tt(y, h, e, j, Date.now()), ft(h), (Array.isArray(w) ? w : [w || "component"]).includes("none") || U({});
233
+ ), A && p && j && Ce(E, m, t, j, Date.now()), me(m), (Array.isArray(w) ? w : [w || "component"]).includes("none") || U({});
234
234
  }
235
235
  }, [
236
236
  a,
237
237
  f?.status,
238
238
  f?.data,
239
239
  ...n || []
240
- ]), lt(() => {
241
- G && Et(h, {
242
- serverSync: m,
243
- formElements: I,
240
+ ]), ie(() => {
241
+ H && ke(m, {
242
+ serverSync: S,
243
+ formElements: y,
244
244
  initialState: a,
245
- localStorage: u,
246
- middleware: O.current?.middleware
245
+ localStorage: g,
246
+ middleware: _.current?.middleware
247
247
  });
248
- const e = `${h}////${Q.current}`, o = r.getState().stateComponents.get(h) || {
248
+ const t = `${m}////${Q.current}`, o = r.getState().stateComponents.get(m) || {
249
249
  components: /* @__PURE__ */ new Map()
250
250
  };
251
- return o.components.set(e, {
251
+ return o.components.set(t, {
252
252
  forceUpdate: () => U({}),
253
253
  paths: /* @__PURE__ */ new Set(),
254
254
  deps: [],
255
- depsFunction: b || void 0,
255
+ depsFunction: C || void 0,
256
256
  reactiveType: w ?? ["component", "deps"]
257
- }), r.getState().stateComponents.set(h, o), U({}), () => {
258
- o && (o.components.delete(e), o.components.size === 0 && r.getState().stateComponents.delete(h));
257
+ }), r.getState().stateComponents.set(m, o), U({}), () => {
258
+ o && (o.components.delete(t), o.components.size === 0 && r.getState().stateComponents.delete(m));
259
259
  };
260
260
  }, []);
261
- const rt = (e, o, s, i) => {
261
+ const ae = (t, o, s, c) => {
262
262
  if (Array.isArray(o)) {
263
- const g = `${h}-${o.join(".")}`;
264
- it.current.add(g);
263
+ const d = `${m}-${o.join(".")}`;
264
+ le.current.add(d);
265
265
  }
266
- const S = r.getState();
267
- et(h, (g) => {
268
- const A = Z(e) ? e(g) : e, y = `${h}-${o.join(".")}`;
269
- if (y) {
270
- let V = !1, k = S.signalDomElements.get(y);
271
- if ((!k || k.size === 0) && (s.updateType === "insert" || s.updateType === "cut")) {
272
- const M = o.slice(0, -1), _ = z(A, M);
273
- if (Array.isArray(_)) {
274
- V = !0;
275
- const $ = `${h}-${M.join(".")}`;
276
- k = S.signalDomElements.get($);
266
+ const h = r.getState();
267
+ te(m, (d) => {
268
+ const p = X(t) ? t(d) : t, E = `${m}-${o.join(".")}`;
269
+ if (E) {
270
+ let $ = !1, N = h.signalDomElements.get(E);
271
+ if ((!N || N.size === 0) && (s.updateType === "insert" || s.updateType === "cut")) {
272
+ const V = o.slice(0, -1), L = q(p, V);
273
+ if (Array.isArray(L)) {
274
+ $ = !0;
275
+ const k = `${m}-${V.join(".")}`;
276
+ N = h.signalDomElements.get(k);
277
277
  }
278
278
  }
279
- if (k) {
280
- const M = V ? z(A, o.slice(0, -1)) : z(A, o);
281
- k.forEach(({ parentId: _, position: $, effect: L }) => {
282
- const R = document.querySelector(
283
- `[data-parent-id="${_}"]`
279
+ if (N) {
280
+ const V = $ ? q(p, o.slice(0, -1)) : q(p, o);
281
+ N.forEach(({ parentId: L, position: k, effect: F }) => {
282
+ const O = document.querySelector(
283
+ `[data-parent-id="${L}"]`
284
284
  );
285
- if (R) {
286
- const H = Array.from(R.childNodes);
287
- if (H[$]) {
288
- const E = L ? new Function("state", `return (${L})(state)`)(M) : M;
289
- H[$].textContent = String(E);
285
+ if (O) {
286
+ const T = Array.from(O.childNodes);
287
+ if (T[k]) {
288
+ const b = F ? new Function("state", `return (${F})(state)`)(V) : V;
289
+ T[k].textContent = String(b);
290
290
  }
291
291
  }
292
292
  });
293
293
  }
294
294
  }
295
- console.log("shadowState", S.shadowStateStore), s.updateType === "update" && (i || O.current?.validation?.key) && o && J(
296
- (i || O.current?.validation?.key) + "." + o.join(".")
295
+ console.log("shadowState", h.shadowStateStore), s.updateType === "update" && (c || _.current?.validation?.key) && o && Z(
296
+ (c || _.current?.validation?.key) + "." + o.join(".")
297
297
  );
298
- const T = o.slice(0, o.length - 1);
299
- s.updateType === "cut" && O.current?.validation?.key && J(
300
- O.current?.validation?.key + "." + T.join(".")
301
- ), s.updateType === "insert" && O.current?.validation?.key && Lt(
302
- O.current?.validation?.key + "." + T.join(".")
303
- ).filter(([k, M]) => {
304
- let _ = k?.split(".").length;
305
- if (k == T.join(".") && _ == T.length - 1) {
306
- let $ = k + "." + T;
307
- J(k), Ft($, M);
298
+ const A = o.slice(0, o.length - 1);
299
+ s.updateType === "cut" && _.current?.validation?.key && Z(
300
+ _.current?.validation?.key + "." + A.join(".")
301
+ ), s.updateType === "insert" && _.current?.validation?.key && Ge(
302
+ _.current?.validation?.key + "." + A.join(".")
303
+ ).filter(([N, V]) => {
304
+ let L = N?.split(".").length;
305
+ if (N == A.join(".") && L == A.length - 1) {
306
+ let k = N + "." + A;
307
+ Z(N), ze(k, V);
308
308
  }
309
309
  });
310
- const P = S.stateComponents.get(h);
310
+ const P = h.stateComponents.get(m);
311
311
  if (console.log("stateEntry >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", P), P) {
312
- const V = vt(g, A), k = new Set(V), M = s.updateType === "update" ? o.join(".") : o.slice(0, -1).join(".") || "";
312
+ const $ = pe(d, p), N = new Set($), V = s.updateType === "update" ? o.join(".") : o.slice(0, -1).join(".") || "";
313
313
  for (const [
314
- _,
315
- $
314
+ L,
315
+ k
316
316
  ] of P.components.entries()) {
317
- let L = !1;
318
- const R = Array.isArray($.reactiveType) ? $.reactiveType : [$.reactiveType || "component"];
319
- if (console.log("component", $), !R.includes("none")) {
320
- if (R.includes("all")) {
321
- $.forceUpdate();
317
+ let F = !1;
318
+ const O = Array.isArray(k.reactiveType) ? k.reactiveType : [k.reactiveType || "component"];
319
+ if (console.log("component", k), !O.includes("none")) {
320
+ if (O.includes("all")) {
321
+ k.forceUpdate();
322
322
  continue;
323
323
  }
324
- if (R.includes("component") && (($.paths.has(M) || $.paths.has("")) && (L = !0), !L))
325
- for (const H of k) {
326
- let E = H;
324
+ if (O.includes("component") && ((k.paths.has(V) || k.paths.has("")) && (F = !0), !F))
325
+ for (const T of N) {
326
+ let b = T;
327
327
  for (; ; ) {
328
- if ($.paths.has(E)) {
329
- L = !0;
328
+ if (k.paths.has(b)) {
329
+ F = !0;
330
330
  break;
331
331
  }
332
- const x = E.lastIndexOf(".");
333
- if (x !== -1) {
334
- const W = E.substring(
332
+ const D = b.lastIndexOf(".");
333
+ if (D !== -1) {
334
+ const R = b.substring(
335
335
  0,
336
- x
336
+ D
337
337
  );
338
338
  if (!isNaN(
339
- Number(E.substring(x + 1))
340
- ) && $.paths.has(W)) {
341
- L = !0;
339
+ Number(b.substring(D + 1))
340
+ ) && k.paths.has(R)) {
341
+ F = !0;
342
342
  break;
343
343
  }
344
- E = W;
344
+ b = R;
345
345
  } else
346
- E = "";
347
- if (E === "")
346
+ b = "";
347
+ if (b === "")
348
348
  break;
349
349
  }
350
- if (L) break;
350
+ if (F) break;
351
351
  }
352
- if (!L && R.includes("deps") && $.depsFunction) {
353
- const H = $.depsFunction(A);
354
- let E = !1;
355
- typeof H == "boolean" ? H && (E = !0) : B($.deps, H) || ($.deps = H, E = !0), E && (L = !0);
352
+ if (!F && O.includes("deps") && k.depsFunction) {
353
+ const T = k.depsFunction(p);
354
+ let b = !1;
355
+ typeof T == "boolean" ? T && (b = !0) : B(k.deps, T) || (k.deps = T, b = !0), b && (F = !0);
356
356
  }
357
- L && $.forceUpdate();
357
+ F && k.forceUpdate();
358
358
  }
359
359
  }
360
360
  }
361
- const C = Date.now();
362
- o = o.map((V, k) => {
363
- const M = o.slice(0, -1), _ = z(A, M);
364
- return k === o.length - 1 && ["insert", "cut"].includes(s.updateType) ? (_.length - 1).toString() : V;
361
+ const x = Date.now();
362
+ o = o.map(($, N) => {
363
+ const V = o.slice(0, -1), L = q(p, V);
364
+ return N === o.length - 1 && ["insert", "cut"].includes(s.updateType) ? (L.length - 1).toString() : $;
365
365
  });
366
- const { oldValue: N, newValue: D } = Ht(
366
+ const { oldValue: M, newValue: W } = Je(
367
367
  s.updateType,
368
- g,
369
- A,
368
+ d,
369
+ p,
370
370
  o
371
- ), q = {
372
- timeStamp: C,
373
- stateKey: h,
371
+ ), z = {
372
+ timeStamp: x,
373
+ stateKey: m,
374
374
  path: o,
375
375
  updateType: s.updateType,
376
376
  status: "new",
377
- oldValue: N,
378
- newValue: D
377
+ oldValue: M,
378
+ newValue: W
379
379
  };
380
380
  switch (s.updateType) {
381
381
  case "update":
382
- S.updateShadowAtPath(h, o, A);
382
+ h.updateShadowAtPath(m, o, p);
383
383
  break;
384
384
  case "insert":
385
- const V = o.slice(0, -1);
386
- S.insertShadowArrayElement(h, V, D);
385
+ const $ = o.slice(0, -1);
386
+ h.insertShadowArrayElement(m, $, W);
387
387
  break;
388
388
  case "cut":
389
- const k = o.slice(0, -1), M = parseInt(o[o.length - 1]);
390
- S.removeShadowArrayElement(h, k, M);
389
+ const N = o.slice(0, -1), V = parseInt(o[o.length - 1]);
390
+ h.removeShadowArrayElement(m, N, V);
391
391
  break;
392
392
  }
393
- if (Dt(h, (V) => {
394
- const M = [...V ?? [], q].reduce((_, $) => {
395
- const L = `${$.stateKey}:${JSON.stringify($.path)}`, R = _.get(L);
396
- return R ? (R.timeStamp = Math.max(R.timeStamp, $.timeStamp), R.newValue = $.newValue, R.oldValue = R.oldValue ?? $.oldValue, R.updateType = $.updateType) : _.set(L, { ...$ }), _;
393
+ if (He(m, ($) => {
394
+ const V = [...$ ?? [], z].reduce((L, k) => {
395
+ const F = `${k.stateKey}:${JSON.stringify(k.path)}`, O = L.get(F);
396
+ return O ? (O.timeStamp = Math.max(O.timeStamp, k.timeStamp), O.newValue = k.newValue, O.oldValue = O.oldValue ?? k.oldValue, O.updateType = k.updateType) : L.set(F, { ...k }), L;
397
397
  }, /* @__PURE__ */ new Map());
398
- return Array.from(M.values());
399
- }), Tt(
400
- A,
401
- h,
402
- O.current,
398
+ return Array.from(V.values());
399
+ }), Ce(
400
+ p,
401
+ m,
402
+ _.current,
403
403
  j
404
- ), O.current?.middleware && O.current.middleware({
404
+ ), _.current?.middleware && _.current.middleware({
405
405
  updateLog: l,
406
- update: q
407
- }), O.current?.serverSync) {
408
- const V = S.serverState[h], k = O.current?.serverSync;
409
- Gt(h, {
410
- syncKey: typeof k.syncKey == "string" ? k.syncKey : k.syncKey({ state: A }),
411
- rollBackState: V,
412
- actionTimeStamp: Date.now() + (k.debounce ?? 3e3),
406
+ update: z
407
+ }), _.current?.serverSync) {
408
+ const $ = h.serverState[m], N = _.current?.serverSync;
409
+ Be(m, {
410
+ syncKey: typeof N.syncKey == "string" ? N.syncKey : N.syncKey({ state: p }),
411
+ rollBackState: $,
412
+ actionTimeStamp: Date.now() + (N.debounce ?? 3e3),
413
413
  status: "waiting"
414
414
  });
415
415
  }
416
- return A;
416
+ return p;
417
417
  });
418
418
  };
419
- r.getState().updaterState[h] || (dt(
420
- h,
421
- ut(
422
- h,
423
- rt,
419
+ r.getState().updaterState[m] || (ge(
420
+ m,
421
+ fe(
422
+ m,
423
+ ae,
424
424
  Q.current,
425
425
  j
426
426
  )
427
- ), r.getState().cogsStateStore[h] || et(h, t), r.getState().initialStateGlobal[h] || yt(h, t));
428
- const d = ht(() => ut(
429
- h,
430
- rt,
427
+ ), r.getState().cogsStateStore[m] || te(m, e), r.getState().initialStateGlobal[m] || Ee(m, e));
428
+ const u = Ie(() => fe(
429
+ m,
430
+ ae,
431
431
  Q.current,
432
432
  j
433
- ), [h, j]);
434
- return [Nt(h), d];
433
+ ), [m, j]);
434
+ return [Ve(m), u];
435
435
  }
436
- function ut(t, c, m, u) {
437
- const I = /* @__PURE__ */ new Map();
438
- let b = 0;
436
+ function fe(e, i, S, g) {
437
+ const y = /* @__PURE__ */ new Map();
438
+ let C = 0;
439
439
  const w = (v) => {
440
440
  const n = v.join(".");
441
- for (const [f] of I)
442
- (f === n || f.startsWith(n + ".")) && I.delete(f);
443
- b++;
444
- }, p = {
441
+ for (const [f] of y)
442
+ (f === n || f.startsWith(n + ".")) && y.delete(f);
443
+ C++;
444
+ }, I = {
445
445
  removeValidation: (v) => {
446
- v?.validationKey && J(v.validationKey);
446
+ v?.validationKey && Z(v.validationKey);
447
447
  },
448
448
  revertToInitialState: (v) => {
449
- const n = r.getState().getInitialOptions(t)?.validation;
450
- n?.key && J(n?.key), v?.validationKey && J(v.validationKey);
451
- const f = r.getState().initialStateGlobal[t];
452
- r.getState().clearSelectedIndexesForState(t), I.clear(), b++;
453
- const F = a(f, []), U = nt(t), j = Z(U?.localStorage?.key) ? U?.localStorage?.key(f) : U?.localStorage?.key, G = `${u}-${t}-${j}`;
454
- G && localStorage.removeItem(G), dt(t, F), et(t, f);
455
- const h = r.getState().stateComponents.get(t);
456
- return h && h.components.forEach((l) => {
449
+ const n = r.getState().getInitialOptions(e)?.validation;
450
+ n?.key && Z(n?.key), v?.validationKey && Z(v.validationKey);
451
+ const f = r.getState().initialStateGlobal[e];
452
+ r.getState().clearSelectedIndexesForState(e), y.clear(), C++;
453
+ const G = a(f, []), U = re(e), j = X(U?.localStorage?.key) ? U?.localStorage?.key(f) : U?.localStorage?.key, H = `${g}-${e}-${j}`;
454
+ H && localStorage.removeItem(H), ge(e, G), te(e, f);
455
+ const m = r.getState().stateComponents.get(e);
456
+ return m && m.components.forEach((l) => {
457
457
  l.forceUpdate();
458
458
  }), f;
459
459
  },
460
460
  updateInitialState: (v) => {
461
- I.clear(), b++;
462
- const n = ut(
463
- t,
464
- c,
465
- m,
466
- u
467
- ), f = r.getState().initialStateGlobal[t], F = nt(t), U = Z(F?.localStorage?.key) ? F?.localStorage?.key(f) : F?.localStorage?.key, j = `${u}-${t}-${U}`;
468
- return localStorage.getItem(j) && localStorage.removeItem(j), Vt(() => {
469
- yt(t, v), r.getState().initializeShadowState(t, v), dt(t, n), et(t, v);
470
- const G = r.getState().stateComponents.get(t);
471
- G && G.components.forEach((h) => {
472
- h.forceUpdate();
461
+ y.clear(), C++;
462
+ const n = fe(
463
+ e,
464
+ i,
465
+ S,
466
+ g
467
+ ), f = r.getState().initialStateGlobal[e], G = re(e), U = X(G?.localStorage?.key) ? G?.localStorage?.key(f) : G?.localStorage?.key, j = `${g}-${e}-${U}`;
468
+ return localStorage.getItem(j) && localStorage.removeItem(j), Oe(() => {
469
+ Ee(e, v), r.getState().initializeShadowState(e, v), ge(e, n), te(e, v);
470
+ const H = r.getState().stateComponents.get(e);
471
+ H && H.components.forEach((m) => {
472
+ m.forceUpdate();
473
473
  });
474
474
  }), {
475
- fetchId: (G) => n.get()[G]
475
+ fetchId: (H) => n.get()[H]
476
476
  };
477
477
  },
478
- _initialState: r.getState().initialStateGlobal[t],
479
- _serverState: r.getState().serverState[t],
480
- _isLoading: r.getState().isLoadingGlobal[t],
478
+ _initialState: r.getState().initialStateGlobal[e],
479
+ _serverState: r.getState().serverState[e],
480
+ _isLoading: r.getState().isLoadingGlobal[e],
481
481
  _isServerSynced: () => {
482
- const v = r.getState().serverState[t];
483
- return !!(v && B(v, Nt(t)));
482
+ const v = r.getState().serverState[e];
483
+ return !!(v && B(v, Ve(e)));
484
484
  }
485
485
  };
486
486
  function a(v, n = [], f) {
487
- const F = n.map(String).join(".");
488
- I.get(F);
487
+ const G = n.map(String).join(".");
488
+ y.get(G);
489
489
  const U = function() {
490
- return r().getNestedState(t, n);
490
+ return r().getNestedState(e, n);
491
491
  };
492
- Object.keys(p).forEach((h) => {
493
- U[h] = p[h];
492
+ Object.keys(I).forEach((m) => {
493
+ U[m] = I[m];
494
494
  });
495
495
  const j = {
496
- apply(h, l, it) {
496
+ apply(m, l, le) {
497
497
  return console.log(
498
- `PROXY APPLY TRAP HIT: stateKey=${t}, path=${n.join(".")}`
499
- ), console.trace("Apply trap stack trace"), r().getNestedState(t, n);
498
+ `PROXY APPLY TRAP HIT: stateKey=${e}, path=${n.join(".")}`
499
+ ), console.trace("Apply trap stack trace"), r().getNestedState(e, n);
500
500
  },
501
- get(h, l) {
501
+ get(m, l) {
502
502
  f?.validIndices && !Array.isArray(v) && (f = { ...f, validIndices: void 0 });
503
- const it = /* @__PURE__ */ new Set([
503
+ const le = /* @__PURE__ */ new Set([
504
504
  "insert",
505
505
  "cut",
506
506
  "cutByValue",
@@ -523,274 +523,290 @@ function ut(t, c, m, u) {
523
523
  "_stateKey",
524
524
  "getComponents"
525
525
  ]);
526
- if (l !== "then" && !l.startsWith("$") && l !== "stateMapNoRender" && !it.has(l)) {
527
- const d = `${t}////${m}`, e = r.getState().stateComponents.get(t);
528
- if (e) {
529
- const o = e.components.get(d);
526
+ if (l !== "then" && !l.startsWith("$") && l !== "stateMapNoRender" && !le.has(l)) {
527
+ const u = `${e}////${S}`, t = r.getState().stateComponents.get(e);
528
+ if (t) {
529
+ const o = t.components.get(u);
530
530
  if (o && !o.paths.has("")) {
531
531
  const s = n.join(".");
532
- let i = !0;
533
- for (const S of o.paths)
534
- if (s.startsWith(S) && (s === S || s[S.length] === ".")) {
535
- i = !1;
532
+ let c = !0;
533
+ for (const h of o.paths)
534
+ if (s.startsWith(h) && (s === h || s[h.length] === ".")) {
535
+ c = !1;
536
536
  break;
537
537
  }
538
- i && o.paths.add(s);
538
+ c && o.paths.add(s);
539
539
  }
540
540
  }
541
541
  }
542
542
  if (l === "getDifferences")
543
- return () => vt(
544
- r.getState().cogsStateStore[t],
545
- r.getState().initialStateGlobal[t]
543
+ return () => pe(
544
+ r.getState().cogsStateStore[e],
545
+ r.getState().initialStateGlobal[e]
546
546
  );
547
547
  if (l === "sync" && n.length === 0)
548
548
  return async function() {
549
- const d = r.getState().getInitialOptions(t), e = d?.sync;
550
- if (!e)
551
- return console.error(`No mutation defined for state key "${t}"`), { success: !1, error: "No mutation defined" };
552
- const o = r.getState().getNestedState(t, []), s = d?.validation?.key;
549
+ const u = r.getState().getInitialOptions(e), t = u?.sync;
550
+ if (!t)
551
+ return console.error(`No mutation defined for state key "${e}"`), { success: !1, error: "No mutation defined" };
552
+ const o = r.getState().getNestedState(e, []), s = u?.validation?.key;
553
553
  try {
554
- const i = await e.action(o);
555
- if (i && !i.success && i.errors && s) {
556
- r.getState().removeValidationError(s), i.errors.forEach((g) => {
557
- const A = [s, ...g.path].join(".");
558
- r.getState().addValidationError(A, g.message);
554
+ const c = await t.action(o);
555
+ if (c && !c.success && c.errors && s) {
556
+ r.getState().removeValidationError(s), c.errors.forEach((d) => {
557
+ const p = [s, ...d.path].join(".");
558
+ r.getState().addValidationError(p, d.message);
559
559
  });
560
- const S = r.getState().stateComponents.get(t);
561
- S && S.components.forEach((g) => {
562
- g.forceUpdate();
560
+ const h = r.getState().stateComponents.get(e);
561
+ h && h.components.forEach((d) => {
562
+ d.forceUpdate();
563
563
  });
564
564
  }
565
- return i?.success && e.onSuccess ? e.onSuccess(i.data) : !i?.success && e.onError && e.onError(i.error), i;
566
- } catch (i) {
567
- return e.onError && e.onError(i), { success: !1, error: i };
565
+ return c?.success && t.onSuccess ? t.onSuccess(c.data) : !c?.success && t.onError && t.onError(c.error), c;
566
+ } catch (c) {
567
+ return t.onError && t.onError(c), { success: !1, error: c };
568
568
  }
569
569
  };
570
570
  if (l === "_status") {
571
- const d = r.getState().getNestedState(t, n), e = r.getState().initialStateGlobal[t], o = z(e, n);
572
- return B(d, o) ? "fresh" : "stale";
571
+ const u = r.getState().getNestedState(e, n), t = r.getState().initialStateGlobal[e], o = q(t, n);
572
+ return B(u, o) ? "fresh" : "stale";
573
573
  }
574
574
  if (l === "getStatus")
575
575
  return function() {
576
- const d = r().getNestedState(
577
- t,
576
+ const u = r().getNestedState(
577
+ e,
578
578
  n
579
- ), e = r.getState().initialStateGlobal[t], o = z(e, n);
580
- return B(d, o) ? "fresh" : "stale";
579
+ ), t = r.getState().initialStateGlobal[e], o = q(t, n);
580
+ return B(u, o) ? "fresh" : "stale";
581
581
  };
582
582
  if (l === "removeStorage")
583
583
  return () => {
584
- const d = r.getState().initialStateGlobal[t], e = nt(t), o = Z(e?.localStorage?.key) ? e?.localStorage?.key(d) : e?.localStorage?.key, s = `${u}-${t}-${o}`;
584
+ const u = r.getState().initialStateGlobal[e], t = re(e), o = X(t?.localStorage?.key) ? t?.localStorage?.key(u) : t?.localStorage?.key, s = `${g}-${e}-${o}`;
585
585
  s && localStorage.removeItem(s);
586
586
  };
587
587
  if (l === "showValidationErrors")
588
588
  return () => {
589
- const d = r.getState().getInitialOptions(t)?.validation;
590
- if (!d?.key)
589
+ const u = r.getState().getInitialOptions(e)?.validation;
590
+ if (!u?.key)
591
591
  throw new Error("Validation key not found");
592
- return r.getState().getValidationErrors(d.key + "." + n.join("."));
592
+ return r.getState().getValidationErrors(u.key + "." + n.join("."));
593
593
  };
594
594
  if (Array.isArray(v)) {
595
- const d = () => f?.validIndices ? v.map((o, s) => ({
595
+ const u = () => f?.validIndices ? v.map((o, s) => ({
596
596
  item: o,
597
597
  originalIndex: f.validIndices[s]
598
- })) : r.getState().getNestedState(t, n).map((o, s) => ({
598
+ })) : r.getState().getNestedState(e, n).map((o, s) => ({
599
599
  item: o,
600
600
  originalIndex: s
601
601
  }));
602
602
  if (l === "getSelected")
603
603
  return () => {
604
- const e = r.getState().getSelectedIndex(t, n.join("."));
605
- if (e !== void 0)
604
+ const t = r.getState().getSelectedIndex(e, n.join("."));
605
+ if (t !== void 0)
606
606
  return a(
607
- v[e],
608
- [...n, e.toString()],
607
+ v[t],
608
+ [...n, t.toString()],
609
609
  f
610
610
  );
611
611
  };
612
612
  if (l === "clearSelected")
613
613
  return () => {
614
- r.getState().clearSelectedIndex({ stateKey: t, path: n });
614
+ r.getState().clearSelectedIndex({ stateKey: e, path: n });
615
615
  };
616
616
  if (l === "getSelectedIndex")
617
- return () => r.getState().getSelectedIndex(t, n.join(".")) ?? -1;
617
+ return () => r.getState().getSelectedIndex(e, n.join(".")) ?? -1;
618
618
  if (l === "useVirtualView")
619
- return (e) => {
619
+ return (t) => {
620
620
  const {
621
621
  itemHeight: o = 50,
622
622
  overscan: s = 6,
623
- stickToBottom: i = !1,
624
- dependencies: S = []
625
- } = e, [g, A] = Y(0), y = X(null), [T, P] = Y({
623
+ stickToBottom: c = !1,
624
+ dependencies: h = []
625
+ } = t, d = J(null), [p, E] = ee({
626
626
  startIndex: 0,
627
627
  endIndex: 10
628
- }), C = X(i), N = X(null), [D, q] = Y(0);
629
- tt(() => r.getState().subscribeToShadowState(t, () => {
630
- q((x) => x + 1);
631
- }), [t]);
632
- const V = r().getNestedState(
633
- t,
628
+ }), A = J(c), P = J(!1), x = J(0), [M, W] = ee(0);
629
+ oe(() => r.getState().subscribeToShadowState(e, () => {
630
+ W((b) => b + 1);
631
+ }), [e]);
632
+ const z = r().getNestedState(
633
+ e,
634
634
  n
635
- ), k = V.length, { totalHeight: M, positions: _ } = ht(() => {
636
- const E = r.getState().getShadowMetadata(t, n) || [];
637
- let x = 0;
638
- const W = [];
639
- for (let K = 0; K < k; K++) {
640
- W[K] = x;
641
- const ot = E[K]?.virtualizer?.itemHeight;
642
- x += ot || o;
635
+ ), $ = z.length, { totalHeight: N, positions: V } = Ie(() => {
636
+ const T = r.getState().getShadowMetadata(e, n) || [];
637
+ let b = 0;
638
+ const D = [];
639
+ for (let R = 0; R < $; R++) {
640
+ D[R] = b;
641
+ const Y = T[R]?.virtualizer?.itemHeight;
642
+ b += Y || o;
643
643
  }
644
- return { totalHeight: x, positions: W };
644
+ return { totalHeight: b, positions: D };
645
645
  }, [
646
- k,
647
- t,
646
+ $,
647
+ e,
648
648
  n.join("."),
649
649
  o,
650
- D
651
- ]), $ = ht(() => {
652
- const E = Math.max(0, T.startIndex), x = Math.min(k, T.endIndex), W = Array.from(
653
- { length: x - E },
654
- (ot, bt) => E + bt
655
- ), K = W.map((ot) => V[ot]);
656
- return a(K, n, {
650
+ M
651
+ ]), L = Ie(() => {
652
+ const T = Math.max(0, p.startIndex), b = Math.min($, p.endIndex), D = Array.from(
653
+ { length: b - T },
654
+ (Y, ne) => T + ne
655
+ ), R = D.map((Y) => z[Y]);
656
+ return a(R, n, {
657
657
  ...f,
658
- validIndices: W
658
+ validIndices: D
659
659
  });
660
- }, [T.startIndex, T.endIndex, V, k]);
661
- lt(() => {
662
- const E = y.current;
663
- if (!E || !i || !C.current)
660
+ }, [p.startIndex, p.endIndex, z, $]);
661
+ ie(() => {
662
+ const T = $ > x.current;
663
+ A.current && T && (console.log(
664
+ "PHASE 1: Auto-scroll needed. Setting range to render the last item."
665
+ ), E({
666
+ startIndex: Math.max(0, $ - 10 - s),
667
+ endIndex: $
668
+ })), x.current = $;
669
+ }, [$]), ie(() => {
670
+ const T = d.current, b = p.endIndex === $ && $ > 0;
671
+ if (!T || !A.current || !b)
664
672
  return;
665
- N.current && clearInterval(N.current), console.log("ALGORITHM: Starting..."), P({
666
- startIndex: Math.max(0, k - 10 - s),
667
- endIndex: k
668
- }), console.log(
669
- "ALGORITHM: Starting LOOP to wait for measurement."
673
+ console.log(
674
+ "PHASE 2: Range is at the end. Starting the measurement loop."
670
675
  );
671
- let x = 0;
672
- return N.current = setInterval(() => {
673
- x++, console.log(`LOOP ${x}: Checking last item...`);
674
- const W = k - 1;
675
- if (W < 0) {
676
- clearInterval(N.current);
677
- return;
678
- }
679
- ((r.getState().getShadowMetadata(t, n) || [])[W]?.virtualizer?.itemHeight || 0) > 0 ? (console.log(
680
- "%cSUCCESS: Last item is measured. Scrolling.",
676
+ let D = 0;
677
+ const R = setInterval(() => {
678
+ D++, console.log(`LOOP ${D}: Checking last item...`);
679
+ const Y = $ - 1, K = (r.getState().getShadowMetadata(e, n) || [])[Y]?.virtualizer?.itemHeight || 0;
680
+ K > 0 ? (console.log(
681
+ `%cSUCCESS: Last item height is ${K}. Scrolling now.`,
681
682
  "color: green; font-weight: bold;"
682
- ), clearInterval(N.current), N.current = null, E.scrollTo({
683
- top: E.scrollHeight,
683
+ ), clearInterval(R), P.current = !0, T.scrollTo({
684
+ top: T.scrollHeight,
684
685
  behavior: "smooth"
685
- })) : (console.log("...WAITING. Height is not ready."), x > 30 && (console.error("LOOP TIMEOUT. Stopping."), clearInterval(N.current), N.current = null));
686
- }, 100), () => {
687
- N.current && clearInterval(N.current);
688
- };
689
- }, [k, ...S]), tt(() => {
690
- const E = y.current;
691
- if (!E) return;
686
+ }), setTimeout(() => {
687
+ P.current = !1;
688
+ }, 1e3)) : D > 20 ? (console.error(
689
+ "LOOP TIMEOUT: Last item was never measured. Stopping loop."
690
+ ), clearInterval(R)) : console.log("...WAITING. Height is not ready.");
691
+ }, 100);
692
+ return () => clearInterval(R);
693
+ }, [p.endIndex, $, V]), oe(() => {
694
+ const T = d.current;
695
+ if (!T) return;
692
696
  console.log(
693
- "DEPENDENCY CHANGE: Resetting scroll lock to:",
694
- i
695
- ), C.current = i;
696
- const x = () => {
697
- E.scrollHeight - E.scrollTop - E.clientHeight < 1 || C.current && (console.log("USER SCROLL: Lock broken."), C.current = !1, N.current && (clearInterval(N.current), N.current = null, console.log("...Auto-scroll loop terminated by user.")));
697
+ "DEPENDENCY CHANGE: Resetting scroll lock and initial view."
698
+ ), A.current = c;
699
+ const b = () => {
700
+ const { scrollTop: R, clientHeight: Y } = T;
701
+ let ne = 0, K = $ - 1;
702
+ for (; ne <= K; ) {
703
+ const he = Math.floor((ne + K) / 2);
704
+ V[he] < R ? ne = he + 1 : K = he - 1;
705
+ }
706
+ const Ae = Math.max(0, K - s);
707
+ let de = Ae;
708
+ const _e = R + Y;
709
+ for (; de < $ && V[de] < _e; )
710
+ de++;
711
+ E({
712
+ startIndex: Ae,
713
+ endIndex: Math.min($, de + s)
714
+ });
715
+ }, D = () => {
716
+ if (P.current) return;
717
+ T.scrollHeight - T.scrollTop - T.clientHeight < 1 || (A.current = !1), b();
698
718
  };
699
- return E.addEventListener("scroll", x, {
719
+ return T.addEventListener("scroll", D, {
700
720
  passive: !0
701
- }), () => E.removeEventListener("scroll", x);
702
- }, [k, _]), tt(() => {
703
- console.log(
704
- "DEPENDENCY CHANGE: Resetting scroll lock and scrolling to bottom."
705
- ), y.current && (C.current = i, y.current.scrollTop = 0, P({ startIndex: 0, endIndex: 10 }));
706
- }, S);
707
- const L = pt(
708
- (E = "smooth") => {
709
- y.current && (C.current = !0, console.log("USER ACTION: Scroll lock ENABLED."), y.current.scrollTo({
710
- top: y.current.scrollHeight,
711
- behavior: E
721
+ }), b(), () => T.removeEventListener("scroll", D);
722
+ }, [...h]);
723
+ const k = Te(
724
+ (T = "smooth") => {
725
+ d.current && (A.current = !0, d.current.scrollTo({
726
+ top: d.current.scrollHeight,
727
+ behavior: T
712
728
  }));
713
729
  },
714
730
  []
715
- ), R = pt(
716
- (E, x = "smooth") => {
717
- y.current && _[E] !== void 0 && (C.current = !1, console.log("USER ACTION: Scroll lock DISABLED."), y.current.scrollTo({
718
- top: _[E],
719
- behavior: x
731
+ ), F = Te(
732
+ (T, b = "smooth") => {
733
+ d.current && V[T] !== void 0 && (A.current = !1, d.current.scrollTo({
734
+ top: V[T],
735
+ behavior: b
720
736
  }));
721
737
  },
722
- [_]
723
- ), H = {
738
+ [V]
739
+ ), O = {
724
740
  outer: {
725
- ref: y,
741
+ ref: d,
726
742
  style: { overflowY: "auto", height: "100%" }
727
743
  },
728
744
  inner: {
729
745
  style: {
730
- height: `${M}px`,
746
+ height: `${N}px`,
731
747
  position: "relative"
732
748
  }
733
749
  },
734
750
  list: {
735
751
  style: {
736
- transform: `translateY(${_[T.startIndex] || 0}px)`
752
+ transform: `translateY(${V[p.startIndex] || 0}px)`
737
753
  }
738
754
  }
739
755
  };
740
756
  return {
741
- virtualState: $,
742
- virtualizerProps: H,
743
- scrollToBottom: L,
744
- scrollToIndex: R
757
+ virtualState: L,
758
+ virtualizerProps: O,
759
+ scrollToBottom: k,
760
+ scrollToIndex: F
745
761
  };
746
762
  };
747
763
  if (l === "stateSort")
748
- return (e) => {
749
- const s = [...d()].sort(
750
- (g, A) => e(g.item, A.item)
751
- ), i = s.map(({ item: g }) => g), S = {
764
+ return (t) => {
765
+ const s = [...u()].sort(
766
+ (d, p) => t(d.item, p.item)
767
+ ), c = s.map(({ item: d }) => d), h = {
752
768
  ...f,
753
769
  validIndices: s.map(
754
- ({ originalIndex: g }) => g
770
+ ({ originalIndex: d }) => d
755
771
  )
756
772
  };
757
- return a(i, n, S);
773
+ return a(c, n, h);
758
774
  };
759
775
  if (l === "stateFilter")
760
- return (e) => {
761
- const s = d().filter(
762
- ({ item: g }, A) => e(g, A)
763
- ), i = s.map(({ item: g }) => g), S = {
776
+ return (t) => {
777
+ const s = u().filter(
778
+ ({ item: d }, p) => t(d, p)
779
+ ), c = s.map(({ item: d }) => d), h = {
764
780
  ...f,
765
781
  validIndices: s.map(
766
- ({ originalIndex: g }) => g
782
+ ({ originalIndex: d }) => d
767
783
  )
768
784
  };
769
- return a(i, n, S);
785
+ return a(c, n, h);
770
786
  };
771
787
  if (l === "stateMap")
772
- return (e) => {
773
- const o = r.getState().getNestedState(t, n);
774
- return Array.isArray(o) ? (f?.validIndices || Array.from({ length: o.length }, (i, S) => S)).map((i, S) => {
775
- const g = o[i], A = [...n, i.toString()], y = a(g, A, f);
776
- return e(g, y, {
788
+ return (t) => {
789
+ const o = r.getState().getNestedState(e, n);
790
+ return Array.isArray(o) ? (f?.validIndices || Array.from({ length: o.length }, (c, h) => h)).map((c, h) => {
791
+ const d = o[c], p = [...n, c.toString()], E = a(d, p, f);
792
+ return t(d, E, {
777
793
  register: () => {
778
- const [, P] = Y({}), C = `${m}-${n.join(".")}-${i}`;
779
- lt(() => {
780
- const N = `${t}////${C}`, D = r.getState().stateComponents.get(t) || {
794
+ const [, P] = ee({}), x = `${S}-${n.join(".")}-${c}`;
795
+ ie(() => {
796
+ const M = `${e}////${x}`, W = r.getState().stateComponents.get(e) || {
781
797
  components: /* @__PURE__ */ new Map()
782
798
  };
783
- return D.components.set(N, {
799
+ return W.components.set(M, {
784
800
  forceUpdate: () => P({}),
785
- paths: /* @__PURE__ */ new Set([A.join(".")])
786
- }), r.getState().stateComponents.set(t, D), () => {
787
- const q = r.getState().stateComponents.get(t);
788
- q && q.components.delete(N);
801
+ paths: /* @__PURE__ */ new Set([p.join(".")])
802
+ }), r.getState().stateComponents.set(e, W), () => {
803
+ const z = r.getState().stateComponents.get(e);
804
+ z && z.components.delete(M);
789
805
  };
790
- }, [t, C]);
806
+ }, [e, x]);
791
807
  },
792
- index: S,
793
- originalIndex: i
808
+ index: h,
809
+ originalIndex: c
794
810
  });
795
811
  }) : (console.warn(
796
812
  `stateMap called on a non-array value at path: ${n.join(".")}. The current value is:`,
@@ -798,42 +814,42 @@ function ut(t, c, m, u) {
798
814
  ), null);
799
815
  };
800
816
  if (l === "stateMapNoRender")
801
- return (e) => v.map((s, i) => {
802
- let S;
803
- f?.validIndices && f.validIndices[i] !== void 0 ? S = f.validIndices[i] : S = i;
804
- const g = [...n, S.toString()], A = a(s, g, f);
805
- return e(
817
+ return (t) => v.map((s, c) => {
818
+ let h;
819
+ f?.validIndices && f.validIndices[c] !== void 0 ? h = f.validIndices[c] : h = c;
820
+ const d = [...n, h.toString()], p = a(s, d, f);
821
+ return t(
806
822
  s,
807
- A,
808
- i,
823
+ p,
824
+ c,
809
825
  v,
810
826
  a(v, n, f)
811
827
  );
812
828
  });
813
829
  if (l === "$stateMap")
814
- return (e) => st(zt, {
830
+ return (t) => ce(Ze, {
815
831
  proxy: {
816
- _stateKey: t,
832
+ _stateKey: e,
817
833
  _path: n,
818
- _mapFn: e
834
+ _mapFn: t
819
835
  // Pass the actual function, not string
820
836
  },
821
837
  rebuildStateShape: a
822
838
  });
823
839
  if (l === "stateList")
824
- return (e) => {
825
- const o = r.getState().getNestedState(t, n);
826
- return Array.isArray(o) ? (f?.validIndices || Array.from({ length: o.length }, (i, S) => S)).map((i, S) => {
827
- const g = o[i], A = [...n, i.toString()], y = a(g, A, f), T = `${m}-${n.join(".")}-${i}`;
828
- return st(Jt, {
829
- key: i,
830
- stateKey: t,
831
- itemComponentId: T,
832
- itemPath: A,
833
- children: e(
834
- g,
835
- y,
836
- S,
840
+ return (t) => {
841
+ const o = r.getState().getNestedState(e, n);
842
+ return Array.isArray(o) ? (f?.validIndices || Array.from({ length: o.length }, (c, h) => h)).map((c, h) => {
843
+ const d = o[c], p = [...n, c.toString()], E = a(d, p, f), A = `${S}-${n.join(".")}-${c}`;
844
+ return ce(Qe, {
845
+ key: c,
846
+ stateKey: e,
847
+ itemComponentId: A,
848
+ itemPath: p,
849
+ children: t(
850
+ d,
851
+ E,
852
+ h,
837
853
  o,
838
854
  a(o, n, f)
839
855
  )
@@ -843,358 +859,358 @@ function ut(t, c, m, u) {
843
859
  ), null);
844
860
  };
845
861
  if (l === "stateFlattenOn")
846
- return (e) => {
862
+ return (t) => {
847
863
  const o = v;
848
- I.clear(), b++;
864
+ y.clear(), C++;
849
865
  const s = o.flatMap(
850
- (i) => i[e] ?? []
866
+ (c) => c[t] ?? []
851
867
  );
852
868
  return a(
853
869
  s,
854
- [...n, "[*]", e],
870
+ [...n, "[*]", t],
855
871
  f
856
872
  );
857
873
  };
858
874
  if (l === "index")
859
- return (e) => {
860
- const o = v[e];
861
- return a(o, [...n, e.toString()]);
875
+ return (t) => {
876
+ const o = v[t];
877
+ return a(o, [...n, t.toString()]);
862
878
  };
863
879
  if (l === "last")
864
880
  return () => {
865
- const e = r.getState().getNestedState(t, n);
866
- if (e.length === 0) return;
867
- const o = e.length - 1, s = e[o], i = [...n, o.toString()];
868
- return a(s, i);
881
+ const t = r.getState().getNestedState(e, n);
882
+ if (t.length === 0) return;
883
+ const o = t.length - 1, s = t[o], c = [...n, o.toString()];
884
+ return a(s, c);
869
885
  };
870
886
  if (l === "insert")
871
- return (e) => (w(n), St(c, e, n, t), a(
872
- r.getState().getNestedState(t, n),
887
+ return (t) => (w(n), ve(i, t, n, e), a(
888
+ r.getState().getNestedState(e, n),
873
889
  n
874
890
  ));
875
891
  if (l === "uniqueInsert")
876
- return (e, o, s) => {
877
- const i = r.getState().getNestedState(t, n), S = Z(e) ? e(i) : e;
878
- let g = null;
879
- if (!i.some((y) => {
892
+ return (t, o, s) => {
893
+ const c = r.getState().getNestedState(e, n), h = X(t) ? t(c) : t;
894
+ let d = null;
895
+ if (!c.some((E) => {
880
896
  if (o) {
881
897
  const P = o.every(
882
- (C) => B(y[C], S[C])
898
+ (x) => B(E[x], h[x])
883
899
  );
884
- return P && (g = y), P;
900
+ return P && (d = E), P;
885
901
  }
886
- const T = B(y, S);
887
- return T && (g = y), T;
902
+ const A = B(E, h);
903
+ return A && (d = E), A;
888
904
  }))
889
- w(n), St(c, S, n, t);
890
- else if (s && g) {
891
- const y = s(g), T = i.map(
892
- (P) => B(P, g) ? y : P
905
+ w(n), ve(i, h, n, e);
906
+ else if (s && d) {
907
+ const E = s(d), A = c.map(
908
+ (P) => B(P, d) ? E : P
893
909
  );
894
- w(n), at(c, T, n);
910
+ w(n), se(i, A, n);
895
911
  }
896
912
  };
897
913
  if (l === "cut")
898
- return (e, o) => {
914
+ return (t, o) => {
899
915
  if (!o?.waitForSync)
900
- return w(n), ct(c, n, t, e), a(
901
- r.getState().getNestedState(t, n),
916
+ return w(n), ue(i, n, e, t), a(
917
+ r.getState().getNestedState(e, n),
902
918
  n
903
919
  );
904
920
  };
905
921
  if (l === "cutByValue")
906
- return (e) => {
922
+ return (t) => {
907
923
  for (let o = 0; o < v.length; o++)
908
- v[o] === e && ct(c, n, t, o);
924
+ v[o] === t && ue(i, n, e, o);
909
925
  };
910
926
  if (l === "toggleByValue")
911
- return (e) => {
912
- const o = v.findIndex((s) => s === e);
913
- o > -1 ? ct(c, n, t, o) : St(c, e, n, t);
927
+ return (t) => {
928
+ const o = v.findIndex((s) => s === t);
929
+ o > -1 ? ue(i, n, e, o) : ve(i, t, n, e);
914
930
  };
915
931
  if (l === "stateFind")
916
- return (e) => {
917
- const s = d().find(
918
- ({ item: S }, g) => e(S, g)
932
+ return (t) => {
933
+ const s = u().find(
934
+ ({ item: h }, d) => t(h, d)
919
935
  );
920
936
  if (!s) return;
921
- const i = [...n, s.originalIndex.toString()];
922
- return a(s.item, i, f);
937
+ const c = [...n, s.originalIndex.toString()];
938
+ return a(s.item, c, f);
923
939
  };
924
940
  if (l === "findWith")
925
- return (e, o) => {
926
- const i = d().find(
927
- ({ item: g }) => g[e] === o
941
+ return (t, o) => {
942
+ const c = u().find(
943
+ ({ item: d }) => d[t] === o
928
944
  );
929
- if (!i) return;
930
- const S = [...n, i.originalIndex.toString()];
931
- return a(i.item, S, f);
945
+ if (!c) return;
946
+ const h = [...n, c.originalIndex.toString()];
947
+ return a(c.item, h, f);
932
948
  };
933
949
  }
934
950
  const Q = n[n.length - 1];
935
951
  if (!isNaN(Number(Q))) {
936
- const d = n.slice(0, -1), e = r.getState().getNestedState(t, d);
937
- if (Array.isArray(e) && l === "cut")
938
- return () => ct(
939
- c,
940
- d,
941
- t,
952
+ const u = n.slice(0, -1), t = r.getState().getNestedState(e, u);
953
+ if (Array.isArray(t) && l === "cut")
954
+ return () => ue(
955
+ i,
956
+ u,
957
+ e,
942
958
  Number(Q)
943
959
  );
944
960
  }
945
961
  if (l === "get")
946
962
  return () => {
947
963
  if (f?.validIndices && Array.isArray(v)) {
948
- const d = r.getState().getNestedState(t, n);
949
- return f.validIndices.map((e) => d[e]);
964
+ const u = r.getState().getNestedState(e, n);
965
+ return f.validIndices.map((t) => u[t]);
950
966
  }
951
- return r.getState().getNestedState(t, n);
967
+ return r.getState().getNestedState(e, n);
952
968
  };
953
969
  if (l === "$derive")
954
- return (d) => kt({
955
- _stateKey: t,
970
+ return (u) => Ne({
971
+ _stateKey: e,
956
972
  _path: n,
957
- _effect: d.toString()
973
+ _effect: u.toString()
958
974
  });
959
975
  if (l === "$get")
960
- return () => kt({
961
- _stateKey: t,
976
+ return () => Ne({
977
+ _stateKey: e,
962
978
  _path: n
963
979
  });
964
980
  if (l === "lastSynced") {
965
- const d = `${t}:${n.join(".")}`;
966
- return r.getState().getSyncInfo(d);
981
+ const u = `${e}:${n.join(".")}`;
982
+ return r.getState().getSyncInfo(u);
967
983
  }
968
984
  if (l == "getLocalStorage")
969
- return (d) => gt(u + "-" + t + "-" + d);
985
+ return (u) => Se(g + "-" + e + "-" + u);
970
986
  if (l === "_selected") {
971
- const d = n.slice(0, -1), e = d.join("."), o = r.getState().getNestedState(t, d);
972
- return Array.isArray(o) ? Number(n[n.length - 1]) === r.getState().getSelectedIndex(t, e) : void 0;
987
+ const u = n.slice(0, -1), t = u.join("."), o = r.getState().getNestedState(e, u);
988
+ return Array.isArray(o) ? Number(n[n.length - 1]) === r.getState().getSelectedIndex(e, t) : void 0;
973
989
  }
974
990
  if (l === "setSelected")
975
- return (d) => {
976
- const e = n.slice(0, -1), o = Number(n[n.length - 1]), s = e.join(".");
977
- d ? r.getState().setSelectedIndex(t, s, o) : r.getState().setSelectedIndex(t, s, void 0);
978
- const i = r.getState().getNestedState(t, [...e]);
979
- at(c, i, e), w(e);
991
+ return (u) => {
992
+ const t = n.slice(0, -1), o = Number(n[n.length - 1]), s = t.join(".");
993
+ u ? r.getState().setSelectedIndex(e, s, o) : r.getState().setSelectedIndex(e, s, void 0);
994
+ const c = r.getState().getNestedState(e, [...t]);
995
+ se(i, c, t), w(t);
980
996
  };
981
997
  if (l === "toggleSelected")
982
998
  return () => {
983
- const d = n.slice(0, -1), e = Number(n[n.length - 1]), o = d.join("."), s = r.getState().getSelectedIndex(t, o);
999
+ const u = n.slice(0, -1), t = Number(n[n.length - 1]), o = u.join("."), s = r.getState().getSelectedIndex(e, o);
984
1000
  r.getState().setSelectedIndex(
985
- t,
1001
+ e,
986
1002
  o,
987
- s === e ? void 0 : e
1003
+ s === t ? void 0 : t
988
1004
  );
989
- const i = r.getState().getNestedState(t, [...d]);
990
- at(c, i, d), w(d);
1005
+ const c = r.getState().getNestedState(e, [...u]);
1006
+ se(i, c, u), w(u);
991
1007
  };
992
1008
  if (n.length == 0) {
993
1009
  if (l === "applyJsonPatch")
994
- return (d) => {
995
- const e = r.getState().cogsStateStore[t], s = Ut(e, d).newDocument;
996
- Ct(
997
- t,
998
- r.getState().initialStateGlobal[t],
1010
+ return (u) => {
1011
+ const t = r.getState().cogsStateStore[e], s = Le(t, u).newDocument;
1012
+ Pe(
1013
+ e,
1014
+ r.getState().initialStateGlobal[e],
999
1015
  s,
1000
- c,
1001
- m,
1002
- u
1016
+ i,
1017
+ S,
1018
+ g
1003
1019
  );
1004
- const i = r.getState().stateComponents.get(t);
1005
- if (i) {
1006
- const S = vt(e, s), g = new Set(S);
1020
+ const c = r.getState().stateComponents.get(e);
1021
+ if (c) {
1022
+ const h = pe(t, s), d = new Set(h);
1007
1023
  for (const [
1008
- A,
1009
- y
1010
- ] of i.components.entries()) {
1011
- let T = !1;
1012
- const P = Array.isArray(y.reactiveType) ? y.reactiveType : [y.reactiveType || "component"];
1024
+ p,
1025
+ E
1026
+ ] of c.components.entries()) {
1027
+ let A = !1;
1028
+ const P = Array.isArray(E.reactiveType) ? E.reactiveType : [E.reactiveType || "component"];
1013
1029
  if (!P.includes("none")) {
1014
1030
  if (P.includes("all")) {
1015
- y.forceUpdate();
1031
+ E.forceUpdate();
1016
1032
  continue;
1017
1033
  }
1018
- if (P.includes("component") && (y.paths.has("") && (T = !0), !T))
1019
- for (const C of g) {
1020
- if (y.paths.has(C)) {
1021
- T = !0;
1034
+ if (P.includes("component") && (E.paths.has("") && (A = !0), !A))
1035
+ for (const x of d) {
1036
+ if (E.paths.has(x)) {
1037
+ A = !0;
1022
1038
  break;
1023
1039
  }
1024
- let N = C.lastIndexOf(".");
1025
- for (; N !== -1; ) {
1026
- const D = C.substring(0, N);
1027
- if (y.paths.has(D)) {
1028
- T = !0;
1040
+ let M = x.lastIndexOf(".");
1041
+ for (; M !== -1; ) {
1042
+ const W = x.substring(0, M);
1043
+ if (E.paths.has(W)) {
1044
+ A = !0;
1029
1045
  break;
1030
1046
  }
1031
- const q = C.substring(
1032
- N + 1
1047
+ const z = x.substring(
1048
+ M + 1
1033
1049
  );
1034
- if (!isNaN(Number(q))) {
1035
- const V = D.lastIndexOf(".");
1036
- if (V !== -1) {
1037
- const k = D.substring(
1050
+ if (!isNaN(Number(z))) {
1051
+ const $ = W.lastIndexOf(".");
1052
+ if ($ !== -1) {
1053
+ const N = W.substring(
1038
1054
  0,
1039
- V
1055
+ $
1040
1056
  );
1041
- if (y.paths.has(k)) {
1042
- T = !0;
1057
+ if (E.paths.has(N)) {
1058
+ A = !0;
1043
1059
  break;
1044
1060
  }
1045
1061
  }
1046
1062
  }
1047
- N = D.lastIndexOf(".");
1063
+ M = W.lastIndexOf(".");
1048
1064
  }
1049
- if (T) break;
1065
+ if (A) break;
1050
1066
  }
1051
- if (!T && P.includes("deps") && y.depsFunction) {
1052
- const C = y.depsFunction(s);
1053
- let N = !1;
1054
- typeof C == "boolean" ? C && (N = !0) : B(y.deps, C) || (y.deps = C, N = !0), N && (T = !0);
1067
+ if (!A && P.includes("deps") && E.depsFunction) {
1068
+ const x = E.depsFunction(s);
1069
+ let M = !1;
1070
+ typeof x == "boolean" ? x && (M = !0) : B(E.deps, x) || (E.deps = x, M = !0), M && (A = !0);
1055
1071
  }
1056
- T && y.forceUpdate();
1072
+ A && E.forceUpdate();
1057
1073
  }
1058
1074
  }
1059
1075
  }
1060
1076
  };
1061
1077
  if (l === "validateZodSchema")
1062
1078
  return () => {
1063
- const d = r.getState().getInitialOptions(t)?.validation, e = r.getState().addValidationError;
1064
- if (!d?.zodSchema)
1079
+ const u = r.getState().getInitialOptions(e)?.validation, t = r.getState().addValidationError;
1080
+ if (!u?.zodSchema)
1065
1081
  throw new Error("Zod schema not found");
1066
- if (!d?.key)
1082
+ if (!u?.key)
1067
1083
  throw new Error("Validation key not found");
1068
- J(d.key);
1069
- const o = r.getState().cogsStateStore[t];
1084
+ Z(u.key);
1085
+ const o = r.getState().cogsStateStore[e];
1070
1086
  try {
1071
- const s = r.getState().getValidationErrors(d.key);
1072
- s && s.length > 0 && s.forEach(([S]) => {
1073
- S && S.startsWith(d.key) && J(S);
1087
+ const s = r.getState().getValidationErrors(u.key);
1088
+ s && s.length > 0 && s.forEach(([h]) => {
1089
+ h && h.startsWith(u.key) && Z(h);
1074
1090
  });
1075
- const i = d.zodSchema.safeParse(o);
1076
- return i.success ? !0 : (i.error.errors.forEach((g) => {
1077
- const A = g.path, y = g.message, T = [d.key, ...A].join(".");
1078
- e(T, y);
1079
- }), ft(t), !1);
1091
+ const c = u.zodSchema.safeParse(o);
1092
+ return c.success ? !0 : (c.error.errors.forEach((d) => {
1093
+ const p = d.path, E = d.message, A = [u.key, ...p].join(".");
1094
+ t(A, E);
1095
+ }), me(e), !1);
1080
1096
  } catch (s) {
1081
1097
  return console.error("Zod schema validation failed", s), !1;
1082
1098
  }
1083
1099
  };
1084
- if (l === "_componentId") return m;
1100
+ if (l === "_componentId") return S;
1085
1101
  if (l === "getComponents")
1086
- return () => r().stateComponents.get(t);
1102
+ return () => r().stateComponents.get(e);
1087
1103
  if (l === "getAllFormRefs")
1088
- return () => wt.getState().getFormRefsByStateKey(t);
1104
+ return () => $e.getState().getFormRefsByStateKey(e);
1089
1105
  if (l === "_initialState")
1090
- return r.getState().initialStateGlobal[t];
1106
+ return r.getState().initialStateGlobal[e];
1091
1107
  if (l === "_serverState")
1092
- return r.getState().serverState[t];
1108
+ return r.getState().serverState[e];
1093
1109
  if (l === "_isLoading")
1094
- return r.getState().isLoadingGlobal[t];
1110
+ return r.getState().isLoadingGlobal[e];
1095
1111
  if (l === "revertToInitialState")
1096
- return p.revertToInitialState;
1097
- if (l === "updateInitialState") return p.updateInitialState;
1098
- if (l === "removeValidation") return p.removeValidation;
1112
+ return I.revertToInitialState;
1113
+ if (l === "updateInitialState") return I.updateInitialState;
1114
+ if (l === "removeValidation") return I.removeValidation;
1099
1115
  }
1100
1116
  if (l === "getFormRef")
1101
- return () => wt.getState().getFormRef(t + "." + n.join("."));
1117
+ return () => $e.getState().getFormRef(e + "." + n.join("."));
1102
1118
  if (l === "validationWrapper")
1103
1119
  return ({
1104
- children: d,
1105
- hideMessage: e
1106
- }) => /* @__PURE__ */ mt(
1107
- Ot,
1120
+ children: u,
1121
+ hideMessage: t
1122
+ }) => /* @__PURE__ */ ye(
1123
+ je,
1108
1124
  {
1109
- formOpts: e ? { validation: { message: "" } } : void 0,
1125
+ formOpts: t ? { validation: { message: "" } } : void 0,
1110
1126
  path: n,
1111
- validationKey: r.getState().getInitialOptions(t)?.validation?.key || "",
1112
- stateKey: t,
1127
+ validationKey: r.getState().getInitialOptions(e)?.validation?.key || "",
1128
+ stateKey: e,
1113
1129
  validIndices: f?.validIndices,
1114
- children: d
1130
+ children: u
1115
1131
  }
1116
1132
  );
1117
- if (l === "_stateKey") return t;
1133
+ if (l === "_stateKey") return e;
1118
1134
  if (l === "_path") return n;
1119
- if (l === "_isServerSynced") return p._isServerSynced;
1135
+ if (l === "_isServerSynced") return I._isServerSynced;
1120
1136
  if (l === "update")
1121
- return (d, e) => {
1122
- if (e?.debounce)
1123
- _t(() => {
1124
- at(c, d, n, "");
1125
- const o = r.getState().getNestedState(t, n);
1126
- e?.afterUpdate && e.afterUpdate(o);
1127
- }, e.debounce);
1137
+ return (u, t) => {
1138
+ if (t?.debounce)
1139
+ Ue(() => {
1140
+ se(i, u, n, "");
1141
+ const o = r.getState().getNestedState(e, n);
1142
+ t?.afterUpdate && t.afterUpdate(o);
1143
+ }, t.debounce);
1128
1144
  else {
1129
- at(c, d, n, "");
1130
- const o = r.getState().getNestedState(t, n);
1131
- e?.afterUpdate && e.afterUpdate(o);
1145
+ se(i, u, n, "");
1146
+ const o = r.getState().getNestedState(e, n);
1147
+ t?.afterUpdate && t.afterUpdate(o);
1132
1148
  }
1133
1149
  w(n);
1134
1150
  };
1135
1151
  if (l === "formElement")
1136
- return (d, e) => /* @__PURE__ */ mt(
1137
- Mt,
1152
+ return (u, t) => /* @__PURE__ */ ye(
1153
+ Fe,
1138
1154
  {
1139
- setState: c,
1140
- stateKey: t,
1155
+ setState: i,
1156
+ stateKey: e,
1141
1157
  path: n,
1142
- child: d,
1143
- formOpts: e
1158
+ child: u,
1159
+ formOpts: t
1144
1160
  }
1145
1161
  );
1146
- const O = [...n, l], rt = r.getState().getNestedState(t, O);
1147
- return a(rt, O, f);
1162
+ const _ = [...n, l], ae = r.getState().getNestedState(e, _);
1163
+ return a(ae, _, f);
1148
1164
  }
1149
- }, G = new Proxy(U, j);
1150
- return I.set(F, {
1151
- proxy: G,
1152
- stateVersion: b
1153
- }), G;
1165
+ }, H = new Proxy(U, j);
1166
+ return y.set(G, {
1167
+ proxy: H,
1168
+ stateVersion: C
1169
+ }), H;
1154
1170
  }
1155
1171
  return a(
1156
- r.getState().getNestedState(t, [])
1172
+ r.getState().getNestedState(e, [])
1157
1173
  );
1158
1174
  }
1159
- function kt(t) {
1160
- return st(qt, { proxy: t });
1175
+ function Ne(e) {
1176
+ return ce(Xe, { proxy: e });
1161
1177
  }
1162
- function zt({
1163
- proxy: t,
1164
- rebuildStateShape: c
1178
+ function Ze({
1179
+ proxy: e,
1180
+ rebuildStateShape: i
1165
1181
  }) {
1166
- const m = r().getNestedState(t._stateKey, t._path);
1167
- return Array.isArray(m) ? c(
1168
- m,
1169
- t._path
1182
+ const S = r().getNestedState(e._stateKey, e._path);
1183
+ return Array.isArray(S) ? i(
1184
+ S,
1185
+ e._path
1170
1186
  ).stateMapNoRender(
1171
- (I, b, w, p, a) => t._mapFn(I, b, w, p, a)
1187
+ (y, C, w, I, a) => e._mapFn(y, C, w, I, a)
1172
1188
  ) : null;
1173
1189
  }
1174
- function qt({
1175
- proxy: t
1190
+ function Xe({
1191
+ proxy: e
1176
1192
  }) {
1177
- const c = X(null), m = `${t._stateKey}-${t._path.join(".")}`;
1178
- return tt(() => {
1179
- const u = c.current;
1180
- if (!u || !u.parentElement) return;
1181
- const I = u.parentElement, w = Array.from(I.childNodes).indexOf(u);
1182
- let p = I.getAttribute("data-parent-id");
1183
- p || (p = `parent-${crypto.randomUUID()}`, I.setAttribute("data-parent-id", p));
1193
+ const i = J(null), S = `${e._stateKey}-${e._path.join(".")}`;
1194
+ return oe(() => {
1195
+ const g = i.current;
1196
+ if (!g || !g.parentElement) return;
1197
+ const y = g.parentElement, w = Array.from(y.childNodes).indexOf(g);
1198
+ let I = y.getAttribute("data-parent-id");
1199
+ I || (I = `parent-${crypto.randomUUID()}`, y.setAttribute("data-parent-id", I));
1184
1200
  const v = {
1185
1201
  instanceId: `instance-${crypto.randomUUID()}`,
1186
- parentId: p,
1202
+ parentId: I,
1187
1203
  position: w,
1188
- effect: t._effect
1204
+ effect: e._effect
1189
1205
  };
1190
- r.getState().addSignalElement(m, v);
1191
- const n = r.getState().getNestedState(t._stateKey, t._path);
1206
+ r.getState().addSignalElement(S, v);
1207
+ const n = r.getState().getNestedState(e._stateKey, e._path);
1192
1208
  let f;
1193
- if (t._effect)
1209
+ if (e._effect)
1194
1210
  try {
1195
1211
  f = new Function(
1196
1212
  "state",
1197
- `return (${t._effect})(state)`
1213
+ `return (${e._effect})(state)`
1198
1214
  )(n);
1199
1215
  } catch (U) {
1200
1216
  console.error("Error evaluating effect function during mount:", U), f = n;
@@ -1202,61 +1218,61 @@ function qt({
1202
1218
  else
1203
1219
  f = n;
1204
1220
  f !== null && typeof f == "object" && (f = JSON.stringify(f));
1205
- const F = document.createTextNode(String(f));
1206
- u.replaceWith(F);
1207
- }, [t._stateKey, t._path.join("."), t._effect]), st("span", {
1208
- ref: c,
1221
+ const G = document.createTextNode(String(f));
1222
+ g.replaceWith(G);
1223
+ }, [e._stateKey, e._path.join("."), e._effect]), ce("span", {
1224
+ ref: i,
1209
1225
  style: { display: "none" },
1210
- "data-signal-id": m
1226
+ "data-signal-id": S
1211
1227
  });
1212
1228
  }
1213
- function le(t) {
1214
- const c = Pt(
1215
- (m) => {
1216
- const u = r.getState().stateComponents.get(t._stateKey) || {
1229
+ function ft(e) {
1230
+ const i = Me(
1231
+ (S) => {
1232
+ const g = r.getState().stateComponents.get(e._stateKey) || {
1217
1233
  components: /* @__PURE__ */ new Map()
1218
1234
  };
1219
- return u.components.set(t._stateKey, {
1220
- forceUpdate: m,
1221
- paths: /* @__PURE__ */ new Set([t._path.join(".")])
1222
- }), () => u.components.delete(t._stateKey);
1235
+ return g.components.set(e._stateKey, {
1236
+ forceUpdate: S,
1237
+ paths: /* @__PURE__ */ new Set([e._path.join(".")])
1238
+ }), () => g.components.delete(e._stateKey);
1223
1239
  },
1224
- () => r.getState().getNestedState(t._stateKey, t._path)
1240
+ () => r.getState().getNestedState(e._stateKey, e._path)
1225
1241
  );
1226
- return st("text", {}, String(c));
1242
+ return ce("text", {}, String(i));
1227
1243
  }
1228
- function Jt({
1229
- stateKey: t,
1230
- itemComponentId: c,
1231
- itemPath: m,
1232
- children: u
1244
+ function Qe({
1245
+ stateKey: e,
1246
+ itemComponentId: i,
1247
+ itemPath: S,
1248
+ children: g
1233
1249
  }) {
1234
- const [, I] = Y({}), [b, w] = jt(), p = X(null);
1235
- return tt(() => {
1236
- w.height > 0 && w.height !== p.current && (p.current = w.height, r.getState().setShadowMetadata(t, m, {
1250
+ const [, y] = ee({}), [C, w] = We(), I = J(null);
1251
+ return oe(() => {
1252
+ w.height > 0 && w.height !== I.current && (I.current = w.height, r.getState().setShadowMetadata(e, S, {
1237
1253
  virtualizer: {
1238
1254
  itemHeight: w.height
1239
1255
  }
1240
1256
  }));
1241
- }, [w.height, t, m]), lt(() => {
1242
- const a = `${t}////${c}`, v = r.getState().stateComponents.get(t) || {
1257
+ }, [w.height, e, S]), ie(() => {
1258
+ const a = `${e}////${i}`, v = r.getState().stateComponents.get(e) || {
1243
1259
  components: /* @__PURE__ */ new Map()
1244
1260
  };
1245
1261
  return v.components.set(a, {
1246
- forceUpdate: () => I({}),
1247
- paths: /* @__PURE__ */ new Set([m.join(".")])
1248
- }), r.getState().stateComponents.set(t, v), () => {
1249
- const n = r.getState().stateComponents.get(t);
1262
+ forceUpdate: () => y({}),
1263
+ paths: /* @__PURE__ */ new Set([S.join(".")])
1264
+ }), r.getState().stateComponents.set(e, v), () => {
1265
+ const n = r.getState().stateComponents.get(e);
1250
1266
  n && n.components.delete(a);
1251
1267
  };
1252
- }, [t, c, m.join(".")]), /* @__PURE__ */ mt("div", { ref: b, children: u });
1268
+ }, [e, i, S.join(".")]), /* @__PURE__ */ ye("div", { ref: C, children: g });
1253
1269
  }
1254
1270
  export {
1255
- kt as $cogsSignal,
1256
- le as $cogsSignalStore,
1257
- se as addStateOptions,
1258
- ie as createCogsState,
1259
- ce as notifyComponent,
1260
- Bt as useCogsStateFn
1271
+ Ne as $cogsSignal,
1272
+ ft as $cogsSignalStore,
1273
+ dt as addStateOptions,
1274
+ ut as createCogsState,
1275
+ gt as notifyComponent,
1276
+ Ye as useCogsStateFn
1261
1277
  };
1262
1278
  //# sourceMappingURL=CogsState.jsx.map