@tachui/core 0.8.0-alpha → 0.8.5-alpha

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.
Files changed (176) hide show
  1. package/README.md +58 -2
  2. package/dist/assets/AssetCollection.d.ts.map +1 -1
  3. package/dist/assets/ColorAsset.d.ts.map +1 -1
  4. package/dist/assets/index.d.ts +1 -0
  5. package/dist/assets/index.d.ts.map +1 -1
  6. package/dist/assets/index.js +486 -0
  7. package/dist/assets/types.d.ts +8 -68
  8. package/dist/assets/types.d.ts.map +1 -1
  9. package/dist/binding-CYpEQquE.js +308 -0
  10. package/dist/build-plugins/index.d.ts +3 -0
  11. package/dist/build-plugins/index.d.ts.map +1 -0
  12. package/dist/build-plugins/modifier-types.d.ts +12 -0
  13. package/dist/build-plugins/modifier-types.d.ts.map +1 -0
  14. package/dist/build-tools/typegen-runner.d.ts +29 -0
  15. package/dist/build-tools/typegen-runner.d.ts.map +1 -0
  16. package/dist/bundles/assets.d.ts +19 -0
  17. package/dist/bundles/assets.d.ts.map +1 -0
  18. package/dist/bundles/context.d.ts +22 -0
  19. package/dist/bundles/context.d.ts.map +1 -0
  20. package/dist/bundles/minimal.d.ts +8 -2
  21. package/dist/bundles/minimal.d.ts.map +1 -1
  22. package/dist/common.js +427 -393
  23. package/dist/compiler/codegen.d.ts.map +1 -1
  24. package/dist/compiler/index.js +6 -1393
  25. package/dist/compiler/parser.d.ts +1 -1
  26. package/dist/compiler/parser.d.ts.map +1 -1
  27. package/dist/compiler/plugin.d.ts.map +1 -1
  28. package/dist/compiler/types.d.ts +28 -0
  29. package/dist/compiler/types.d.ts.map +1 -1
  30. package/dist/{component-XAzF1xqs.js → component-CECyfUOE.js} +80 -68
  31. package/dist/{component-base-x2XmHFjy.js → component-base-CJ__jTlr.js} +9 -7
  32. package/dist/component-context-B6qX_Qsg.js +176 -0
  33. package/dist/components/factory.d.ts +24 -0
  34. package/dist/components/factory.d.ts.map +1 -0
  35. package/dist/components/index.d.ts +3 -2
  36. package/dist/components/index.d.ts.map +1 -1
  37. package/dist/components/index.js +8 -6
  38. package/dist/components/wrapper.d.ts +70 -30
  39. package/dist/components/wrapper.d.ts.map +1 -1
  40. package/dist/concatenated-component-_tF1eMvy.js +2288 -0
  41. package/dist/concatenation/concatenated-component.d.ts +16 -2
  42. package/dist/concatenation/concatenated-component.d.ts.map +1 -1
  43. package/dist/concatenation/text-optimizer.d.ts.map +1 -1
  44. package/dist/config.d.ts +7 -0
  45. package/dist/config.d.ts.map +1 -0
  46. package/dist/constants/layout.d.ts +2 -9
  47. package/dist/constants/layout.d.ts.map +1 -1
  48. package/dist/css-classes/index.js +15 -173
  49. package/dist/{effect-B9Knft0b.js → effect-DGmdACI2.js} +3 -3
  50. package/dist/enhanced-renderer-Bwqsh8Ku.js +172 -0
  51. package/dist/essential.js +425 -391
  52. package/dist/{index-DIvMCJQO.js → factories-Co2Lv2kJ.js} +13 -13
  53. package/dist/factory-D7jAY5Kn.js +485 -0
  54. package/dist/gradients/css-generator.js +99 -0
  55. package/dist/gradients/index.js +56 -0
  56. package/dist/gradients/reactive.d.ts.map +1 -1
  57. package/dist/gradients/types.d.ts +3 -91
  58. package/dist/gradients/types.d.ts.map +1 -1
  59. package/dist/hooks-DeLasj54.js +446 -0
  60. package/dist/index-JQ1sW1SK.js +2049 -0
  61. package/dist/index-X8MVY78C.js +618 -0
  62. package/dist/index.d.ts +8 -1
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +426 -392
  65. package/dist/minimal-prod.js +94 -93
  66. package/dist/minimal.js +126 -106
  67. package/dist/modifiers/alignment.d.ts +5 -0
  68. package/dist/modifiers/alignment.d.ts.map +1 -0
  69. package/dist/modifiers/base.d.ts +6 -7
  70. package/dist/modifiers/base.d.ts.map +1 -1
  71. package/dist/modifiers/base.js +24 -16
  72. package/dist/modifiers/builder.d.ts +28 -165
  73. package/dist/modifiers/builder.d.ts.map +1 -1
  74. package/dist/modifiers/builder.js +7 -7
  75. package/dist/modifiers/core.d.ts +0 -1
  76. package/dist/modifiers/core.d.ts.map +1 -1
  77. package/dist/modifiers/corner-radius.d.ts +8 -0
  78. package/dist/modifiers/corner-radius.d.ts.map +1 -0
  79. package/dist/modifiers/index.d.ts +9 -6
  80. package/dist/modifiers/index.d.ts.map +1 -1
  81. package/dist/modifiers/index.js +36 -30
  82. package/dist/modifiers/layout-priority.d.ts +8 -0
  83. package/dist/modifiers/layout-priority.d.ts.map +1 -0
  84. package/dist/modifiers/opacity.d.ts +8 -0
  85. package/dist/modifiers/opacity.d.ts.map +1 -0
  86. package/dist/modifiers/presets.d.ts.map +1 -1
  87. package/dist/modifiers/proxy.d.ts +4 -0
  88. package/dist/modifiers/proxy.d.ts.map +1 -0
  89. package/dist/modifiers/registration-utils.d.ts +7 -0
  90. package/dist/modifiers/registration-utils.d.ts.map +1 -0
  91. package/dist/modifiers/registry.d.ts +18 -9
  92. package/dist/modifiers/registry.d.ts.map +1 -1
  93. package/dist/modifiers/registry.js +2 -2
  94. package/dist/modifiers/type-generator.d.ts +82 -0
  95. package/dist/modifiers/type-generator.d.ts.map +1 -0
  96. package/dist/modifiers/types.d.ts +2 -479
  97. package/dist/modifiers/types.d.ts.map +1 -1
  98. package/dist/modifiers/types.js +1 -4
  99. package/dist/observed-object-DepiqSgg.js +269 -0
  100. package/dist/optimization-CbKNA9w4.js +21 -0
  101. package/dist/plugin-BCAdZXKq.js +1680 -0
  102. package/dist/plugins/index.js +28 -8
  103. package/dist/plugins/simplified-lazy-loader.d.ts.map +1 -1
  104. package/dist/presets-B9x94uRn.js +381 -0
  105. package/dist/proxy-Cqmbiyx0.js +175 -0
  106. package/dist/reactive/cleanup.d.ts.map +1 -1
  107. package/dist/reactive/computed.d.ts +1 -1
  108. package/dist/reactive/computed.d.ts.map +1 -1
  109. package/dist/reactive/context.d.ts +4 -3
  110. package/dist/reactive/context.d.ts.map +1 -1
  111. package/dist/reactive/index.d.ts +1 -0
  112. package/dist/reactive/index.d.ts.map +1 -1
  113. package/dist/reactive/index.js +84 -490
  114. package/dist/reactive/signal-list.d.ts +100 -0
  115. package/dist/reactive/signal-list.d.ts.map +1 -0
  116. package/dist/reactive/signal.d.ts.map +1 -1
  117. package/dist/reactive/types.d.ts +2 -89
  118. package/dist/reactive/types.d.ts.map +1 -1
  119. package/dist/reactive/types.js +1 -4
  120. package/dist/registration-utils-CNsN4eoU.js +27 -0
  121. package/dist/runtime/component.d.ts.map +1 -1
  122. package/dist/runtime/concatenation-aria.d.ts +24 -0
  123. package/dist/runtime/concatenation-aria.d.ts.map +1 -0
  124. package/dist/runtime/concatenation-aria.js +58 -0
  125. package/dist/runtime/concatenation-full.d.ts +30 -0
  126. package/dist/runtime/concatenation-full.d.ts.map +1 -0
  127. package/dist/runtime/concatenation-full.js +85 -0
  128. package/dist/runtime/concatenation-minimal.d.ts +25 -0
  129. package/dist/runtime/concatenation-minimal.d.ts.map +1 -0
  130. package/dist/runtime/concatenation-minimal.js +45 -0
  131. package/dist/runtime/context.d.ts.map +1 -1
  132. package/dist/runtime/dom-bridge.d.ts +1 -1
  133. package/dist/runtime/dom-bridge.d.ts.map +1 -1
  134. package/dist/runtime/dom-bridge.js +239 -12
  135. package/dist/runtime/event-delegation.d.ts +59 -0
  136. package/dist/runtime/event-delegation.d.ts.map +1 -0
  137. package/dist/runtime/index.d.ts +3 -1
  138. package/dist/runtime/index.d.ts.map +1 -1
  139. package/dist/runtime/index.js +96 -0
  140. package/dist/runtime/layout-scheduler.d.ts +89 -0
  141. package/dist/runtime/layout-scheduler.d.ts.map +1 -0
  142. package/dist/runtime/props.d.ts.map +1 -1
  143. package/dist/runtime/renderer.d.ts +54 -2
  144. package/dist/runtime/renderer.d.ts.map +1 -1
  145. package/dist/runtime/renderer.js +11 -7
  146. package/dist/runtime/semantic-role-manager.d.ts.map +1 -1
  147. package/dist/runtime/types.d.ts +2 -226
  148. package/dist/runtime/types.d.ts.map +1 -1
  149. package/dist/runtime/types.js +1 -1
  150. package/dist/scheduler-DI_8ykMk.js +169 -0
  151. package/dist/signal-list-BdpxSodS.js +525 -0
  152. package/dist/state/index.js +319 -0
  153. package/dist/theme-BFaKUcjZ.js +677 -0
  154. package/dist/utils/clone-helpers.d.ts +11 -0
  155. package/dist/utils/clone-helpers.d.ts.map +1 -0
  156. package/dist/validation/index.js +28 -26
  157. package/dist/version.d.ts +19 -0
  158. package/dist/version.d.ts.map +1 -0
  159. package/dist/version.js +6 -0
  160. package/package.json +69 -9
  161. package/dist/concatenated-component-ByPl3_FF.js +0 -2933
  162. package/dist/dom-bridge-CAa1N2zX.js +0 -406
  163. package/dist/index-DCPJFUm9.js +0 -1407
  164. package/dist/index-vdsiw6gQ.js +0 -777
  165. package/dist/modifiers/as-html-validator.d.ts +0 -20
  166. package/dist/modifiers/as-html-validator.d.ts.map +0 -1
  167. package/dist/modifiers/as-html.d.ts +0 -65
  168. package/dist/modifiers/as-html.d.ts.map +0 -1
  169. package/dist/modifiers/background.d.ts +0 -51
  170. package/dist/modifiers/background.d.ts.map +0 -1
  171. package/dist/modifiers/basic-sanitizer.d.ts +0 -54
  172. package/dist/modifiers/basic-sanitizer.d.ts.map +0 -1
  173. package/dist/modifiers/css.d.ts +0 -86
  174. package/dist/modifiers/css.d.ts.map +0 -1
  175. package/dist/production-minimal-BY_gMc-l.js +0 -2532
  176. package/dist/scheduler-BKeqwrYE.js +0 -814
