cogsbox-state 0.5.364 → 0.5.366

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