cogsbox-state 0.5.330 → 0.5.331

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