@@ -1,14 +1,241 @@
1
- import "../scheduler-BKeqwrYE.js";
2
- import { D as m, f as a, h as p, i as r, m as s, r as u, u as i, j as C, k as d } from "../dom-bridge-CAa1N2zX.js";
3
- import "../concatenated-component-ByPl3_FF.js";
1
+ import "../scheduler-DI_8ykMk.js";
2
+ import { n as C, o as M } from "../theme-BFaKUcjZ.js";
3
+ import "@tachui/types/reactive";
4
+ import { b as g, s as m, a as p } from "../component-context-B6qX_Qsg.js";
5
+ import { D as v } from "../concatenated-component-_tF1eMvy.js";
6
+ const L = new v(), f = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Set();
7
+ function _(e) {
8
+ e._enhancedLifecycle && h.add(e);
9
+ }
10
+ function A() {
11
+ for (const e of h) {
12
+ const o = e._enhancedLifecycle;
13
+ if (o && !e.domReady) {
14
+ const t = D(e);
15
+ if (t.length > 0) {
16
+ if (e.domElements = /* @__PURE__ */ new Map(), t.forEach((n, r) => {
17
+ const s = n.id || `element-${r}`;
18
+ e.domElements.set(s, n), e.primaryElement || (e.primaryElement = n);
19
+ }), e.domReady = !0, o.onDOMReady) {
20
+ const n = o.onDOMReady(
21
+ e.domElements,
22
+ e.primaryElement
23
+ );
24
+ typeof n == "function" && (e.cleanup = e.cleanup || [], e.cleanup.push(n));
25
+ }
26
+ if (o.onMount) {
27
+ const n = o.onMount();
28
+ typeof n == "function" && (e.cleanup = e.cleanup || [], e.cleanup.push(n));
29
+ }
30
+ }
31
+ }
32
+ }
33
+ h.clear();
34
+ }
35
+ function D(e) {
36
+ const o = l.get(e);
37
+ if (o && o.length > 0)
38
+ return o;
39
+ const t = document.querySelectorAll(`[data-component-id="${e.id}"]`);
40
+ if (t.length > 0)
41
+ return Array.from(t);
42
+ if (e.id.startsWith("image-")) {
43
+ const n = document.querySelectorAll("img.tachui-image");
44
+ return Array.from(n).filter(
45
+ (r) => !Array.from(l.values()).flat().includes(r)
46
+ );
47
+ }
48
+ if (e.id.startsWith("text-")) {
49
+ const n = document.querySelectorAll(".tachui-text");
50
+ return Array.from(n).filter(
51
+ (r) => !Array.from(l.values()).flat().includes(r)
52
+ );
53
+ }
54
+ if (e.id.startsWith("vstack-") || e.id.startsWith("hstack-")) {
55
+ const n = document.querySelectorAll(".tachui-vstack, .tachui-hstack");
56
+ return Array.from(n).filter(
57
+ (r) => !Array.from(l.values()).flat().includes(r)
58
+ );
59
+ }
60
+ return [];
61
+ }
62
+ function N(e) {
63
+ C((o) => {
64
+ const t = g("root-app");
65
+ m(t);
66
+ const n = M();
67
+ n && n.context.set(p, t);
68
+ let r;
69
+ try {
70
+ r = e();
71
+ const a = document.getElementById("app");
72
+ if (!a)
73
+ throw new Error('App container element with id="app" not found');
74
+ y(r, a);
75
+ } catch (a) {
76
+ throw m(null), n && n.context.delete(p), a;
77
+ }
78
+ const s = o;
79
+ return () => (m(null), n && n.context.delete(p), s());
80
+ });
81
+ }
82
+ function y(e, o, t = !0) {
83
+ try {
84
+ t && (o.innerHTML = "");
85
+ let n = e;
86
+ "build" in e && typeof e.build == "function" && (n = e.build());
87
+ const r = n.render(), s = Array.isArray(r) ? r : [r], a = [];
88
+ for (const c of s) {
89
+ const i = L.render(c, o);
90
+ if (i instanceof DocumentFragment) {
91
+ const d = Array.from(i.childNodes);
92
+ for (const u of d)
93
+ u instanceof Element && (a.push(u), o.appendChild(u));
94
+ } else i instanceof Element && (a.push(i), o.appendChild(i));
95
+ }
96
+ if (a.length > 0) {
97
+ e.domElements = /* @__PURE__ */ new Map(), a.forEach((i, d) => {
98
+ const u = i.id || `element-${d}`;
99
+ e.domElements.set(u, i), i instanceof HTMLElement && (i._componentId = e.id), e.primaryElement || (e.primaryElement = i);
100
+ }), e.domReady = !0;
101
+ const c = e._enhancedLifecycle;
102
+ if (c?.onDOMReady) {
103
+ const i = c.onDOMReady(
104
+ e.domElements,
105
+ e.primaryElement
106
+ );
107
+ typeof i == "function" && (e.cleanup = e.cleanup || [], e.cleanup.push(i));
108
+ }
109
+ if (c?.onMount) {
110
+ const i = c.onMount();
111
+ typeof i == "function" && (e.cleanup = e.cleanup || [], e.cleanup.push(i));
112
+ }
113
+ }
114
+ for (const c of a)
115
+ b(c, e);
116
+ const E = [];
117
+ return f.set(o, e), l.set(e, a), e.mounted = !0, A(), () => {
118
+ E.forEach((c) => c()), w(e, o);
119
+ };
120
+ } catch (n) {
121
+ const r = Object.assign(new Error(), n, {
122
+ code: "MOUNT_FAILED",
123
+ context: "mountComponentTree"
124
+ }), s = e._enhancedLifecycle;
125
+ throw s?.onDOMError ? s.onDOMError(r, "mount") : s?.onError ? s.onError(r) : console.error("Failed to mount component tree:", n), n;
126
+ }
127
+ }
128
+ function O(e, o) {
129
+ const t = l.get(e);
130
+ t && (t.forEach((n) => {
131
+ n.parentNode && n.parentNode.removeChild(n);
132
+ }), l.delete(e)), f.delete(o), e.mounted = !1, e.cleanup && (e.cleanup.forEach((n) => n()), e.cleanup = []);
133
+ }
134
+ function w(e, o) {
135
+ try {
136
+ const t = e._enhancedLifecycle;
137
+ t?.onUnmount && t.onUnmount(), e.cleanup && (e.cleanup.forEach((r) => {
138
+ try {
139
+ r();
140
+ } catch (s) {
141
+ console.error(`Cleanup error for component ${e.id}:`, s);
142
+ }
143
+ }), e.cleanup = []);
144
+ const n = l.get(e);
145
+ if (n && (n.forEach((r) => {
146
+ r.parentNode && r.parentNode.removeChild(r);
147
+ }), l.delete(e)), e.domElements) {
148
+ for (const r of e.domElements.values())
149
+ r instanceof HTMLElement && delete r._componentId;
150
+ e.domElements.clear();
151
+ }
152
+ e.primaryElement = void 0, e.domReady = !1, e.mounted = !1, f.delete(o);
153
+ } catch (t) {
154
+ const n = Object.assign(new Error(), t, {
155
+ code: "UNMOUNT_FAILED",
156
+ context: "unmountComponentEnhanced"
157
+ }), r = e._enhancedLifecycle;
158
+ r?.onDOMError ? r.onDOMError(n, "unmount") : console.error("Component unmounting failed:", t);
159
+ }
160
+ }
161
+ function b(e, o) {
162
+ const t = e;
163
+ if (o.props) {
164
+ const n = o.props;
165
+ n.onClick && typeof n.onClick == "function" && t.addEventListener("click", n.onClick), n.onMouseEnter && typeof n.onMouseEnter == "function" && t.addEventListener("mouseenter", n.onMouseEnter), n.onMouseLeave && typeof n.onMouseLeave == "function" && t.addEventListener("mouseleave", n.onMouseLeave), n.onFocus && typeof n.onFocus == "function" && t.addEventListener("focus", n.onFocus), n.onBlur && typeof n.onBlur == "function" && t.addEventListener("blur", n.onBlur);
166
+ }
167
+ if (k(o) && o.modifiers) {
168
+ for (const n of o.modifiers)
169
+ if (n && "eventHandlers" in n && n.eventHandlers)
170
+ for (const [r, s] of Object.entries(
171
+ n.eventHandlers
172
+ ))
173
+ typeof s == "function" && t.addEventListener(
174
+ r,
175
+ s
176
+ );
177
+ }
178
+ }
179
+ function k(e) {
180
+ return e && typeof e == "object" && ("modifiers" in e || "modifier" in e);
181
+ }
182
+ function I(e, o) {
183
+ const t = [];
184
+ for (const n of e) {
185
+ const r = y(n, o);
186
+ t.push(r);
187
+ }
188
+ return t;
189
+ }
190
+ function S(e, o) {
191
+ const t = l.get(e);
192
+ if (!t) {
193
+ console.warn("Attempted to update unmounted component");
194
+ return;
195
+ }
196
+ e.prevProps = e.props, e.props = { ...e.props, ...o };
197
+ const n = t[0]?.parentElement;
198
+ n && (O(e, n), y(e, n));
199
+ }
200
+ function W(e) {
201
+ let o = e;
202
+ for (; o; ) {
203
+ const t = f.get(o);
204
+ if (t)
205
+ return t;
206
+ o = o.parentElement;
207
+ }
208
+ }
209
+ const $ = {
210
+ getMountedComponents: () => Array.from(f.entries()),
211
+ getComponentElements: (e) => l.get(e),
212
+ isComponentMounted: (e) => e.mounted || !1,
213
+ /**
214
+ * Validate that all components are properly mounted
215
+ */
216
+ validateMounting() {
217
+ const e = [];
218
+ for (const [o, t] of f.entries()) {
219
+ document.contains(o) || e.push(`Container for component ${t.id} is not in DOM`), t.mounted || e.push(
220
+ `Component ${t.id} marked as unmounted but still registered`
221
+ );
222
+ const n = l.get(t);
223
+ (!n || n.length === 0) && e.push(`Component ${t.id} has no associated DOM elements`);
224
+ }
225
+ return {
226
+ valid: e.length === 0,
227
+ issues: e
228
+ };
229
+ }
230
+ };
4
231
  export {
5
- m as DOMBridgeDebug,
6
- a as getComponentFromElement,
7
- p as mountComponentChildren,
8
- r as mountComponentTree,
9
- s as mountRoot,
10
- u as registerComponentWithLifecycleHooks,
11
- i as unmountComponent,
12
- C as unmountComponentEnhanced,
13
- d as updateComponent
232
+ $ as DOMBridgeDebug,
233
+ W as getComponentFromElement,
234
+ I as mountComponentChildren,
235
+ y as mountComponentTree,
236
+ N as mountRoot,
237
+ _ as registerComponentWithLifecycleHooks,
238
+ O as unmountComponent,
239
+ w as unmountComponentEnhanced,
240
+ S as updateComponent
14
241
  };
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Event Delegation System (Phase 3)
3
+ *
4
+ * Provides centralized event handling to reduce per-element listener overhead.
5
+ * Instead of attaching N listeners for N elements, we attach 1 listener per event type
6
+ * at the container level and route events to the correct handlers.
7
+ */
8
+ type EventHandler = (event: Event) => void;
9
+ export declare class EventDelegator {
10
+ private containerListeners;
11
+ private elementHandlers;
12
+ private handlerCounts;
13
+ /**
14
+ * Register an event handler with delegation
15
+ */
16
+ register(container: Element, element: Element, eventType: string, handler: EventHandler): () => void;
17
+ /**
18
+ * Unregister an event handler
19
+ */
20
+ private unregister;
21
+ /**
22
+ * Ensure root listener exists for event type on container
23
+ */
24
+ private ensureRootListener;
25
+ /**
26
+ * Remove root listener for event type on container
27
+ */
28
+ private removeRootListener;
29
+ /**
30
+ * Handle delegated event by finding target handler
31
+ */
32
+ private handleDelegatedEvent;
33
+ /**
34
+ * Check if event type should use delegation
35
+ */
36
+ shouldDelegate(eventType: string): boolean;
37
+ /**
38
+ * Check if event type should use passive listeners
39
+ */
40
+ shouldBePassive(eventType: string): boolean;
41
+ /**
42
+ * Get metrics for debugging
43
+ */
44
+ getMetrics(container: Element): {
45
+ eventTypes: string[];
46
+ totalHandlers: number;
47
+ handlersPerType: Record<string, number>;
48
+ };
49
+ /**
50
+ * Cleanup all handlers for a container
51
+ */
52
+ cleanupContainer(container: Element): void;
53
+ }
54
+ /**
55
+ * Global event delegator instance
56
+ */
57
+ export declare const globalEventDelegator: EventDelegator;
58
+ export {};
59
+ //# sourceMappingURL=event-delegation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-delegation.d.ts","sourceRoot":"","sources":["../../src/runtime/event-delegation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;AAyC1C,qBAAa,cAAc;IAEzB,OAAO,CAAC,kBAAkB,CAAqD;IAG/E,OAAO,CAAC,eAAe,CAA0D;IAGjF,OAAO,CAAC,aAAa,CAA8C;IAEnE;;OAEG;IACH,QAAQ,CACN,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACpB,MAAM,IAAI;IAkCb;;OAEG;IACH,OAAO,CAAC,UAAU;IA0BlB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiC5B;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI1C;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI3C;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG;QAC9B,UAAU,EAAE,MAAM,EAAE,CAAA;QACpB,aAAa,EAAE,MAAM,CAAA;QACrB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACxC;IAqBD;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;CAW3C;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,gBAAuB,CAAA"}
@@ -14,7 +14,9 @@ export { LifecycleManager } from './lifecycle';
14
14
  export { mount, unmount, updateProps } from './mounting';
