@tachui/data 0.8.5-alpha → 0.8.10-alpha.0

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.
package/dist/List.js CHANGED
@@ -1,63 +1,63 @@
1
- var de = Object.defineProperty;
2
- var ue = (n, e, t) => e in n ? de(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
3
- var u = (n, e, t) => ue(n, typeof e != "symbol" ? e + "" : e, t);
4
- import { withModifiers as re, createSignal as A, isSignal as v, createEffect as I, h as b } from "@tachui/core";
1
+ var Re = Object.defineProperty;
2
+ var Oe = (n, e, t) => e in n ? Re(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
3
+ var m = (n, e, t) => Oe(n, typeof e != "symbol" ? e + "" : e, t);
4
+ import { withModifiers as ue, ComponentWithCSSClasses as Pe, processElementOverride as ke, h as w, text as Le, clonePropsPreservingReactivity as fe, resetLifecycleState as me, createSignal as N, isSignal as S, createEffect as R } from "@tachui/core";
5
5
  import "@tachui/modifiers";
6
- const g = {
6
+ const y = {
7
7
  Clean: 0,
8
8
  Check: 1,
9
9
  Dirty: 2,
10
10
  Disposed: 3
11
11
  };
12
- var pe = Object.defineProperty, fe = (n, e, t) => e in n ? pe(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, M = (n, e, t) => fe(n, typeof e != "symbol" ? e + "" : e, t);
13
- let me = 0;
14
- const ge = Math.random().toString(36).substr(2, 6);
15
- let Z = null, J = null;
16
- const ye = /* @__PURE__ */ new Set();
17
- ye.add(ge);
18
- const D = {
12
+ var De = Object.defineProperty, ze = (n, e, t) => e in n ? De(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, O = (n, e, t) => ze(n, typeof e != "symbol" ? e + "" : e, t);
13
+ let _e = 0;
14
+ const He = Math.random().toString(36).substr(2, 6);
15
+ let ge = null, ye = null;
16
+ const Ve = /* @__PURE__ */ new Set();
17
+ Ve.add(He);
18
+ const Q = {
19
19
  get currentComputation() {
20
- return Z;
20
+ return ge;
21
21
  },
22
22
  set currentComputation(n) {
23
- Z = n;
23
+ ge = n;
24
24
  },
25
25
  get currentOwner() {
26
- return J;
26
+ return ye;
27
27
  },
28
28
  set currentOwner(n) {
29
- J = n;
29
+ ye = n;
30
30
  }
31
31
  };
32
- function ie() {
33
- return D.currentComputation;
32
+ function we() {
33
+ return Q.currentComputation;
34
34
  }
35
- function ne() {
36
- return D.currentOwner;
35
+ function Ce() {
36
+ return Q.currentOwner;
37
37
  }
38
- class oe {
38
+ let Ee = class {
39
39
  constructor(e, t = null) {
40
- M(this, "id"), M(this, "owner"), M(this, "fn"), M(this, "sources", /* @__PURE__ */ new Set()), M(this, "observers", /* @__PURE__ */ new Set()), M(this, "state", g.Dirty), M(this, "value"), this.id = ++me, this.fn = e, this.owner = t, t && !t.disposed && t.sources.add(this);
40
+ O(this, "id"), O(this, "owner"), O(this, "fn"), O(this, "sources", /* @__PURE__ */ new Set()), O(this, "observers", /* @__PURE__ */ new Set()), O(this, "state", y.Dirty), O(this, "value"), this.id = ++_e, this.fn = e, this.owner = t, t && !t.disposed && t.sources.add(this);
41
41
  }
42
42
  execute() {
43
- if (this.state === g.Disposed)
43
+ if (this.state === y.Disposed)
44
44
  return this.value;
45
45
  for (const t of this.sources)
46
46
  t && typeof t == "object" && "removeObserver" in t && t.removeObserver(this);
47
47
  this.sources.clear();
48
- const e = D.currentComputation;
49
- D.currentComputation = this;
48
+ const e = Q.currentComputation;
49
+ Q.currentComputation = this;
50
50
  try {
51
- return this.state = g.Clean, this.value = this.fn(), this.value;
51
+ return this.state = y.Clean, this.value = this.fn(), this.value;
52
52
  } catch (t) {
53
- throw this.state = g.Disposed, (typeof process > "u" || process.env.NODE_ENV !== "test") && console.error("Error in computation:", t), t;
53
+ throw this.state = y.Disposed, (typeof process > "u" || process.env.NODE_ENV !== "test") && console.error("Error in computation:", t), t;
54
54
  } finally {
55
- D.currentComputation = e;
55
+ Q.currentComputation = e;
56
56
  }
57
57
  }
58
58
  dispose() {
59
- if (this.state !== g.Disposed) {
60
- this.state = g.Disposed;
59
+ if (this.state !== y.Disposed) {
60
+ this.state = y.Disposed;
61
61
  for (const e of this.sources)
62
62
  e && typeof e == "object" && "removeObserver" in e && e.removeObserver(this);
63
63
  this.sources.clear();
@@ -66,18 +66,18 @@ class oe {
66
66
  this.observers.clear(), this.owner && !this.owner.disposed && this.owner.sources.delete(this);
67
67
  }
68
68
  }
69
- }
70
- var ve = Object.defineProperty, be = (n, e, t) => e in n ? ve(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, B = (n, e, t) => be(n, typeof e != "symbol" ? e + "" : e, t);
71
- let Se = 0, Ce = class {
69
+ };
70
+ var je = Object.defineProperty, Fe = (n, e, t) => e in n ? je(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, re = (n, e, t) => Fe(n, typeof e != "symbol" ? e + "" : e, t);
71
+ let Be = 0, We = class {
72
72
  constructor(e) {
73
- B(this, "id"), B(this, "observers", /* @__PURE__ */ new Set()), B(this, "_value"), this.id = ++Se, this._value = e;
73
+ re(this, "id"), re(this, "observers", /* @__PURE__ */ new Set()), re(this, "_value"), this.id = ++Be, this._value = e;
74
74
  }
75
75
  /**
76
76
  * Get the current value and track dependency
77
77
  */
78
78
  getValue() {
79
- const e = ie();
80
- return e && e.state !== g.Disposed && (this.observers.add(e), e.sources.add(this)), this._value;
79
+ const e = we();
80
+ return e && e.state !== y.Disposed && (this.observers.add(e), e.sources.add(this)), this._value;
81
81
  }
82
82
  /**
83
83
  * Get the current value without tracking dependency
@@ -97,7 +97,7 @@ let Se = 0, Ce = class {
97
97
  */
98
98
  notify() {
99
99
  for (const e of this.observers)
100
- e.state !== g.Disposed && (e.state = g.Dirty, Ee(e));
100
+ e.state !== y.Disposed && (e.state = y.Dirty, Ue(e));
101
101
  }
102
102
  /**
103
103
  * Remove an observer (cleanup)
@@ -117,28 +117,28 @@ let Se = 0, Ce = class {
117
117
  };
118
118
  }
119
119
  };
120
- const U = /* @__PURE__ */ new Set();
121
- let j = !1;
122
- function Ee(n) {
123
- U.add(n), !j && queueMicrotask(we);
120
+ const X = /* @__PURE__ */ new Set();
121
+ let J = !1;
122
+ function Ue(n) {
123
+ X.add(n), !J && queueMicrotask(qe);
124
124
  }
125
- function we() {
126
- if (!j) {
127
- j = !0;
125
+ function qe() {
126
+ if (!J) {
127
+ J = !0;
128
128
  try {
129
- for (; U.size > 0; ) {
130
- const n = Array.from(U).sort((e, t) => e.id - t.id);
131
- U.clear();
129
+ for (; X.size > 0; ) {
130
+ const n = Array.from(X).sort((e, t) => e.id - t.id);
131
+ X.clear();
132
132
  for (const e of n)
133
- e.state === g.Dirty && e.execute();
133
+ e.state === y.Dirty && e.execute();
134
134
  }
135
135
  } finally {
136
- j = !1;
136
+ J = !1;
137
137
  }
138
138
  }
139
139
  }
140
- function G(n) {
141
- const e = new Ce(n), t = e.getValue.bind(e);
140
+ function le(n) {
141
+ const e = new We(n), t = e.getValue.bind(e);
142
142
  t.peek = e.peek.bind(e);
143
143
  const s = e.set.bind(e);
144
144
  return Object.defineProperty(t, Symbol.for("tachui.signal"), {
@@ -146,24 +146,24 @@ function G(n) {
146
146
  enumerable: !1
147
147
  }), [t, s];
148
148
  }
149
- function T(n) {
149
+ function F(n) {
150
150
  return typeof n == "function" && Symbol.for("tachui.signal") in n;
151
151
  }
152
- const Ae = (n, e) => n === e;
153
- var Ie = Object.defineProperty, Me = (n, e, t) => e in n ? Ie(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, S = (n, e, t) => Me(n, typeof e != "symbol" ? e + "" : e, t), _ = /* @__PURE__ */ ((n) => (n[n.Immediate = 0] = "Immediate", n[n.High = 1] = "High", n[n.Normal = 2] = "Normal", n[n.Low = 3] = "Low", n[n.Idle = 4] = "Idle", n))(_ || {});
154
- let Ne = class extends Error {
152
+ const Qe = (n, e) => n === e;
153
+ var Ge = Object.defineProperty, Ke = (n, e, t) => e in n ? Ge(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, A = (n, e, t) => Ke(n, typeof e != "symbol" ? e + "" : e, t), G = /* @__PURE__ */ ((n) => (n[n.Immediate = 0] = "Immediate", n[n.High = 1] = "High", n[n.Normal = 2] = "Normal", n[n.Low = 3] = "Low", n[n.Idle = 4] = "Idle", n))(G || {});
154
+ let Ye = class extends Error {
155
155
  constructor(e, t, s) {
156
156
  super(e), this.cause = t, this.node = s, this.name = "ReactiveError";
157
157
  }
158
158
  };
159
- const xe = class $ {
159
+ const Ze = class _ {
160
160
  constructor() {
161
- S(this, "updateQueues", /* @__PURE__ */ new Map()), S(this, "isFlushPending", !1), S(this, "isDestroyed", !1), S(this, "errorHandlers", /* @__PURE__ */ new Set()), S(this, "maxRetries", 3), S(this, "totalUpdateCycles", 0), S(this, "totalUpdateTime", 0), S(this, "errorCount", 0), S(this, "nodeRegistry", /* @__PURE__ */ new WeakSet());
162
- for (const e of Object.values(_))
161
+ A(this, "updateQueues", /* @__PURE__ */ new Map()), A(this, "isFlushPending", !1), A(this, "isDestroyed", !1), A(this, "errorHandlers", /* @__PURE__ */ new Set()), A(this, "maxRetries", 3), A(this, "totalUpdateCycles", 0), A(this, "totalUpdateTime", 0), A(this, "errorCount", 0), A(this, "nodeRegistry", /* @__PURE__ */ new WeakSet());
162
+ for (const e of Object.values(G))
163
163
  typeof e == "number" && this.updateQueues.set(e, /* @__PURE__ */ new Set());
164
164
  }
165
165
  static getInstance() {
166
- return $.instance || ($.instance = new $()), $.instance;
166
+ return _.instance || (_.instance = new _()), _.instance;
167
167
  }
168
168
  /**
169
169
  * Schedule reactive node for update
@@ -196,7 +196,7 @@ const xe = class $ {
196
196
  await this.updateNodeWithRetry(i);
197
197
  } catch (o) {
198
198
  this.handleReactiveError(
199
- new Ne(`Failed to update ${i.type} node ${i.id}`, o, i)
199
+ new Ye(`Failed to update ${i.type} node ${i.id}`, o, i)
200
200
  );
201
201
  }
202
202
  if (this.hasHigherPriorityWork(t))
@@ -342,7 +342,7 @@ const xe = class $ {
342
342
  }
343
343
  e.clear();
344
344
  }
345
- this.updateQueues.clear(), this.errorHandlers.clear(), $.instance = null;
345
+ this.updateQueues.clear(), this.errorHandlers.clear(), _.instance = null;
346
346
  }
347
347
  /**
348
348
  * Get debug information
@@ -350,7 +350,7 @@ const xe = class $ {
350
350
  getDebugInfo() {
351
351
  const e = {};
352
352
  for (const [t, s] of this.updateQueues)
353
- e[_[t]] = s.size;
353
+ e[G[t]] = s.size;
354
354
  return {
355
355
  isFlushPending: this.isFlushPending,
356
356
  isDestroyed: this.isDestroyed,
@@ -360,30 +360,35 @@ const xe = class $ {
360
360
  };
361
361
  }
362
362
  };
363
- S(xe, "instance", null);
364
- var $e = Object.defineProperty, Re = (n, e, t) => e in n ? $e(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, x = (n, e, t) => Re(n, typeof e != "symbol" ? e + "" : e, t);
365
- let Oe = class extends oe {
366
- constructor(e, t = {}, s = ne()) {
367
- super(e, s), x(this, "type", "computed"), x(this, "priority"), x(this, "_hasValue", !1), x(this, "_error", null), x(this, "equalsFn"), x(this, "options"), this.priority = t.priority ?? _.Normal, this.equalsFn = t.equals ?? Ae, this.options = t;
363
+ A(Ze, "instance", null);
364
+ var Xe = Object.defineProperty, Je = (n, e, t) => e in n ? Xe(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, L = (n, e, t) => Je(n, typeof e != "symbol" ? e + "" : e, t);
365
+ let et = class extends Ee {
366
+ constructor(e, t = {}, s = Ce()) {
367
+ super(e, s), L(this, "type", "computed"), L(this, "priority"), L(this, "_hasValue", !1), L(this, "_error", null), L(this, "equalsFn"), L(this, "options"), this.priority = t.priority ?? G.Normal, this.equalsFn = t.equals ?? Qe, this.options = t;
368
368
  }
369
369
  /**
370
370
  * Get the computed value, tracking dependency and lazily computing
371
371
  */
372
372
  getValue() {
373
- const e = ie();
374
- return e && e.state !== g.Disposed && (this.observers.add(e), e.sources.add(this)), (this.state === g.Dirty || !this._hasValue) && (this.execute(), this._hasValue = !0), this.value;
373
+ const e = we();
374
+ return e && e.state !== y.Disposed && (this.observers.add(e), e.sources.add(this)), (this.state === y.Dirty || !this._hasValue) && (this.execute(), this._hasValue = !0), this.value;
375
375
  }
376
376
  /**
377
377
  * Get the current value without tracking dependency
378
378
  */
379
379
  peek() {
380
- return (this.state === g.Dirty || !this._hasValue) && (this.execute(), this._hasValue = !0), this.value;
380
+ return (this.state === y.Dirty || !this._hasValue) && (this.execute(), this._hasValue = !0), this.value;
381
381
  }
382
382
  /**
383
383
  * Remove an observer (cleanup)
384
384
  */
385
385
  removeObserver(e) {
386
- this.observers.delete(e);
386
+ this.observers.delete(e), this.options.releaseOnNoObservers === !0 && this.observers.size === 0 && e.state === y.Disposed && this.releaseSources();
387
+ }
388
+ releaseSources() {
389
+ for (const e of this.sources)
390
+ "removeObserver" in e && e.removeObserver(this);
391
+ this.sources.clear(), this._hasValue = !1, this.state = y.Dirty;
387
392
  }
388
393
  /**
389
394
  * Execute the computation and notify observers
@@ -392,8 +397,8 @@ let Oe = class extends oe {
392
397
  const e = this._hasValue ? this.value : void 0, t = super.execute();
393
398
  if (!this._hasValue || !this.equalsFn(e, t))
394
399
  for (const s of this.observers)
395
- s.state !== g.Disposed && (s.state = g.Dirty, "execute" in s && typeof s.execute == "function" && queueMicrotask(() => {
396
- s.state === g.Dirty && s.execute();
400
+ s.state !== y.Disposed && (s.state = y.Dirty, "execute" in s && typeof s.execute == "function" && queueMicrotask(() => {
401
+ s.state === y.Dirty && s.execute();
397
402
  }));
398
403
  return t;
399
404
  }
@@ -412,7 +417,7 @@ let Oe = class extends oe {
412
417
  this.sources.clear();
413
418
  for (const e of this.observers)
414
419
  e.sources.delete(this);
415
- this.observers.clear(), this._hasValue = !1, this._error = null, this.state = g.Disposed;
420
+ this.observers.clear(), this._hasValue = !1, this._error = null, this.state = y.Disposed;
416
421
  }
417
422
  /**
418
423
  * Dispose the computed value
@@ -433,7 +438,7 @@ let Oe = class extends oe {
433
438
  state: this.state,
434
439
  sourceCount: this.sources.size,
435
440
  observerCount: this.observers.size,
436
- priority: _[this.priority],
441
+ priority: G[this.priority],
437
442
  debugName: this.options.debugName,
438
443
  equalsFn: this.equalsFn.name || "anonymous"
439
444
  };
@@ -442,29 +447,29 @@ let Oe = class extends oe {
442
447
  return `Computed(${this.options.debugName || this.id}): ${this._hasValue ? this.value : "no value"}`;
443
448
  }
444
449
  };
445
- function Te(n, e) {
446
- const t = new Oe(n, e), s = t.getValue.bind(t);
450
+ function tt(n, e) {
451
+ const t = new et(n, e), s = t.getValue.bind(t);
447
452
  return s.peek = t.peek.bind(t), Object.defineProperty(s, Symbol.for("tachui.computed"), {
448
453
  value: t,
449
454
  enumerable: !1
450
455
  }), s;
451
456
  }
452
- function P(n) {
457
+ function B(n) {
453
458
  return typeof n == "function" && Symbol.for("tachui.computed") in n;
454
459
  }
455
- const [Pe, Ot] = G("light");
456
- Te(() => {
457
- const n = Pe();
458
- return n === "system" ? Le() : n;
460
+ const [st, Ss] = le("light");
461
+ tt(() => {
462
+ const n = st();
463
+ return n === "system" ? rt() : n;
459
464
  });
460
- function Le() {
465
+ function rt() {
461
466
  return typeof window < "u" && window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
462
467
  }
463
468
  typeof globalThis.__DEV__ > "u" && (globalThis.__DEV__ = process.env.NODE_ENV !== "production");
464
- var ke = Object.defineProperty, ze = (n, e, t) => e in n ? ke(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, ee = (n, e, t) => ze(n, typeof e != "symbol" ? e + "" : e, t);
465
- let De = class {
469
+ var it = Object.defineProperty, nt = (n, e, t) => e in n ? it(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, ve = (n, e, t) => nt(n, typeof e != "symbol" ? e + "" : e, t);
470
+ let ot = class {
466
471
  constructor() {
467
- ee(this, "pending", /* @__PURE__ */ new Set()), ee(this, "isFlushScheduled", !1);
472
+ ve(this, "pending", /* @__PURE__ */ new Set()), ve(this, "isFlushScheduled", !1);
468
473
  }
469
474
  schedule(e) {
470
475
  this.pending.add(e), this.isFlushScheduled || (this.isFlushScheduled = !0, queueMicrotask(() => this.flush()));
@@ -485,17 +490,17 @@ let De = class {
485
490
  this.pending.size > 0 && (this.isFlushScheduled = !0, queueMicrotask(() => this.flush()));
486
491
  }
487
492
  };
488
- new De();
489
- let Q = null;
490
- const y = class y {
493
+ new ot();
494
+ let ie = null;
495
+ const b = class b {
491
496
  constructor() {
492
- u(this, "instanceId");
493
- u(this, "createdAt");
494
- u(this, "modifiers", /* @__PURE__ */ new Map());
495
- u(this, "lazyLoaders", /* @__PURE__ */ new Map());
496
- u(this, "loadingPromises", /* @__PURE__ */ new Map());
497
+ m(this, "instanceId");
498
+ m(this, "createdAt");
499
+ m(this, "modifiers", /* @__PURE__ */ new Map());
500
+ m(this, "lazyLoaders", /* @__PURE__ */ new Map());
501
+ m(this, "loadingPromises", /* @__PURE__ */ new Map());
497
502
  // Feature flags
498
- u(this, "featureFlags", {
503
+ m(this, "featureFlags", {
499
504
  proxyModifiers: !1,
500
505
  // Disabled by default for safe rollout
501
506
  autoTypeGeneration: !1,
@@ -506,35 +511,35 @@ const y = class y {
506
511
  // Enable for new system
507
512
  });
508
513
  // Metadata storage for type generation
509
- u(this, "metadata", /* @__PURE__ */ new Map());
510
- u(this, "metadataHistory", /* @__PURE__ */ new Map());
511
- u(this, "conflicts", /* @__PURE__ */ new Map());
514
+ m(this, "metadata", /* @__PURE__ */ new Map());
515
+ m(this, "metadataHistory", /* @__PURE__ */ new Map());
516
+ m(this, "conflicts", /* @__PURE__ */ new Map());
512
517
  // Plugin metadata storage
513
- u(this, "plugins", /* @__PURE__ */ new Map());
514
- y.instanceCount++, this.instanceId = Math.random().toString(36).substr(2, 9), this.createdAt = Date.now(), process.env.NODE_ENV === "development" && console.log(
515
- `🏗️ ModifierRegistry instance created: ${this.instanceId} (total: ${y.instanceCount})`
518
+ m(this, "plugins", /* @__PURE__ */ new Map());
519
+ b.instanceCount++, this.instanceId = Math.random().toString(36).substr(2, 9), this.createdAt = Date.now(), process.env.NODE_ENV === "development" && console.log(
520
+ `🏗️ ModifierRegistry instance created: ${this.instanceId} (total: ${b.instanceCount})`
516
521
  );
517
522
  }
518
523
  static validateModifierName(e, t = {}) {
519
- if (y.FORBIDDEN_NAMES.has(e))
524
+ if (b.FORBIDDEN_NAMES.has(e))
520
525
  throw new Error(
521
526
  `Security Error: Cannot register modifier '${e}' (forbidden name)`
522
527
  );
523
- if (!y.NAME_PATTERN.test(e)) {
528
+ if (!b.NAME_PATTERN.test(e)) {
524
529
  if (t.strict)
525
530
  throw new Error(
526
- `Invalid modifier name '${e}'. Modifier names must match ${y.NAME_PATTERN}`
531
+ `Invalid modifier name '${e}'. Modifier names must match ${b.NAME_PATTERN}`
527
532
  );
528
533
  process.env.NODE_ENV !== "production" && console.warn(
529
- `⚠️ Modifier name '${e}' does not match ${y.NAME_PATTERN}. Prefer alphanumeric names for best tooling support.`
534
+ `⚠️ Modifier name '${e}' does not match ${b.NAME_PATTERN}. Prefer alphanumeric names for best tooling support.`
530
535
  );
531
536
  }
532
537
  }
533
538
  register(e, t) {
534
- y.validateModifierName(e), this.modifiers.set(e, t), this.lazyLoaders.delete(e), this.loadingPromises.delete(e);
539
+ b.validateModifierName(e), this.modifiers.set(e, t), this.lazyLoaders.delete(e), this.loadingPromises.delete(e);
535
540
  }
536
541
  registerLazy(e, t) {
537
- if (y.validateModifierName(e), this.modifiers.has(e)) {
542
+ if (b.validateModifierName(e), this.modifiers.has(e)) {
538
543
  process.env.NODE_ENV === "development" && console.warn(
539
544
  `⚠️ Modifier '${e}' already registered, skipping lazy registration`
540
545
  );
@@ -605,7 +610,7 @@ const y = class y {
605
610
  );
606
611
  }
607
612
  reset() {
608
- this.clear(), process.env.NODE_ENV === "test" && (y.instanceCount = 0);
613
+ this.clear(), process.env.NODE_ENV === "test" && (b.instanceCount = 0);
609
614
  }
610
615
  validateRegistry() {
611
616
  const e = this.list(), t = e.filter(
@@ -618,7 +623,7 @@ const y = class y {
618
623
  // Could be enhanced to scan for broken references
619
624
  instanceId: this.instanceId,
620
625
  createdAt: this.createdAt,
621
- instanceCount: y.instanceCount
626
+ instanceCount: b.instanceCount
622
627
  };
623
628
  }
624
629
  /**
@@ -679,7 +684,7 @@ const y = class y {
679
684
  throw new Error(
680
685
  `Modifier metadata '${String(e.name)}' must include a plugin identifier`
681
686
  );
682
- typeof e.name == "string" && y.validateModifierName(e.name, {
687
+ typeof e.name == "string" && b.validateModifierName(e.name, {
683
688
  strict: !0
684
689
  });
685
690
  const t = this.metadata.get(e.name), s = t?.plugin === e.plugin;
@@ -766,7 +771,7 @@ const y = class y {
766
771
  return Array.from(this.plugins.values());
767
772
  }
768
773
  };
769
- u(y, "instanceCount", 0), u(y, "FORBIDDEN_NAMES", /* @__PURE__ */ new Set([
774
+ m(b, "instanceCount", 0), m(b, "FORBIDDEN_NAMES", /* @__PURE__ */ new Set([
770
775
  "__proto__",
771
776
  "constructor",
772
777
  "prototype",
@@ -774,29 +779,593 @@ u(y, "instanceCount", 0), u(y, "FORBIDDEN_NAMES", /* @__PURE__ */ new Set([
774
779
  "isPrototypeOf",
775
780
  "toString",
776
781
  "valueOf"
777
- ])), u(y, "NAME_PATTERN", /^[a-zA-Z_$][a-zA-Z0-9_$]*$/);
778
- let K = y;
779
- function _e() {
780
- return Q || (Q = new K()), Q;
782
+ ])), m(b, "NAME_PATTERN", /^[a-zA-Z_$][a-zA-Z0-9_$]*$/);
783
+ let ce = b;
784
+ function at() {
785
+ return ie || (ie = new ce()), ie;
781
786
  }
782
- const te = _e();
783
- function w(n, e = {}) {
784
- const t = ne();
787
+ const I = at();
788
+ function T(n, e = {}) {
789
+ const t = Ce();
785
790
  let s;
786
791
  const r = () => {
787
792
  const o = n(s);
788
793
  return s = o, o;
789
- }, i = new oe(r, t);
794
+ }, i = new Ee(r, t);
790
795
  return e.name && Object.defineProperty(i, "name", {
791
796
  value: e.name,
792
797
  enumerable: !1
793
798
  }), i.execute(), i;
794
799
  }
800
+ var lt = Object.defineProperty, ct = (n, e, t) => e in n ? lt(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, ht = (n, e, t) => ct(n, e + "", t);
801
+ const dt = /* @__PURE__ */ new Set([
802
+ "onFocus",
803
+ "onBlur",
804
+ "onKeyDown",
805
+ "onKeyUp",
806
+ "onKeyPress",
807
+ "onScroll",
808
+ "onWheel",
809
+ "onInput",
810
+ "onChange",
811
+ "onCopy",
812
+ "onCut",
813
+ "onPaste",
814
+ "onSelect",
815
+ "onTouchStart",
816
+ "onTouchMove",
817
+ "onTouchEnd",
818
+ "onSwipeLeft",
819
+ "onSwipeRight"
820
+ ]);
821
+ function Ae() {
822
+ return I;
823
+ }
824
+ function d(n, ...e) {
825
+ const t = Ae().get(n);
826
+ if (t)
827
+ try {
828
+ return t.apply(null, e);
829
+ } catch (s) {
830
+ throw console.warn(`Error creating modifier '${n}':`, s), s;
831
+ }
832
+ throw new Error(
833
+ `Modifier '${n}' not found in registry. Import @tachui/modifiers or @tachui/modifiers/effects to register modifiers.`
834
+ );
835
+ }
836
+ let ut = class {
837
+ constructor(e) {
838
+ this.component = e, ht(this, "modifiers", []);
839
+ }
840
+ frame(e, t) {
841
+ let s;
842
+ return typeof e == "object" ? s = e : (s = {}, e !== void 0 && (s.width = e), t !== void 0 && (s.height = t)), this.modifiers.push(d("frame", s)), this;
843
+ }
844
+ // margin() moved to @tachui/modifiers - available via Proxy when imported
845
+ layoutPriority(e) {
846
+ return this.modifiers.push(d("layoutPriority", e)), this;
847
+ }
848
+ // Size, padding, and margin modifiers moved to @tachui/modifiers
849
+ // All available via Proxy when @tachui/modifiers is imported:
850
+ // - size(), width(), height(), minWidth(), maxWidth(), minHeight(), maxHeight()
851
+ // - padding(), paddingTop(), paddingBottom(), paddingLeft(), paddingRight()
852
+ // - paddingLeading(), paddingTrailing(), paddingHorizontal(), paddingVertical()
853
+ // - marginTop(), marginBottom(), marginLeft(), marginRight()
854
+ // - marginHorizontal(), marginVertical()
855
+ // Typography modifiers moved to @tachui/modifiers:
856
+ // typography(), textAlign(), textTransform(), gradientText()
857
+ // Available via Proxy when @tachui/modifiers is imported
858
+ // Text modifiers (lineClamp, wordBreak, overflowWrap, hyphens) moved to @tachui/modifiers
859
+ // Available via Proxy when @tachui/modifiers is imported
860
+ // position() and zIndex() methods have been migrated to @tachui/modifiers/layout
861
+ // for enhanced SwiftUI-compatible functionality
862
+ // Text spacing and overflow methods moved to @tachui/modifiers:
863
+ // letterSpacing(), lineHeight(), textOverflow(), whiteSpace(), overflow()
864
+ // Border modifiers moved to @tachui/modifiers:
865
+ // borderTop(), borderRight(), borderBottom(), borderLeft()
866
+ // Flexbox modifiers moved to @tachui/modifiers:
867
+ // flexGrow(), flexShrink(), justifyContent(), alignItems(), gap(), flexDirection(), flexWrap()
868
+ // Utility modifiers moved to @tachui/modifiers:
869
+ // cursor(), overflowX(), overflowY(), outline(), outlineOffset(), display()
870
+ // Raw CSS modifiers moved to @tachui/modifiers/utility
871
+ // Import { css } from '@tachui/modifiers/utility' and apply explicitly.
872
+ // textCase(), textDecoration(), and aspectRatio() moved to @tachui/modifiers
873
+ // Available via Proxy when @tachui/modifiers is imported
874
+ // Phase 1 SwiftUI modifiers
875
+ // Note: clipped() has been moved to @tachui/modifiers
876
+ // Phase 2 SwiftUI modifiers
877
+ // Note: clipShape() and overlay() have been moved to @tachui/modifiers
878
+ // Phase 3 SwiftUI modifiers - Critical Transform Modifiers
879
+ absolutePosition(e, t) {
880
+ return this.modifiers.push(d("absolutePosition", e, t)), this;
881
+ }
882
+ // Appearance modifiers
883
+ foregroundColor(e) {
884
+ return this.modifiers.push(d("foregroundColor", e)), this;
885
+ }
886
+ backgroundColor(e) {
887
+ return this.modifiers.push(d("backgroundColor", e)), this;
888
+ }
889
+ background(e) {
890
+ const t = d("background", e);
891
+ return this.modifiers.push(t), this;
892
+ }
893
+ font(e) {
894
+ let t;
895
+ return typeof e == "object" ? (t = e, t.family !== void 0 && this.modifiers.push(
896
+ d("fontFamily", t.family)
897
+ ), t.size !== void 0 && this.modifiers.push(d("fontSize", t.size)), t.weight !== void 0 && this.modifiers.push(d("fontWeight", t.weight)), t.style !== void 0 && this.modifiers.push(d("fontStyle", t.style))) : (t = e !== void 0 ? { size: e } : {}, typeof e == "string" && e.startsWith(".") ? this.modifiers.push(d("fontPreset", e)) : t.size !== void 0 && this.modifiers.push(d("fontSize", t.size))), this;
898
+ }
899
+ fontWeight(e) {
900
+ return this.modifiers.push(d("fontWeight", e)), this;
901
+ }
902
+ fontSize(e) {
903
+ return this.modifiers.push(d("fontSize", e)), this;
904
+ }
905
+ fontFamily(e) {
906
+ return this.modifiers.push(d("fontFamily", e)), this;
907
+ }
908
+ opacity(e) {
909
+ return this.modifiers.push(d("opacity", e)), this;
910
+ }
911
+ cornerRadius(e) {
912
+ return this.modifiers.push(d("cornerRadius", e)), this;
913
+ }
914
+ border(e, t) {
915
+ let s;
916
+ return typeof e == "object" ? s = e : s = {
917
+ style: "solid",
918
+ ...e !== void 0 && { width: e },
919
+ ...t !== void 0 && { color: t }
920
+ }, this.modifiers.push(d("border", s)), this;
921
+ }
922
+ borderWidth(e) {
923
+ return this.modifiers.push(d("border", { width: e })), this;
924
+ }
925
+ // Shadow functionality moved to @tachui/modifiers/effects entry point
926
+ // Visual Effects Modifiers (Phase 2 - Epic: Butternut)
927
+ blur(e) {
928
+ return this.modifiers.push(d("blur", e)), this;
929
+ }
930
+ brightness(e) {
931
+ return this.modifiers.push(d("brightness", e)), this;
932
+ }
933
+ contrast(e) {
934
+ return this.modifiers.push(d("contrast", e)), this;
935
+ }
936
+ saturation(e) {
937
+ return this.modifiers.push(d("saturation", e)), this;
938
+ }
939
+ hueRotation(e) {
940
+ return this.modifiers.push(d("hueRotation", e)), this;
941
+ }
942
+ grayscale(e) {
943
+ return this.modifiers.push(d("grayscale", e)), this;
944
+ }
945
+ colorInvert(e = 1) {
946
+ return this.modifiers.push(d("colorInvert", e)), this;
947
+ }
948
+ // ============================================================================
949
+ // VISUAL EFFECTS MOVED TO @tachui/modifiers/effects ENTRY
950
+ // ============================================================================
951
+ //
952
+ // Visual effects have been extracted to @tachui/modifiers/effects for better tree-shaking
953
+ // Visual effects methods removed - use @tachui/modifiers/effects
954
+ // Advanced gesture and interaction modifiers moved to @tachui/modifiers
955
+ // Available via Proxy when @tachui/modifiers is imported:
956
+ // - onLongPressGesture(), keyboardShortcut(), focused(), focusable(), onContinuousHover()
957
+ highPriorityGesture(e, t) {
958
+ return this.modifiers.push(d("highPriorityGesture", e, t)), this;
959
+ }
960
+ simultaneousGesture(e, t) {
961
+ return this.modifiers.push(d("simultaneousGesture", e, t)), this;
962
+ }
963
+ // allowsHitTesting() moved to @tachui/modifiers - available via Proxy when imported
964
+ // Animation modifiers
965
+ transform(e) {
966
+ return this.modifiers.push(d("transform", e)), this;
967
+ }
968
+ animation(e) {
969
+ return this.modifiers.push(d("animation", e)), this;
970
+ }
971
+ // Lifecycle modifiers
972
+ task(e, t) {
973
+ return this.modifiers.push(
974
+ d("task", {
975
+ operation: e,
976
+ id: t?.id,
977
+ priority: t?.priority || "default"
978
+ })
979
+ ), this;
980
+ }
981
+ // Custom modifier application
982
+ /**
983
+ * @deprecated DO NOT USE - This is an internal API only.
984
+ * Always use direct modifier methods instead of .modifier()
985
+ *
986
+ * BAD: component.modifier(padding(16))
987
+ * GOOD: component.padding(16)
988
+ *
989
+ * If you need a modifier from @tachui/modifiers, import and use it directly:
990
+ * BAD: component.modifier(shadow({ radius: 4 }))
991
+ * GOOD: import { shadow } from '@tachui/modifiers'
992
+ * const mod = shadow({ radius: 4 })
993
+ * // Then apply via registry or component method
994
+ */
995
+ modifier(e) {
996
+ return process.env.NODE_ENV === "development" && console.warn(
997
+ `⚠️ .modifier() should NOT be used by developers.
998
+ Use direct modifier methods instead:
999
+ BAD: component.modifier(padding(16))
1000
+ GOOD: component.padding(16)
1001
+
1002
+ If the method doesn't exist on the component, import the modifier package:
1003
+ import { shadowModifier } from '@tachui/modifiers'
1004
+
1005
+ This method is for internal framework use only.`
1006
+ ), this.modifiers.push(e), this;
1007
+ }
1008
+ // Public method to add a modifier (used by Proxy)
1009
+ addModifierInternal(e) {
1010
+ return this.modifiers.push(e), this;
1011
+ }
1012
+ // Resizable modifier for images
1013
+ resizable() {
1014
+ return this.modifiers.push(d("resizable")), this;
1015
+ }
1016
+ // Responsive Design Methods
1017
+ /**
1018
+ * Add modifier to internal list (used by responsive builder)
1019
+ */
1020
+ addModifier(e) {
1021
+ if (this.modifiers.push(e), "modifiers" in this.component && Array.isArray(this.component.modifiers)) {
1022
+ const t = this.component;
1023
+ t.modifiers = [
1024
+ ...t.modifiers,
1025
+ e
1026
+ ];
1027
+ }
1028
+ }
1029
+ // Responsive functionality moved to @tachui/responsive package
1030
+ // Interaction modifiers
1031
+ onTap(e) {
1032
+ return this.modifiers.push(d("onTap", e)), this;
1033
+ }
1034
+ onFocus(e) {
1035
+ return this.modifiers.push(d("onFocus", e)), this;
1036
+ }
1037
+ onBlur(e) {
1038
+ return this.modifiers.push(d("onBlur", e)), this;
1039
+ }
1040
+ onKeyDown(e) {
1041
+ return this.modifiers.push(d("onKeyDown", e)), this;
1042
+ }
1043
+ onScroll(e) {
1044
+ return this.modifiers.push(d("onScroll", e)), this;
1045
+ }
1046
+ onKeyPress(e) {
1047
+ return this.modifiers.push(d("onKeyPress", e)), this;
1048
+ }
1049
+ onKeyUp(e) {
1050
+ return this.modifiers.push(d("onKeyUp", e)), this;
1051
+ }
1052
+ onDoubleClick(e) {
1053
+ return this.modifiers.push(d("onDoubleClick", e)), this;
1054
+ }
1055
+ onContextMenu(e) {
1056
+ return this.modifiers.push(d("onContextMenu", e)), this;
1057
+ }
1058
+ onWheel(e) {
1059
+ return this.modifiers.push(d("onWheel", e)), this;
1060
+ }
1061
+ onInput(e) {
1062
+ return this.modifiers.push(d("onInput", e)), this;
1063
+ }
1064
+ onChange(e) {
1065
+ return this.modifiers.push(d("onChange", e)), this;
1066
+ }
1067
+ onCopy(e) {
1068
+ return this.modifiers.push(d("onCopy", e)), this;
1069
+ }
1070
+ onCut(e) {
1071
+ return this.modifiers.push(d("onCut", e)), this;
1072
+ }
1073
+ onPaste(e) {
1074
+ return this.modifiers.push(d("onPaste", e)), this;
1075
+ }
1076
+ onSelect(e) {
1077
+ return this.modifiers.push(d("onSelect", e)), this;
1078
+ }
1079
+ // Transition modifier moved to @tachui/modifiers:
1080
+ // transition()
1081
+ // HTML and ARIA Attributes moved to @tachui/modifiers
1082
+ // Available via Proxy when @tachui/modifiers is imported:
1083
+ // - id(), data(), aria(), tabIndex()
1084
+ customProperties(e) {
1085
+ throw new Error(
1086
+ 'CSS property modifiers have been moved to @tachui/modifiers. Please import { customProperties } from "@tachui/modifiers" and use it directly instead of chaining it on components.'
1087
+ );
1088
+ }
1089
+ customProperty(e, t) {
1090
+ throw new Error(
1091
+ 'CSS property modifiers have been moved to @tachui/modifiers. Please import { customProperty } from "@tachui/modifiers" and use it directly instead of chaining it on components.'
1092
+ );
1093
+ }
1094
+ cssVariables(e) {
1095
+ throw new Error(
1096
+ 'CSS property modifiers have been moved to @tachui/modifiers. Please import { cssVariables } from "@tachui/modifiers" and use it directly instead of chaining it on components.'
1097
+ );
1098
+ }
1099
+ themeColors(e) {
1100
+ throw new Error(
1101
+ 'Theme modifiers have been moved to @tachui/modifiers. Please import { themeColors } from "@tachui/modifiers" and use it directly instead of chaining it on components.'
1102
+ );
1103
+ }
1104
+ designTokens(e) {
1105
+ throw new Error(
1106
+ 'Design token modifiers have been moved to @tachui/modifiers. Please import { designTokens } from "@tachui/modifiers" and use it directly instead of chaining it on components.'
1107
+ );
1108
+ }
1109
+ // State modifiers
1110
+ disabled(e = !0) {
1111
+ return this.modifiers.push(d("disabled", e)), this;
1112
+ }
1113
+ asHTML(e) {
1114
+ const t = d("asHTML", e);
1115
+ return this.modifiers.push(t), this;
1116
+ }
1117
+ // Build the final component with all modifiers applied
1118
+ build() {
1119
+ if ("modifiers" in this.component) {
1120
+ const e = this.component, t = Array.isArray(
1121
+ e.modifiers
1122
+ ) ? [...e.modifiers] : [], s = this.modifiers.filter(
1123
+ (a) => !e.modifiers.some(
1124
+ (h) => h === a
1125
+ // Reference equality check
1126
+ )
1127
+ ), r = [...t, ...s], i = e._originalComponent || e;
1128
+ let o;
1129
+ if (typeof i?.clone == "function")
1130
+ o = i.clone();
1131
+ else {
1132
+ const a = i && Object.getPrototypeOf(i) || Object.prototype;
1133
+ o = Object.create(a), Object.assign(o, i), o.props = { ...i.props }, o.cleanup = Array.isArray(i.cleanup) ? [...i.cleanup] : [], o.mounted = i.mounted ?? !1, o.id = i.id, o.type = i.type, o.render = typeof i.render == "function" ? i.render.bind(i) : () => [];
1134
+ }
1135
+ const l = te(
1136
+ o,
1137
+ r
1138
+ );
1139
+ return process.env.NODE_ENV === "test" && this.applyModifiersToPropsForTesting(
1140
+ l,
1141
+ r
1142
+ ), l;
1143
+ } else {
1144
+ const e = te(
1145
+ this.component,
1146
+ this.modifiers
1147
+ );
1148
+ return process.env.NODE_ENV === "test" && this.applyModifiersToPropsForTesting(
1149
+ e,
1150
+ this.modifiers
1151
+ ), e;
1152
+ }
1153
+ }
1154
+ applyModifiersToPropsForTesting(e, t) {
1155
+ e.props || (e.props = {}), t.forEach((s) => {
1156
+ if (s.type === "aria") {
1157
+ const r = s.properties?.aria || {};
1158
+ Object.entries(r).forEach(([i, o]) => {
1159
+ if (o != null)
1160
+ if (i === "role")
1161
+ e.props.role = o;
1162
+ else {
1163
+ const l = i.startsWith("aria-") ? i : `aria-${i}`;
1164
+ e.props[l] = typeof o == "boolean" ? o : String(o);
1165
+ }
1166
+ });
1167
+ } else if (dt.has(s.type)) {
1168
+ const r = s.properties || {};
1169
+ Object.entries(r).forEach(([i, o]) => {
1170
+ typeof o == "function" && (e.props[i] = o);
1171
+ });
1172
+ } else if (s.type === "interaction") {
1173
+ const r = s.properties;
1174
+ Object.entries(r).forEach(([i, o]) => {
1175
+ typeof o == "function" && (e.props[i] = o);
1176
+ }), (r.onSwipeLeft || r.onSwipeRight) && (e.props.onTouchStart = () => {
1177
+ });
1178
+ } else if (s.type === "utility") {
1179
+ const r = s.properties;
1180
+ e.props.style || (e.props.style = {}), Object.entries(r).forEach(([i, o]) => {
1181
+ o != null && (e.props.style[i] = o);
1182
+ });
1183
+ } else if (s.type === "tabIndex") {
1184
+ const r = s;
1185
+ e.props.tabIndex = r.properties?.tabIndex;
1186
+ } else if (s.type === "appearance") {
1187
+ const r = s.properties;
1188
+ e.props.style || (e.props.style = {}), r.backgroundColor && (e.props.style.backgroundColor = r.backgroundColor), r.foregroundColor && (e.props.style.color = r.foregroundColor), r.opacity !== void 0 && (e.props.style.opacity = r.opacity), r.role !== void 0 && (e.props.role = String(r.role)), r["aria-label"] !== void 0 && (e.props["aria-label"] = String(r["aria-label"])), r["aria-live"] !== void 0 && (e.props["aria-live"] = String(r["aria-live"])), r["aria-describedby"] !== void 0 && (e.props["aria-describedby"] = String(
1189
+ r["aria-describedby"]
1190
+ )), r["aria-modal"] !== void 0 && (e.props["aria-modal"] = r["aria-modal"] === "true" || r["aria-modal"] === !0), r["aria-hidden"] !== void 0 && (e.props["aria-hidden"] = String(r["aria-hidden"])), r.navigationTitle !== void 0 && (e.props.navigationTitle = String(r.navigationTitle)), r.navigationBarHidden !== void 0 && (e.props.navigationBarHidden = r.navigationBarHidden, r.navigationBarHidden && (e.props["aria-hidden"] = "true")), r.navigationBarItems !== void 0 && (e.props.navigationBarItems = r.navigationBarItems);
1191
+ } else if (s.type === "foreground") {
1192
+ const r = s.properties || {};
1193
+ r.color !== void 0 && (e.props.style || (e.props.style = {}), e.props.style.color = r.color);
1194
+ } else if (s.type === "background") {
1195
+ const r = s.properties || {};
1196
+ r.background !== void 0 && (e.props.style || (e.props.style = {}), e.props.style.background = r.background, typeof r.background == "string" && (e.props.style.backgroundColor = r.background));
1197
+ } else if (s.type === "transition") {
1198
+ const r = s.properties;
1199
+ e.props.style || (e.props.style = {}), r.transition && (e.props.style.transition = r.transition);
1200
+ } else if (s.type === "size") {
1201
+ const r = s.properties;
1202
+ e.props.style || (e.props.style = {}), r.minHeight !== void 0 && (e.props.style.minHeight = r.minHeight), r.minWidth !== void 0 && (e.props.style.minWidth = r.minWidth), r.maxHeight !== void 0 && (e.props.style.maxHeight = r.maxHeight), r.maxWidth !== void 0 && (e.props.style.maxWidth = r.maxWidth), r.width !== void 0 && (e.props.style.width = r.width), r.height !== void 0 && (e.props.style.height = r.height);
1203
+ } else if (s.type === "css") {
1204
+ const r = s.properties;
1205
+ e.props.style || (e.props.style = {}), Object.entries(r).forEach(([i, o]) => {
1206
+ o != null && (e.props.style[i] = o);
1207
+ });
1208
+ }
1209
+ });
1210
+ }
1211
+ // ============================================================================
1212
+ // MISSING MODIFIER METHODS - ACCESSIBILITY & NAVIGATION
1213
+ // ============================================================================
1214
+ // Individual ARIA methods for better developer experience
1215
+ role(e) {
1216
+ return this.modifiers.push(d("role", e)), this;
1217
+ }
1218
+ ariaLabel(e) {
1219
+ return this.modifiers.push(d("ariaLabel", e)), this;
1220
+ }
1221
+ ariaLive(e) {
1222
+ return this.modifiers.push(d("ariaLive", e)), this;
1223
+ }
1224
+ ariaDescribedBy(e) {
1225
+ return this.modifiers.push(d("ariaDescribedBy", e)), this;
1226
+ }
1227
+ ariaModal(e) {
1228
+ return this.modifiers.push(d("ariaModal", e)), this;
1229
+ }
1230
+ // Touch and gesture events
1231
+ onTouchStart(e) {
1232
+ return this.modifiers.push(d("onTouchStart", e)), this;
1233
+ }
1234
+ onTouchMove(e) {
1235
+ return this.modifiers.push(d("onTouchMove", e)), this;
1236
+ }
1237
+ onTouchEnd(e) {
1238
+ return this.modifiers.push(d("onTouchEnd", e)), this;
1239
+ }
1240
+ // Swipe gestures (simplified implementations)
1241
+ onSwipeLeft(e) {
1242
+ return this.modifiers.push(d("onSwipeLeft", e)), this;
1243
+ }
1244
+ onSwipeRight(e) {
1245
+ return this.modifiers.push(d("onSwipeRight", e)), this;
1246
+ }
1247
+ // Navigation methods - these delegate to the navigation package functions
1248
+ navigationTitle(e) {
1249
+ return this.modifiers.push(d("navigationTitle", e)), this;
1250
+ }
1251
+ navigationBarHidden(e = !0) {
1252
+ return this.modifiers.push(d("navigationBarHidden", e)), this;
1253
+ }
1254
+ navigationBarItems(e) {
1255
+ return this.modifiers.push(d("navigationBarItems", e)), this;
1256
+ }
1257
+ // ============================================================================
1258
+ // MISSING TRANSITION METHODS
1259
+ // ============================================================================
1260
+ transitions(e) {
1261
+ return this.modifiers.push(d("transitions", e)), this;
1262
+ }
1263
+ // All transition methods moved to @tachui/modifiers:
1264
+ // fadeTransition(), transformTransition(), colorTransition(), layoutTransition(),
1265
+ // buttonTransition(), cardTransition(), modalTransition(), smoothTransition(),
1266
+ // quickTransition(), slowTransition()
1267
+ // ============================================================================
1268
+ // SCROLL METHODS - ALL MOVED TO @tachui/modifiers
1269
+ // ============================================================================
1270
+ // scroll(), scrollBehavior(), overscrollBehavior(), overscrollBehaviorX(),
1271
+ // overscrollBehaviorY(), scrollMargin(), scrollPadding(), scrollSnap()
1272
+ // ============================================================================
1273
+ // MIGRATED MODIFIERS - NOW IN SPECIALIZED PACKAGES
1274
+ // ============================================================================
1275
+ // Viewport lifecycle modifiers - moved to @tachui/viewport
1276
+ onAppear(e) {
1277
+ throw new Error(
1278
+ 'onAppear modifier has been moved to @tachui/viewport. Please import { onAppear } from "@tachui/viewport/modifiers" and use it directly instead of chaining it on components.'
1279
+ );
1280
+ }
1281
+ onDisappear(e) {
1282
+ throw new Error(
1283
+ 'onDisappear modifier has been moved to @tachui/viewport. Please import { onDisappear } from "@tachui/viewport/modifiers" and use it directly instead of chaining it on components.'
1284
+ );
1285
+ }
1286
+ // Mobile gesture modifiers - moved to @tachui/mobile
1287
+ refreshable(e, t) {
1288
+ throw new Error(
1289
+ 'refreshable modifier has been moved to @tachui/mobile. Please import { refreshable } from "@tachui/mobile/modifiers" and use it directly instead of chaining it on components.'
1290
+ );
1291
+ }
1292
+ // onAppear and onDisappear have been moved to @tachui/viewport/modifiers
1293
+ // to maintain proper architectural boundaries
1294
+ // Transform modifiers
1295
+ scaleEffect(e, t, s) {
1296
+ return this.modifiers.push(d("scaleEffect", e, t, s)), this;
1297
+ }
1298
+ // Shadow and clipping modifiers moved to @tachui/modifiers
1299
+ // Available via Proxy when @tachui/modifiers is imported:
1300
+ // - shadow(), textShadow(), shadows(), shadowPreset(), clipped()
1301
+ };
1302
+ function pt(n) {
1303
+ const e = new ut(n);
1304
+ return new Proxy(e, {
1305
+ get(t, s, r) {
1306
+ if (s in t) {
1307
+ const i = t[s];
1308
+ return typeof i == "function" ? function(...o) {
1309
+ const l = i.apply(r, o);
1310
+ return l === t ? r : l;
1311
+ } : i;
1312
+ }
1313
+ if (typeof s == "string") {
1314
+ const i = Ae();
1315
+ if (s === "responsive")
1316
+ return function(...o) {
1317
+ const l = o[0];
1318
+ if (l) {
1319
+ const a = d(s, l);
1320
+ this.addModifierInternal(a);
1321
+ }
1322
+ return r;
1323
+ };
1324
+ if (s === "base" || s === "sm" || s === "md" || s === "lg" || s === "xl" || s === "2xl")
1325
+ return new Proxy({}, {
1326
+ get(o, l) {
1327
+ if (typeof l == "string")
1328
+ return (...a) => {
1329
+ const h = { [l]: { [s]: a[0] } }, c = d("responsive", h);
1330
+ return t.addModifierInternal(c), r;
1331
+ };
1332
+ }
1333
+ });
1334
+ if (i.has(s))
1335
+ return function(...o) {
1336
+ const l = d(s, ...o);
1337
+ return this.addModifierInternal(l), r;
1338
+ };
1339
+ }
1340
+ }
1341
+ });
1342
+ }
1343
+ class ft {
1344
+ register(e, t) {
1345
+ I.register(e, t);
1346
+ }
1347
+ get(e) {
1348
+ return I.get(e);
1349
+ }
1350
+ has(e) {
1351
+ return I.has(e);
1352
+ }
1353
+ list() {
1354
+ return I.list();
1355
+ }
1356
+ clear() {
1357
+ I.clear();
1358
+ }
1359
+ validateRegistry() {
1360
+ return I.validateRegistry();
1361
+ }
1362
+ }
1363
+ const V = new ft();
795
1364
  process.env.NODE_ENV === "development" && console.log("📤 Created RegistryAdapter for globalModifierRegistry", {
796
- registryId: te.instanceId,
797
- currentSize: te.list().length
1365
+ registryId: I.instanceId,
1366
+ currentSize: I.list().length
798
1367
  });
799
- function Ve(n, e, t = {}, s = {}) {
1368
+ function Me(n, e, t = {}, s = {}) {
800
1369
  if (!e.length) return n;
801
1370
  const r = {
802
1371
  componentId: t.componentId || "unknown",
@@ -812,51 +1381,51 @@ function Ve(n, e, t = {}, s = {}) {
812
1381
  };
813
1382
  switch (s.batch ? "batch" : "sequential") {
814
1383
  case "batch":
815
- return Fe(n, e, r, s);
1384
+ return gt(n, e, r, s);
816
1385
  default:
817
- return He(n, e, r, s);
1386
+ return mt(n, e, r, s);
818
1387
  }
819
1388
  }
820
- function He(n, e, t, s) {
1389
+ function mt(n, e, t, s) {
821
1390
  const r = [...e].sort(
822
- (h, c) => h.priority - c.priority
1391
+ (a, h) => a.priority - h.priority
823
1392
  );
824
1393
  let i = n;
825
- const o = [], a = [];
826
- for (const h of r)
1394
+ const o = [], l = [];
1395
+ for (const a of r)
827
1396
  try {
828
- const c = h.apply(i, t);
829
- c && typeof c == "object" && "type" in c && (i = c), s.immediate && !s.suppressEffects && (o.forEach((l) => l()), o.length = 0);
830
- } catch (c) {
831
- console.error(`Failed to apply modifier ${h.type}:`, c);
1397
+ const h = a.apply(i, t);
1398
+ h && typeof h == "object" && "type" in h && (i = h), s.immediate && !s.suppressEffects && (o.forEach((c) => c()), o.length = 0);
1399
+ } catch (h) {
1400
+ console.error(`Failed to apply modifier ${a.type}:`, h);
832
1401
  }
833
- if (a.length > 0) {
834
- const h = i.dispose;
1402
+ if (l.length > 0) {
1403
+ const a = i.dispose;
835
1404
  i.dispose = () => {
836
- a.forEach((c) => c()), h && h();
1405
+ l.forEach((h) => h()), a && a();
837
1406
  };
838
1407
  }
839
1408
  return i;
840
1409
  }
841
- function Fe(n, e, t, s) {
842
- const r = Ue(e);
1410
+ function gt(n, e, t, s) {
1411
+ const r = yt(e);
843
1412
  let i = n;
844
- const o = [], a = [];
845
- for (const [h, c] of r)
1413
+ const o = [], l = [];
1414
+ for (const [a, h] of r)
846
1415
  try {
847
- i = je(i, c, t);
848
- } catch (l) {
849
- (typeof process > "u" || process.env.NODE_ENV !== "test") && console.error(`Failed to apply modifier group ${h}:`, l);
1416
+ i = vt(i, h, t);
1417
+ } catch (c) {
1418
+ (typeof process > "u" || process.env.NODE_ENV !== "test") && console.error(`Failed to apply modifier group ${a}:`, c);
850
1419
  }
851
- if (s.suppressEffects || o.forEach((h) => h()), a.length > 0) {
852
- const h = i.dispose;
1420
+ if (s.suppressEffects || o.forEach((a) => a()), l.length > 0) {
1421
+ const a = i.dispose;
853
1422
  i.dispose = () => {
854
- a.forEach((c) => c()), h && h();
1423
+ l.forEach((h) => h()), a && a();
855
1424
  };
856
1425
  }
857
1426
  return i;
858
1427
  }
859
- function Ue(n) {
1428
+ function yt(n) {
860
1429
  const e = /* @__PURE__ */ new Map();
861
1430
  for (const t of n) {
862
1431
  const s = e.get(t.type) || [];
@@ -864,7 +1433,7 @@ function Ue(n) {
864
1433
  }
865
1434
  return e;
866
1435
  }
867
- function je(n, e, t) {
1436
+ function vt(n, e, t) {
868
1437
  const s = [...e].sort(
869
1438
  (i, o) => i.priority - o.priority
870
1439
  );
@@ -878,7 +1447,80 @@ function je(n, e, t) {
878
1447
  }
879
1448
  return r;
880
1449
  }
881
- const H = /* @__PURE__ */ new Map([
1450
+ function bt(n) {
1451
+ return n && typeof n.concat == "function" && typeof n.toSegment == "function" && typeof n.isConcatenatable == "function";
1452
+ }
1453
+ function te(n, e = []) {
1454
+ const t = {
1455
+ type: n.type,
1456
+ id: n.id,
1457
+ props: { ...n.props },
1458
+ mounted: n.mounted,
1459
+ cleanup: n.cleanup ? [...n.cleanup] : [],
1460
+ modifiers: [...e],
1461
+ modifierBuilder: null,
1462
+ // Will be set after component is created
1463
+ render: n.render ? n.render.bind(n) : () => [],
1464
+ // Bind to original component or provide default
1465
+ // Store reference to original component for modifier context
1466
+ _originalComponent: n
1467
+ };
1468
+ t.modifierBuilder = pt(
1469
+ t
1470
+ ), t.modifier = t.modifierBuilder, Object.prototype.hasOwnProperty.call(n, "modifier") || Object.defineProperty(n, "modifier", {
1471
+ configurable: !0,
1472
+ enumerable: !1,
1473
+ get() {
1474
+ return t.modifierBuilder;
1475
+ }
1476
+ }), n.modifiableComponent = t;
1477
+ const s = n._enhancedLifecycle;
1478
+ s && (t._enhancedLifecycle = s, "domElements" in n && (t.domElements = n.domElements), "primaryElement" in n && (t.primaryElement = n.primaryElement), "domReady" in n && (t.domReady = n.domReady), "children" in n && (t.children = n.children));
1479
+ const r = n.render ? n.render.bind(n) : () => [];
1480
+ return t.render = () => {
1481
+ const i = r();
1482
+ return (Array.isArray(i) ? i : [i]).map((o, l) => (o && typeof o == "object" && (l === 0 ? (o.modifiers = [...t.modifiers], o.componentId = n.id, o._originalComponent = t._originalComponent) : (o.modifiers && delete o.modifiers, o.componentId && o.componentId === n.id && delete o.componentId)), o));
1483
+ }, bt(n) && (t.concat = function(i) {
1484
+ const o = {
1485
+ id: t.id,
1486
+ component: t,
1487
+ modifiers: t.modifiers,
1488
+ render: () => {
1489
+ const h = t.render();
1490
+ return Array.isArray(h) ? h[0] : h;
1491
+ }
1492
+ }, l = i.toSegment(), a = {
1493
+ totalSegments: i instanceof Y ? i.segments.length + 1 : 2,
1494
+ accessibilityRole: "text",
1495
+ // Simplified for now
1496
+ semanticStructure: "inline"
1497
+ // Simplified for now
1498
+ };
1499
+ return i instanceof Y ? new Y(
1500
+ [o, ...i.segments],
1501
+ a
1502
+ ) : new Y([o, l], a);
1503
+ }, t.toSegment = function() {
1504
+ return {
1505
+ id: t.id,
1506
+ component: t,
1507
+ modifiers: t.modifiers,
1508
+ render: () => {
1509
+ const i = t.render();
1510
+ return Array.isArray(i) ? i[0] : i;
1511
+ }
1512
+ };
1513
+ }, t.isConcatenatable = function() {
1514
+ return !0;
1515
+ }), typeof n?.clone == "function" && (t.clone = (i) => {
1516
+ const o = n.clone(i);
1517
+ return te(
1518
+ o,
1519
+ [...t.modifiers]
1520
+ );
1521
+ }), t;
1522
+ }
1523
+ const K = /* @__PURE__ */ new Map([
882
1524
  ["nav", { role: "navigation", applyARIA: !0 }],
883
1525
  ["main", { role: "main", applyARIA: !0 }],
884
1526
  ["article", { role: "article", applyARIA: !0 }],
@@ -896,28 +1538,28 @@ const H = /* @__PURE__ */ new Map([
896
1538
  ["a", { role: "link", applyARIA: !1 }]
897
1539
  // Usually implicit
898
1540
  ]);
899
- let We = {
1541
+ let St = {
900
1542
  autoApplySemanticRoles: !0,
901
1543
  warnOnOverrides: process.env.NODE_ENV !== "production",
902
1544
  warnOnSemanticIssues: process.env.NODE_ENV !== "production",
903
1545
  validateTags: !0,
904
1546
  allowInvalidTags: !0
905
1547
  };
906
- function Be() {
907
- return { ...We };
1548
+ function wt() {
1549
+ return { ...St };
908
1550
  }
909
- var Qe = Object.defineProperty, qe = (n, e, t) => e in n ? Qe(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, Ye = (n, e, t) => qe(n, e + "", t);
910
- const ae = class L {
1551
+ var Ct = Object.defineProperty, Et = (n, e, t) => e in n ? Ct(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, At = (n, e, t) => Et(n, e + "", t);
1552
+ const xe = class W {
911
1553
  static getInstance() {
912
- return L.instance || (L.instance = new L()), L.instance;
1554
+ return W.instance || (W.instance = new W()), W.instance;
913
1555
  }
914
1556
  /**
915
1557
  * Apply semantic ARIA attributes to an element based on its tag
916
1558
  */
917
1559
  applySemanticAttributes(e, t, s) {
918
- const r = Be();
1560
+ const r = wt();
919
1561
  if (!r.autoApplySemanticRoles) return;
920
- const i = H.get(t);
1562
+ const i = K.get(t);
921
1563
  if (!(!i || !i.applyARIA)) {
922
1564
  if (s?.role) {
923
1565
  r.warnOnSemanticIssues && process.env.NODE_ENV !== "production" && console.warn(
@@ -938,20 +1580,20 @@ const ae = class L {
938
1580
  * Get semantic role information for a tag
939
1581
  */
940
1582
  getSemanticRole(e) {
941
- return H.get(e);
1583
+ return K.get(e);
942
1584
  }
943
1585
  /**
944
1586
  * Check if a tag has automatic ARIA role application enabled
945
1587
  */
946
1588
  hasAutoARIA(e) {
947
- const t = H.get(e);
1589
+ const t = K.get(e);
948
1590
  return t ? t.applyARIA : !1;
949
1591
  }
950
1592
  /**
951
1593
  * Get all tags that support automatic ARIA roles
952
1594
  */
953
1595
  getAutoARIATags() {
954
- return Array.from(H.entries()).filter(([, e]) => e.applyARIA).map(([e]) => e);
1596
+ return Array.from(K.entries()).filter(([, e]) => e.applyARIA).map(([e]) => e);
955
1597
  }
956
1598
  /**
957
1599
  * Apply semantic attributes during DOM node creation
@@ -972,11 +1614,11 @@ const ae = class L {
972
1614
  }
973
1615
  }
974
1616
  };
975
- Ye(ae, "instance");
976
- let Xe = ae;
977
- const Ge = Xe.getInstance();
978
- var Ke = Object.defineProperty, Ze = (n, e, t) => e in n ? Ke(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, q = (n, e, t) => Ze(n, typeof e != "symbol" ? e + "" : e, t);
979
- const Je = /* @__PURE__ */ new Set([
1617
+ At(xe, "instance");
1618
+ let Mt = xe;
1619
+ const xt = Mt.getInstance();
1620
+ var It = Object.defineProperty, Tt = (n, e, t) => e in n ? It(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, ne = (n, e, t) => Tt(n, typeof e != "symbol" ? e + "" : e, t);
1621
+ const $t = /* @__PURE__ */ new Set([
980
1622
  "click",
981
1623
  "dblclick",
982
1624
  "mousedown",
@@ -995,16 +1637,16 @@ const Je = /* @__PURE__ */ new Set([
995
1637
  "keydown",
996
1638
  "keyup",
997
1639
  "keypress"
998
- ]), se = /* @__PURE__ */ new Set([
1640
+ ]), be = /* @__PURE__ */ new Set([
999
1641
  "scroll",
1000
1642
  "wheel",
1001
1643
  "touchstart",
1002
1644
  "touchmove",
1003
1645
  "touchend"
1004
1646
  ]);
1005
- class et {
1647
+ class Nt {
1006
1648
  constructor() {
1007
- q(this, "containerListeners", /* @__PURE__ */ new WeakMap()), q(this, "elementHandlers", /* @__PURE__ */ new WeakMap()), q(this, "handlerCounts", /* @__PURE__ */ new WeakMap());
1649
+ ne(this, "containerListeners", /* @__PURE__ */ new WeakMap()), ne(this, "elementHandlers", /* @__PURE__ */ new WeakMap()), ne(this, "handlerCounts", /* @__PURE__ */ new WeakMap());
1008
1650
  }
1009
1651
  /**
1010
1652
  * Register an event handler with delegation
@@ -1014,8 +1656,8 @@ class et {
1014
1656
  i && i.has(s) && this.unregister(e, t, s), i || (i = /* @__PURE__ */ new Map(), this.elementHandlers.set(t, i)), i.set(s, { handler: r, element: t });
1015
1657
  let o = this.handlerCounts.get(e);
1016
1658
  o || (o = /* @__PURE__ */ new Map(), this.handlerCounts.set(e, o));
1017
- const a = o.get(s) || 0;
1018
- return o.set(s, a + 1), this.ensureRootListener(e, s), () => {
1659
+ const l = o.get(s) || 0;
1660
+ return o.set(s, l + 1), this.ensureRootListener(e, s), () => {
1019
1661
  this.unregister(e, t, s);
1020
1662
  };
1021
1663
  }
@@ -1040,7 +1682,7 @@ class et {
1040
1682
  return;
1041
1683
  const r = (o) => {
1042
1684
  this.handleDelegatedEvent(e, t, o);
1043
- }, i = se.has(t) ? { passive: !0 } : { passive: !1 };
1685
+ }, i = be.has(t) ? { passive: !0 } : { passive: !1 };
1044
1686
  e.addEventListener(t, r, i), s.set(t, r);
1045
1687
  }
1046
1688
  /**
@@ -1062,12 +1704,12 @@ class et {
1062
1704
  for (; i && i !== e; ) {
1063
1705
  const o = this.elementHandlers.get(i);
1064
1706
  if (o) {
1065
- const a = o.get(t);
1066
- if (a) {
1707
+ const l = o.get(t);
1708
+ if (l) {
1067
1709
  try {
1068
- a.handler(s);
1069
- } catch (h) {
1070
- console.error(`Delegated event handler error for ${t}:`, h);
1710
+ l.handler(s);
1711
+ } catch (a) {
1712
+ console.error(`Delegated event handler error for ${t}:`, a);
1071
1713
  }
1072
1714
  return;
1073
1715
  }
@@ -1079,13 +1721,13 @@ class et {
1079
1721
  * Check if event type should use delegation
1080
1722
  */
1081
1723
  shouldDelegate(e) {
1082
- return Je.has(e);
1724
+ return $t.has(e);
1083
1725
  }
1084
1726
  /**
1085
1727
  * Check if event type should use passive listeners
1086
1728
  */
1087
1729
  shouldBePassive(e) {
1088
- return se.has(e);
1730
+ return be.has(e);
1089
1731
  }
1090
1732
  /**
1091
1733
  * Get metrics for debugging
@@ -1114,11 +1756,11 @@ class et {
1114
1756
  }), this.containerListeners.delete(e)), this.handlerCounts.delete(e);
1115
1757
  }
1116
1758
  }
1117
- const Y = new et();
1118
- var tt = Object.defineProperty, st = (n, e, t) => e in n ? tt(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, O = (n, e, t) => st(n, typeof e != "symbol" ? e + "" : e, t);
1119
- class le {
1759
+ const oe = new Nt();
1760
+ var Rt = Object.defineProperty, Ot = (n, e, t) => e in n ? Rt(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, j = (n, e, t) => Ot(n, typeof e != "symbol" ? e + "" : e, t);
1761
+ class Ie {
1120
1762
  constructor() {
1121
- O(this, "nodeMap", /* @__PURE__ */ new WeakMap()), O(this, "cleanupMap", /* @__PURE__ */ new WeakMap()), O(this, "renderedNodes", /* @__PURE__ */ new Set()), O(this, "elementToContainer", /* @__PURE__ */ new WeakMap()), O(this, "metrics", {
1763
+ j(this, "nodeMap", /* @__PURE__ */ new WeakMap()), j(this, "cleanupMap", /* @__PURE__ */ new WeakMap()), j(this, "renderedNodes", /* @__PURE__ */ new Set()), j(this, "elementToContainer", /* @__PURE__ */ new WeakMap()), j(this, "metrics", {
1122
1764
  created: 0,
1123
1765
  adopted: 0,
1124
1766
  removed: 0,
@@ -1206,69 +1848,69 @@ class le {
1206
1848
  return;
1207
1849
  this.setElementProp(e, o, void 0);
1208
1850
  }
1209
- }), Object.entries(r).forEach(([o, a]) => {
1210
- o === "key" || o === "children" || i && i[o] === a || this.applyProp(e, o, a, s);
1851
+ }), Object.entries(r).forEach(([o, l]) => {
1852
+ o === "key" || o === "children" || i && i[o] === l || this.applyProp(e, o, l, s);
1211
1853
  }), t.__appliedProps = { ...r }, "componentMetadata" in t && t.componentMetadata) {
1212
1854
  const o = t.componentMetadata;
1213
1855
  if (o.overriddenTo && o.originalType && t.tag)
1214
1856
  try {
1215
- Ge.processElementNode(
1857
+ xt.processElementNode(
1216
1858
  e,
1217
1859
  t.tag,
1218
1860
  o,
1219
1861
  r?.aria || void 0
1220
1862
  );
1221
- } catch (a) {
1222
- console.warn("[tachUI] Could not process semantic attributes:", a);
1863
+ } catch (l) {
1864
+ console.warn("[tachUI] Could not process semantic attributes:", l);
1223
1865
  }
1224
1866
  }
1225
1867
  }
1226
1868
  updateChildren(e, t) {
1227
1869
  const s = t.__renderedChildren || [], r = t.children || [], i = this.elementToContainer.get(e), o = typeof process < "u" && process.env?.TACHUI_DEBUG_PHASE1B === "1";
1228
- if (s.length === r.length && s.length > 0 && s.every((l, d) => l === r[d])) {
1229
- r.forEach((l) => {
1230
- this.updateExistingNode(l);
1870
+ if (s.length === r.length && s.length > 0 && s.every((c, u) => c === r[u])) {
1871
+ r.forEach((c) => {
1872
+ this.updateExistingNode(c);
1231
1873
  }), t.__renderedChildren = r;
1232
1874
  return;
1233
1875
  }
1234
1876
  if (s.length === 0) {
1235
- r.forEach((l) => {
1236
- if (!l || l.type == null) return;
1237
- const d = this.renderSingle(l, i);
1238
- this.appendNode(e, d);
1877
+ r.forEach((c) => {
1878
+ if (!c || c.type == null) return;
1879
+ const u = this.renderSingle(c, i);
1880
+ this.appendNode(e, u);
1239
1881
  }), t.__renderedChildren = r;
1240
1882
  return;
1241
1883
  }
1242
- const a = /* @__PURE__ */ new Map(), h = [];
1243
- s.forEach((l) => {
1244
- l.key != null ? a.set(l.key, l) : h.push(l);
1884
+ const l = /* @__PURE__ */ new Map(), a = [];
1885
+ s.forEach((c) => {
1886
+ c.key != null ? l.set(c.key, c) : a.push(c);
1245
1887
  });
1246
- const c = Array.from({ length: r.length });
1247
- if (r.forEach((l, d) => {
1888
+ const h = Array.from({ length: r.length });
1889
+ if (r.forEach((c, u) => {
1248
1890
  let f;
1249
- l.key != null ? (f = a.get(l.key), f && a.delete(l.key)) : h.length > 0 && (f = h.shift()), f && this.adoptNode(f, l);
1250
- const p = this.renderSingle(l, i);
1251
- c[d] = p;
1891
+ c.key != null ? (f = l.get(c.key), f && l.delete(c.key)) : a.length > 0 && (f = a.shift()), f && this.adoptNode(f, c);
1892
+ const p = this.renderSingle(c, i);
1893
+ h[u] = p;
1252
1894
  }), o && t.tag) {
1253
- const l = r.map((p) => p.key ?? null), d = s.map((p) => p.key ?? null), f = c.map(
1895
+ const c = r.map((p) => p.key ?? null), u = s.map((p) => p.key ?? null), f = h.map(
1254
1896
  (p) => p && "getAttribute" in p ? p.getAttribute("data-id") : null
1255
1897
  );
1256
1898
  console.log("[diff] state", {
1257
1899
  parent: t.tag,
1258
- prev: d,
1259
- next: l,
1900
+ prev: u,
1901
+ next: c,
1260
1902
  dom: f
1261
1903
  });
1262
1904
  }
1263
- if (a.forEach((l) => {
1264
- this.removeNode(l);
1265
- }), h.forEach((l) => {
1266
- this.removeNode(l);
1905
+ if (l.forEach((c) => {
1906
+ this.removeNode(c);
1907
+ }), a.forEach((c) => {
1908
+ this.removeNode(c);
1267
1909
  }), typeof e.insertBefore == "function" && typeof e.appendChild == "function") {
1268
- let l = null;
1269
- for (let d = c.length - 1; d >= 0; d--) {
1270
- const f = c[d];
1271
- f && (this.insertNode(e, f, l), l = f);
1910
+ let c = null;
1911
+ for (let u = h.length - 1; u >= 0; u--) {
1912
+ const f = h[u];
1913
+ f && (this.insertNode(e, f, c), c = f);
1272
1914
  }
1273
1915
  }
1274
1916
  t.__renderedChildren = r;
@@ -1291,7 +1933,7 @@ class le {
1291
1933
  if (e.element && e.element instanceof Text) {
1292
1934
  const t = e.element;
1293
1935
  if (t.textContent !== e.text && (t.textContent = e.text || "", this.recordTextUpdate()), e.reactiveContent && !e.dispose) {
1294
- const s = e.reactiveContent, r = w(() => {
1936
+ const s = e.reactiveContent, r = T(() => {
1295
1937
  try {
1296
1938
  const i = s();
1297
1939
  e.text = String(i);
@@ -1317,7 +1959,7 @@ class le {
1317
1959
  createTextNode(e) {
1318
1960
  const t = document.createTextNode(e.text || "");
1319
1961
  if (this.metrics.created++, this.recordTextUpdate(), e.reactiveContent) {
1320
- const s = e.reactiveContent, r = w(() => {
1962
+ const s = e.reactiveContent, r = T(() => {
1321
1963
  try {
1322
1964
  const i = s();
1323
1965
  e.text = String(i);
@@ -1365,8 +2007,8 @@ class le {
1365
2007
  this.applyEventListener(e, t, s, r);
1366
2008
  return;
1367
2009
  }
1368
- if (T(s) || P(s)) {
1369
- const i = w(() => {
2010
+ if (F(s) || B(s)) {
2011
+ const i = T(() => {
1370
2012
  const o = s();
1371
2013
  this.setElementProp(e, t, o);
1372
2014
  });
@@ -1401,8 +2043,8 @@ class le {
1401
2043
  * Apply className with reactive updates
1402
2044
  */
1403
2045
  applyClassName(e, t) {
1404
- if (T(t) || P(t)) {
1405
- const s = w(() => {
2046
+ if (F(t) || B(t)) {
2047
+ const s = T(() => {
1406
2048
  const r = t(), i = this.normalizeClassName(r);
1407
2049
  e.className !== i && (e.className = i, this.recordAttributeWrite());
1408
2050
  });
@@ -1425,8 +2067,8 @@ class le {
1425
2067
  */
1426
2068
  applyStyle(e, t) {
1427
2069
  const s = e;
1428
- if (T(t) || P(t)) {
1429
- const r = w(() => {
2070
+ if (F(t) || B(t)) {
2071
+ const r = T(() => {
1430
2072
  const i = t();
1431
2073
  this.setElementStyles(s, i);
1432
2074
  });
@@ -1449,26 +2091,26 @@ class le {
1449
2091
  Object.keys(s).forEach((r) => {
1450
2092
  r in t || (e.style.removeProperty(r.replace(/[A-Z]/g, (i) => `-${i.toLowerCase()}`)), this.recordAttributeRemoval());
1451
2093
  }), Object.entries(t).forEach(([r, i]) => {
1452
- if (T(i) || P(i)) {
1453
- const o = w(() => {
1454
- const a = i(), h = r.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`);
1455
- if (a == null)
1456
- e.style.removeProperty(h), this.recordAttributeRemoval();
2094
+ if (F(i) || B(i)) {
2095
+ const o = T(() => {
2096
+ const l = i(), a = r.replace(/[A-Z]/g, (h) => `-${h.toLowerCase()}`);
2097
+ if (l == null)
2098
+ e.style.removeProperty(a), this.recordAttributeRemoval();
1457
2099
  else {
1458
- const c = String(a);
1459
- e.style.getPropertyValue(h) !== c && (e.style.setProperty(h, c), this.recordAttributeWrite());
2100
+ const h = String(l);
2101
+ e.style.getPropertyValue(a) !== h && (e.style.setProperty(a, h), this.recordAttributeWrite());
1460
2102
  }
1461
2103
  });
1462
2104
  this.addCleanup(e, () => {
1463
2105
  o.dispose();
1464
2106
  });
1465
2107
  } else {
1466
- const o = r.replace(/[A-Z]/g, (a) => `-${a.toLowerCase()}`);
2108
+ const o = r.replace(/[A-Z]/g, (l) => `-${l.toLowerCase()}`);
1467
2109
  if (i == null)
1468
2110
  e.style.getPropertyValue(o) && (e.style.removeProperty(o), this.recordAttributeRemoval());
1469
2111
  else {
1470
- const a = String(i);
1471
- e.style.getPropertyValue(o) !== a && (e.style.setProperty(o, a), this.recordAttributeWrite());
2112
+ const l = String(i);
2113
+ e.style.getPropertyValue(o) !== l && (e.style.setProperty(o, l), this.recordAttributeWrite());
1472
2114
  }
1473
2115
  }
1474
2116
  }), e.__appliedStyles = { ...t };
@@ -1481,25 +2123,25 @@ class le {
1481
2123
  let i = t.slice(2).toLowerCase();
1482
2124
  i === "focus" ? i = "focusin" : i === "blur" && (i = "focusout");
1483
2125
  const o = r || this.elementToContainer.get(e);
1484
- if (o && Y.shouldDelegate(i)) {
1485
- const c = Y.register(
2126
+ if (o && oe.shouldDelegate(i)) {
2127
+ const h = oe.register(
1486
2128
  o,
1487
2129
  e,
1488
2130
  i,
1489
2131
  s
1490
2132
  );
1491
- this.addCleanup(e, c);
2133
+ this.addCleanup(e, h);
1492
2134
  return;
1493
2135
  }
1494
- const a = (c) => {
2136
+ const l = (h) => {
1495
2137
  try {
1496
- s(c);
1497
- } catch (l) {
1498
- console.error(`Event handler error for ${t}:`, l);
2138
+ s(h);
2139
+ } catch (c) {
2140
+ console.error(`Event handler error for ${t}:`, c);
1499
2141
  }
1500
- }, h = Y.shouldBePassive(i) ? { passive: !0 } : void 0;
1501
- e.addEventListener(i, a, h), this.addCleanup(e, () => {
1502
- e.removeEventListener(i, a, h);
2142
+ }, a = oe.shouldBePassive(i) ? { passive: !0 } : void 0;
2143
+ e.addEventListener(i, l, a), this.addCleanup(e, () => {
2144
+ e.removeEventListener(i, l, a);
1503
2145
  });
1504
2146
  }
1505
2147
  /**
@@ -1547,7 +2189,7 @@ class le {
1547
2189
  */
1548
2190
  createReactiveText(e) {
1549
2191
  const t = document.createTextNode("");
1550
- return w(() => {
2192
+ return T(() => {
1551
2193
  t.textContent = e();
1552
2194
  }), t;
1553
2195
  }
@@ -1556,7 +2198,7 @@ class le {
1556
2198
  */
1557
2199
  createReactiveElement(e, t, s) {
1558
2200
  const r = document.createElement(e);
1559
- return w(() => {
2201
+ return T(() => {
1560
2202
  const i = t();
1561
2203
  this.applyProps(r, i);
1562
2204
  }), s && s.forEach((i) => {
@@ -1572,7 +2214,7 @@ class le {
1572
2214
  t.length > 0 && this.recordModifierApplications(t.length);
1573
2215
  const r = s.componentInstance || s.componentMetadata && s.componentMetadata.componentInstance || s._originalComponent || // Use original component if available
1574
2216
  s;
1575
- Ve(
2217
+ Me(
1576
2218
  s,
1577
2219
  t,
1578
2220
  {
@@ -1661,11 +2303,497 @@ class le {
1661
2303
  this.metrics.modifierApplications += e;
1662
2304
  }
1663
2305
  }
1664
- new le();
1665
- var rt = Object.defineProperty, it = (n, e, t) => e in n ? rt(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, E = (n, e, t) => it(n, typeof e != "symbol" ? e + "" : e, t);
1666
- class nt {
2306
+ new Ie();
2307
+ function Pt(n, e, ...t) {
2308
+ const s = t.flat().filter((i) => i != null).map((i) => typeof i == "string" || typeof i == "number" ? { type: "text", text: String(i) } : i), r = {
2309
+ type: "element",
2310
+ tag: n,
2311
+ props: e || {},
2312
+ children: s,
2313
+ key: e?.key ?? void 0
2314
+ };
2315
+ return e && "componentMetadata" in e && (r.componentMetadata = e.componentMetadata), r;
2316
+ }
2317
+ var kt = Object.defineProperty, Lt = (n, e, t) => e in n ? kt(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, P = (n, e, t) => Lt(n, typeof e != "symbol" ? e + "" : e, t);
2318
+ let Y = class ee {
2319
+ // Required by ModifiableComponent interface
2320
+ constructor(e, t, s = !0) {
2321
+ this.metadata = t, P(this, "type", "component"), P(this, "id"), P(this, "mounted", !1), P(this, "cleanup", []), P(this, "props", {}), P(this, "segments"), P(this, "modifiers", []), this.id = `concat-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`, this.segments = e;
2322
+ }
2323
+ /**
2324
+ * Render the concatenated component to DOM nodes (Enhanced - Phase 4.2)
2325
+ */
2326
+ render() {
2327
+ const e = this.determineContainerClass(), t = this.buildAccessibilityLabel(), s = this.buildAccessibilityAttributes(), r = this.modifiers && this.modifiers.some((o) => o.type === "asHTML");
2328
+ let i;
2329
+ return r ? i = this.renderSegmentsWithAsHTML() : i = this.segments.map((o) => o.render()).flat(), [Pt("span", {
2330
+ class: `tachui-concatenated ${e}`,
2331
+ ...s,
2332
+ "aria-label": t || void 0,
2333
+ // Enhanced live region support for dynamic content
2334
+ ...this.hasInteractiveContent() && {
2335
+ "aria-live": "polite",
2336
+ "aria-atomic": "true"
2337
+ },
2338
+ // Add debug information in development
2339
+ ...process.env.NODE_ENV === "development" && {
2340
+ "data-concatenated-segments": this.segments.length,
2341
+ "data-semantic-structure": this.metadata.semanticStructure,
2342
+ "data-accessibility-role": this.metadata.accessibilityRole
2343
+ }
2344
+ }, ...i)];
2345
+ }
2346
+ /**
2347
+ * Build comprehensive accessibility attributes
2348
+ */
2349
+ buildAccessibilityAttributes() {
2350
+ const e = {};
2351
+ switch (this.metadata.accessibilityRole) {
2352
+ case "text":
2353
+ break;
2354
+ case "group":
2355
+ e.role = "group", e["aria-describedby"] = this.generateGroupDescription();
2356
+ break;
2357
+ case "composite":
2358
+ e.role = "group", e["aria-roledescription"] = "interactive content group";
2359
+ break;
2360
+ }
2361
+ return this.metadata.semanticStructure === "mixed" && this.segments.length > 2 && (e["aria-flowto"] = this.generateFlowTargets()), this.hasInteractiveContent() && (e.tabindex = "0", e["aria-description"] = "Contains interactive elements. Use Tab to navigate."), e;
2362
+ }
2363
+ /**
2364
+ * Generate description for grouped content
2365
+ */
2366
+ generateGroupDescription() {
2367
+ const e = this.getUniqueComponentTypes();
2368
+ return e.length === 1 ? `Group of ${this.segments.length} ${e[0]} elements` : `Group containing ${e.join(", ")} elements`;
2369
+ }
2370
+ /**
2371
+ * Generate flow targets for reading order
2372
+ */
2373
+ generateFlowTargets() {
2374
+ return "";
2375
+ }
2376
+ /**
2377
+ * Check if concatenated content contains interactive elements
2378
+ */
2379
+ hasInteractiveContent() {
2380
+ return this.segments.some((e) => {
2381
+ const t = e.component.constructor.name;
2382
+ return t === "EnhancedButton" || t === "EnhancedLinkComponent";
2383
+ });
2384
+ }
2385
+ /**
2386
+ * Get unique component types in this concatenation
2387
+ */
2388
+ getUniqueComponentTypes() {
2389
+ const e = new Set(this.segments.map((t) => {
2390
+ switch (t.component.constructor.name) {
2391
+ case "EnhancedText":
2392
+ return "text";
2393
+ case "EnhancedImage":
2394
+ return "image";
2395
+ case "EnhancedButton":
2396
+ return "button";
2397
+ case "EnhancedLinkComponent":
2398
+ return "link";
2399
+ default:
2400
+ return "component";
2401
+ }
2402
+ }));
2403
+ return Array.from(e);
2404
+ }
2405
+ /**
2406
+ * Concatenate this component with another concatenatable component
2407
+ */
2408
+ concat(e) {
2409
+ let t, s;
2410
+ return e instanceof ee ? (t = [...this.segments, ...e.segments], s = this.mergeMetadata(this.metadata, e.metadata, t.length)) : (t = [...this.segments, e.toSegment()], s = this.mergeMetadata(
2411
+ this.metadata,
2412
+ {
2413
+ totalSegments: 1,
2414
+ accessibilityRole: this.determineComponentAccessibilityRole(e),
2415
+ semanticStructure: this.determineComponentSemanticStructure(e)
2416
+ },
2417
+ t.length
2418
+ )), new ee(t, s);
2419
+ }
2420
+ /**
2421
+ * Convert this concatenated component to a segment (for further concatenation)
2422
+ */
2423
+ toSegment() {
2424
+ return {
2425
+ id: this.id,
2426
+ component: this,
2427
+ // Cast to satisfy interface requirements
2428
+ modifiers: [],
2429
+ // Concatenated components don't have their own modifiers
2430
+ render: () => this.render()[0]
2431
+ };
2432
+ }
2433
+ /**
2434
+ * Check if this component supports concatenation
2435
+ */
2436
+ isConcatenatable() {
2437
+ return !0;
2438
+ }
2439
+ /**
2440
+ * Determine the appropriate CSS class for the container
2441
+ */
2442
+ determineContainerClass() {
2443
+ const e = this.segments.map((o) => o.component.constructor.name), t = e.some((o) => o === "EnhancedImage"), s = e.some((o) => o === "EnhancedText"), r = e.some((o) => o === "EnhancedButton"), i = e.some((o) => o === "EnhancedLink");
2444
+ return t && s && (r || i) ? "mixed-content" : t && s ? "image-text-composition" : t && !s ? "image-composition" : s && !t ? "text-composition" : "generic-composition";
2445
+ }
2446
+ /**
2447
+ * Build comprehensive accessibility label for screen readers (Enhanced - Phase 4.2)
2448
+ */
2449
+ buildAccessibilityLabel() {
2450
+ const e = this.segments.map((t) => this.extractAccessibilityText(t)).filter(Boolean);
2451
+ return e.length === 0 ? "" : this.joinAccessibilityLabels(e);
2452
+ }
2453
+ /**
2454
+ * Intelligently join accessibility labels based on content and structure
2455
+ */
2456
+ joinAccessibilityLabels(e) {
2457
+ if (e.length === 1) return e[0];
2458
+ switch (this.metadata.semanticStructure) {
2459
+ case "inline":
2460
+ return e.join(" ");
2461
+ case "block":
2462
+ return e.join(". ");
2463
+ case "mixed":
2464
+ return this.smartJoinLabels(e);
2465
+ default:
2466
+ return e.join(" ");
2467
+ }
2468
+ }
2469
+ /**
2470
+ * Context-aware label joining for mixed content
2471
+ */
2472
+ smartJoinLabels(e) {
2473
+ const t = [];
2474
+ for (let s = 0; s < e.length; s++) {
2475
+ const r = e[s], i = e[s + 1];
2476
+ t.push(r), i && (this.needsExplicitSeparator(r, i) ? t.push(". ") : t.push(" "));
2477
+ }
2478
+ return t.join("");
2479
+ }
2480
+ /**
2481
+ * Determine if two accessibility labels need explicit separation
2482
+ */
2483
+ needsExplicitSeparator(e, t) {
2484
+ const s = /[.!?:;]$/.test(e.trim()), r = /^[A-Z]/.test(t.trim());
2485
+ return !s && r;
2486
+ }
2487
+ /**
2488
+ * Extract accessibility text from a component segment
2489
+ */
2490
+ extractAccessibilityText(e) {
2491
+ const t = e.component;
2492
+ switch (t.constructor.name) {
2493
+ case "EnhancedText":
2494
+ return t.content || t.title || "";
2495
+ case "EnhancedImage":
2496
+ return t.alt || t.accessibilityLabel || "Image";
2497
+ case "EnhancedButton":
2498
+ return t.title || t.accessibilityLabel || "Button";
2499
+ case "EnhancedLink":
2500
+ return t.title || t.accessibilityLabel || "Link";
2501
+ case "ConcatenatedComponent":
2502
+ return t.buildAccessibilityLabel();
2503
+ default:
2504
+ return t.accessibilityLabel || "";
2505
+ }
2506
+ }
2507
+ /**
2508
+ * Merge metadata from two concatenation operations
2509
+ */
2510
+ mergeMetadata(e, t, s) {
2511
+ return {
2512
+ totalSegments: s,
2513
+ accessibilityRole: this.mergeAccessibilityRoles(
2514
+ e.accessibilityRole,
2515
+ t.accessibilityRole
2516
+ ),
2517
+ semanticStructure: this.mergeSemanticStructures(
2518
+ e.semanticStructure,
2519
+ t.semanticStructure
2520
+ )
2521
+ };
2522
+ }
2523
+ /**
2524
+ * Merge accessibility roles from two components
2525
+ */
2526
+ mergeAccessibilityRoles(e, t) {
2527
+ return e === "text" && t === "text" ? "text" : e === "composite" || t === "composite" ? "composite" : "group";
2528
+ }
2529
+ /**
2530
+ * Merge semantic structures from two components
2531
+ */
2532
+ mergeSemanticStructures(e, t) {
2533
+ return e === "inline" && t === "inline" ? "inline" : e === "block" && t === "block" ? "block" : "mixed";
2534
+ }
2535
+ /**
2536
+ * Determine accessibility role for a single component
2537
+ */
2538
+ determineComponentAccessibilityRole(e) {
2539
+ switch (e.constructor.name) {
2540
+ case "EnhancedText":
2541
+ return "text";
2542
+ case "EnhancedImage":
2543
+ return "group";
2544
+ case "EnhancedButton":
2545
+ case "EnhancedLink":
2546
+ return "group";
2547
+ default:
2548
+ return "composite";
2549
+ }
2550
+ }
2551
+ /**
2552
+ * Determine semantic structure for a single component
2553
+ */
2554
+ determineComponentSemanticStructure(e) {
2555
+ switch (e.constructor.name) {
2556
+ case "EnhancedText":
2557
+ case "EnhancedImage":
2558
+ return "inline";
2559
+ case "EnhancedButton":
2560
+ case "EnhancedLink":
2561
+ return "inline";
2562
+ // Buttons and links are typically inline in concatenation
2563
+ default:
2564
+ return "mixed";
2565
+ }
2566
+ }
2567
+ /**
2568
+ * Special rendering method for segments with asHTML modifiers
2569
+ */
2570
+ renderSegmentsWithAsHTML() {
2571
+ const e = this.modifiers?.filter((s) => s.type === "asHTML") || [], t = [];
2572
+ for (const s of this.segments) {
2573
+ const r = s.render(), i = Array.isArray(r) ? r : [r];
2574
+ if (this.isTextSegment(s) && i.length > 0) {
2575
+ const o = this.applyAsHTMLToSegment(i[0], e, s);
2576
+ t.push(o);
2577
+ } else
2578
+ t.push(...i);
2579
+ }
2580
+ return t;
2581
+ }
2582
+ /**
2583
+ * Check if a segment represents a Text component
2584
+ */
2585
+ isTextSegment(e) {
2586
+ const t = e.component;
2587
+ return t ? t.constructor?.name === "TextComponent" || t.constructor?.name === "EnhancedText" || t.__tachui_component_type === "Text" || t.componentMetadata?.originalType === "Text" : !1;
2588
+ }
2589
+ /**
2590
+ * Apply asHTML modifiers to a segment with proper component context
2591
+ */
2592
+ applyAsHTMLToSegment(e, t, s) {
2593
+ const r = {
2594
+ element: void 0,
2595
+ // Will be set when the node is rendered to DOM
2596
+ componentId: s.id,
2597
+ phase: "creation",
2598
+ componentInstance: s.component
2599
+ // Pass the original component
2600
+ };
2601
+ return Me(e, t, r, { batch: !0 });
2602
+ }
2603
+ /**
2604
+ * Generate comprehensive accessibility tree for this concatenated component
2605
+ */
2606
+ generateAccessibilityTree() {
2607
+ return {
2608
+ role: this.metadata.accessibilityRole,
2609
+ label: this.buildAccessibilityLabel(),
2610
+ children: this.segments.map((e) => this.segmentToAccessibilityNode(e))
2611
+ };
2612
+ }
2613
+ /**
2614
+ * Convert a component segment to an accessibility node
2615
+ */
2616
+ segmentToAccessibilityNode(e) {
2617
+ const t = e.component;
2618
+ return {
2619
+ role: this.determineComponentAccessibilityRole(t),
2620
+ label: this.extractAccessibilityText(e),
2621
+ children: t instanceof ee ? t.generateAccessibilityTree().children : void 0
2622
+ };
2623
+ }
2624
+ };
2625
+ const Dt = {
2626
+ proxyModifiers: !0
2627
+ };
2628
+ let zt = { ...Dt };
2629
+ function Te() {
2630
+ return zt.proxyModifiers === !0;
2631
+ }
2632
+ let Se = /* @__PURE__ */ new WeakMap(), _t = /* @__PURE__ */ new WeakMap(), Ht = /* @__PURE__ */ new WeakMap(), Vt = /* @__PURE__ */ new WeakMap();
2633
+ function $(n) {
2634
+ if (Object.prototype.hasOwnProperty.call(n, "modifiers") && Object.prototype.hasOwnProperty.call(n, "modifierBuilder"))
2635
+ return n;
2636
+ if (!n._modifiableComponent) {
2637
+ const e = te(n);
2638
+ Object.prototype.hasOwnProperty.call(n, "modifier") || Object.defineProperty(n, "modifier", {
2639
+ configurable: !0,
2640
+ enumerable: !1,
2641
+ get() {
2642
+ return e.modifierBuilder;
2643
+ },
2644
+ set(t) {
2645
+ Object.defineProperty(n, "modifier", {
2646
+ configurable: !0,
2647
+ enumerable: !1,
2648
+ writable: !0,
2649
+ value: t
2650
+ });
2651
+ }
2652
+ }), n._modifiableComponent = e;
2653
+ }
2654
+ return n._modifiableComponent;
2655
+ }
2656
+ function he(n) {
2657
+ if (!Te())
2658
+ return n;
2659
+ const e = Se.get(n);
2660
+ if (e)
2661
+ return e;
2662
+ const t = /* @__PURE__ */ new Map();
2663
+ _t.set(n, t);
2664
+ const s = /* @__PURE__ */ new Map();
2665
+ Ht.set(n, s);
2666
+ const r = /* @__PURE__ */ new Map();
2667
+ Vt.set(n, r);
2668
+ const i = {
2669
+ get(l, a, h) {
2670
+ if (a === Symbol.toStringTag)
2671
+ return Reflect.get(l, a, h);
2672
+ if (a === "render") {
2673
+ if (r.has(a))
2674
+ return r.get(a);
2675
+ const c = $(l);
2676
+ if (typeof c.render == "function") {
2677
+ const u = c.render.bind(c);
2678
+ return r.set(a, u), u;
2679
+ }
2680
+ return Reflect.get(l, a, h);
2681
+ }
2682
+ if (a === "build") {
2683
+ const c = $(l), u = c.modifierBuilder || c.modifier;
2684
+ if (u && typeof u.build == "function") {
2685
+ const f = u.build.bind(u);
2686
+ return (...p) => {
2687
+ const v = f(...p);
2688
+ return v && typeof v == "object" && !Array.isArray(v) ? he(
2689
+ v
2690
+ ) : v;
2691
+ };
2692
+ }
2693
+ return;
2694
+ }
2695
+ if (a === "modifiers" || a === "modifier" || a === "modifierBuilder") {
2696
+ if (a === "modifier") {
2697
+ const u = Object.getOwnPropertyDescriptor(
2698
+ l,
2699
+ "modifier"
2700
+ );
2701
+ if (u && "value" in u)
2702
+ return u.value;
2703
+ }
2704
+ const c = $(l);
2705
+ return a === "modifiers" ? c.modifiers : c.modifierBuilder;
2706
+ }
2707
+ if (typeof a == "string") {
2708
+ let c;
2709
+ if (t.has(a) && (c = V.get(a), c)) {
2710
+ const p = s.get(a);
2711
+ p !== void 0 && p !== c && (t.delete(a), s.delete(a));
2712
+ }
2713
+ if (Reflect.has(l, a)) {
2714
+ const p = Reflect.get(l, a, l);
2715
+ if (typeof p != "function")
2716
+ return p;
2717
+ }
2718
+ const u = $(l), f = u.modifierBuilder || u.modifier;
2719
+ if (f) {
2720
+ const p = f[a];
2721
+ if (typeof p == "function") {
2722
+ if (!t.has(a)) {
2723
+ const v = (...k) => {
2724
+ const C = $(l), E = C.modifierBuilder || C.modifier, pe = E?.[a];
2725
+ if (typeof pe != "function")
2726
+ throw new Error(
2727
+ `Modifier '${String(a)}' is not callable`
2728
+ );
2729
+ const se = pe.apply(E, k);
2730
+ return se && se !== E ? se : o;
2731
+ };
2732
+ t.set(a, v), s.set(
2733
+ a,
2734
+ c ?? V.get(a)
2735
+ );
2736
+ }
2737
+ return t.get(a);
2738
+ }
2739
+ if (p !== void 0)
2740
+ return p;
2741
+ }
2742
+ if (V.has(a)) {
2743
+ if (!t.has(a)) {
2744
+ const p = (...v) => {
2745
+ const k = $(l), C = k.modifierBuilder || k.modifier, E = C?.[a];
2746
+ if (typeof E != "function")
2747
+ throw new Error(`Modifier '${String(a)}' is not callable`);
2748
+ return E.apply(C, v), o;
2749
+ };
2750
+ t.set(a, p), s.set(
2751
+ a,
2752
+ c ?? V.get(a)
2753
+ );
2754
+ }
2755
+ return t.get(a);
2756
+ }
2757
+ }
2758
+ if (Reflect.has(l, a)) {
2759
+ const c = Reflect.get(l, a, l);
2760
+ return typeof c == "function" ? a === "clone" ? (...u) => {
2761
+ const f = c.apply(l, u);
2762
+ return f && typeof f == "object" ? he(f) : f;
2763
+ } : (r.has(a) || r.set(a, c.bind(l)), r.get(a)) : c;
2764
+ }
2765
+ },
2766
+ has(l, a) {
2767
+ if (a === "modifiers" || a === "modifier" || a === "modifierBuilder")
2768
+ return !0;
2769
+ if (typeof a == "string") {
2770
+ const h = l._modifiableComponent || $(l), c = h?.modifierBuilder || h?.modifier;
2771
+ if (c && typeof c[a] == "function")
2772
+ return !0;
2773
+ }
2774
+ return Reflect.has(l, a) || V.has(a);
2775
+ },
2776
+ set(l, a, h, c) {
2777
+ if (a === "modifier")
2778
+ return Object.defineProperty(l, "modifier", {
2779
+ configurable: !0,
2780
+ enumerable: !1,
2781
+ writable: !0,
2782
+ value: h
2783
+ }), t.clear(), !0;
2784
+ if (a === "modifiers" && Array.isArray(h)) {
2785
+ const u = $(l);
2786
+ return u.modifiers = [...h], !0;
2787
+ }
2788
+ return Reflect.set(l, a, h, c);
2789
+ }
2790
+ }, o = new Proxy(n, i);
2791
+ return Se.set(n, o), o;
2792
+ }
2793
+ var jt = Object.defineProperty, Ft = (n, e, t) => e in n ? jt(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, x = (n, e, t) => Ft(n, typeof e != "symbol" ? e + "" : e, t);
2794
+ class Bt {
1667
2795
  constructor(e, t) {
1668
- E(this, "id"), E(this, "parent"), E(this, "providers", /* @__PURE__ */ new Map()), E(this, "consumers", /* @__PURE__ */ new Set()), E(this, "cleanup", /* @__PURE__ */ new Set()), E(this, "stateStore", /* @__PURE__ */ new Map()), E(this, "bindingStore", /* @__PURE__ */ new Map()), E(this, "createdAt", Date.now()), E(this, "updateCount", 0), this.id = e, this.parent = t;
2796
+ x(this, "id"), x(this, "parent"), x(this, "providers", /* @__PURE__ */ new Map()), x(this, "consumers", /* @__PURE__ */ new Set()), x(this, "cleanup", /* @__PURE__ */ new Set()), x(this, "stateStore", /* @__PURE__ */ new Map()), x(this, "bindingStore", /* @__PURE__ */ new Map()), x(this, "createdAt", Date.now()), x(this, "updateCount", 0), this.id = e, this.parent = t;
1669
2797
  }
1670
2798
  /**
1671
2799
  * Store state value for a property
@@ -1749,16 +2877,16 @@ class nt {
1749
2877
  };
1750
2878
  }
1751
2879
  }
1752
- function ot(n, e) {
1753
- return new nt(n, e);
2880
+ function Wt(n, e) {
2881
+ return new Bt(n, e);
1754
2882
  }
1755
- var at = Object.defineProperty, lt = (n, e, t) => e in n ? at(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, R = (n, e, t) => lt(n, typeof e != "symbol" ? e + "" : e, t);
1756
- const ct = class k {
2883
+ var Ut = Object.defineProperty, qt = (n, e, t) => e in n ? Ut(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, H = (n, e, t) => qt(n, typeof e != "symbol" ? e + "" : e, t);
2884
+ const Qt = class U {
1757
2885
  constructor() {
1758
- R(this, "components", /* @__PURE__ */ new Map()), R(this, "contexts", /* @__PURE__ */ new Map()), R(this, "cleanupQueue", /* @__PURE__ */ new Set()), R(this, "updateQueue", /* @__PURE__ */ new Set()), R(this, "isUpdating", !1);
2886
+ H(this, "components", /* @__PURE__ */ new Map()), H(this, "contexts", /* @__PURE__ */ new Map()), H(this, "cleanupQueue", /* @__PURE__ */ new Set()), H(this, "updateQueue", /* @__PURE__ */ new Set()), H(this, "isUpdating", !1);
1759
2887
  }
1760
2888
  static getInstance() {
1761
- return k.instance || (k.instance = new k()), k.instance;
2889
+ return U.instance || (U.instance = new U()), U.instance;
1762
2890
  }
1763
2891
  /**
1764
2892
  * Register a new component instance
@@ -1850,14 +2978,14 @@ const ct = class k {
1850
2978
  }), this.cleanupQueue.clear(), this.updateQueue.clear();
1851
2979
  }
1852
2980
  };
1853
- R(ct, "instance");
1854
- var ht = Object.defineProperty, dt = (n, e, t) => e in n ? ht(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, C = (n, e, t) => dt(n, typeof e != "symbol" ? e + "" : e, t);
1855
- const ce = class z {
2981
+ H(Qt, "instance");
2982
+ var Gt = Object.defineProperty, Kt = (n, e, t) => e in n ? Gt(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, M = (n, e, t) => Kt(n, typeof e != "symbol" ? e + "" : e, t);
2983
+ const $e = class q {
1856
2984
  constructor() {
1857
- C(this, "contexts", /* @__PURE__ */ new Map()), C(this, "providerStack", /* @__PURE__ */ new Map()), C(this, "currentComponent", null);
2985
+ M(this, "contexts", /* @__PURE__ */ new Map()), M(this, "providerStack", /* @__PURE__ */ new Map()), M(this, "currentComponent", null);
1858
2986
  }
1859
2987
  static getInstance() {
1860
- return z.instance || (z.instance = new z()), z.instance;
2988
+ return q.instance || (q.instance = new q()), q.instance;
1861
2989
  }
1862
2990
  /**
1863
2991
  * Set the current component context for provider resolution
@@ -1876,15 +3004,15 @@ const ce = class z {
1876
3004
  */
1877
3005
  registerProvider(e, t, s) {
1878
3006
  this.providerStack.has(e) || this.providerStack.set(e, []);
1879
- const r = this.providerStack.get(e), [i, o] = G(t), a = {
3007
+ const r = this.providerStack.get(e), [i, o] = le(t), l = {
1880
3008
  value: t,
1881
3009
  signal: [i, o],
1882
3010
  subscribers: /* @__PURE__ */ new Set(),
1883
3011
  providers: /* @__PURE__ */ new Set([s])
1884
3012
  };
1885
- return r.push(a), s.providers.set(e, a), () => {
1886
- const h = r.indexOf(a);
1887
- h !== -1 && r.splice(h, 1), s.providers.delete(e), a.subscribers.clear(), a.providers.clear();
3013
+ return r.push(l), s.providers.set(e, l), () => {
3014
+ const a = r.indexOf(l);
3015
+ a !== -1 && r.splice(a, 1), s.providers.delete(e), l.subscribers.clear(), l.providers.clear();
1888
3016
  };
1889
3017
  }
1890
3018
  /**
@@ -1894,7 +3022,7 @@ const ce = class z {
1894
3022
  const s = this.providerStack.get(e), r = s && s.length > 0 ? s[s.length - 1] : null;
1895
3023
  if (r)
1896
3024
  return this.currentComponent && (r.subscribers.add(this.currentComponent.id), this.currentComponent.consumers.add(e)), [r.signal[0], !0];
1897
- const [i] = G(t);
3025
+ const [i] = le(t);
1898
3026
  return [i, !1];
1899
3027
  }
1900
3028
  /**
@@ -1920,10 +3048,10 @@ const ce = class z {
1920
3048
  this.contexts.clear(), this.providerStack.clear(), this.currentComponent = null;
1921
3049
  }
1922
3050
  };
1923
- C(ce, "instance");
1924
- let ut = ce, pt = class {
3051
+ M($e, "instance");
3052
+ let Yt = $e, Zt = class {
1925
3053
  constructor() {
1926
- C(this, "registry", ut.getInstance());
3054
+ M(this, "registry", Yt.getInstance());
1927
3055
  }
1928
3056
  /**
1929
3057
  * Create a context provider component
@@ -1935,12 +3063,12 @@ let ut = ce, pt = class {
1935
3063
  const r = this.registry.registerProvider(
1936
3064
  e.symbol,
1937
3065
  t,
1938
- ot(`provider_${e.symbol.toString()}`)
3066
+ Wt(`provider_${e.symbol.toString()}`)
1939
3067
  ), i = s.flatMap((o) => {
1940
- let a = o;
1941
- "build" in o && typeof o.build == "function" && (a = o.build());
1942
- const h = a.render();
1943
- return Array.isArray(h) ? h : [h];
3068
+ let l = o;
3069
+ "build" in o && typeof o.build == "function" && (l = o.build());
3070
+ const a = l.render();
3071
+ return Array.isArray(a) ? a : [a];
1944
3072
  });
1945
3073
  return [
1946
3074
  {
@@ -1982,9 +3110,9 @@ let ut = ce, pt = class {
1982
3110
  this.registry.clear();
1983
3111
  }
1984
3112
  };
1985
- class ft {
3113
+ class Xt {
1986
3114
  constructor() {
1987
- C(this, "services", /* @__PURE__ */ new Map()), C(this, "factories", /* @__PURE__ */ new Map()), C(this, "singletons", /* @__PURE__ */ new Map()), C(this, "scoped", /* @__PURE__ */ new Map()), C(this, "dependencies", /* @__PURE__ */ new Map());
3115
+ M(this, "services", /* @__PURE__ */ new Map()), M(this, "factories", /* @__PURE__ */ new Map()), M(this, "singletons", /* @__PURE__ */ new Map()), M(this, "scoped", /* @__PURE__ */ new Map()), M(this, "dependencies", /* @__PURE__ */ new Map());
1988
3116
  }
1989
3117
  /**
1990
3118
  * Register a service with the container
@@ -2044,11 +3172,11 @@ class ft {
2044
3172
  return [...this.services.keys(), ...this.factories.keys()];
2045
3173
  }
2046
3174
  }
2047
- new ft();
2048
- new pt();
2049
- new le();
2050
- var mt = Object.defineProperty, gt = (n, e, t) => e in n ? mt(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, X = (n, e, t) => gt(n, typeof e != "symbol" ? e + "" : e, t);
2051
- const yt = {
3175
+ new Xt();
3176
+ new Zt();
3177
+ new Ie();
3178
+ var Jt = Object.defineProperty, es = (n, e, t) => e in n ? Jt(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, ae = (n, e, t) => es(n, typeof e != "symbol" ? e + "" : e, t);
3179
+ const ts = {
2052
3180
  sanitizeClassNames: !0,
2053
3181
  sanitizationRules: {
2054
3182
  allowNumbers: !0,
@@ -2060,9 +3188,9 @@ const yt = {
2060
3188
  warnDuplicateClasses: process.env.NODE_ENV === "development",
2061
3189
  warnInvalidClasses: process.env.NODE_ENV === "development"
2062
3190
  };
2063
- class vt {
3191
+ let ss = class {
2064
3192
  constructor(e = {}) {
2065
- X(this, "config"), X(this, "classCache"), X(this, "processingCache"), this.config = { ...yt, ...e };
3193
+ ae(this, "config"), ae(this, "classCache"), ae(this, "processingCache"), this.config = { ...ts, ...e };
2066
3194
  const t = (() => {
2067
3195
  try {
2068
3196
  return typeof Map < "u" && typeof Map == "function";
@@ -2129,7 +3257,7 @@ class vt {
2129
3257
  */
2130
3258
  processClasses(e) {
2131
3259
  if (!e) return [];
2132
- if (T(e) || P(e)) {
3260
+ if (F(e) || B(e)) {
2133
3261
  const i = e();
2134
3262
  return this.processClasses(i);
2135
3263
  }
@@ -2235,24 +3363,123 @@ class vt {
2235
3363
  }
2236
3364
  this.cacheSet(this.classCache, e, t);
2237
3365
  }
3366
+ };
3367
+ new ss();
3368
+ function rs(n, e, t = {}, ...s) {
3369
+ const r = new n(e, ...s);
3370
+ return Te() && t.prewarmProxy !== !1 && he(r), r;
2238
3371
  }
2239
- new vt();
2240
- var bt = Object.defineProperty, St = (n, e, t) => e in n ? bt(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, m = (n, e, t) => St(n, typeof e != "symbol" ? e + "" : e, t);
2241
- class Ct {
3372
+ var is = Object.defineProperty, ns = (n, e, t) => e in n ? is(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, D = (n, e, t) => ns(n, typeof e != "symbol" ? e + "" : e, t);
3373
+ let os = class de extends Pe {
2242
3374
  constructor(e) {
2243
- this.props = e, m(this, "type", "component"), m(this, "id"), m(this, "mounted", !1), m(this, "cleanup", []), m(this, "scrollElement", null), m(this, "contentOffsetSignal"), m(this, "setContentOffset"), m(this, "contentSizeSignal"), m(this, "setContentSize"), m(this, "setIsScrolling"), m(this, "pullToRefreshStateSignal"), m(this, "setPullToRefreshState"), m(this, "scrollEventThrottle"), m(this, "lastScrollTime", 0), m(this, "scrollVelocity", { x: 0, y: 0 }), m(this, "lastScrollOffset", { x: 0, y: 0 }), m(this, "pullStartY", 0), m(this, "isPulling", !1), m(this, "handleScroll", (c) => {
3375
+ super(), this.props = e, D(this, "type", "component"), D(this, "id"), D(this, "mounted", !1), D(this, "cleanup", []), D(this, "effectiveTag"), D(this, "validationResult"), this.id = `text-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
3376
+ const t = this.resolveDefaultTag(), s = ke(
3377
+ "Text",
3378
+ t,
3379
+ this.props.element
3380
+ );
3381
+ this.effectiveTag = s.tag, this.validationResult = s.validation;
3382
+ }
3383
+ resolveDefaultTag() {
3384
+ return this.props.accessibilityRole === "heading" ? `h${this.props.accessibilityLevel ?? 2}` : "span";
3385
+ }
3386
+ /**
3387
+ * Render the text component with reactive content handling, element override support, and CSS classes
3388
+ */
3389
+ render() {
3390
+ const e = ["tachui-text"], t = this.createClassString(this.props, e);
3391
+ return [w(
3392
+ this.effectiveTag,
3393
+ {
3394
+ className: t,
3395
+ // Pass through debug label for debug system
3396
+ ...this.props.debugLabel && { debugLabel: this.props.debugLabel },
3397
+ // Add component metadata for semantic role processing
3398
+ componentMetadata: {
3399
+ originalType: "Text",
3400
+ overriddenTo: this.effectiveTag !== "span" ? this.effectiveTag : void 0,
3401
+ validationResult: this.validationResult,
3402
+ componentInstance: this
3403
+ // Add reference to the Text component instance
3404
+ }
3405
+ },
3406
+ Le(this.props.content || "")
3407
+ )];
3408
+ }
3409
+ // Concatenation support - simplified for now
3410
+ concat(e) {
3411
+ return this;
3412
+ }
3413
+ toSegment() {
3414
+ return this;
3415
+ }
3416
+ isConcatenatable() {
3417
+ return !0;
3418
+ }
3419
+ /**
3420
+ * Cleanup resources
3421
+ */
3422
+ dispose() {
3423
+ this.cleanup.forEach((e) => {
3424
+ try {
3425
+ e();
3426
+ } catch (t) {
3427
+ console.error("Text component cleanup error:", t);
3428
+ }
3429
+ }), this.cleanup = [];
3430
+ }
3431
+ clone(e = {}) {
3432
+ return e.deep ? this.deepClone() : this.shallowClone();
3433
+ }
3434
+ shallowClone() {
3435
+ const e = fe(this.props), t = new de(e);
3436
+ return me(t), t;
3437
+ }
3438
+ deepClone() {
3439
+ const e = fe(this.props, {
3440
+ deep: !0
3441
+ }), t = new de(e);
3442
+ return me(t), t;
3443
+ }
3444
+ };
3445
+ function Ne(n, e) {
3446
+ const t = {
3447
+ content: n,
3448
+ ...e
3449
+ }, s = rs(os, t);
3450
+ return ue(s);
3451
+ }
3452
+ function z(n) {
3453
+ return (e, t) => Ne(e, {
3454
+ ...t,
3455
+ accessibilityRole: "heading",
3456
+ accessibilityLevel: n
3457
+ });
3458
+ }
3459
+ Object.assign(Ne, {
3460
+ H1: z(1),
3461
+ H2: z(2),
3462
+ H3: z(3),
3463
+ H4: z(4),
3464
+ H5: z(5),
3465
+ H6: z(6)
3466
+ });
3467
+ var as = Object.defineProperty, ls = (n, e, t) => e in n ? as(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, g = (n, e, t) => ls(n, typeof e != "symbol" ? e + "" : e, t);
3468
+ class cs {
3469
+ constructor(e) {
3470
+ this.props = e, g(this, "type", "component"), g(this, "id"), g(this, "mounted", !1), g(this, "cleanup", []), g(this, "scrollElement", null), g(this, "contentOffsetSignal"), g(this, "setContentOffset"), g(this, "contentSizeSignal"), g(this, "setContentSize"), g(this, "setIsScrolling"), g(this, "pullToRefreshStateSignal"), g(this, "setPullToRefreshState"), g(this, "scrollEventThrottle"), g(this, "lastScrollTime", 0), g(this, "scrollVelocity", { x: 0, y: 0 }), g(this, "lastScrollOffset", { x: 0, y: 0 }), g(this, "pullStartY", 0), g(this, "isPulling", !1), g(this, "handleScroll", (h) => {
2244
3471
  if (!this.scrollElement) return;
2245
- const l = performance.now(), d = l - this.lastScrollTime;
2246
- if (d < this.scrollEventThrottle) return;
3472
+ const c = performance.now(), u = c - this.lastScrollTime;
3473
+ if (u < this.scrollEventThrottle) return;
2247
3474
  const f = {
2248
3475
  x: this.scrollElement.scrollLeft,
2249
3476
  y: this.scrollElement.scrollTop
2250
3477
  };
2251
- this.scrollVelocity = this.calculateVelocity(f, d), this.setContentOffset(f), this.setContentSize({
3478
+ this.scrollVelocity = this.calculateVelocity(f, u), this.setContentOffset(f), this.setContentSize({
2252
3479
  width: this.scrollElement.scrollWidth,
2253
3480
  height: this.scrollElement.scrollHeight
2254
3481
  });
2255
- const p = this.detectScrollEdges(), N = {
3482
+ const p = this.detectScrollEdges(), v = {
2256
3483
  offset: f,
2257
3484
  velocity: this.scrollVelocity,
2258
3485
  contentSize: {
@@ -2265,25 +3492,25 @@ class Ct {
2265
3492
  },
2266
3493
  edges: p
2267
3494
  };
2268
- this.props.onScroll && this.props.onScroll(N), p.top && this.props.onReachTop && this.props.onReachTop(), p.bottom && this.props.onReachBottom && this.props.onReachBottom(), p.left && this.props.onReachLeft && this.props.onReachLeft(), p.right && this.props.onReachRight && this.props.onReachRight(), this.lastScrollOffset = f, this.lastScrollTime = l;
2269
- }), m(this, "handleScrollStart", () => {
3495
+ this.props.onScroll && this.props.onScroll(v), p.top && this.props.onReachTop && this.props.onReachTop(), p.bottom && this.props.onReachBottom && this.props.onReachBottom(), p.left && this.props.onReachLeft && this.props.onReachLeft(), p.right && this.props.onReachRight && this.props.onReachRight(), this.lastScrollOffset = f, this.lastScrollTime = c;
3496
+ }), g(this, "handleScrollStart", () => {
2270
3497
  this.setIsScrolling(!0), this.props.onScrollBegin && this.props.onScrollBegin();
2271
- }), m(this, "handleScrollEnd", () => {
3498
+ }), g(this, "handleScrollEnd", () => {
2272
3499
  this.setIsScrolling(!1), this.props.onScrollEnd && this.props.onScrollEnd();
2273
- }), m(this, "handleTouchStart", (c) => {
2274
- this.props.refreshControl?.enabled && (this.pullStartY = c.touches[0].clientY, this.isPulling = !1);
2275
- }), m(this, "handleTouchMove", (c) => {
3500
+ }), g(this, "handleTouchStart", (h) => {
3501
+ this.props.refreshControl?.enabled && (this.pullStartY = h.touches[0].clientY, this.isPulling = !1);
3502
+ }), g(this, "handleTouchMove", (h) => {
2276
3503
  if (!this.props.refreshControl?.enabled || !this.scrollElement) return;
2277
- const l = c.touches[0].clientY - this.pullStartY, d = this.props.refreshControl.threshold || 80;
2278
- this.scrollElement.scrollTop <= 0 && l > 0 && (this.isPulling = !0, l > d ? this.setPullToRefreshState("ready") : this.setPullToRefreshState("pulling"));
2279
- }), m(this, "handleTouchEnd", async () => {
3504
+ const c = h.touches[0].clientY - this.pullStartY, u = this.props.refreshControl.threshold || 80;
3505
+ this.scrollElement.scrollTop <= 0 && c > 0 && (this.isPulling = !0, c > u ? this.setPullToRefreshState("ready") : this.setPullToRefreshState("pulling"));
3506
+ }), g(this, "handleTouchEnd", async () => {
2280
3507
  if (!(!this.props.refreshControl?.enabled || !this.isPulling)) {
2281
3508
  if (this.pullToRefreshStateSignal() === "ready") {
2282
3509
  this.setPullToRefreshState("refreshing");
2283
3510
  try {
2284
3511
  await this.props.refreshControl.onRefresh();
2285
- } catch (c) {
2286
- console.error("Pull to refresh error:", c);
3512
+ } catch (h) {
3513
+ console.error("Pull to refresh error:", h);
2287
3514
  } finally {
2288
3515
  this.setPullToRefreshState("idle");
2289
3516
  }
@@ -2292,31 +3519,31 @@ class Ct {
2292
3519
  this.isPulling = !1;
2293
3520
  }
2294
3521
  }), this.id = `scrollview-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`, this.scrollEventThrottle = e.scrollEventThrottle || 16;
2295
- const [t, s] = A(
3522
+ const [t, s] = N(
2296
3523
  { x: 0, y: 0 }
2297
3524
  );
2298
3525
  this.contentOffsetSignal = t, this.setContentOffset = s;
2299
- const [r, i] = A({
3526
+ const [r, i] = N({
2300
3527
  width: 0,
2301
3528
  height: 0
2302
3529
  });
2303
3530
  this.contentSizeSignal = r, this.setContentSize = i;
2304
- const [, o] = A(!1);
3531
+ const [, o] = N(!1);
2305
3532
  this.setIsScrolling = o;
2306
- const [a, h] = A("idle");
2307
- if (this.pullToRefreshStateSignal = a, this.setPullToRefreshState = h, e.contentOffset && v(e.contentOffset)) {
3533
+ const [l, a] = N("idle");
3534
+ if (this.pullToRefreshStateSignal = l, this.setPullToRefreshState = a, e.contentOffset && S(e.contentOffset)) {
2308
3535
  this.setContentOffset(e.contentOffset());
2309
- const c = I(() => {
2310
- e.contentOffset && v(e.contentOffset) && this.setContentOffset(e.contentOffset());
3536
+ const h = R(() => {
3537
+ e.contentOffset && S(e.contentOffset) && this.setContentOffset(e.contentOffset());
2311
3538
  });
2312
- this.cleanup.push(() => c.dispose());
3539
+ this.cleanup.push(() => h.dispose());
2313
3540
  }
2314
- if (e.contentSize && v(e.contentSize)) {
3541
+ if (e.contentSize && S(e.contentSize)) {
2315
3542
  this.setContentSize(e.contentSize());
2316
- const c = I(() => {
2317
- e.contentSize && v(e.contentSize) && this.setContentSize(e.contentSize());
3543
+ const h = R(() => {
3544
+ e.contentSize && S(e.contentSize) && this.setContentSize(e.contentSize());
2318
3545
  });
2319
- this.cleanup.push(() => c.dispose());
3546
+ this.cleanup.push(() => h.dispose());
2320
3547
  }
2321
3548
  }
2322
3549
  /**
@@ -2453,7 +3680,7 @@ class Ct {
2453
3680
  cleanup: [],
2454
3681
  props: {},
2455
3682
  render: () => [
2456
- b(
3683
+ w(
2457
3684
  "div",
2458
3685
  {
2459
3686
  style: {
@@ -2512,10 +3739,10 @@ class Ct {
2512
3739
  let s = [];
2513
3740
  const r = e;
2514
3741
  if (typeof r == "function") {
2515
- const d = r();
2516
- s = Array.isArray(d) ? d : [];
3742
+ const u = r();
3743
+ s = Array.isArray(u) ? u : [];
2517
3744
  } else Array.isArray(e) && (s = e);
2518
- const i = b(
3745
+ const i = w(
2519
3746
  "div",
2520
3747
  {
2521
3748
  class: "tachui-scrollview-content",
@@ -2524,14 +3751,14 @@ class Ct {
2524
3751
  minWidth: "100%"
2525
3752
  }
2526
3753
  },
2527
- ...s.flatMap((d) => d.render())
2528
- ), o = this.createPullToRefreshIndicator(), a = [];
3754
+ ...s.flatMap((u) => u.render())
3755
+ ), o = this.createPullToRefreshIndicator(), l = [];
2529
3756
  if (o) {
2530
- const d = o.render(), f = Array.isArray(d) ? d : [d];
2531
- a.push(...f.filter((p) => p));
3757
+ const u = o.render(), f = Array.isArray(u) ? u : [u];
3758
+ l.push(...f.filter((p) => p));
2532
3759
  }
2533
- a.push(i);
2534
- const { direction: h = "vertical" } = this.props, c = this.getOverflowStyles(h), l = b(
3760
+ l.push(i);
3761
+ const { direction: a = "vertical" } = this.props, h = this.getOverflowStyles(a), c = w(
2535
3762
  "div",
2536
3763
  {
2537
3764
  id: this.id,
@@ -2540,44 +3767,44 @@ class Ct {
2540
3767
  height: "100%",
2541
3768
  width: "100%",
2542
3769
  position: "relative",
2543
- ...c
3770
+ ...h
2544
3771
  }
2545
3772
  },
2546
- ...a
3773
+ ...l
2547
3774
  );
2548
- if (l.element) {
2549
- const d = l.element;
2550
- this.scrollElement = d, this.applyScrollViewStyles(d), this.setupScrollHandlers(d), i.element && this.applyContentInsets(i.element);
3775
+ if (c.element) {
3776
+ const u = c.element;
3777
+ this.scrollElement = u, this.applyScrollViewStyles(u), this.setupScrollHandlers(u), i.element && this.applyContentInsets(i.element);
2551
3778
  const f = () => {
2552
- const p = v(t) ? t() : t;
2553
- d.style.overflow = p ? "auto" : "hidden", d.style.pointerEvents = p ? "auto" : "none";
3779
+ const p = S(t) ? t() : t;
3780
+ u.style.overflow = p ? "auto" : "hidden", u.style.pointerEvents = p ? "auto" : "none";
2554
3781
  };
2555
- if (v(t)) {
2556
- const p = I(f);
3782
+ if (S(t)) {
3783
+ const p = R(f);
2557
3784
  this.cleanup.push(() => p.dispose());
2558
3785
  } else
2559
3786
  f();
2560
3787
  if (typeof r == "function") {
2561
- const p = I(() => {
2562
- const N = r(), he = (Array.isArray(N) ? N : []).flatMap((V) => V.render());
3788
+ const p = R(() => {
3789
+ const v = r(), k = (Array.isArray(v) ? v : []).flatMap((C) => C.render());
2563
3790
  if (i.element) {
2564
- const V = i.element;
2565
- V.innerHTML = "", he.forEach((W) => {
2566
- W && W.element && V.appendChild(W.element);
3791
+ const C = i.element;
3792
+ C.innerHTML = "", k.forEach((E) => {
3793
+ E && E.element && C.appendChild(E.element);
2567
3794
  });
2568
3795
  }
2569
3796
  });
2570
3797
  this.cleanup.push(() => p.dispose());
2571
3798
  }
2572
3799
  }
2573
- return [l];
3800
+ return [c];
2574
3801
  }
2575
3802
  }
2576
- function Et(n = {}) {
2577
- const e = new Ct(n);
2578
- return re(e);
3803
+ function hs(n = {}) {
3804
+ const e = new cs(n);
3805
+ return ue(e);
2579
3806
  }
2580
- const wt = `
3807
+ const ds = `
2581
3808
  @keyframes spin {
2582
3809
  from { transform: rotate(0deg); }
2583
3810
  to { transform: rotate(360deg); }
@@ -2585,51 +3812,51 @@ const wt = `
2585
3812
  `;
2586
3813
  if (typeof document < "u") {
2587
3814
  const n = document.createElement("style");
2588
- n.textContent = wt, document.head.appendChild(n);
3815
+ n.textContent = ds, document.head.appendChild(n);
2589
3816
  }
2590
3817
  process.env.NODE_ENV;
2591
- class At {
3818
+ class us {
2592
3819
  constructor(e) {
2593
- u(this, "type", "component");
2594
- u(this, "id");
2595
- u(this, "mounted", !1);
2596
- u(this, "cleanup", []);
2597
- u(this, "dataSignal");
2598
- u(this, "setData");
2599
- u(this, "sectionsSignal");
2600
- u(this, "setSections");
2601
- u(this, "selectedItemsSignal");
2602
- u(this, "setSelectedItems");
2603
- u(this, "isLoadingSignal");
2604
- u(this, "setIsLoading");
3820
+ m(this, "type", "component");
3821
+ m(this, "id");
3822
+ m(this, "mounted", !1);
3823
+ m(this, "cleanup", []);
3824
+ m(this, "dataSignal");
3825
+ m(this, "setData");
3826
+ m(this, "sectionsSignal");
3827
+ m(this, "setSections");
3828
+ m(this, "selectedItemsSignal");
3829
+ m(this, "setSelectedItems");
3830
+ m(this, "isLoadingSignal");
3831
+ m(this, "setIsLoading");
2605
3832
  // Virtual scrolling state
2606
- u(this, "virtualItems", []);
2607
- u(this, "visibleStartIndex", 0);
2608
- u(this, "visibleEndIndex", 0);
2609
- u(this, "scrollOffset", 0);
2610
- u(this, "containerHeight", 0);
2611
- u(this, "totalHeight", 0);
3833
+ m(this, "virtualItems", []);
3834
+ m(this, "visibleStartIndex", 0);
3835
+ m(this, "visibleEndIndex", 0);
3836
+ m(this, "scrollOffset", 0);
3837
+ m(this, "containerHeight", 0);
3838
+ m(this, "totalHeight", 0);
2612
3839
  /**
2613
3840
  * Handle scroll events for virtual scrolling and infinite scroll
2614
3841
  */
2615
- u(this, "handleListScroll", (e) => {
2616
- this.scrollOffset = e.offset.y, this.containerHeight = e.containerSize.height, this.props.virtualScrolling?.enabled && this.calculateVisibleRange(), this.props.onLoadMore && e.edges.bottom && (v(this.props.hasMore) ? this.props.hasMore() : this.props.hasMore) && !this.isLoadingSignal() && (this.setIsLoading(!0), this.props.onLoadMore().finally(() => {
3842
+ m(this, "handleListScroll", (e) => {
3843
+ this.scrollOffset = e.offset.y, this.containerHeight = e.containerSize.height, this.props.virtualScrolling?.enabled && this.calculateVisibleRange(), this.props.onLoadMore && e.edges.bottom && (S(this.props.hasMore) ? this.props.hasMore() : this.props.hasMore) && !this.isLoadingSignal() && (this.setIsLoading(!0), this.props.onLoadMore().finally(() => {
2617
3844
  this.setIsLoading(!1);
2618
3845
  })), this.props.onScroll && this.props.onScroll(e);
2619
3846
  });
2620
3847
  this.props = e, this.id = `list-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
2621
- const [t, s] = A(this.resolveData());
3848
+ const [t, s] = N(this.resolveData());
2622
3849
  this.dataSignal = t, this.setData = s;
2623
- const [r, i] = A(
3850
+ const [r, i] = N(
2624
3851
  this.resolveSections()
2625
3852
  );
2626
3853
  this.sectionsSignal = r, this.setSections = i;
2627
- const o = /* @__PURE__ */ new Set(), [a, h] = A(o);
2628
- this.selectedItemsSignal = a, this.setSelectedItems = h;
2629
- const [c, l] = A(
3854
+ const o = /* @__PURE__ */ new Set(), [l, a] = N(o);
3855
+ this.selectedItemsSignal = l, this.setSelectedItems = a;
3856
+ const [h, c] = N(
2630
3857
  this.resolveIsLoading()
2631
3858
  );
2632
- this.isLoadingSignal = c, this.setIsLoading = l, this.setupReactiveUpdates(), e.virtualScrolling?.enabled && this.initializeVirtualScrolling();
3859
+ this.isLoadingSignal = h, this.setIsLoading = c, this.setupReactiveUpdates(), e.virtualScrolling?.enabled && this.initializeVirtualScrolling();
2633
3860
  }
2634
3861
  /**
2635
3862
  * Helper to flatten render results
@@ -2637,51 +3864,60 @@ class At {
2637
3864
  flattenRenderResult(e) {
2638
3865
  return Array.isArray(e) ? e : [e];
2639
3866
  }
3867
+ /**
3868
+ * Normalize item render output into safe DOM node payloads.
3869
+ *
3870
+ * Strings and primitives are always emitted as text nodes to avoid HTML
3871
+ * interpretation in list item rendering.
3872
+ */
3873
+ normalizeItemRenderOutput(e) {
3874
+ return e && typeof e.render == "function" ? this.flattenRenderResult(e.render()) : e == null || e === !1 ? [] : typeof e == "string" || typeof e == "number" || typeof e == "boolean" ? [{ type: "text", text: String(e) }] : this.flattenRenderResult(e);
3875
+ }
2640
3876
  /**
2641
3877
  * Resolve data from various input types
2642
3878
  */
2643
3879
  resolveData() {
2644
3880
  const { data: e } = this.props;
2645
- return Array.isArray(e) ? e : v(e) ? e() : [];
3881
+ return Array.isArray(e) ? e : S(e) ? e() : [];
2646
3882
  }
2647
3883
  /**
2648
3884
  * Resolve sections from various input types
2649
3885
  */
2650
3886
  resolveSections() {
2651
3887
  const { sections: e } = this.props;
2652
- return Array.isArray(e) ? e : v(e) ? e() : [];
3888
+ return Array.isArray(e) ? e : S(e) ? e() : [];
2653
3889
  }
2654
3890
  /**
2655
3891
  * Resolve loading state
2656
3892
  */
2657
3893
  resolveIsLoading() {
2658
3894
  const { isLoading: e } = this.props;
2659
- return typeof e == "boolean" ? e : v(e) ? e() : !1;
3895
+ return typeof e == "boolean" ? e : S(e) ? e() : !1;
2660
3896
  }
2661
3897
  /**
2662
3898
  * Set up reactive updates for data and state
2663
3899
  */
2664
3900
  setupReactiveUpdates() {
2665
- if (v(this.props.data)) {
2666
- const e = I(() => {
3901
+ if (S(this.props.data)) {
3902
+ const e = R(() => {
2667
3903
  this.setData(this.resolveData()), this.updateVirtualScrolling();
2668
3904
  });
2669
3905
  this.cleanup.push(() => e.dispose());
2670
3906
  }
2671
- if (v(this.props.sections)) {
2672
- const e = I(() => {
3907
+ if (S(this.props.sections)) {
3908
+ const e = R(() => {
2673
3909
  this.setSections(this.resolveSections()), this.updateVirtualScrolling();
2674
3910
  });
2675
3911
  this.cleanup.push(() => e.dispose());
2676
3912
  }
2677
- if (v(this.props.isLoading)) {
2678
- const e = I(() => {
3913
+ if (S(this.props.isLoading)) {
3914
+ const e = R(() => {
2679
3915
  this.setIsLoading(this.resolveIsLoading());
2680
3916
  });
2681
3917
  this.cleanup.push(() => e.dispose());
2682
3918
  }
2683
3919
  if (this.props.selectedItems) {
2684
- const e = I(() => {
3920
+ const e = R(() => {
2685
3921
  this.props.selectedItems && this.setSelectedItems(this.props.selectedItems());
2686
3922
  });
2687
3923
  this.cleanup.push(() => e.dispose());
@@ -2731,14 +3967,14 @@ class At {
2731
3967
  handleItemSelection(e, t) {
2732
3968
  const { selectionMode: s, getItemId: r, onSelectionChange: i } = this.props;
2733
3969
  if (s === "none") return;
2734
- const o = r ? r(e, t) : t, a = new Set(this.selectedItemsSignal());
2735
- s === "single" ? (a.clear(), a.add(o)) : s === "multiple" && (a.has(o) ? a.delete(o) : a.add(o)), this.setSelectedItems(a), i && i(a);
3970
+ const o = r ? r(e, t) : t, l = new Set(this.selectedItemsSignal());
3971
+ s === "single" ? (l.clear(), l.add(o)) : s === "multiple" && (l.has(o) ? l.delete(o) : l.add(o)), this.setSelectedItems(l), i && i(l);
2736
3972
  }
2737
3973
  /**
2738
3974
  * Create list item component
2739
3975
  */
2740
3976
  createListItem(e, t, s) {
2741
- const { renderItem: r, style: i, onItemTap: o, onItemLongPress: a } = this.props, h = r(e, t);
3977
+ const { renderItem: r, style: i, onItemTap: o, onItemLongPress: l } = this.props, a = r(e, t);
2742
3978
  return {
2743
3979
  type: "component",
2744
3980
  id: `${this.id}-item-${t}`,
@@ -2746,7 +3982,7 @@ class At {
2746
3982
  cleanup: [],
2747
3983
  props: {},
2748
3984
  render: () => {
2749
- const c = b(
3985
+ const h = w(
2750
3986
  "div",
2751
3987
  {
2752
3988
  class: `tachui-list-item tachui-list-item-${i || "plain"}`,
@@ -2759,27 +3995,27 @@ class At {
2759
3995
  cursor: o ? "pointer" : "default"
2760
3996
  }
2761
3997
  },
2762
- ...this.flattenRenderResult(h.render())
3998
+ ...this.normalizeItemRenderOutput(a)
2763
3999
  );
2764
- if (c.element) {
2765
- const l = c.element;
2766
- if (o && l.addEventListener("click", () => o(e, t)), a) {
2767
- let d;
4000
+ if (h.element) {
4001
+ const c = h.element;
4002
+ if (o && c.addEventListener("click", () => o(e, t)), l) {
4003
+ let u;
2768
4004
  const f = () => {
2769
- d = setTimeout(
2770
- () => a(e, t),
4005
+ u = setTimeout(
4006
+ () => l(e, t),
2771
4007
  500
2772
4008
  );
2773
4009
  }, p = () => {
2774
- clearTimeout(d);
4010
+ clearTimeout(u);
2775
4011
  };
2776
- l.addEventListener("mousedown", f), l.addEventListener("mouseup", p), l.addEventListener("mouseleave", p), l.addEventListener("touchstart", f), l.addEventListener("touchend", p);
4012
+ c.addEventListener("mousedown", f), c.addEventListener("mouseup", p), c.addEventListener("mouseleave", p), c.addEventListener("touchstart", f), c.addEventListener("touchend", p);
2777
4013
  }
2778
- this.props.selectionMode !== "none" && l.addEventListener("click", (d) => {
2779
- (d.metaKey || d.ctrlKey || this.props.selectionMode === "multiple") && (d.preventDefault(), this.handleItemSelection(e, t));
4014
+ this.props.selectionMode !== "none" && c.addEventListener("click", (u) => {
4015
+ (u.metaKey || u.ctrlKey || this.props.selectionMode === "multiple") && (u.preventDefault(), this.handleItemSelection(e, t));
2780
4016
  });
2781
4017
  }
2782
- return [c];
4018
+ return [h];
2783
4019
  }
2784
4020
  };
2785
4021
  }
@@ -2795,7 +4031,7 @@ class At {
2795
4031
  cleanup: [],
2796
4032
  props: {},
2797
4033
  render: () => [
2798
- b("div", {
4034
+ w("div", {
2799
4035
  class: "tachui-list-separator",
2800
4036
  style: {
2801
4037
  height: "1px",
@@ -2816,24 +4052,21 @@ class At {
2816
4052
  mounted: !1,
2817
4053
  cleanup: [],
2818
4054
  props: {},
2819
- render: () => [
2820
- b(
2821
- "div",
2822
- {
2823
- class: "tachui-list-section-header",
2824
- style: {
2825
- padding: "8px 16px",
2826
- backgroundColor: "#f8f9fa",
2827
- fontWeight: "600",
2828
- fontSize: "14px",
2829
- color: "#666",
2830
- textTransform: "uppercase",
2831
- letterSpacing: "0.5px"
2832
- }
2833
- },
2834
- e.header
2835
- )
2836
- ]
4055
+ render: () => {
4056
+ const s = w("div", {
4057
+ class: "tachui-list-section-header",
4058
+ style: {
4059
+ padding: "8px 16px",
4060
+ backgroundColor: "#f8f9fa",
4061
+ fontWeight: "600",
4062
+ fontSize: "14px",
4063
+ color: "#666",
4064
+ textTransform: "uppercase",
4065
+ letterSpacing: "0.5px"
4066
+ }
4067
+ }), r = s.element;
4068
+ return r && (r.textContent = e.header), [s];
4069
+ }
2837
4070
  } : this.props.renderSectionHeader ? this.props.renderSectionHeader(e, t) : e.header : null;
2838
4071
  }
2839
4072
  /**
@@ -2846,20 +4079,17 @@ class At {
2846
4079
  mounted: !1,
2847
4080
  cleanup: [],
2848
4081
  props: {},
2849
- render: () => [
2850
- b(
2851
- "div",
2852
- {
2853
- class: "tachui-list-section-footer",
2854
- style: {
2855
- padding: "8px 16px",
2856
- fontSize: "12px",
2857
- color: "#999"
2858
- }
2859
- },
2860
- e.footer
2861
- )
2862
- ]
4082
+ render: () => {
4083
+ const s = w("div", {
4084
+ class: "tachui-list-section-footer",
4085
+ style: {
4086
+ padding: "8px 16px",
4087
+ fontSize: "12px",
4088
+ color: "#999"
4089
+ }
4090
+ }), r = s.element;
4091
+ return r && (r.textContent = e.footer), [s];
4092
+ }
2863
4093
  } : this.props.renderSectionFooter ? this.props.renderSectionFooter(e, t) : e.footer : null;
2864
4094
  }
2865
4095
  /**
@@ -2874,7 +4104,7 @@ class At {
2874
4104
  cleanup: [],
2875
4105
  props: {},
2876
4106
  render: () => [
2877
- b(
4107
+ w(
2878
4108
  "div",
2879
4109
  {
2880
4110
  class: "tachui-list-empty",
@@ -2905,7 +4135,7 @@ class At {
2905
4135
  cleanup: [],
2906
4136
  props: {},
2907
4137
  render: () => [
2908
- b(
4138
+ w(
2909
4139
  "div",
2910
4140
  {
2911
4141
  class: "tachui-list-loading",
@@ -2938,15 +4168,15 @@ class At {
2938
4168
  cleanup: [],
2939
4169
  props: {},
2940
4170
  render: () => [
2941
- b("div", {
4171
+ w("div", {
2942
4172
  style: { height: `${i}px` }
2943
4173
  })
2944
4174
  ]
2945
4175
  });
2946
4176
  }
2947
4177
  for (let i = this.visibleStartIndex; i <= this.visibleEndIndex && i < e.length; i++) {
2948
- const o = e[i], a = this.props.getItemId ? this.props.getItemId(o, i) : i, h = t.has(a);
2949
- r.push(this.createListItem(o, i, h)), s && i < e.length - 1 && r.push(s);
4178
+ const o = e[i], l = this.props.getItemId ? this.props.getItemId(o, i) : i, a = t.has(l);
4179
+ r.push(this.createListItem(o, i, a)), s && i < e.length - 1 && r.push(s);
2950
4180
  }
2951
4181
  if (this.visibleEndIndex < e.length - 1) {
2952
4182
  const i = this.totalHeight - (this.virtualItems[this.visibleEndIndex + 1]?.offset || 0);
@@ -2957,7 +4187,7 @@ class At {
2957
4187
  cleanup: [],
2958
4188
  props: {},
2959
4189
  render: () => [
2960
- b("div", {
4190
+ w("div", {
2961
4191
  style: { height: `${i}px` }
2962
4192
  })
2963
4193
  ]
@@ -2970,17 +4200,17 @@ class At {
2970
4200
  */
2971
4201
  renderRegularContent() {
2972
4202
  const e = this.dataSignal(), t = this.sectionsSignal(), s = this.selectedItemsSignal(), r = this.createSeparator(), i = [];
2973
- return t.length > 0 ? t.forEach((o, a) => {
2974
- const h = this.createSectionHeader(o, a);
2975
- h && i.push(h), o.items.forEach((l, d) => {
2976
- const f = a * 1e3 + d, p = this.props.getItemId ? this.props.getItemId(l, f) : f, N = s.has(p);
2977
- i.push(this.createListItem(l, f, N)), r && d < o.items.length - 1 && i.push(r);
4203
+ return t.length > 0 ? t.forEach((o, l) => {
4204
+ const a = this.createSectionHeader(o, l);
4205
+ a && i.push(a), o.items.forEach((c, u) => {
4206
+ const f = l * 1e3 + u, p = this.props.getItemId ? this.props.getItemId(c, f) : f, v = s.has(p);
4207
+ i.push(this.createListItem(c, f, v)), r && u < o.items.length - 1 && i.push(r);
2978
4208
  });
2979
- const c = this.createSectionFooter(o, a);
2980
- c && i.push(c);
2981
- }) : e.forEach((o, a) => {
2982
- const h = this.props.getItemId ? this.props.getItemId(o, a) : a, c = s.has(h);
2983
- i.push(this.createListItem(o, a, c)), r && a < e.length - 1 && i.push(r);
4209
+ const h = this.createSectionFooter(o, l);
4210
+ h && i.push(h);
4211
+ }) : e.forEach((o, l) => {
4212
+ const a = this.props.getItemId ? this.props.getItemId(o, l) : l, h = s.has(a);
4213
+ i.push(this.createListItem(o, l, h)), r && l < e.length - 1 && i.push(r);
2984
4214
  }), i;
2985
4215
  }
2986
4216
  /**
@@ -3006,19 +4236,19 @@ class At {
3006
4236
  children: s,
3007
4237
  onScroll: this.handleListScroll
3008
4238
  };
3009
- return new Et(r).render();
4239
+ return new hs(r).render();
3010
4240
  }
3011
4241
  }
3012
- function F(n) {
3013
- const e = new At(n);
3014
- return re(e);
4242
+ function Z(n) {
4243
+ const e = new us(n);
4244
+ return ue(e);
3015
4245
  }
3016
- const Lt = {
4246
+ const Ms = {
3017
4247
  /**
3018
4248
  * Create a simple list from array
3019
4249
  */
3020
4250
  simple(n, e, t = {}) {
3021
- return F({
4251
+ return Z({
3022
4252
  ...t,
3023
4253
  data: n,
3024
4254
  renderItem: e
@@ -3028,7 +4258,7 @@ const Lt = {
3028
4258
  * Create a sectioned list
3029
4259
  */
3030
4260
  sectioned(n, e, t = {}) {
3031
- return F({
4261
+ return Z({
3032
4262
  ...t,
3033
4263
  sections: n,
3034
4264
  renderItem: e
@@ -3038,7 +4268,7 @@ const Lt = {
3038
4268
  * Create a virtual scrolling list for large datasets
3039
4269
  */
3040
4270
  virtual(n, e, t, s = {}) {
3041
- return F({
4271
+ return Z({
3042
4272
  ...s,
3043
4273
  data: n,
3044
4274
  renderItem: e,
@@ -3049,7 +4279,7 @@ const Lt = {
3049
4279
  * Create an infinite scrolling list
3050
4280
  */
3051
4281
  infinite(n, e, t, s, r = {}) {
3052
- return F({
4282
+ return Z({
3053
4283
  ...r,
3054
4284
  data: n,
3055
4285
  renderItem: e,
@@ -3059,7 +4289,7 @@ const Lt = {
3059
4289
  }
3060
4290
  };
3061
4291
  export {
3062
- At as E,
3063
- F as L,
3064
- Lt as a
4292
+ us as E,
4293
+ Z as L,
4294
+ Ms as a
3065
4295
  };