cogsbox-state 0.5.366 → 0.5.368

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