15
15
  export { lazy, memo } from './optimization';
16
16
  export { ChildrenManager, createChildrenManager, createPropsManager, createRefManager, defaultChildrenRenderer, PropsManager, propsUtils, RefManager, } from './props';
17
- export { DOMRenderer, h, renderComponent, text } from './renderer';
17
+ export { DOMRenderer, h, renderComponent, text, resetRendererMetrics, getRendererMetrics } from './renderer';
18
+ export type { RendererMetricsSnapshot } from './renderer';
19
+ export { EventDelegator, globalEventDelegator } from './event-delegation';
18
20
  export * from './element-override';
19
21
  export * from './semantic-role-manager';
20
22
  export { AnimationManager, FocusManager, migrateFromSetTimeout, onDOMError, onDOMReady, onError, onMount, onUnmount, setupOutsideClickDetection, setupPositioning, useLifecycle, withDOMAccess, withErrorBoundary, withReactiveAsset, } from '../lifecycle/hooks';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,SAAS,EACT,UAAU,EACV,aAAa,GACd,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,GAErB,MAAM,qBAAqB,CAAA;AAE5B,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,qBAAqB,EACrB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,UAAU,EACV,YAAY,GACb,MAAM,WAAW,CAAA;AAIlB,OAAO,EACL,SAAS,EACT,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,GAChB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAG3C,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,UAAU,EACV,UAAU,GACX,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAElE,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AAIvC,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,EACP,SAAS,EACT,0BAA0B,EAC1B,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,oBAAoB,CAAA;AAE3B,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,cAAc,EACd,GAAG,EACH,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,GACf,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,SAAS,EACT,UAAU,EACV,aAAa,GACd,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,GAErB,MAAM,qBAAqB,CAAA;AAE5B,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,qBAAqB,EACrB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,UAAU,EACV,YAAY,GACb,MAAM,WAAW,CAAA;AAIlB,OAAO,EACL,SAAS,EACT,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,GAChB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAG3C,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,UAAU,EACV,UAAU,GACX,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC5G,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEzD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEzE,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AAIvC,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,EACP,SAAS,EACT,0BAA0B,EAC1B,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,oBAAoB,CAAA;AAE3B,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,cAAc,EACd,GAAG,EACH,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,GACf,MAAM,SAAS,CAAA"}
