cogsbox-state 0.5.345 → 0.5.346

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