cogsbox-state 0.5.331 → 0.5.332

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