@@ -0,0 +1,96 @@
1
+ import { h as t, C as n, P as o, R as r, d as s, j as m, c as i, e as C, i as c, a as l, f as p, k as u, l as g, g as d, p as M, w as E } from "../component-CECyfUOE.js";
2
+ import { C as x, a as R, E as h, c as v, b as D, d as O, g as A, p as b, r as w, s as I, w as y } from "../component-context-B6qX_Qsg.js";
3
+ import { A as L, C as T, D as P, F as V, I as j, c as F, a as _, b as k, d as B, g as G, i as N, m as U, o as q, e as W, f as z, h as H, j as K, s as Y, k as J, u as Q, l as X, n as Z, p as $, w as ee, q as ae } from "../hooks-DeLasj54.js";
4
+ import { DOMBridgeDebug as ne, getComponentFromElement as oe, mountComponentChildren as re, mountComponentTree as se, mountRoot as me, unmountComponent as ie, unmountComponentEnhanced as Ce, updateComponent as ce } from "./dom-bridge.js";
5
+ import { L as pe, l as ue, b as ge, m as de, u as Me, a as Ee } from "../optimization-CbKNA9w4.js";
6
+ import { C as xe, D as Re, k as he, E as ve, S as De, q as Oe, V as Ae, v as be, l as we, o as Ie, n as ye, g as Se, w as Le, i as Te, h as Pe, x as Ve, p as je, r as Fe, f as _e, u as ke, j as Be, t as Ge } from "../concatenated-component-_tF1eMvy.js";
7
+ export {
8
+ L as AnimationManager,
9
+ xe as COMPONENT_ELIGIBILITY,
10
+ t as ChildrenManager,
11
+ x as ComponentContextDebug,
12
+ R as ComponentContextSymbol,
13
+ n as ComponentManager,
14
+ T as ContextManager,
15
+ P as DIContainer,
16
+ ne as DOMBridgeDebug,
17
+ Re as DOMRenderer,
18
+ he as ElementTagValidator,
19
+ h as EnvironmentSymbol,
20
+ ve as EventDelegator,
21
+ V as FocusManager,
22
+ j as Injectable,
23
+ pe as LifecycleManager,
24
+ o as PropsManager,
25
+ r as RefManager,
26
+ De as SEMANTIC_TAG_ROLES,
27
+ Oe as SemanticRoleManager,
28
+ Ae as VALID_HTML_TAGS,
29
+ be as applySemanticAttributes,
30
+ we as configureElementOverrides,
31
+ v as consumeEnvironmentValue,
32
+ F as contextUtils,
33
+ s as createAdvancedComponent,
34
+ m as createChildrenManager,
35
+ i as createComponent,
36
+ D as createComponentContext,
37
+ _ as createContext,
38
+ k as createContextConsumer,
39
+ Ie as createElementOverrideValidator,
40
+ O as createEnvironmentKey,
41
+ C as createFragment,
42
+ c as createPropsManager,
43
+ l as createReactiveComponent,
44
+ p as createRef,
45
+ u as createRefManager,
46
+ g as defaultChildrenRenderer,
47
+ B as defaultContextManager,
48
+ d as forwardRef,
49
+ oe as getComponentFromElement,
50
+ A as getCurrentComponentContext,
51
+ ye as getElementOverrideConfig,
52
+ Se as getRendererMetrics,
53
+ Le as getSemanticRole,
54
+ G as globalDI,
55
+ Te as globalEventDelegator,
56
+ Pe as h,
57
+ Ve as hasAutoARIA,
58
+ N as inject,
59
+ ue as lazy,
60
+ ge as memo,
61
+ U as migrateFromSetTimeout,
62
+ de as mount,
63
+ re as mountComponentChildren,
64
+ se as mountComponentTree,
65
+ me as mountRoot,
66
+ q as onDOMError,
67
+ W as onDOMReady,
68
+ z as onError,
69
+ H as onMount,
70
+ K as onUnmount,
71
+ je as processElementOverride,
72
+ M as propsUtils,
73
+ b as provideEnvironmentValue,
74
+ Fe as renderComponent,
75
+ _e as resetRendererMetrics,
76
+ w as runWithComponentContext,
77
+ ke as semanticRoleManager,
78
+ I as setCurrentComponentContext,
79
+ Y as setupOutsideClickDetection,
80
+ J as setupPositioning,
81
+ Be as shouldWarnOnOverride,
82
+ Ge as text,
83
+ Me as unmount,
84
+ ie as unmountComponent,
85
+ Ce as unmountComponentEnhanced,
86
+ ce as updateComponent,
87
+ Ee as updateProps,
88
+ Q as useContext,
89
+ X as useLifecycle,
90
+ y as withComponentContext,
91
+ Z as withDOMAccess,
92
+ $ as withErrorBoundary,
93
+ E as withLifecycle,
94
+ ee as withProvider,
95
+ ae as withReactiveAsset
96
+ };
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Layout Scheduler (Phase 4)
3
+ *
4
+ * FastDOM-style read/write separation to prevent layout thrashing.
5
+ * Batches DOM reads (measurements) and writes (mutations) into separate phases.
6
+ */
7
+ type ReadTask = () => void;
8
+ type WriteTask = () => void;
9
+ /**
10
+ * Global layout scheduler for batching DOM operations
11
+ */
12
+ declare class LayoutScheduler {
13
+ private state;
14
+ private thrashDetection;
15
+ /**
16
+ * Schedule a DOM read (measurement) operation
17
+ * Reads are batched and executed before writes to avoid layout thrashing
18
+ */
19
+ read(task: ReadTask): void;
20
+ /**
21
+ * Schedule a DOM write (mutation) operation
22
+ * Writes are batched and executed after all reads complete
23
+ */
24
+ write(task: WriteTask): void;
25
+ /**
26
+ * Schedule a deferred DOM write (mutation) using requestAnimationFrame
27
+ * Use this for non-urgent updates that can wait until the next frame
28
+ */
29
+ defer(task: WriteTask): void;
30
+ /**
31
+ * Execute a read immediately (use sparingly, prefer batched reads)
32
+ */
33
+ readNow<T>(task: () => T): T;
34
+ /**
35
+ * Execute a write immediately (use sparingly, prefer batched writes)
36
+ */
37
+ writeNow(task: WriteTask): void;
38
+ /**
39
+ * Schedule the flush if not already scheduled
40
+ */
41
+ private scheduleFlush;
42
+ /**
43
+ * Schedule deferred writes using requestAnimationFrame
44
+ */
45
+ private scheduleDeferred;
46
+ /**
47
+ * Flush all pending reads and writes
48
+ */
49
+ private flush;
50
+ /**
51
+ * Flush deferred writes
52
+ */
53
+ private flushDeferred;
54
+ /**
55
+ * Clear all pending operations (useful for cleanup/testing)
56
+ */
57
+ clear(): void;
58
+ /**
59
+ * Detect layout thrashing patterns in dev mode
60
+ */
61
+ private detectThrash;
62
+ /**
63
+ * Get current scheduler stats (for debugging/testing)
64
+ */
65
+ getStats(): {
66
+ pendingReads: number;
67
+ pendingWrites: number;
68
+ pendingDeferredWrites: number;
69
+ scheduled: boolean;
70
+ rafScheduled: boolean;
71
+ measuring: boolean;
72
+ mutating: boolean;
73
+ thrashCount: number;
74
+ };
75
+ }
76
+ /**
77
+ * Global layout scheduler instance
78
+ */
79
+ export declare const layoutScheduler: LayoutScheduler;
80
+ /**
81
+ * Convenience functions for scheduling operations
82
+ */
83
+ export declare function scheduleRead(task: ReadTask): void;
84
+ export declare function scheduleWrite(task: WriteTask): void;
85
+ export declare function readDOM<T>(task: () => T): T;
86
+ export declare function writeDOM(task: WriteTask): void;
87
+ export declare function deferWrite(task: WriteTask): void;
88
+ export {};
89
+ //# sourceMappingURL=layout-scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-scheduler.d.ts","sourceRoot":"","sources":["../../src/runtime/layout-scheduler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAA;AAC1B,KAAK,SAAS,GAAG,MAAM,IAAI,CAAA;AAa3B;;GAEG;AACH,cAAM,eAAe;IACnB,OAAO,CAAC,KAAK,CASZ;IAGD,OAAO,CAAC,eAAe,CAKtB;IAED;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAK1B;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAK5B;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAK5B;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;IAO5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAO/B;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,KAAK;IA2Cb;;OAEG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACH,OAAO,CAAC,YAAY;IA+BpB;;OAEG;IACH,QAAQ;;;;;;;;;;CAYT;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,iBAAwB,CAAA;AAEpD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAEjD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAEnD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAE3C;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAE9C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAEhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../src/runtime/props.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../src/runtime/props.ts"],"names":[],"mappings":"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"}
@@ -8,14 +8,37 @@ import type { ComponentInstance, DOMNode } from './types';
8
8
  /**
9
9
  * Direct DOM renderer for efficient DOM manipulation
10
10
  */
