cogsbox-state 0.5.301 → 0.5.303

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