cogsbox-state 0.5.331 → 0.5.333

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