11
+ type RendererMetrics = {
12
+ created: number;
13
+ adopted: number;
14
+ removed: number;
15
+ inserted: number;
16
+ moved: number;
17
+ cacheHits: number;
18
+ cacheMisses: number;
19
+ attributeWrites: number;
20
+ attributeRemovals: number;
21
+ textUpdates: number;
22
+ modifierApplications: number;
23
+ };
11
24
  export declare class DOMRenderer {
12
25
  private nodeMap;
13
26
  private cleanupMap;
14
27
  private renderedNodes;
28
+ private elementToContainer;
29
+ private metrics;
15
30
  /**
16
31
  * Render a DOM node to an actual DOM element
17
32
  */
18
33
  render(node: DOMNode | DOMNode[], container?: Element): Element | Text | Comment | DocumentFragment;
34
+ /**
35
+ * Check if a DOM node has been rendered and tracked.
36
+ */
37
+ hasNode(node: DOMNode): boolean;
38
+ /**
39
+ * Get the rendered DOM element associated with a node.
40
+ */
41
+ getRenderedNode(node: DOMNode): Element | Text | Comment | undefined;
19
42
  /**
20
43
  * Render a single DOM node
21
44
  */
@@ -27,11 +50,18 @@ export declare class DOMRenderer {
27
50
  /**
28
51
  * Create a DOM element with props and children
29
52
  */
30
- private createElement;
53
+ private createOrUpdateElement;
54
+ private updateProps;
55
+ private updateChildren;
56
+ private updateExistingNode;
31
57
  /**
32
58
  * Apply debug attributes to DOM element if debug mode is enabled
33
59
  */
34
60
  private applyDebugAttributes;
61
+ /**
62
+ * Create or update a text node
63
+ */
64
+ private createOrUpdateTextNode;
35
65
  /**
36
66
  * Create a text node
37
67
  */
@@ -69,7 +99,7 @@ export declare class DOMRenderer {
69
99
  */
70
100
  private setElementStyles;
71
101
  /**
72
- * Apply event listener
102
+ * Apply event listener (with delegation if possible)
73
103
  */
74
104
  private applyEventListener;
75
105
  /**
@@ -84,6 +114,10 @@ export declare class DOMRenderer {
84
114
  * Remove a DOM node and run cleanup
85
115
  */
86
116
  removeNode(node: DOMNode): void;
117
+ /**
118
+ * Cleanup a node (and its descendants) and optionally remove from DOM.
119
+ */
120
+ private cleanupNode;
87
121
  /**
88
122
  * Create reactive text content
89
123
  */
@@ -96,11 +130,28 @@ export declare class DOMRenderer {
96
130
  * Apply modifiers to a DOM element
97
131
  */
98
132
  private applyModifiersToElement;
133
+ /**
134
+ * Adopt an existing DOM mapping from one node to another.
135
+ */
136
+ adoptNode(oldNode: DOMNode, newNode: DOMNode): void;
99
137
  /**
100
138
  * Cleanup all tracked elements
101
139
  */
102
140
  cleanup(): void;
141
+ resetMetrics(): void;
142
+ getMetrics(): RendererMetrics;
143
+ recordCacheHit(): void;
144
+ recordCacheMiss(): void;
145
+ insertNode(container: Element, node: Element | Text | Comment, nextSibling: Node | null): void;
146
+ appendNode(container: Element, node: Element | Text | Comment): void;
147
+ private recordAttributeWrite;
148
+ private recordAttributeRemoval;
149
+ private recordTextUpdate;
150
+ private recordModifierApplications;
103
151
  }
152
+ export type RendererMetricsSnapshot = RendererMetrics;
153
+ export declare function resetRendererMetrics(): void;
154
+ export declare function getRendererMetrics(): RendererMetricsSnapshot;
104
155
  /**
105
156
  * Render a component instance to DOM
106
157
  */
@@ -113,4 +164,5 @@ export declare function h(tag: string, props?: Record<string, any> | null, ...ch
113
164
  * Create a text node helper
114
165
  */
115
166
  export declare function text(content: string | (() => string)): DOMNode;
167
+ export {};
116
168
  //# sourceMappingURL=renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/runtime/renderer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAUzD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAmD;IAClE,OAAO,CAAC,UAAU,CAA0D;IAC5E,OAAO,CAAC,aAAa,CAAqB;IAE1C;;OAEG;IACH,MAAM,CACJ,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,EACzB,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,gBAAgB;IAQ9C;;OAEG;IACH,OAAO,CAAC,YAAY;IAoEpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,OAAO,CAAC,aAAa;IA6CrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmC5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;OAEG;IACH,OAAO,CAAC,SAAS;IAoCjB;;OAEG;IACH,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAmBlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyCxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAY/D;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IA6B/B;;OAEG;IACH,kBAAkB,CAAC,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI;IAUpD;;OAEG;IACH,qBAAqB,CACnB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxC,QAAQ,CAAC,EAAE,OAAO,EAAE,GACnB,OAAO;IAoBV;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA+B/B;;OAEG;IACH,OAAO,IAAI,IAAI;CAiBhB;AAOD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,OAAO,GACjB,MAAM,IAAI,CA6BZ;AAED;;GAEG;AACH,wBAAgB,CAAC,CACf,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAClC,GAAG,QAAQ,EAAE,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GACzC,OAAO,CAoBT;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,OAAO,CA4C9D"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/runtime/renderer.ts"],"names":[],"mappings":"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"}