@manyducks.co/dolla 2.0.0-alpha.46 → 2.0.0-alpha.47

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,12 +1,8 @@
1
- var je = Object.defineProperty;
2
- var ce = (t) => {
3
- throw TypeError(t);
4
- };
5
- var _e = (t, e, s) => e in t ? je(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
6
- var c = (t, e, s) => _e(t, typeof e != "symbol" ? e + "" : e, s), H = (t, e, s) => e.has(t) || ce("Cannot " + s);
7
- var g = (t, e, s) => (H(t, e, "read from private field"), s ? s.call(t) : e.get(t)), E = (t, e, s) => e.has(t) ? ce("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, s), L = (t, e, s, n) => (H(t, e, "write to private field"), n ? n.call(t, s) : e.set(t, s), s), fe = (t, e, s) => (H(t, e, "access private method"), s);
8
- var M = /* @__PURE__ */ ((t) => (t[t.Computed = 1] = "Computed", t[t.Effect = 2] = "Effect", t[t.Tracking = 4] = "Tracking", t[t.Notified = 8] = "Notified", t[t.Recursed = 16] = "Recursed", t[t.Dirty = 32] = "Dirty", t[t.PendingComputed = 64] = "PendingComputed", t[t.PendingEffect = 128] = "PendingEffect", t[t.Propagated = 224] = "Propagated", t))(M || {});
9
- function be({
1
+ var Ne = Object.defineProperty;
2
+ var xe = (t, e, s) => e in t ? Ne(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
3
+ var f = (t, e, s) => xe(t, typeof e != "symbol" ? e + "" : e, s);
4
+ var E = /* @__PURE__ */ ((t) => (t[t.Computed = 1] = "Computed", t[t.Effect = 2] = "Effect", t[t.Tracking = 4] = "Tracking", t[t.Notified = 8] = "Notified", t[t.Recursed = 16] = "Recursed", t[t.Dirty = 32] = "Dirty", t[t.PendingComputed = 64] = "PendingComputed", t[t.PendingEffect = 128] = "PendingEffect", t[t.Propagated = 224] = "Propagated", t))(E || {});
5
+ function oe({
10
6
  updateComputed: t,
11
7
  notifyEffect: e
12
8
  }) {
@@ -19,18 +15,18 @@ function be({
19
15
  * @param sub - The subscriber that depends on this dependency.
20
16
  * @returns The newly created link object if the two are not already linked; otherwise `undefined`.
21
17
  */
22
- link(r, u) {
18
+ link(o, u) {
23
19
  const l = u.depsTail;
24
- if (l !== void 0 && l.dep === r)
20
+ if (l !== void 0 && l.dep === o)
25
21
  return;
26
22
  const d = l !== void 0 ? l.nextDep : u.deps;
27
- if (d !== void 0 && d.dep === r) {
23
+ if (d !== void 0 && d.dep === o) {
28
24
  u.depsTail = d;
29
25
  return;
30
26
  }
31
- const a = r.subsTail;
27
+ const a = o.subsTail;
32
28
  if (!(a !== void 0 && a.sub === u && p(a, u)))
33
- return i(r, u, d, l);
29
+ return i(o, u, d, l);
34
30
  },
35
31
  /**
36
32
  * Traverses and marks subscribers starting from the provided link.
@@ -41,27 +37,27 @@ function be({
41
37
  *
42
38
  * @param link - The starting link from which propagation begins.
43
39
  */
44
- propagate(r) {
45
- let u = 32, l = r, d = 0;
40
+ propagate(o) {
41
+ let u = 32, l = o, d = 0;
46
42
  e: do {
47
- const a = r.sub, h = a.flags;
48
- if (!(h & 244) && (a.flags = h | u | 8, !0) || h & 16 && !(h & 4) && (a.flags = h & -17 | u | 8, !0) || !(h & 224) && p(r, a) && (a.flags = h | 16 | u | 8, a.subs !== void 0)) {
49
- const N = a.subs;
50
- if (N !== void 0) {
51
- N.nextSub !== void 0 ? (N.prevSub = l, r = l = N, u = 64, ++d) : (r = N, u = h & 2 ? 128 : 64);
43
+ const a = o.sub, h = a.flags;
44
+ if (!(h & 244) && (a.flags = h | u | 8, !0) || h & 16 && !(h & 4) && (a.flags = h & -17 | u | 8, !0) || !(h & 224) && p(o, a) && (a.flags = h | 16 | u | 8, a.subs !== void 0)) {
45
+ const w = a.subs;
46
+ if (w !== void 0) {
47
+ w.nextSub !== void 0 ? (w.prevSub = l, o = l = w, u = 64, ++d) : (o = w, u = h & 2 ? 128 : 64);
52
48
  continue;
53
49
  }
54
50
  h & 2 && (n !== void 0 ? n.depsTail.nextDep = a.deps : s = a, n = a);
55
- } else h & (4 | u) ? !(h & u) && h & 224 && p(r, a) && (a.flags = h | u) : (a.flags = h | u | 8, (h & 10) === 2 && (n !== void 0 ? n.depsTail.nextDep = a.deps : s = a, n = a));
56
- if ((r = l.nextSub) !== void 0) {
57
- l = r, u = d ? 64 : 32;
51
+ } else h & (4 | u) ? !(h & u) && h & 224 && p(o, a) && (a.flags = h | u) : (a.flags = h | u | 8, (h & 10) === 2 && (n !== void 0 ? n.depsTail.nextDep = a.deps : s = a, n = a));
52
+ if ((o = l.nextSub) !== void 0) {
53
+ l = o, u = d ? 64 : 32;
58
54
  continue;
59
55
  }
60
56
  for (; d; ) {
61
57
  --d;
62
- const ue = l.dep.subs;
63
- if (l = ue.prevSub, ue.prevSub = void 0, (r = l.nextSub) !== void 0) {
64
- l = r, u = d ? 64 : 32;
58
+ const W = l.dep.subs;
59
+ if (l = W.prevSub, W.prevSub = void 0, (o = l.nextSub) !== void 0) {
60
+ l = o, u = d ? 64 : 32;
65
61
  continue e;
66
62
  }
67
63
  }
@@ -76,8 +72,8 @@ function be({
76
72
  *
77
73
  * @param sub - The subscriber to start tracking.
78
74
  */
79
- startTracking(r) {
80
- r.depsTail = void 0, r.flags = r.flags & -249 | 4;
75
+ startTracking(o) {
76
+ o.depsTail = void 0, o.flags = o.flags & -249 | 4;
81
77
  },
82
78
  /**
83
79
  * Concludes tracking of dependencies for the specified subscriber.
@@ -87,13 +83,13 @@ function be({
87
83
  *
88
84
  * @param sub - The subscriber whose tracking is ending.
89
85
  */
90
- endTracking(r) {
91
- const u = r.depsTail;
86
+ endTracking(o) {
87
+ const u = o.depsTail;
92
88
  if (u !== void 0) {
93
89
  const l = u.nextDep;
94
- l !== void 0 && (m(l), u.nextDep = void 0);
95
- } else r.deps !== void 0 && (m(r.deps), r.deps = void 0);
96
- r.flags &= -5;
90
+ l !== void 0 && (g(l), u.nextDep = void 0);
91
+ } else o.deps !== void 0 && (g(o.deps), o.deps = void 0);
92
+ o.flags &= -5;
97
93
  },
98
94
  /**
99
95
  * Updates the dirty flag for the given subscriber based on its dependencies.
@@ -105,8 +101,8 @@ function be({
105
101
  * @param flags - The current flag set for this subscriber.
106
102
  * @returns `true` if the subscriber is marked as Dirty; otherwise `false`.
107
103
  */
108
- updateDirtyFlag(r, u) {
109
- return o(r.deps) ? (r.flags = u | 32, !0) : (r.flags = u & -65, !1);
104
+ updateDirtyFlag(o, u) {
105
+ return r(o.deps) ? (o.flags = u | 32, !0) : (o.flags = u & -65, !1);
110
106
  },
111
107
  /**
112
108
  * Updates the computed subscriber if necessary before its value is accessed.
@@ -118,10 +114,10 @@ function be({
118
114
  * @param computed - The computed subscriber to update.
119
115
  * @param flags - The current flag set for this subscriber.
120
116
  */
121
- processComputedUpdate(r, u) {
122
- if ((u & 32 || (o(r.deps) || (r.flags = u & -65, !1))) && t(r)) {
123
- const l = r.subs;
124
- l !== void 0 && f(l);
117
+ processComputedUpdate(o, u) {
118
+ if ((u & 32 || (r(o.deps) || (o.flags = u & -65, !1))) && t(o)) {
119
+ const l = o.subs;
120
+ l !== void 0 && c(l);
125
121
  }
126
122
  },
127
123
  /**
@@ -135,10 +131,10 @@ function be({
135
131
  * @param sub - The subscriber which may have pending effects.
136
132
  * @param flags - The current flags on the subscriber to check.
137
133
  */
138
- processPendingInnerEffects(r, u) {
134
+ processPendingInnerEffects(o, u) {
139
135
  if (u & 128) {
140
- r.flags = u & -129;
141
- let l = r.deps;
136
+ o.flags = u & -129;
137
+ let l = o.deps;
142
138
  do {
143
139
  const d = l.dep;
144
140
  "flags" in d && d.flags & 2 && d.flags & 224 && e(d), l = l.nextDep;
@@ -154,69 +150,69 @@ function be({
154
150
  */
155
151
  processEffectNotifications() {
156
152
  for (; s !== void 0; ) {
157
- const r = s, u = r.depsTail, l = u.nextDep;
158
- l !== void 0 ? (u.nextDep = void 0, s = l.sub) : (s = void 0, n = void 0), e(r) || (r.flags &= -9);
153
+ const o = s, u = o.depsTail, l = u.nextDep;
154
+ l !== void 0 ? (u.nextDep = void 0, s = l.sub) : (s = void 0, n = void 0), e(o) || (o.flags &= -9);
159
155
  }
160
156
  }
161
157
  };
162
- function i(r, u, l, d) {
158
+ function i(o, u, l, d) {
163
159
  const a = {
164
- dep: r,
160
+ dep: o,
165
161
  sub: u,
166
162
  nextDep: l,
167
163
  prevSub: void 0,
168
164
  nextSub: void 0
169
165
  };
170
- if (d === void 0 ? u.deps = a : d.nextDep = a, r.subs === void 0)
171
- r.subs = a;
166
+ if (d === void 0 ? u.deps = a : d.nextDep = a, o.subs === void 0)
167
+ o.subs = a;
172
168
  else {
173
- const h = r.subsTail;
169
+ const h = o.subsTail;
174
170
  a.prevSub = h, h.nextSub = a;
175
171
  }
176
- return u.depsTail = a, r.subsTail = a, a;
172
+ return u.depsTail = a, o.subsTail = a, a;
177
173
  }
178
- function o(r) {
174
+ function r(o) {
179
175
  let u = 0, l;
180
176
  e: do {
181
177
  l = !1;
182
- const d = r.dep;
178
+ const d = o.dep;
183
179
  if ("flags" in d) {
184
180
  const a = d.flags;
185
181
  if ((a & 33) === 33) {
186
182
  if (t(d)) {
187
183
  const h = d.subs;
188
- h.nextSub !== void 0 && f(h), l = !0;
184
+ h.nextSub !== void 0 && c(h), l = !0;
189
185
  }
190
186
  } else if ((a & 65) === 65) {
191
187
  const h = d.subs;
192
- h.nextSub !== void 0 && (h.prevSub = r), r = d.deps, ++u;
188
+ h.nextSub !== void 0 && (h.prevSub = o), o = d.deps, ++u;
193
189
  continue;
194
190
  }
195
191
  }
196
- if (!l && r.nextDep !== void 0) {
197
- r = r.nextDep;
192
+ if (!l && o.nextDep !== void 0) {
193
+ o = o.nextDep;
198
194
  continue;
199
195
  }
200
196
  if (u) {
201
- let a = r.sub;
197
+ let a = o.sub;
202
198
  do {
203
199
  --u;
204
200
  const h = a.subs;
205
201
  if (l) {
206
202
  if (t(a)) {
207
- (r = h.prevSub) !== void 0 ? (h.prevSub = void 0, f(a.subs), a = r.sub) : a = h.sub;
203
+ (o = h.prevSub) !== void 0 ? (h.prevSub = void 0, c(a.subs), a = o.sub) : a = h.sub;
208
204
  continue;
209
205
  }
210
206
  } else
211
207
  a.flags &= -65;
212
- if ((r = h.prevSub) !== void 0) {
213
- if (h.prevSub = void 0, r.nextDep !== void 0) {
214
- r = r.nextDep;
208
+ if ((o = h.prevSub) !== void 0) {
209
+ if (h.prevSub = void 0, o.nextDep !== void 0) {
210
+ o = o.nextDep;
215
211
  continue e;
216
212
  }
217
- a = r.sub;
213
+ a = o.sub;
218
214
  } else {
219
- if ((r = h.nextDep) !== void 0)
215
+ if ((o = h.nextDep) !== void 0)
220
216
  continue e;
221
217
  a = h.sub;
222
218
  }
@@ -226,18 +222,18 @@ function be({
226
222
  return l;
227
223
  } while (!0);
228
224
  }
229
- function f(r) {
225
+ function c(o) {
230
226
  do {
231
- const u = r.sub, l = u.flags;
232
- (l & 96) === 64 && (u.flags = l | 32 | 8, (l & 10) === 2 && (n !== void 0 ? n.depsTail.nextDep = u.deps : s = u, n = u)), r = r.nextSub;
233
- } while (r !== void 0);
227
+ const u = o.sub, l = u.flags;
228
+ (l & 96) === 64 && (u.flags = l | 32 | 8, (l & 10) === 2 && (n !== void 0 ? n.depsTail.nextDep = u.deps : s = u, n = u)), o = o.nextSub;
229
+ } while (o !== void 0);
234
230
  }
235
- function p(r, u) {
231
+ function p(o, u) {
236
232
  const l = u.depsTail;
237
233
  if (l !== void 0) {
238
234
  let d = u.deps;
239
235
  do {
240
- if (d === r)
236
+ if (d === o)
241
237
  return !0;
242
238
  if (d === l)
243
239
  break;
@@ -246,59 +242,59 @@ function be({
246
242
  }
247
243
  return !1;
248
244
  }
249
- function m(r) {
245
+ function g(o) {
250
246
  do {
251
- const u = r.dep, l = r.nextDep, d = r.nextSub, a = r.prevSub;
247
+ const u = o.dep, l = o.nextDep, d = o.nextSub, a = o.prevSub;
252
248
  if (d !== void 0 ? d.prevSub = a : u.subsTail = a, a !== void 0 ? a.nextSub = d : u.subs = d, u.subs === void 0 && "deps" in u) {
253
249
  const h = u.flags;
254
250
  h & 32 || (u.flags = h | 32);
255
- const N = u.deps;
256
- if (N !== void 0) {
257
- r = N, u.depsTail.nextDep = l, u.deps = void 0, u.depsTail = void 0;
251
+ const w = u.deps;
252
+ if (w !== void 0) {
253
+ o = w, u.depsTail.nextDep = l, u.deps = void 0, u.depsTail = void 0;
258
254
  continue;
259
255
  }
260
256
  }
261
- r = l;
262
- } while (r !== void 0);
257
+ o = l;
258
+ } while (o !== void 0);
263
259
  }
264
260
  }
265
261
  var {
266
- link: ht,
267
- propagate: pt,
268
- updateDirtyFlag: qe,
269
- startTracking: Ne,
270
- endTracking: xe,
271
- processEffectNotifications: mt,
272
- processComputedUpdate: gt,
273
- processPendingInnerEffects: Se
274
- } = be({
262
+ link: Je,
263
+ propagate: Qe,
264
+ updateDirtyFlag: Ee,
265
+ startTracking: re,
266
+ endTracking: ue,
267
+ processEffectNotifications: Ye,
268
+ processComputedUpdate: et,
269
+ processPendingInnerEffects: ce
270
+ } = oe({
275
271
  updateComputed(t) {
276
- Ne(t);
272
+ re(t);
277
273
  try {
278
274
  const e = t.currentValue, s = t.getter(e);
279
275
  return e !== s ? (t.currentValue = s, !0) : !1;
280
276
  } finally {
281
- xe(t);
277
+ ue(t);
282
278
  }
283
279
  },
284
280
  notifyEffect(t) {
285
- return "isScope" in t ? Re(t) : Be(t);
281
+ return "isScope" in t ? Te(t) : Me(t);
286
282
  }
287
283
  });
288
- function Ue(t) {
289
- Ne(t);
284
+ function Se(t) {
285
+ re(t);
290
286
  try {
291
287
  t.fn();
292
288
  } finally {
293
- xe(t);
289
+ ue(t);
294
290
  }
295
291
  }
296
- function Be(t) {
292
+ function Me(t) {
297
293
  const e = t.flags;
298
- return e & 32 || e & 64 && qe(t, e) ? Ue(t) : Se(t, t.flags), !0;
294
+ return e & 32 || e & 64 && Ee(t, e) ? Se(t) : ce(t, t.flags), !0;
299
295
  }
300
- function Re(t) {
301
- return t.flags & 128 ? (Se(t, t.flags), !0) : !1;
296
+ function Te(t) {
297
+ return t.flags & 128 ? (ce(t, t.flags), !0) : !1;
302
298
  }
303
299
  function T(t) {
304
300
  const e = typeof t;
@@ -315,296 +311,184 @@ function T(t) {
315
311
  return e;
316
312
  }
317
313
  }
318
- function U(t) {
314
+ function k(t) {
319
315
  return Array.isArray(t);
320
316
  }
321
- function Y(t, e) {
322
- return U(e) && e.every((s) => t(s));
317
+ function V(t, e) {
318
+ return k(e) && e.every((s) => t(s));
323
319
  }
324
- function yt(t, e, s) {
325
- if (Y(t, e))
320
+ function tt(t, e, s) {
321
+ if (V(t, e))
326
322
  return !0;
327
- throw new TypeError(W(e, s));
323
+ throw new TypeError(I(e, s));
328
324
  }
329
- function O(t) {
325
+ function L(t) {
330
326
  return typeof t == "string";
331
327
  }
332
- function vt(t, e) {
333
- if (O(t))
328
+ function st(t, e) {
329
+ if (L(t))
334
330
  return !0;
335
- throw new TypeError(W(t, e ?? "Expected a string. Got type: %t, value: %v"));
331
+ throw new TypeError(I(t, e ?? "Expected a string. Got type: %t, value: %v"));
336
332
  }
337
- function k(t) {
333
+ function m(t) {
338
334
  return T(t) === "function";
339
335
  }
340
- function ze(t) {
336
+ function ke(t) {
341
337
  return typeof t == "number" && !isNaN(t);
342
338
  }
343
- function wt(...t) {
344
- const e = t[0], s = O(t[2]) ? t[2] : `Expected instance of ${e.name}. Got type: %t, value: %v`, n = (i) => {
339
+ function nt(...t) {
340
+ const e = t[0], s = L(t[2]) ? t[2] : `Expected instance of ${e.name}. Got type: %t, value: %v`, n = (i) => {
345
341
  if (i instanceof e)
346
342
  return !0;
347
- throw new TypeError(W(i, s));
343
+ throw new TypeError(I(i, s));
348
344
  };
349
345
  return t.length < 2 ? n : n(t[1]);
350
346
  }
351
- function ee(t) {
352
- return t != null && typeof t == "object" && !U(t);
347
+ function R(t) {
348
+ return t != null && typeof t == "object" && !k(t);
353
349
  }
354
- function bt(t, e) {
355
- if (ee(t))
350
+ function it(t, e) {
351
+ if (R(t))
356
352
  return !0;
357
- throw new TypeError(W(t, e));
353
+ throw new TypeError(I(t, e));
358
354
  }
359
- function W(t, e) {
355
+ function I(t, e) {
360
356
  var i;
361
357
  const s = T(t), n = ((i = t == null ? void 0 : t.toString) == null ? void 0 : i.call(t)) || String(t);
362
358
  return e.replaceAll("%t", s).replaceAll("%v", n);
363
359
  }
364
- let A, P = [];
365
360
  const {
366
- link: te,
367
- propagate: Fe,
368
- updateDirtyFlag: Ge,
369
- startTracking: se,
370
- endTracking: ne,
371
- processEffectNotifications: We,
372
- processComputedUpdate: Ze,
373
- processPendingInnerEffects: He
374
- } = be({
361
+ link: B,
362
+ propagate: Le,
363
+ updateDirtyFlag: Ce,
364
+ startTracking: G,
365
+ endTracking: z,
366
+ processEffectNotifications: Ae,
367
+ processComputedUpdate: De,
368
+ processPendingInnerEffects: Oe
369
+ } = oe({
375
370
  updateComputed(t) {
376
- const e = y;
377
- y = t, P.length = 0, se(t);
371
+ const e = v;
372
+ v = t, G(t);
378
373
  try {
379
- const s = t.currentValue, n = t.getter(s);
380
- return t.equals(s, n) ? !1 : (t.currentValue = n, !0);
374
+ const s = t.current, n = t.getter(s);
375
+ return t.equals(s, n) ? !1 : (t.current = n, !0);
381
376
  } finally {
382
- y = e, A !== void 0 && (A(P), A = void 0), ne(t);
377
+ v = e, z(t);
383
378
  }
384
379
  },
385
380
  notifyEffect(t) {
386
381
  const e = t.flags;
387
- return e & M.Dirty || e & M.PendingComputed && Ge(t, e) ? Ee(t) : He(t, t.flags), !0;
382
+ return e & E.Dirty || e & E.PendingComputed && Ce(t, e) ? fe(t) : Oe(t, t.flags), !0;
388
383
  }
389
384
  });
390
- let y;
391
- const D = [];
392
- let K = !1;
393
- function Ke() {
394
- K || (K = !0, queueMicrotask(() => {
395
- K = !1;
396
- for (let t = 0; t < D.length; t++) {
397
- const e = D[t], s = y;
398
- y = e, P.length = 0, se(e);
385
+ let v;
386
+ const S = [];
387
+ let q = !1;
388
+ function Pe() {
389
+ q || (q = !0, queueMicrotask(() => {
390
+ q = !1;
391
+ for (let t = 0; t < S.length; t++) {
392
+ const e = S[t], s = v;
393
+ v = e, G(e);
399
394
  try {
400
- e.fn();
395
+ e.cleanup && (ae(), e.cleanup(), de()), e.cleanup = e.fn() ?? void 0;
401
396
  } finally {
402
- y = s, ne(e), A !== void 0 && (A(P), A = void 0);
397
+ v = s, z(e);
403
398
  }
404
399
  }
405
- D.length = 0;
400
+ S.length = 0;
406
401
  }));
407
402
  }
408
- function Ee(t) {
409
- D.push(t), Ke();
403
+ function fe(t) {
404
+ S.push(t), Pe();
410
405
  }
411
- function Xe() {
412
- se(this), ne(this), queueMicrotask(() => {
413
- D.splice(D.indexOf(this), 1);
406
+ function $e() {
407
+ G(this), z(this), queueMicrotask(() => {
408
+ S.splice(S.indexOf(this), 1), this.cleanup && this.cleanup();
414
409
  });
415
410
  }
416
- const Me = [];
417
- function Je() {
418
- Me.push(y), y = void 0;
411
+ const le = [];
412
+ function ae() {
413
+ le.push(v), v = void 0;
419
414
  }
420
- function Qe() {
421
- y = Me.pop();
415
+ function de() {
416
+ v = le.pop();
422
417
  }
423
- var b, V, j;
424
- class ke {
425
- constructor(e, s) {
426
- E(this, b);
427
- E(this, V);
428
- E(this, j);
429
- L(this, b, {
430
- currentValue: e,
431
- subs: void 0,
432
- subsTail: void 0
433
- }), L(this, V, (s == null ? void 0 : s.equals) ?? Object.is), s != null && s.name && L(this, j, s.name);
434
- }
435
- get name() {
436
- return g(this, j) || `anonymous ${this[Symbol.toStringTag]}`;
437
- }
438
- get [Symbol.toStringTag]() {
439
- return `Atom<${T(g(this, b).currentValue)}>`;
440
- }
441
- /**
442
- * Returns the latest value. The signal is tracked as a dependency if called within `effect` or `compose`.
443
- */
444
- get() {
445
- return y !== void 0 && (te(g(this, b), y), P.push(this)), g(this, b).currentValue;
446
- }
447
- /**
448
- * Returns the latest value. The signal is NOT tracked if called within `effect` or `compose`.
449
- */
450
- peek() {
451
- return g(this, b).currentValue;
452
- }
453
- /**
454
- * Replaces the current value with `next`.
455
- *
456
- * @example
457
- * const count = atom(0);
458
- * count.set(2);
459
- * count.set(count.get() + 1);
460
- */
461
- set(e) {
462
- if (!g(this, V).call(this, g(this, b).currentValue, e)) {
463
- g(this, b).currentValue = e;
464
- const s = g(this, b).subs;
465
- s !== void 0 && (Fe(s), We());
466
- }
467
- }
468
- /**
469
- * Passes the current value to `fn` and sets the return value as the next value.
470
- *
471
- * @example
472
- * const count = atom(0);
473
- * count.update((current) => current + 1);
474
- * count.update((current) => current * 5);
475
- *
476
- * // Also works very well with Immer `produce` for complex objects.
477
- * const items = atom([{ name: "Alice", age: 26 }, { name: "Bob", age: 33 }]);
478
- *
479
- * // Without Immer:
480
- * items.update((current) => {
481
- * // Return a new array with Bob's age increased by 1.
482
- * const newItems = [...current];
483
- * newItems[1] = {
484
- * ...newItems[1],
485
- * age: newItems[1].age + 1
486
- * };
487
- * return newItems;
488
- * });
489
- *
490
- * // With Immer:
491
- * import { produce } from "immer";
492
- *
493
- * items.update(produce((draft) => {
494
- * // Mutate draft to increase Bob's age by 1.
495
- * // Results in a new object with this patch applied.
496
- * draft[1].age++;
497
- * }));
498
- */
499
- update(e) {
500
- this.set(e(this.peek()));
501
- }
502
- /**
503
- * @deprecated use `get()`
504
- */
505
- get value() {
506
- return this.peek();
507
- }
508
- /**
509
- * @deprecated use `set()`
510
- */
511
- set value(e) {
512
- this.set(e);
513
- }
418
+ const Z = Symbol("SIGNAL"), he = Symbol("SOURCE");
419
+ function _(t) {
420
+ let e;
421
+ return ae(), e = b(t), de(), e;
514
422
  }
515
- b = new WeakMap(), V = new WeakMap(), j = new WeakMap();
516
- var C, _, q, G, Le;
517
- class Te {
518
- constructor(e, s) {
519
- E(this, G);
520
- E(this, C);
521
- E(this, _);
522
- E(this, q);
523
- L(this, _, e), L(this, C, {
524
- currentValue: void 0,
525
- equals: (s == null ? void 0 : s.equals) ?? Object.is,
526
- subs: void 0,
527
- subsTail: void 0,
528
- deps: void 0,
529
- depsTail: void 0,
530
- flags: M.Computed | M.Dirty,
531
- getter: fe(this, G, Le).bind(this)
532
- }), s != null && s.name && L(this, q, s.name);
533
- }
534
- get name() {
535
- return g(this, q) || `anonymous ${this[Symbol.toStringTag]}`;
536
- }
537
- get [Symbol.toStringTag]() {
538
- return `Composed<${T(g(this, C).currentValue)}>`;
539
- }
540
- get() {
541
- return y !== void 0 && (te(g(this, C), y), P.push(this)), this.peek();
542
- }
543
- peek() {
544
- const e = g(this, C), s = e.flags;
545
- return s & (M.Dirty | M.PendingComputed) && Ze(e, s), e.currentValue;
546
- }
547
- /**
548
- * @deprecated use `get()`
549
- */
550
- get value() {
551
- return this.peek();
552
- }
553
- }
554
- C = new WeakMap(), _ = new WeakMap(), q = new WeakMap(), G = new WeakSet(), Le = function(e) {
555
- let s = g(this, _).call(this, e);
556
- return v(s) && (s = s.get()), s;
557
- };
558
- function v(t) {
559
- return t instanceof ke || t instanceof Te;
560
- }
561
- function Q(t, e) {
562
- return new ke(t, e);
563
- }
564
- function ie(t, e) {
565
- return new Te(t, e);
423
+ function b(t) {
424
+ return m(t) ? t() : t;
566
425
  }
567
- function Ye(t, e) {
568
- if (k(e))
569
- t.update(e);
570
- else if (arguments.length > 1)
571
- t.set(e);
572
- else
573
- return (s) => Ye(t, s);
574
- }
575
- function I(t) {
576
- return v(t) ? t.get() : t;
577
- }
578
- function Nt(t) {
579
- return v(t) ? t.peek() : t;
426
+ function y(t) {
427
+ const e = {
428
+ fn: t,
429
+ subs: void 0,
430
+ subsTail: void 0,
431
+ deps: void 0,
432
+ depsTail: void 0,
433
+ flags: E.Effect
434
+ };
435
+ return v !== void 0 && B(e, v), fe(e), $e.bind(e);
580
436
  }
581
- function Z(t) {
582
- Je(), t(), Qe();
437
+ function D(t, e) {
438
+ return m(t) ? Ie(t, e) : H(t === void 0 ? void 0 : t, e);
583
439
  }
584
- function xt(t) {
585
- A = t;
440
+ function H(t, e) {
441
+ const s = {
442
+ current: t,
443
+ subs: void 0,
444
+ subsTail: void 0
445
+ }, n = (e == null ? void 0 : e.equals) ?? Object.is, i = function() {
446
+ if (arguments.length > 0) {
447
+ let r = arguments[0];
448
+ if (typeof r == "function" && (r = r(s.current)), !n(s.current, r)) {
449
+ s.current = r;
450
+ const c = s.subs;
451
+ c !== void 0 && (Le(c), Ae());
452
+ }
453
+ } else
454
+ return v !== void 0 && B(s, v), s.current;
455
+ };
456
+ return i._type = he, i;
586
457
  }
587
- function w(t, e) {
458
+ function Ie(t, e) {
459
+ if (m(t) && t._type === Z)
460
+ return t._type === he ? () => t() : t;
588
461
  const s = {
589
- fn: t,
462
+ current: void 0,
463
+ equals: (e == null ? void 0 : e.equals) ?? Object.is,
590
464
  subs: void 0,
591
465
  subsTail: void 0,
592
466
  deps: void 0,
593
467
  depsTail: void 0,
594
- flags: M.Effect
468
+ flags: E.Computed | E.Dirty,
469
+ getter: (i) => {
470
+ const r = t(i);
471
+ return b(r);
472
+ }
473
+ }, n = function() {
474
+ if (arguments.length > 0)
475
+ throw new Error("Signals cannot be set as their values are derived from the sources they depend on.");
476
+ v !== void 0 && B(s, v);
477
+ const i = s.flags;
478
+ return i & (E.Dirty | E.PendingComputed) && De(s, i), s.current;
595
479
  };
596
- return y !== void 0 && te(s, y), Ee(s), Xe.bind(s);
480
+ return n._type = Z, n;
597
481
  }
598
- const St = () => {
482
+ const ot = () => {
599
483
  };
600
- let X = 1;
601
- function Ce() {
602
- return X = X % Number.MAX_SAFE_INTEGER + 1, X.toString(36) + Date.now().toString(36);
484
+ let U = 1;
485
+ function pe() {
486
+ return U = U % Number.MAX_SAFE_INTEGER + 1, U.toString(36) + Date.now().toString(36);
603
487
  }
604
- function Et(t, e) {
488
+ function rt(t, e) {
605
489
  return Object.is(t, e);
606
490
  }
607
- function Mt(t, e) {
491
+ function ut(t, e) {
608
492
  if (Object.is(t, e)) return !0;
609
493
  const s = T(t);
610
494
  if (s !== T(e))
@@ -628,7 +512,7 @@ function Mt(t, e) {
628
512
  if (t[i] !== e[i]) return !1;
629
513
  return !0;
630
514
  case "set":
631
- if (k(t.symmetricDifference))
515
+ if (m(t.symmetricDifference))
632
516
  return t.symmetricDifference(e).size === 0;
633
517
  for (const i of t.keys())
634
518
  if (t[i] !== e.get(i)) return !1;
@@ -636,20 +520,20 @@ function Mt(t, e) {
636
520
  }
637
521
  return !1;
638
522
  }
639
- function J(t, e) {
523
+ function C(t, e) {
640
524
  if (t === e) return !0;
641
525
  if (t && e && typeof t == "object" && typeof e == "object") {
642
526
  if (t.constructor !== e.constructor) return !1;
643
527
  var s, n, i;
644
528
  if (Array.isArray(t)) {
645
529
  if (s = t.length, s != e.length) return !1;
646
- for (n = s; n-- !== 0; ) if (!J(t[n], e[n])) return !1;
530
+ for (n = s; n-- !== 0; ) if (!C(t[n], e[n])) return !1;
647
531
  return !0;
648
532
  }
649
533
  if (t instanceof Map && e instanceof Map) {
650
534
  if (t.size !== e.size) return !1;
651
535
  for (n of t.entries()) if (!e.has(n[0])) return !1;
652
- for (n of t.entries()) if (!J(n[1], e.get(n[0]))) return !1;
536
+ for (n of t.entries()) if (!C(n[1], e.get(n[0]))) return !1;
653
537
  return !0;
654
538
  }
655
539
  if (t instanceof Set && e instanceof Set) {
@@ -668,26 +552,26 @@ function J(t, e) {
668
552
  if (i = Object.keys(t), s = i.length, s !== Object.keys(e).length) return !1;
669
553
  for (n = s; n-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(e, i[n])) return !1;
670
554
  for (n = s; n-- !== 0; ) {
671
- var o = i[n];
672
- if (!J(t[o], e[o])) return !1;
555
+ var r = i[n];
556
+ if (!C(t[r], e[r])) return !1;
673
557
  }
674
558
  return !0;
675
559
  }
676
560
  return t !== t && e !== e;
677
561
  }
678
- function et(t, e) {
562
+ function _e(t, e) {
679
563
  const s = {};
680
564
  for (const n in e)
681
565
  t.includes(n) || (s[n] = e[n]);
682
566
  return s;
683
567
  }
684
- function kt(t) {
568
+ function ct(t) {
685
569
  let e = 0;
686
570
  for (let s = 0; s < t.length; s++)
687
571
  e = (e + t.charCodeAt(s) * 10) % 360;
688
572
  return `oklch(0.68 0.15 ${e}deg)`;
689
573
  }
690
- function Tt(t) {
574
+ function ft(t) {
691
575
  if (t instanceof RegExp)
692
576
  return (n) => t.test(n);
693
577
  const e = {
@@ -698,24 +582,24 @@ function Tt(t) {
698
582
  let i = "positive";
699
583
  n.startsWith("-") && (i = "negative", n = n.slice(1)), n === "*" ? e[i].push(function() {
700
584
  return !0;
701
- }) : n.endsWith("*") ? e[i].push(function(o) {
702
- return o.startsWith(n.slice(0, n.length - 1));
703
- }) : e[i].push(function(o) {
704
- return o === n;
585
+ }) : n.endsWith("*") ? e[i].push(function(r) {
586
+ return r.startsWith(n.slice(0, n.length - 1));
587
+ }) : e[i].push(function(r) {
588
+ return r === n;
705
589
  });
706
590
  }
707
591
  return function(n) {
708
- const { positive: i, negative: o } = e;
709
- return !(o.some((f) => f(n)) || i.length > 0 && !i.some((f) => f(n)));
592
+ const { positive: i, negative: r } = e;
593
+ return !(r.some((c) => c(n)) || i.length > 0 && !i.some((c) => c(n)));
710
594
  };
711
595
  }
712
- const S = Symbol.for("DollaMarkupElement"), Lt = Symbol.for("DollaRouter");
713
- var de;
714
- de = S;
715
- class le {
596
+ const x = Symbol.for("DollaMarkupElement"), lt = Symbol.for("DollaRouter");
597
+ var J;
598
+ J = x;
599
+ class K {
716
600
  constructor(e) {
717
- c(this, de, !0);
718
- c(this, "domNode");
601
+ f(this, J, !0);
602
+ f(this, "domNode");
719
603
  this.domNode = e;
720
604
  }
721
605
  get isMounted() {
@@ -728,30 +612,30 @@ class le {
728
612
  this.domNode.parentNode && !e && this.domNode.parentNode.removeChild(this.domNode);
729
613
  }
730
614
  }
731
- var he;
732
- he = S;
733
- class tt {
615
+ var Q;
616
+ Q = x;
617
+ class je {
734
618
  constructor(e) {
735
- c(this, he, !0);
736
- c(this, "domNode", document.createTextNode(""));
737
- c(this, "children", []);
738
- c(this, "elementContext");
739
- c(this, "source");
740
- c(this, "unsubscribe");
619
+ f(this, Q, !0);
620
+ f(this, "domNode", document.createTextNode(""));
621
+ f(this, "children", []);
622
+ f(this, "elementContext");
623
+ f(this, "source");
624
+ f(this, "unsubscribe");
741
625
  this.source = e.source, this.elementContext = e.elementContext;
742
626
  }
743
627
  get isMounted() {
744
628
  return this.domNode.parentNode != null;
745
629
  }
746
630
  mount(e, s) {
747
- this.isMounted || (e.insertBefore(this.domNode, (s == null ? void 0 : s.nextSibling) ?? null), this.unsubscribe = w(() => {
748
- const n = this.source.get();
749
- if (!Ve(n))
631
+ this.isMounted || (e.insertBefore(this.domNode, (s == null ? void 0 : s.nextSibling) ?? null), this.unsubscribe = y(() => {
632
+ const n = this.source();
633
+ if (console.log("$dynamic effect", n, this.source), !we(n))
750
634
  throw console.error(n), new TypeError(
751
635
  `Dynamic received invalid value to render. Got type: ${T(n)}, value: ${n}`
752
636
  );
753
- Z(() => {
754
- this.update(U(n) ? n : [n]);
637
+ _(() => {
638
+ this.update(k(n) ? n : [n]);
755
639
  });
756
640
  }));
757
641
  }
@@ -765,46 +649,86 @@ class tt {
765
649
  this.children = [];
766
650
  }
767
651
  update(e) {
768
- var o, f, p;
652
+ var r, c, p;
769
653
  if (this.cleanup(!1), e == null || e.length === 0 || !this.isMounted)
770
654
  return;
771
- const s = e.flatMap((m) => Pe(m) ? m : $(this.elementContext, re(m)));
772
- for (const m of s) {
773
- const r = ((o = this.children.at(-1)) == null ? void 0 : o.domNode) || this.domNode;
774
- m.mount(this.domNode.parentNode, r), this.children.push(m);
655
+ const s = e.flatMap((g) => ye(g) ? g : M(this.elementContext, j(g)));
656
+ console.log("$dynamic update", s, e);
657
+ for (const g of s) {
658
+ const o = ((r = this.children.at(-1)) == null ? void 0 : r.domNode) || this.domNode;
659
+ g.mount(this.domNode.parentNode, o), this.children.push(g);
775
660
  }
776
- const n = this.domNode.parentNode, i = ((p = (f = this.children.at(-1)) == null ? void 0 : f.domNode) == null ? void 0 : p.nextSibling) ?? null;
661
+ const n = this.domNode.parentNode, i = ((p = (c = this.children.at(-1)) == null ? void 0 : c.domNode) == null ? void 0 : p.nextSibling) ?? null;
777
662
  "moveBefore" in n ? n.moveBefore(this.domNode, i) : n.insertBefore(this.domNode, i);
778
663
  }
779
664
  }
780
- const st = (t) => /^on[A-Z]/.test(t);
781
- var pe;
782
- pe = S;
783
- class nt {
665
+ var Y;
666
+ Y = x;
667
+ class me {
668
+ constructor(e) {
669
+ f(this, Y, !0);
670
+ f(this, "domNode", document.createTextNode(""));
671
+ f(this, "isMounted", !1);
672
+ f(this, "source");
673
+ f(this, "elements", []);
674
+ f(this, "unsubscribe");
675
+ this.source = e;
676
+ }
677
+ mount(e, s) {
678
+ this.isMounted || (this.isMounted = !0, e.insertBefore(this.domNode, (s == null ? void 0 : s.nextSibling) ?? null), m(this.source) ? this.unsubscribe = y(() => {
679
+ const n = b(this.source);
680
+ _(() => {
681
+ this.update(n);
682
+ });
683
+ }) : this.update(this.elements));
684
+ }
685
+ unmount(e = !1) {
686
+ this.unsubscribe && (this.unsubscribe(), this.unsubscribe = void 0), this.isMounted && (this.cleanup(e), this.isMounted = !1);
687
+ }
688
+ cleanup(e) {
689
+ for (const s of this.elements)
690
+ s.unmount(e);
691
+ this.elements = [];
692
+ }
693
+ update(e) {
694
+ var s, n;
695
+ if (this.cleanup(!1), e.length > 0) {
696
+ for (let i = 0; i < e.length; i++) {
697
+ const r = e[i], c = i > 0 ? this.elements[i - 1] : void 0;
698
+ r.mount(this.domNode.parentElement, c == null ? void 0 : c.domNode), this.elements.push(r);
699
+ }
700
+ (n = this.domNode.parentNode) == null || n.insertBefore(this.domNode, ((s = this.elements.at(-1)) == null ? void 0 : s.domNode) ?? null);
701
+ }
702
+ }
703
+ }
704
+ const qe = (t) => /^on[A-Z]/.test(t);
705
+ var ee;
706
+ ee = x;
707
+ class Ue {
784
708
  constructor({ tag: e, props: s, children: n, elementContext: i }) {
785
- c(this, pe, !0);
786
- c(this, "domNode");
787
- c(this, "props");
788
- c(this, "childMarkup", []);
789
- c(this, "children", []);
790
- c(this, "unsubscribers", []);
791
- c(this, "elementContext");
709
+ f(this, ee, !0);
710
+ f(this, "domNode");
711
+ f(this, "props");
712
+ f(this, "childMarkup", []);
713
+ f(this, "children", []);
714
+ f(this, "unsubscribers", []);
715
+ f(this, "elementContext");
792
716
  // Track the ref so we can nullify it on unmount.
793
- c(this, "ref");
717
+ f(this, "ref");
794
718
  // Prevents 'onClickOutside' handlers from firing in the same cycle in which the element is connected.
795
- c(this, "canClickAway", !1);
719
+ f(this, "canClickAway", !1);
796
720
  if (e.toLowerCase() === "svg" && (i = {
797
721
  ...i,
798
722
  isSVG: !0
799
723
  }), i.isSVG ? this.domNode = document.createElementNS("http://www.w3.org/2000/svg", e) : this.domNode = document.createElement(e), i.root.getEnv() === "development" && i.viewName && (this.domNode.dataset.view = i.viewName), s.ref)
800
- if (k(s.ref))
724
+ if (m(s.ref))
801
725
  this.ref = s.ref, this.ref(this.domNode);
802
726
  else
803
727
  throw new Error("Expected ref to be a function. Got: " + s.ref);
804
728
  this.props = {
805
- ...et(["ref", "class", "className"], s),
729
+ ..._e(["ref", "class", "className"], s),
806
730
  class: s.className ?? s.class
807
- }, n && (this.childMarkup = re(n)), this.elementContext = i;
731
+ }, n && (this.childMarkup = j(n)), console.log(this.domNode, { children: n, childMarkup: this.childMarkup }), this.elementContext = i;
808
732
  }
809
733
  get isMounted() {
810
734
  return this.domNode.parentNode != null;
@@ -813,10 +737,10 @@ class nt {
813
737
  if (e == null)
814
738
  throw new Error(`HTML element requires a parent element as the first argument to connect. Got: ${e}`);
815
739
  if (!this.isMounted) {
816
- this.childMarkup.length > 0 && (this.children = $(this.elementContext, this.childMarkup));
740
+ this.childMarkup.length > 0 && (this.children = M(this.elementContext, this.childMarkup));
817
741
  for (let n = 0; n < this.children.length; n++) {
818
- const i = this.children[n], o = n > 0 ? this.children[n - 1].domNode : void 0;
819
- i.mount(this.domNode, o);
742
+ const i = this.children[n], r = n > 0 ? this.children[n - 1].domNode : void 0;
743
+ i.mount(this.domNode, r);
820
744
  }
821
745
  this.applyProps(this.domNode, this.props), this.props.style && this.applyStyles(this.domNode, this.props.style, this.unsubscribers), this.props.class && this.applyClasses(this.domNode, this.props.class, this.unsubscribers);
822
746
  }
@@ -837,9 +761,9 @@ class nt {
837
761
  }
838
762
  }
839
763
  attachProp(e, s) {
840
- v(e) ? this.unsubscribers.push(
841
- w(() => {
842
- s(e.get());
764
+ m(e) ? this.unsubscribers.push(
765
+ y(() => {
766
+ s(e());
843
767
  })
844
768
  ) : s(e);
845
769
  }
@@ -847,74 +771,81 @@ class nt {
847
771
  for (const n in s) {
848
772
  const i = s[n];
849
773
  if (n === "on:clickoutside" || n === "onClickOutside" || n === "onclickoutside") {
850
- const o = (p) => {
851
- this.canClickAway && !e.contains(p.target) && (v(i) ? i.peek()(p) : i(p));
852
- }, f = { capture: !0 };
853
- window.addEventListener("click", o, f), this.unsubscribers.push(() => {
854
- window.removeEventListener("click", o, f);
774
+ const r = (p) => {
775
+ this.canClickAway && !e.contains(p.target) && i(p);
776
+ }, c = { capture: !0 };
777
+ window.addEventListener("click", r, c), this.unsubscribers.push(() => {
778
+ window.removeEventListener("click", r, c);
855
779
  });
856
- } else if (st(n)) {
857
- const o = n.slice(2).toLowerCase(), f = v(i) ? (p) => i.peek()(p) : i;
858
- e.addEventListener(o, f), this.unsubscribers.push(() => {
859
- e.removeEventListener(o, f);
780
+ } else if (m(i) && qe(n)) {
781
+ const r = n.slice(2).toLowerCase(), c = i;
782
+ e.addEventListener(r, c), this.unsubscribers.push(() => {
783
+ e.removeEventListener(r, c);
784
+ });
785
+ } else if (m(i) && Re.includes(n)) {
786
+ const r = n.substring(2);
787
+ e.addEventListener(r, i), this.unsubscribers.push(() => {
788
+ e.removeEventListener(r, i);
860
789
  });
861
790
  } else if (n.includes("-"))
862
- this.attachProp(i, (o) => {
863
- o == null ? e.removeAttribute(n) : e.setAttribute(n, String(o));
791
+ this.attachProp(i, (r) => {
792
+ r == null ? e.removeAttribute(n) : e.setAttribute(n, String(r));
864
793
  });
865
- else if (!it.includes(n))
794
+ else if (!Ve.includes(n))
866
795
  if (this.elementContext.isSVG)
867
- this.attachProp(i, (o) => {
868
- o != null ? e.setAttribute(n, String(s[n])) : e.removeAttribute(n);
796
+ this.attachProp(i, (r) => {
797
+ r != null ? e.setAttribute(n, String(s[n])) : e.removeAttribute(n);
869
798
  });
870
799
  else
871
800
  switch (n) {
872
801
  case "contentEditable":
873
802
  case "value":
874
- this.attachProp(i, (o) => {
875
- e[n] = String(o);
803
+ this.attachProp(i, (r) => {
804
+ e[n] = String(r);
876
805
  });
877
806
  break;
878
807
  case "for":
879
- this.attachProp(i, (o) => {
880
- e.htmlFor = o;
808
+ this.attachProp(i, (r) => {
809
+ e.htmlFor = r;
881
810
  });
882
811
  break;
883
812
  case "title":
884
- this.attachProp(i, (o) => {
885
- o == null ? e.removeAttribute(n) : e.setAttribute(n, String(o));
813
+ this.attachProp(i, (r) => {
814
+ r == null ? e.removeAttribute(n) : e.setAttribute(n, String(r));
886
815
  });
887
816
  case "checked":
888
- this.attachProp(i, (o) => {
889
- e.checked = o, o ? e.setAttribute("checked", "") : e.removeAttribute("checked");
817
+ this.attachProp(i, (r) => {
818
+ e.checked = r, r ? e.setAttribute("checked", "") : e.removeAttribute("checked");
890
819
  });
891
820
  break;
892
821
  case "autocomplete":
893
822
  case "autocapitalize":
894
- this.attachProp(i, (o) => {
895
- typeof o == "string" ? e[n] = o : o ? e[n] = "on" : e[n] = "off";
823
+ this.attachProp(i, (r) => {
824
+ typeof r == "string" ? e[n] = r : r ? e[n] = "on" : e[n] = "off";
896
825
  });
897
826
  break;
898
827
  default: {
899
828
  if (n.startsWith("prop:")) {
900
- const o = n.substring(5);
901
- this.attachProp(i, (f) => {
902
- e[o] = f;
829
+ const r = n.substring(5);
830
+ this.attachProp(i, (c) => {
831
+ e[r] = c;
903
832
  });
904
833
  } else if (n.startsWith("on:")) {
905
- const o = n.substring(3);
906
- let f;
907
- this.attachProp(i, (p) => {
908
- !p && f ? e.removeEventListener(o, f) : p != null && (f && f !== p && e.removeEventListener(o, f), e.addEventListener(o, p)), f = p;
834
+ const r = n.substring(3);
835
+ let c;
836
+ m(i) ? (e.addEventListener(r, i), this.unsubscribers.push(() => {
837
+ e.removeEventListener(r, i);
838
+ })) : this.attachProp(i, (p) => {
839
+ !p && c ? e.removeEventListener(r, c) : p != null && (c && c !== p && e.removeEventListener(r, c), e.addEventListener(r, p)), c = p;
909
840
  });
910
841
  } else if (n.startsWith("attr:")) {
911
- const o = n.substring(5).toLowerCase();
912
- this.attachProp(i, (f) => {
913
- f != null ? e.setAttribute(o, String(f)) : e.removeAttribute(o);
842
+ const r = n.substring(5).toLowerCase();
843
+ this.attachProp(i, (c) => {
844
+ c != null ? e.setAttribute(r, String(c)) : e.removeAttribute(r);
914
845
  });
915
846
  } else
916
- this.attachProp(i, (o) => {
917
- e[n] = o;
847
+ this.attachProp(i, (r) => {
848
+ e[n] = r;
918
849
  });
919
850
  break;
920
851
  }
@@ -923,92 +854,143 @@ class nt {
923
854
  }
924
855
  applyStyles(e, s, n) {
925
856
  const i = [];
926
- if (v(s)) {
927
- let o;
928
- const f = w(() => {
929
- k(o) && o(), e.style.cssText = "", o = this.applyStyles(e, I(s), n);
857
+ if (m(s)) {
858
+ let r;
859
+ const c = y(() => {
860
+ m(r) && r(), e.style.cssText = "", r = this.applyStyles(e, b(s), n);
930
861
  });
931
- n.push(f), i.push(f);
862
+ n.push(c), i.push(c);
932
863
  } else {
933
- const o = De(s);
934
- for (const f in o) {
935
- const { value: p, priority: m } = o[f];
936
- if (v(p)) {
937
- const r = w(() => {
938
- p.get() ? e.style.setProperty(f, String(p.get()), m) : e.style.removeProperty(f);
864
+ const r = ve(s);
865
+ for (const c in r) {
866
+ const { value: p, priority: g } = r[c];
867
+ if (m(p)) {
868
+ const o = y(() => {
869
+ b(p) ? e.style.setProperty(c, String(b(p)), g) : e.style.removeProperty(c);
939
870
  });
940
- n.push(r), i.push(r);
941
- } else p != null && e.style.setProperty(f, String(p));
871
+ n.push(o), i.push(o);
872
+ } else p != null && e.style.setProperty(c, String(p));
942
873
  }
943
874
  }
944
875
  return function() {
945
- for (const f of i)
946
- f(), n.splice(n.indexOf(f), 1);
876
+ for (const c of i)
877
+ c(), n.splice(n.indexOf(c), 1);
947
878
  };
948
879
  }
949
880
  applyClasses(e, s, n) {
950
881
  const i = [];
951
- if (v(s)) {
952
- let o;
953
- const f = w(() => {
954
- k(o) && o(), e.removeAttribute("class"), o = this.applyClasses(e, I(s), n);
882
+ if (m(s)) {
883
+ let r;
884
+ const c = y(() => {
885
+ m(r) && r(), e.removeAttribute("class"), r = this.applyClasses(e, b(s), n);
955
886
  });
956
- n.push(f), i.push(f);
887
+ n.push(c), i.push(c);
957
888
  } else {
958
- const o = Ae(s);
959
- for (const f in o) {
960
- const p = o[f];
961
- if (v(p)) {
962
- const m = w(() => {
963
- I(p) ? e.classList.add(f) : e.classList.remove(f);
889
+ const r = ge(s);
890
+ for (const c in r) {
891
+ const p = r[c];
892
+ if (m(p)) {
893
+ const g = y(() => {
894
+ b(p) ? e.classList.add(c) : e.classList.remove(c);
964
895
  });
965
- n.push(m), i.push(m);
966
- } else p && e.classList.add(f);
896
+ n.push(g), i.push(g);
897
+ } else p && e.classList.add(c);
967
898
  }
968
899
  }
969
900
  return function() {
970
- for (const f of i)
971
- f(), n.splice(n.indexOf(f), 1);
901
+ for (const c of i)
902
+ c(), n.splice(n.indexOf(c), 1);
972
903
  };
973
904
  }
974
905
  }
975
- function Ae(t) {
906
+ function ge(t) {
976
907
  let e = {};
977
- if (O(t)) {
908
+ if (L(t)) {
978
909
  const s = t.split(" ");
979
910
  for (const n of s)
980
911
  e[n] = !0;
981
- } else ee(t) ? Object.assign(e, t) : Array.isArray(t) && Array.from(t).filter(Boolean).forEach((s) => {
982
- Object.assign(e, Ae(s));
912
+ } else R(t) ? Object.assign(e, t) : Array.isArray(t) && Array.from(t).filter(Boolean).forEach((s) => {
913
+ Object.assign(e, ge(s));
983
914
  });
984
915
  return delete e.undefined, e;
985
916
  }
986
- function De(t) {
917
+ function ve(t) {
987
918
  let e = {};
988
- if (O(t)) {
919
+ if (L(t)) {
989
920
  const s = t.split(";").filter((n) => n.trim() !== "");
990
921
  for (const n of s) {
991
- const [i, o] = n.split(":"), f = {
992
- value: o
922
+ const [i, r] = n.split(":"), c = {
923
+ value: r
993
924
  };
994
- o.includes("!important") ? (f.priority = "important", f.value = o.replace("!important", "").trim()) : f.value = o.trim(), e[ae(i.trim())] = f;
925
+ r.includes("!important") ? (c.priority = "important", c.value = r.replace("!important", "").trim()) : c.value = r.trim(), e[X(i.trim())] = c;
995
926
  }
996
927
  }
997
- if (ee(t))
928
+ if (R(t))
998
929
  for (const s in t)
999
- s.startsWith("--") ? e[s] = { value: t[s] } : e[ae(s)] = { value: t[s] };
930
+ s.startsWith("--") ? e[s] = { value: t[s] } : e[X(s)] = { value: t[s] };
1000
931
  else Array.isArray(t) && Array.from(t).filter((s) => s != null).forEach((s) => {
1001
- Object.assign(e, De(s));
932
+ Object.assign(e, ve(s));
1002
933
  });
1003
934
  return e;
1004
935
  }
1005
- function ae(t) {
936
+ function X(t) {
1006
937
  return t.replace(/[A-Z]+(?![a-z])|[A-Z]/g, (e, s) => (s ? "-" : "") + e.toLowerCase());
1007
938
  }
1008
- const it = ["ref", "children", "class", "style", "data"];
1009
- let rt = class {
939
+ const Ve = ["ref", "children", "class", "style", "data"], Re = ["onsubmit", "onclick", "ontransitionend"];
940
+ var te;
941
+ te = x;
942
+ class Be {
943
+ constructor(e) {
944
+ f(this, te, !0);
945
+ f(this, "domNode", document.createTextNode(""));
946
+ f(this, "isMounted", !1);
947
+ f(this, "view");
948
+ f(this, "mountedView");
949
+ f(this, "unsubscribe");
950
+ this.view = e;
951
+ }
952
+ mount(e, s) {
953
+ this.isMounted || (this.isMounted = !0, e.insertBefore(this.domNode, (s == null ? void 0 : s.nextSibling) ?? null), this.unsubscribe = y(() => {
954
+ const n = this.view();
955
+ _(() => {
956
+ this.update(n);
957
+ });
958
+ }));
959
+ }
960
+ unmount(e = !1) {
961
+ this.unsubscribe && (this.unsubscribe(), this.unsubscribe = void 0), this.isMounted && (this.cleanup(e), this.isMounted = !1);
962
+ }
963
+ cleanup(e) {
964
+ this.mountedView && this.mountedView.unmount(e), this.mountedView = void 0;
965
+ }
966
+ update(e) {
967
+ this.cleanup(!1), e && (e.mount(this.domNode.parentElement, this.domNode), this.mountedView = e);
968
+ }
969
+ }
970
+ var se;
971
+ se = x;
972
+ class Ge {
973
+ constructor(e) {
974
+ f(this, se, !0);
975
+ f(this, "config");
976
+ f(this, "element");
977
+ this.config = e;
978
+ }
979
+ get isMounted() {
980
+ return this.element ? this.element.isMounted : !1;
981
+ }
982
+ mount(e, s) {
983
+ const { content: n, parent: i } = this.config;
984
+ ye(n) ? this.element = n : this.element = A(M(this.config.elementContext, j(n))), this.element.mount(i);
985
+ }
986
+ unmount(e = !1) {
987
+ var s;
988
+ (s = this.element) != null && s.isMounted && this.element.unmount(!1);
989
+ }
990
+ }
991
+ let ze = class {
1010
992
  constructor(e) {
1011
- c(this, "store");
993
+ f(this, "store");
1012
994
  this.store = e;
1013
995
  const s = Object.getOwnPropertyDescriptors(this.store.logger);
1014
996
  for (const n in s)
@@ -1024,15 +1006,15 @@ let rt = class {
1024
1006
  this.store.name = e, this.store.logger.setName(e);
1025
1007
  }
1026
1008
  get(e) {
1027
- if (k(e)) {
1009
+ if (m(e)) {
1028
1010
  let s = this.store.elementContext, n;
1029
1011
  for (; n = s.stores.get(e), n == null && s.parent != null; )
1030
1012
  s = s.parent;
1031
1013
  if (n == null)
1032
- throw new R(`Store '${e.name}' is not provided on this context.`);
1014
+ throw new O(`Store '${e.name}' is not provided on this context.`);
1033
1015
  return n.value;
1034
1016
  } else
1035
- throw new R("Invalid store.");
1017
+ throw new O("Invalid store.");
1036
1018
  }
1037
1019
  onMount(e) {
1038
1020
  this.store.lifecycleListeners.mount.push(e);
@@ -1040,35 +1022,35 @@ let rt = class {
1040
1022
  onUnmount(e) {
1041
1023
  this.store.lifecycleListeners.unmount.push(e);
1042
1024
  }
1043
- effect(e, s) {
1044
- const n = this.store;
1045
- if (n.isMounted) {
1046
- const i = w(e);
1047
- return n.lifecycleListeners.unmount.push(i), i;
1025
+ effect(e) {
1026
+ const s = this.store;
1027
+ if (s.isMounted) {
1028
+ const n = y(e);
1029
+ return s.lifecycleListeners.unmount.push(n), n;
1048
1030
  } else {
1049
- let i, o = !1;
1050
- return n.lifecycleListeners.mount.push(() => {
1051
- o || (i = w(e), n.lifecycleListeners.unmount.push(i));
1031
+ let n, i = !1;
1032
+ return s.lifecycleListeners.mount.push(() => {
1033
+ i || (n = y(e), s.lifecycleListeners.unmount.push(n));
1052
1034
  }), () => {
1053
- i != null && (o = !0, i());
1035
+ n != null && (i = !0, n());
1054
1036
  };
1055
1037
  }
1056
1038
  }
1057
1039
  };
1058
- class ot {
1040
+ class Fe {
1059
1041
  constructor(e, s) {
1060
- c(this, "fn");
1061
- c(this, "_options");
1042
+ f(this, "fn");
1043
+ f(this, "_options");
1062
1044
  /**
1063
1045
  * Value is guaranteed to be set after `attach` is called.
1064
1046
  */
1065
- c(this, "value");
1066
- c(this, "isMounted", !1);
1067
- c(this, "elementContext");
1068
- c(this, "lifecycleListeners", { mount: [], unmount: [] });
1069
- c(this, "logger");
1070
- c(this, "id", Ce());
1071
- c(this, "name");
1047
+ f(this, "value");
1048
+ f(this, "isMounted", !1);
1049
+ f(this, "elementContext");
1050
+ f(this, "lifecycleListeners", { mount: [], unmount: [] });
1051
+ f(this, "logger");
1052
+ f(this, "id", pe());
1053
+ f(this, "name");
1072
1054
  this.fn = e, this.name = e.name, this._options = s;
1073
1055
  }
1074
1056
  /**
@@ -1079,7 +1061,7 @@ class ot {
1079
1061
  if (e.stores.has(this.fn))
1080
1062
  return !1;
1081
1063
  this.elementContext = e, this.logger = e.root.createLogger(this.name);
1082
- const s = new rt(this);
1064
+ const s = new ze(this);
1083
1065
  try {
1084
1066
  this.value = this.fn.call(s, this._options, s);
1085
1067
  } catch (n) {
@@ -1100,11 +1082,11 @@ class ot {
1100
1082
  this.lifecycleListeners.unmount.length = 0;
1101
1083
  }
1102
1084
  }
1103
- class R extends Error {
1085
+ class O extends Error {
1104
1086
  }
1105
- class ut {
1087
+ class We {
1106
1088
  constructor(e) {
1107
- c(this, "view");
1089
+ f(this, "view");
1108
1090
  this.view = e;
1109
1091
  const s = Object.getOwnPropertyDescriptors(this.view.logger);
1110
1092
  for (const n in s)
@@ -1123,7 +1105,7 @@ class ut {
1123
1105
  this.view.elementContext.viewName = e, this.view.logger.setName(e);
1124
1106
  }
1125
1107
  provide(e, s) {
1126
- const n = new ot(e, s);
1108
+ const n = new Fe(e, s);
1127
1109
  if (n.attach(this.view.elementContext))
1128
1110
  return this.view.lifecycleListeners.mount.push(() => {
1129
1111
  n.handleMount();
@@ -1131,20 +1113,20 @@ class ut {
1131
1113
  n.handleUnmount();
1132
1114
  }), n.value;
1133
1115
  {
1134
- let o = e.name ? `'${e.name}'` : "this store";
1135
- return this.view.logger.warn(`An instance of ${o} was already attached to this context.`), this.get(e);
1116
+ let r = e.name ? `'${e.name}'` : "this store";
1117
+ return this.view.logger.warn(`An instance of ${r} was already attached to this context.`), this.get(e);
1136
1118
  }
1137
1119
  }
1138
1120
  get(e) {
1139
- if (k(e)) {
1121
+ if (m(e)) {
1140
1122
  let s = this.view.elementContext, n;
1141
1123
  for (; n = s.stores.get(e), n == null && s.parent != null; )
1142
1124
  s = s.parent;
1143
1125
  if (n == null)
1144
- throw new R(`Store '${e.name}' is not provided on this context.`);
1126
+ throw new O(`Store '${e.name}' is not provided on this context.`);
1145
1127
  return n.value;
1146
1128
  } else
1147
- throw new R("Invalid store.");
1129
+ throw new O("Invalid store.");
1148
1130
  }
1149
1131
  beforeMount(e) {
1150
1132
  this.view.lifecycleListeners.beforeMount.push(e);
@@ -1158,42 +1140,42 @@ class ut {
1158
1140
  onUnmount(e) {
1159
1141
  this.view.lifecycleListeners.unmount.push(e);
1160
1142
  }
1161
- effect(e, s) {
1143
+ effect(e) {
1162
1144
  if (this.view.isMounted) {
1163
- const n = w(e);
1164
- return this.view.lifecycleListeners.unmount.push(n), n;
1145
+ const s = y(e);
1146
+ return this.view.lifecycleListeners.unmount.push(s), s;
1165
1147
  } else {
1166
- let n, i = !1;
1148
+ let s, n = !1;
1167
1149
  return this.view.lifecycleListeners.mount.push(() => {
1168
- i || (n = w(e), this.view.lifecycleListeners.unmount.push(n));
1150
+ n || (s = y(e), this.view.lifecycleListeners.unmount.push(s));
1169
1151
  }), () => {
1170
- n != null && (i = !0, n());
1152
+ s != null && (n = !0, s());
1171
1153
  };
1172
1154
  }
1173
1155
  }
1174
1156
  outlet() {
1175
- return x("$outlet", { view: this.view.elementContext.route });
1157
+ return N("$outlet", { view: this.view.elementContext.route });
1176
1158
  }
1177
1159
  }
1178
- var me;
1179
- me = S;
1180
- const oe = class oe {
1160
+ var ne;
1161
+ ne = x;
1162
+ const F = class F {
1181
1163
  constructor(e, s, n, i) {
1182
- c(this, me, !0);
1183
- c(this, "uniqueId", Ce());
1184
- c(this, "elementContext");
1185
- c(this, "logger");
1186
- c(this, "props");
1187
- c(this, "fn");
1188
- c(this, "element");
1189
- c(this, "lifecycleListeners", { beforeMount: [], mount: [], beforeUnmount: [], unmount: [] });
1190
- c(this, "isMounted", !1);
1164
+ f(this, ne, !0);
1165
+ f(this, "uniqueId", pe());
1166
+ f(this, "elementContext");
1167
+ f(this, "logger");
1168
+ f(this, "props");
1169
+ f(this, "fn");
1170
+ f(this, "element");
1171
+ f(this, "lifecycleListeners", { beforeMount: [], mount: [], beforeUnmount: [], unmount: [] });
1172
+ f(this, "isMounted", !1);
1191
1173
  this.elementContext = {
1192
1174
  ...e,
1193
1175
  parent: e,
1194
1176
  viewName: s.name,
1195
1177
  stores: /* @__PURE__ */ new Map(),
1196
- route: Q()
1178
+ route: D()
1197
1179
  }, this.logger = e.root.createLogger(s.name || "🌇 anonymous view", { uid: this.uniqueId }), this.props = {
1198
1180
  ...n,
1199
1181
  children: i
@@ -1227,14 +1209,14 @@ const oe = class oe {
1227
1209
  this.lifecycleListeners.beforeMount.length = 0, this.lifecycleListeners.mount.length = 0, this.lifecycleListeners.beforeUnmount.length = 0, this.lifecycleListeners.unmount.length = 0;
1228
1210
  }
1229
1211
  setRouteView(e) {
1230
- const s = new oe(this.elementContext, e, {});
1231
- return this.elementContext.route.set(s), s;
1212
+ const s = new F(this.elementContext, e, {});
1213
+ return this.elementContext.route(s), s;
1232
1214
  }
1233
1215
  /*===============================*\
1234
1216
  || Internal ||
1235
1217
  \*===============================*/
1236
1218
  _initialize() {
1237
- const e = new ut(this);
1219
+ const e = new We(this);
1238
1220
  let s;
1239
1221
  try {
1240
1222
  s = this.fn.call(e, this.props, e);
@@ -1242,43 +1224,43 @@ const oe = class oe {
1242
1224
  throw n instanceof Error && this.logger.crash(n), n;
1243
1225
  }
1244
1226
  if (s !== null) if (s instanceof Node)
1245
- this.element = B($(this.elementContext, x("$node", { value: s })));
1246
- else if (v(s))
1247
- this.element = B(
1248
- $(this.elementContext, x("$dynamic", { source: s }))
1227
+ this.element = A(M(this.elementContext, N("$node", { value: s })));
1228
+ else if (m(s))
1229
+ this.element = A(
1230
+ M(this.elementContext, N("$dynamic", { source: s }))
1249
1231
  );
1250
- else if (F(s) || Y(F, s))
1251
- this.element = B($(this.elementContext, s));
1232
+ else if ($(s) || V($, s))
1233
+ this.element = A(M(this.elementContext, s));
1252
1234
  else {
1253
1235
  const n = new TypeError(
1254
- `Expected '${this.fn.name}' function to return a DOM node, Markup element, Readable or null. Got: ${T(s)}`
1236
+ `Expected '${this.fn.name}' function to return a DOM node, Markup element, Signal or null. Got: ${T(s)}`
1255
1237
  );
1256
1238
  this.logger.crash(n);
1257
1239
  }
1258
1240
  }
1259
1241
  };
1260
- let z = oe;
1261
- var ge;
1262
- ge = S;
1263
- class ct {
1242
+ let P = F;
1243
+ var ie;
1244
+ ie = x;
1245
+ class Ze {
1264
1246
  constructor({ elementContext: e, items: s, renderFn: n, keyFn: i }) {
1265
- c(this, ge, !0);
1266
- c(this, "domNode", document.createTextNode(""));
1267
- c(this, "items");
1268
- c(this, "unsubscribe", null);
1269
- c(this, "connectedItems", []);
1270
- c(this, "elementContext");
1271
- c(this, "renderFn");
1272
- c(this, "keyFn");
1247
+ f(this, ie, !0);
1248
+ f(this, "domNode", document.createTextNode(""));
1249
+ f(this, "items");
1250
+ f(this, "unsubscribe", null);
1251
+ f(this, "connectedItems", []);
1252
+ f(this, "elementContext");
1253
+ f(this, "renderFn");
1254
+ f(this, "keyFn");
1273
1255
  this.elementContext = e, this.items = s, this.renderFn = n, this.keyFn = i;
1274
1256
  }
1275
1257
  get isMounted() {
1276
1258
  return this.domNode.parentNode != null;
1277
1259
  }
1278
1260
  mount(e, s) {
1279
- this.isMounted || (e.insertBefore(this.domNode, (s == null ? void 0 : s.nextSibling) ?? null), this.unsubscribe = w(() => {
1280
- let n = this.items.get();
1281
- n == null && (n = [], console.log("list received empty value", n, this)), Z(() => {
1261
+ this.isMounted || (e.insertBefore(this.domNode, (s == null ? void 0 : s.nextSibling) ?? null), this.unsubscribe = y(() => {
1262
+ let n = this.items();
1263
+ n == null && (n = [], console.log("repeat received empty value", n, this)), _(() => {
1282
1264
  this._update(Array.from(n));
1283
1265
  });
1284
1266
  }));
@@ -1293,197 +1275,126 @@ class ct {
1293
1275
  this.connectedItems = [];
1294
1276
  }
1295
1277
  _update(e) {
1296
- var f, p, m;
1278
+ var c, p, g;
1297
1279
  if (e.length === 0 || !this.isMounted)
1298
1280
  return this._cleanup(!1);
1299
1281
  const s = [];
1300
1282
  let n = 0;
1301
- for (const r of e)
1283
+ for (const o of e)
1302
1284
  s.push({
1303
- key: this.keyFn(r, n),
1304
- value: r,
1285
+ key: this.keyFn(o, n),
1286
+ value: o,
1305
1287
  index: n++
1306
1288
  });
1307
1289
  const i = [];
1308
- for (const r of this.connectedItems)
1309
- s.find((l) => l.key === r.key) || r.element.unmount(!1);
1310
- for (const r of s) {
1311
- const u = this.connectedItems.find((l) => l.key === r.key);
1290
+ for (const o of this.connectedItems)
1291
+ s.find((l) => l.key === o.key) || o.element.unmount(!1);
1292
+ for (const o of s) {
1293
+ const u = this.connectedItems.find((l) => l.key === o.key);
1312
1294
  if (u)
1313
- u.item.set(r.value), u.index.set(r.index), i[r.index] = u;
1295
+ u.item(o.value), u.index(o.index), i[o.index] = u;
1314
1296
  else {
1315
- const l = Q(r.value), d = Q(r.index);
1316
- i[r.index] = {
1317
- key: r.key,
1297
+ const l = D(o.value, { equals: C }), d = D(o.index);
1298
+ i[o.index] = {
1299
+ key: o.key,
1318
1300
  item: l,
1319
1301
  index: d,
1320
- element: new z(this.elementContext, ft, {
1321
- item: ie(() => l.get()),
1322
- index: d,
1302
+ element: new P(this.elementContext, He, {
1303
+ item: () => l(),
1304
+ index: () => d(),
1323
1305
  renderFn: this.renderFn
1324
1306
  })
1325
1307
  };
1326
1308
  }
1327
1309
  }
1328
- for (let r = 0; r < i.length; r++) {
1329
- const u = i[r], l = ((f = i[r - 1]) == null ? void 0 : f.element.domNode) ?? this.domNode;
1310
+ for (let o = 0; o < i.length; o++) {
1311
+ const u = i[o], l = ((c = i[o - 1]) == null ? void 0 : c.element.domNode) ?? this.domNode;
1330
1312
  u.element.mount(this.domNode.parentNode, l);
1331
1313
  }
1332
1314
  this.connectedItems = i;
1333
- const o = ((p = i.at(-1)) == null ? void 0 : p.element.domNode) ?? this.domNode;
1334
- (m = this.domNode.parentNode) == null || m.insertBefore(this.domNode, o.nextSibling);
1335
- }
1336
- }
1337
- function ft(t, e) {
1338
- return e.name = "@ListItem", t.renderFn.call(e, t.item, t.index, e);
1339
- }
1340
- var ye;
1341
- ye = S;
1342
- class $e {
1343
- constructor(e) {
1344
- c(this, ye, !0);
1345
- c(this, "domNode", document.createTextNode(""));
1346
- c(this, "isMounted", !1);
1347
- c(this, "source");
1348
- c(this, "elements", []);
1349
- c(this, "unsubscribe");
1350
- this.source = e;
1351
- }
1352
- mount(e, s) {
1353
- this.isMounted || (this.isMounted = !0, e.insertBefore(this.domNode, (s == null ? void 0 : s.nextSibling) ?? null), v(this.source) ? this.unsubscribe = w(() => {
1354
- const n = I(this.source);
1355
- Z(() => {
1356
- this.update(n);
1357
- });
1358
- }) : this.update(this.elements));
1359
- }
1360
- unmount(e = !1) {
1361
- this.unsubscribe && (this.unsubscribe(), this.unsubscribe = void 0), this.isMounted && (this.cleanup(e), this.isMounted = !1);
1362
- }
1363
- cleanup(e) {
1364
- for (const s of this.elements)
1365
- s.unmount(e);
1366
- this.elements = [];
1367
- }
1368
- update(e) {
1369
- var s, n;
1370
- if (this.cleanup(!1), e.length > 0) {
1371
- for (let i = 0; i < e.length; i++) {
1372
- const o = e[i], f = i > 0 ? this.elements[i - 1] : void 0;
1373
- o.mount(this.domNode.parentElement, f == null ? void 0 : f.domNode), this.elements.push(o);
1374
- }
1375
- (n = this.domNode.parentNode) == null || n.insertBefore(this.domNode, ((s = this.elements.at(-1)) == null ? void 0 : s.domNode) ?? null);
1376
- }
1315
+ const r = ((p = i.at(-1)) == null ? void 0 : p.element.domNode) ?? this.domNode;
1316
+ (g = this.domNode.parentNode) == null || g.insertBefore(this.domNode, r.nextSibling);
1377
1317
  }
1378
1318
  }
1379
- var ve;
1380
- ve = S;
1381
- class lt {
1382
- constructor(e) {
1383
- c(this, ve, !0);
1384
- c(this, "config");
1385
- c(this, "element");
1386
- this.config = e;
1387
- }
1388
- get isMounted() {
1389
- return this.element ? this.element.isMounted : !1;
1390
- }
1391
- mount(e, s) {
1392
- const { content: n, parent: i } = this.config;
1393
- Pe(n) ? this.element = n : this.element = B($(this.config.elementContext, re(n))), this.element.mount(i);
1394
- }
1395
- unmount(e = !1) {
1396
- var s;
1397
- (s = this.element) != null && s.isMounted && this.element.unmount(!1);
1398
- }
1319
+ function He(t, e) {
1320
+ return e.name = "@RepeatItem", t.renderFn.call(e, t.item, t.index, e);
1399
1321
  }
1400
- var we;
1401
- we = S;
1402
- class at {
1403
- constructor(e) {
1404
- c(this, we, !0);
1405
- c(this, "domNode", document.createTextNode(""));
1406
- c(this, "isMounted", !1);
1407
- c(this, "view");
1408
- c(this, "mountedView");
1409
- c(this, "unsubscribe");
1410
- this.view = e;
1411
- }
1412
- mount(e, s) {
1413
- this.isMounted || (this.isMounted = !0, e.insertBefore(this.domNode, (s == null ? void 0 : s.nextSibling) ?? null), this.unsubscribe = w(() => {
1414
- const n = this.view.get();
1415
- Z(() => {
1416
- this.update(n);
1417
- });
1418
- }));
1419
- }
1420
- unmount(e = !1) {
1421
- this.unsubscribe && (this.unsubscribe(), this.unsubscribe = void 0), this.isMounted && (this.cleanup(e), this.isMounted = !1);
1422
- }
1423
- cleanup(e) {
1424
- this.mountedView && this.mountedView.unmount(e), this.mountedView = void 0;
1425
- }
1426
- update(e) {
1427
- this.cleanup(!1), e && (e.mount(this.domNode.parentElement, this.domNode), this.mountedView = e);
1428
- }
1429
- }
1430
- function F(t) {
1431
- return t instanceof Oe;
1322
+ function $(t) {
1323
+ return t instanceof be;
1432
1324
  }
1433
- function Pe(t) {
1434
- return (t == null ? void 0 : t[S]) === !0;
1325
+ function ye(t) {
1326
+ return (t == null ? void 0 : t[x]) === !0;
1435
1327
  }
1436
- function re(t) {
1437
- return U(t) || (t = [t]), t.flat(1 / 0).filter((e) => e != null && e !== !1).map((e) => F(e) ? e : e instanceof Node ? x("$node", { value: e }) : v(e) ? x("$dynamic", { source: e }) : x("$text", { value: e }));
1328
+ function j(t) {
1329
+ k(t) || (t = [t]);
1330
+ const e = [];
1331
+ for (const s of t)
1332
+ if (!(s == null || s === !1)) {
1333
+ if (s instanceof Node) {
1334
+ e.push(N("$node", { value: s }));
1335
+ continue;
1336
+ }
1337
+ if ($(s)) {
1338
+ e.push(s);
1339
+ continue;
1340
+ }
1341
+ if (m(s)) {
1342
+ e.push(N("$dynamic", { source: s }));
1343
+ continue;
1344
+ }
1345
+ if (k(s)) {
1346
+ e.push(...j(s));
1347
+ continue;
1348
+ }
1349
+ e.push(N("$text", { value: s }));
1350
+ }
1351
+ return e;
1438
1352
  }
1439
- function x(t, e, ...s) {
1440
- return new Oe(t, e, ...s);
1353
+ function N(t, e, ...s) {
1354
+ return new be(t, e, ...s);
1441
1355
  }
1442
- class Oe {
1356
+ class be {
1443
1357
  constructor(e, s, ...n) {
1444
- c(this, "type");
1445
- c(this, "props");
1446
- c(this, "children");
1358
+ f(this, "type");
1359
+ f(this, "props");
1360
+ f(this, "children");
1447
1361
  this.type = e, this.props = s, this.children = n;
1448
1362
  }
1449
1363
  }
1450
- function Ie(t, e, s) {
1451
- return x("$dynamic", {
1452
- source: ie(() => {
1453
- const n = I(t);
1364
+ function Ke(t, e, s) {
1365
+ return N("$dynamic", {
1366
+ source: D(() => {
1367
+ const n = b(t);
1454
1368
  return n && e ? e : !n && s ? s : null;
1455
1369
  })
1456
1370
  });
1457
1371
  }
1458
- function At(t, e, s) {
1459
- return Ie(t, e, s);
1460
- }
1461
- function Dt(t, e, s) {
1462
- return Ie(t, s, e);
1372
+ function dt(t, e, s) {
1373
+ return Ke(t, s, e);
1463
1374
  }
1464
- function $t(t, e, s) {
1465
- return x("$list", { items: ie(() => t), keyFn: e, renderFn: s });
1375
+ function ht(t, e, s) {
1376
+ return N("$repeat", { items: () => b(t), keyFn: e, renderFn: s });
1466
1377
  }
1467
- function Pt(t, e) {
1468
- return x("$portal", { parent: t, content: e });
1378
+ function pt(t, e) {
1379
+ return N("$portal", { parent: t, content: e });
1469
1380
  }
1470
- function $(t, e) {
1471
- return (U(e) ? e : [e]).map((n) => {
1472
- if (k(n.type))
1473
- return new z(t, n.type, n.props, n.children);
1474
- if (O(n.type))
1381
+ function M(t, e) {
1382
+ return (k(e) ? e : [e]).map((n) => {
1383
+ if (m(n.type))
1384
+ return new P(t, n.type, n.props, n.children);
1385
+ if (L(n.type))
1475
1386
  switch (n.type) {
1476
1387
  case "$node": {
1477
1388
  const i = n.props;
1478
- return new le(i.value);
1389
+ return new K(i.value);
1479
1390
  }
1480
1391
  case "$text": {
1481
1392
  const i = n.props;
1482
- return new le(document.createTextNode(String(i.value)));
1393
+ return new K(document.createTextNode(String(i.value)));
1483
1394
  }
1484
- case "$list": {
1395
+ case "$repeat": {
1485
1396
  const i = n.props;
1486
- return new ct({
1397
+ return new Ze({
1487
1398
  items: i.items,
1488
1399
  keyFn: i.keyFn,
1489
1400
  renderFn: i.renderFn,
@@ -1492,31 +1403,29 @@ function $(t, e) {
1492
1403
  }
1493
1404
  case "$dynamic": {
1494
1405
  const i = n.props;
1495
- return new tt({
1406
+ return new je({
1496
1407
  source: i.source,
1497
1408
  elementContext: t
1498
1409
  });
1499
1410
  }
1500
1411
  case "$fragment": {
1501
1412
  const i = n.props;
1502
- return new $e(i.children);
1413
+ return new me(i.children);
1503
1414
  }
1504
1415
  case "$outlet": {
1505
1416
  const i = n.props;
1506
- return new at(i.view);
1417
+ return new Be(i.view);
1507
1418
  }
1508
1419
  case "$portal": {
1509
1420
  const i = n.props;
1510
- return new lt({
1421
+ return new Ge({
1511
1422
  content: i.content,
1512
1423
  parent: i.parent,
1513
1424
  elementContext: t
1514
1425
  });
1515
1426
  }
1516
1427
  default:
1517
- if (n.type.startsWith("$"))
1518
- throw new Error(`Unknown markup type: ${n.type}`);
1519
- return new nt({
1428
+ return new Ue({
1520
1429
  tag: n.type,
1521
1430
  props: n.props ?? {},
1522
1431
  children: n.children,
@@ -1527,46 +1436,42 @@ function $(t, e) {
1527
1436
  throw new TypeError(`Expected a string or view function. Got: ${n.type}`);
1528
1437
  });
1529
1438
  }
1530
- function B(t) {
1531
- return t.length === 1 ? t[0] : new $e(t);
1439
+ function A(t) {
1440
+ return t.length === 1 ? t[0] : new me(t);
1532
1441
  }
1533
- function Ve(t) {
1534
- return t == null || t === !1 || O(t) || ze(t) || F(t) || v(t) || Y(Ve, t);
1442
+ function we(t) {
1443
+ return t == null || t === !1 || m(t) || L(t) || ke(t) || $(t) || V(we, t);
1535
1444
  }
1536
1445
  export {
1537
- Et as A,
1538
- $t as B,
1539
- Pt as C,
1540
- Dt as D,
1541
- At as E,
1542
- Lt as I,
1543
- ot as S,
1544
- z as V,
1545
- yt as a,
1546
- vt as b,
1547
- Q as c,
1548
- ie as d,
1549
- bt as e,
1550
- O as f,
1551
- ee as g,
1552
- J as h,
1553
- k as i,
1554
- I as j,
1555
- Ie as k,
1556
- Tt as l,
1557
- x as m,
1558
- R as n,
1559
- wt as o,
1560
- B as p,
1561
- $ as q,
1562
- St as r,
1563
- Mt as s,
1446
+ D as $,
1447
+ lt as I,
1448
+ Fe as S,
1449
+ P as V,
1450
+ tt as a,
1451
+ st as b,
1452
+ it as c,
1453
+ k as d,
1454
+ R as e,
1455
+ L as f,
1456
+ C as g,
1457
+ b as h,
1458
+ m as i,
1459
+ ft as j,
1460
+ O as k,
1461
+ nt as l,
1462
+ N as m,
1463
+ A as n,
1464
+ M as o,
1465
+ _ as p,
1466
+ ot as q,
1467
+ ct as r,
1468
+ ut as s,
1564
1469
  T as t,
1565
- kt as u,
1566
- w as v,
1567
- xt as w,
1568
- Nt as x,
1569
- Ye as y,
1570
- Z as z
1470
+ y as u,
1471
+ rt as v,
1472
+ Ke as w,
1473
+ pt as x,
1474
+ ht as y,
1475
+ dt as z
1571
1476
  };
1572
- //# sourceMappingURL=markup-BJffA2Ls.js.map
1477
+ //# sourceMappingURL=markup-B-2w-v-S.js.map