@coherent.js/core 1.0.0-beta.2

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 (116) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +130 -0
  3. package/dist/coherent.d.ts +472 -0
  4. package/dist/coherent.d.ts.map +1 -0
  5. package/dist/coherent.js +590 -0
  6. package/dist/coherent.js.map +1 -0
  7. package/dist/components/component-system.d.ts +1138 -0
  8. package/dist/components/component-system.d.ts.map +1 -0
  9. package/dist/components/component-system.js +2220 -0
  10. package/dist/components/component-system.js.map +1 -0
  11. package/dist/components/lifecycle.d.ts +212 -0
  12. package/dist/components/lifecycle.d.ts.map +1 -0
  13. package/dist/components/lifecycle.js +525 -0
  14. package/dist/components/lifecycle.js.map +1 -0
  15. package/dist/core/html-utils.d.ts +14 -0
  16. package/dist/core/html-utils.d.ts.map +1 -0
  17. package/dist/core/html-utils.js +166 -0
  18. package/dist/core/html-utils.js.map +1 -0
  19. package/dist/core/object-factory.d.ts +38 -0
  20. package/dist/core/object-factory.d.ts.map +1 -0
  21. package/dist/core/object-factory.js +63 -0
  22. package/dist/core/object-factory.js.map +1 -0
  23. package/dist/core/object-utils.d.ts +77 -0
  24. package/dist/core/object-utils.d.ts.map +1 -0
  25. package/dist/core/object-utils.js +502 -0
  26. package/dist/core/object-utils.js.map +1 -0
  27. package/dist/dev/dev-tools.d.ts +194 -0
  28. package/dist/dev/dev-tools.d.ts.map +1 -0
  29. package/dist/dev/dev-tools.js +846 -0
  30. package/dist/dev/dev-tools.js.map +1 -0
  31. package/dist/forms/validation.d.ts +271 -0
  32. package/dist/forms/validation.d.ts.map +1 -0
  33. package/dist/forms/validation.js +573 -0
  34. package/dist/forms/validation.js.map +1 -0
  35. package/dist/index.cjs +5281 -0
  36. package/dist/index.cjs.map +7 -0
  37. package/dist/index.js +5204 -0
  38. package/dist/index.js.map +7 -0
  39. package/dist/performance/bundle-optimizer.d.ts +95 -0
  40. package/dist/performance/bundle-optimizer.d.ts.map +1 -0
  41. package/dist/performance/bundle-optimizer.js +192 -0
  42. package/dist/performance/bundle-optimizer.js.map +1 -0
  43. package/dist/performance/cache-manager.d.ts +107 -0
  44. package/dist/performance/cache-manager.d.ts.map +1 -0
  45. package/dist/performance/cache-manager.js +314 -0
  46. package/dist/performance/cache-manager.js.map +1 -0
  47. package/dist/performance/component-cache.d.ts +120 -0
  48. package/dist/performance/component-cache.d.ts.map +1 -0
  49. package/dist/performance/component-cache.js +364 -0
  50. package/dist/performance/component-cache.js.map +1 -0
  51. package/dist/performance/monitor.d.ts +189 -0
  52. package/dist/performance/monitor.d.ts.map +1 -0
  53. package/dist/performance/monitor.js +347 -0
  54. package/dist/performance/monitor.js.map +1 -0
  55. package/dist/rendering/base-renderer.d.ts +140 -0
  56. package/dist/rendering/base-renderer.d.ts.map +1 -0
  57. package/dist/rendering/base-renderer.js +409 -0
  58. package/dist/rendering/base-renderer.js.map +1 -0
  59. package/dist/rendering/css-manager.d.ts +73 -0
  60. package/dist/rendering/css-manager.d.ts.map +1 -0
  61. package/dist/rendering/css-manager.js +176 -0
  62. package/dist/rendering/css-manager.js.map +1 -0
  63. package/dist/rendering/dom-renderer.d.ts +62 -0
  64. package/dist/rendering/dom-renderer.d.ts.map +1 -0
  65. package/dist/rendering/dom-renderer.js +252 -0
  66. package/dist/rendering/dom-renderer.js.map +1 -0
  67. package/dist/rendering/html-renderer.d.ts +67 -0
  68. package/dist/rendering/html-renderer.d.ts.map +1 -0
  69. package/dist/rendering/html-renderer.js +444 -0
  70. package/dist/rendering/html-renderer.js.map +1 -0
  71. package/dist/rendering/renderer-config.d.ts +282 -0
  72. package/dist/rendering/renderer-config.d.ts.map +1 -0
  73. package/dist/rendering/renderer-config.js +144 -0
  74. package/dist/rendering/renderer-config.js.map +1 -0
  75. package/dist/rendering/streaming-renderer.d.ts +117 -0
  76. package/dist/rendering/streaming-renderer.d.ts.map +1 -0
  77. package/dist/rendering/streaming-renderer.js +326 -0
  78. package/dist/rendering/streaming-renderer.js.map +1 -0
  79. package/dist/rendering/vdom-diff.d.ts +47 -0
  80. package/dist/rendering/vdom-diff.d.ts.map +1 -0
  81. package/dist/rendering/vdom-diff.js +416 -0
  82. package/dist/rendering/vdom-diff.js.map +1 -0
  83. package/dist/routing/router.d.ts +241 -0
  84. package/dist/routing/router.d.ts.map +1 -0
  85. package/dist/routing/router.js +648 -0
  86. package/dist/routing/router.js.map +1 -0
  87. package/dist/state/reactive-state.d.ts +166 -0
  88. package/dist/state/reactive-state.d.ts.map +1 -0
  89. package/dist/state/reactive-state.js +546 -0
  90. package/dist/state/reactive-state.js.map +1 -0
  91. package/dist/state/state-manager.d.ts +45 -0
  92. package/dist/state/state-manager.d.ts.map +1 -0
  93. package/dist/state/state-manager.js +151 -0
  94. package/dist/state/state-manager.js.map +1 -0
  95. package/dist/types/constants.d.ts +8 -0
  96. package/dist/types/constants.d.ts.map +1 -0
  97. package/dist/types/constants.js +36 -0
  98. package/dist/types/constants.js.map +1 -0
  99. package/dist/utils/dependency-utils.d.ts +43 -0
  100. package/dist/utils/dependency-utils.d.ts.map +1 -0
  101. package/dist/utils/dependency-utils.js +105 -0
  102. package/dist/utils/dependency-utils.js.map +1 -0
  103. package/dist/utils/error-handler.d.ts +148 -0
  104. package/dist/utils/error-handler.d.ts.map +1 -0
  105. package/dist/utils/error-handler.js +468 -0
  106. package/dist/utils/error-handler.js.map +1 -0
  107. package/dist/utils/normalization.d.ts +3 -0
  108. package/dist/utils/normalization.d.ts.map +1 -0
  109. package/dist/utils/normalization.js +24 -0
  110. package/dist/utils/normalization.js.map +1 -0
  111. package/dist/utils/validation.d.ts +10 -0
  112. package/dist/utils/validation.d.ts.map +1 -0
  113. package/dist/utils/validation.js +32 -0
  114. package/dist/utils/validation.js.map +1 -0
  115. package/package.json +44 -0
  116. package/types/index.d.ts +734 -0
@@ -0,0 +1,525 @@
1
+ /**
2
+ * Component Lifecycle System for Coherent.js
3
+ * Provides hooks and events for component lifecycle management
4
+ */
5
+ import { globalErrorHandler } from '../utils/error-handler.js';
6
+ import { ReactiveState } from '../state/reactive-state.js';
7
+ /**
8
+ * Lifecycle phases
9
+ */
10
+ export const LIFECYCLE_PHASES = {
11
+ BEFORE_CREATE: 'beforeCreate',
12
+ CREATED: 'created',
13
+ BEFORE_MOUNT: 'beforeMount',
14
+ MOUNTED: 'mounted',
15
+ BEFORE_UPDATE: 'beforeUpdate',
16
+ UPDATED: 'updated',
17
+ BEFORE_UNMOUNT: 'beforeUnmount',
18
+ UNMOUNTED: 'unmounted',
19
+ ERROR: 'error'
20
+ };
21
+ /**
22
+ * Component instance tracker
23
+ */
24
+ const componentInstances = new WeakMap();
25
+ const componentRegistry = new Map();
26
+ /**
27
+ * Component lifecycle manager
28
+ */
29
+ export class ComponentLifecycle {
30
+ constructor(component, options = {}) {
31
+ this.component = component;
32
+ this.id = this.generateId();
33
+ this.options = options;
34
+ this.phase = null;
35
+ this.hooks = new Map();
36
+ this.state = new ReactiveState();
37
+ this.props = {};
38
+ this.context = {};
39
+ this.isMounted = false;
40
+ this.isDestroyed = false;
41
+ this.children = new Set();
42
+ this.parent = null;
43
+ this.eventHandlers = new Map();
44
+ this.timers = new Set();
45
+ this.subscriptions = new Set();
46
+ // Register instance
47
+ componentInstances.set(component, this);
48
+ componentRegistry.set(this.id, this);
49
+ // Initialize lifecycle
50
+ this.executeHook(LIFECYCLE_PHASES.BEFORE_CREATE);
51
+ this.executeHook(LIFECYCLE_PHASES.CREATED);
52
+ }
53
+ /**
54
+ * Generate unique component ID
55
+ */
56
+ generateId() {
57
+ return `comp_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
58
+ }
59
+ /**
60
+ * Add lifecycle hook
61
+ */
62
+ hook(phase, callback) {
63
+ if (typeof callback !== 'function') {
64
+ throw new Error(`Hook callback must be a function for phase: ${phase}`);
65
+ }
66
+ if (!this.hooks.has(phase)) {
67
+ this.hooks.set(phase, []);
68
+ }
69
+ this.hooks.get(phase).push(callback);
70
+ return this;
71
+ }
72
+ /**
73
+ * Execute hooks for a specific phase
74
+ */
75
+ async executeHook(phase, ...args) {
76
+ if (this.isDestroyed) {
77
+ return;
78
+ }
79
+ this.phase = phase;
80
+ const hooks = this.hooks.get(phase) || [];
81
+ for (const hook of hooks) {
82
+ try {
83
+ await hook.call(this, ...args);
84
+ }
85
+ catch (error) {
86
+ this.handleError(error, phase);
87
+ }
88
+ }
89
+ }
90
+ /**
91
+ * Handle component errors
92
+ */
93
+ handleError(error, phase) {
94
+ const enhancedError = globalErrorHandler.handle(error, {
95
+ component: this.component,
96
+ context: {
97
+ phase,
98
+ componentId: this.id,
99
+ props: this.props,
100
+ state: this.state.toObject()
101
+ }
102
+ });
103
+ this.executeHook(LIFECYCLE_PHASES.ERROR, enhancedError);
104
+ }
105
+ /**
106
+ * Mount component
107
+ */
108
+ async mount(container, props = {}) {
109
+ if (this.isMounted) {
110
+ console.warn(`Component ${this.id} is already mounted`);
111
+ return;
112
+ }
113
+ this.props = props;
114
+ this.container = container;
115
+ await this.executeHook(LIFECYCLE_PHASES.BEFORE_MOUNT, container, _props);
116
+ try {
117
+ // Actual mounting logic would be handled by the renderer
118
+ this.isMounted = true;
119
+ await this.executeHook(LIFECYCLE_PHASES.MOUNTED, container);
120
+ }
121
+ catch (error) {
122
+ this.handleError(error, 'mount');
123
+ }
124
+ }
125
+ /**
126
+ * Update component
127
+ */
128
+ async update(newProps = {}) {
129
+ if (!this.isMounted || this.isDestroyed) {
130
+ return;
131
+ }
132
+ const oldProps = this.props;
133
+ this.props = { ...this.props, ...newProps };
134
+ await this.executeHook(LIFECYCLE_PHASES.BEFORE_UPDATE, newProps, oldProps);
135
+ try {
136
+ // Update logic would be handled by the renderer
137
+ await this.executeHook(LIFECYCLE_PHASES.UPDATED, this.props, oldProps);
138
+ }
139
+ catch (error) {
140
+ this.handleError(error, 'update');
141
+ }
142
+ }
143
+ /**
144
+ * Unmount component
145
+ */
146
+ async unmount() {
147
+ if (!this.isMounted || this.isDestroyed) {
148
+ return;
149
+ }
150
+ await this.executeHook(LIFECYCLE_PHASES.BEFORE_UNMOUNT);
151
+ try {
152
+ // Cleanup children
153
+ for (const child of this.children) {
154
+ await child.unmount();
155
+ }
156
+ // Cleanup subscriptions
157
+ this.subscriptions.forEach(unsub => {
158
+ try {
159
+ unsub();
160
+ }
161
+ catch (error) {
162
+ console.warn('Error cleaning up subscription:', error);
163
+ }
164
+ });
165
+ // Clear timers
166
+ this.timers.forEach(timer => {
167
+ clearTimeout(timer);
168
+ clearInterval(timer);
169
+ });
170
+ // Remove event handlers
171
+ this.eventHandlers.forEach((handler, element) => {
172
+ handler.events.forEach((listeners, event) => {
173
+ listeners.forEach(listener => {
174
+ element.removeEventListener(event, listener);
175
+ });
176
+ });
177
+ });
178
+ // Cleanup state
179
+ this.state.destroy();
180
+ this.isMounted = false;
181
+ this.isDestroyed = true;
182
+ await this.executeHook(LIFECYCLE_PHASES.UNMOUNTED);
183
+ // Unregister
184
+ componentRegistry.delete(this.id);
185
+ }
186
+ catch (error) {
187
+ this.handleError(error, 'unmount');
188
+ }
189
+ }
190
+ /**
191
+ * Add child component
192
+ */
193
+ addChild(child) {
194
+ child.parent = this;
195
+ this.children.add(child);
196
+ }
197
+ /**
198
+ * Remove child component
199
+ */
200
+ removeChild(child) {
201
+ child.parent = null;
202
+ this.children.delete(child);
203
+ }
204
+ /**
205
+ * Add event listener with automatic cleanup
206
+ */
207
+ addEventListener(element, event, listener, options = {}) {
208
+ if (!this.eventHandlers.has(element)) {
209
+ this.eventHandlers.set(element, {
210
+ events: new Map()
211
+ });
212
+ }
213
+ const handler = this.eventHandlers.get(element);
214
+ if (!handler.events.has(event)) {
215
+ handler.events.set(event, new Set());
216
+ }
217
+ handler.events.get(event).add(listener);
218
+ element.addEventListener(event, listener, options);
219
+ // Return cleanup function
220
+ return () => {
221
+ handler.events.get(event).delete(listener);
222
+ element.removeEventListener(event, listener);
223
+ };
224
+ }
225
+ /**
226
+ * Add subscription with automatic cleanup
227
+ */
228
+ addSubscription(unsubscribe) {
229
+ this.subscriptions.add(unsubscribe);
230
+ return unsubscribe;
231
+ }
232
+ /**
233
+ * Set timer with automatic cleanup
234
+ */
235
+ setTimeout(callback, delay) {
236
+ const timer = setTimeout(() => {
237
+ this.timers.delete(timer);
238
+ callback();
239
+ }, delay);
240
+ this.timers.add(timer);
241
+ return timer;
242
+ }
243
+ setInterval(callback, interval) {
244
+ const timer = setInterval(callback, interval);
245
+ this.timers.add(timer);
246
+ return timer;
247
+ }
248
+ /**
249
+ * Get component statistics
250
+ */
251
+ getStats() {
252
+ return {
253
+ id: this.id,
254
+ phase: this.phase,
255
+ isMounted: this.isMounted,
256
+ isDestroyed: this.isDestroyed,
257
+ childCount: this.children.size,
258
+ eventHandlers: this.eventHandlers.size,
259
+ subscriptions: this.subscriptions.size,
260
+ timers: this.timers.size,
261
+ state: this.state.getStats()
262
+ };
263
+ }
264
+ }
265
+ /**
266
+ * Event system for components
267
+ */
268
+ export class ComponentEventSystem {
269
+ constructor() {
270
+ this.events = new Map();
271
+ this.globalHandlers = new Map();
272
+ }
273
+ /**
274
+ * Emit event to component or globally
275
+ */
276
+ emit(eventName, data = {}, target = null) {
277
+ const event = {
278
+ name: eventName,
279
+ data,
280
+ target,
281
+ timestamp: Date.now(),
282
+ stopped: false,
283
+ preventDefault: false
284
+ };
285
+ // Target specific component
286
+ if (target) {
287
+ const instance = componentInstances.get(target);
288
+ if (instance) {
289
+ this._notifyHandlers(instance.id, event);
290
+ }
291
+ }
292
+ else {
293
+ // Global event
294
+ this._notifyGlobalHandlers(event);
295
+ }
296
+ return event;
297
+ }
298
+ /**
299
+ * Listen for events on component or globally
300
+ */
301
+ on(eventName, handler, componentId = null) {
302
+ if (componentId) {
303
+ // Component-specific event
304
+ if (!this.events.has(componentId)) {
305
+ this.events.set(componentId, new Map());
306
+ }
307
+ const componentEvents = this.events.get(componentId);
308
+ if (!componentEvents.has(eventName)) {
309
+ componentEvents.set(eventName, new Set());
310
+ }
311
+ componentEvents.get(eventName).add(handler);
312
+ }
313
+ else {
314
+ // Global event
315
+ if (!this.globalHandlers.has(eventName)) {
316
+ this.globalHandlers.set(eventName, new Set());
317
+ }
318
+ this.globalHandlers.get(eventName).add(handler);
319
+ }
320
+ // Return unsubscribe function
321
+ return () => this.off(eventName, handler, componentId);
322
+ }
323
+ /**
324
+ * Remove event handler
325
+ */
326
+ off(eventName, handler, componentId = null) {
327
+ if (componentId) {
328
+ const componentEvents = this.events.get(componentId);
329
+ if (componentEvents && componentEvents.has(eventName)) {
330
+ componentEvents.get(eventName).delete(handler);
331
+ // Cleanup empty sets
332
+ if (componentEvents.get(eventName).size === 0) {
333
+ componentEvents.delete(eventName);
334
+ if (componentEvents.size === 0) {
335
+ this.events.delete(componentId);
336
+ }
337
+ }
338
+ }
339
+ }
340
+ else {
341
+ const handlers = this.globalHandlers.get(eventName);
342
+ if (handlers) {
343
+ handlers.delete(handler);
344
+ if (handlers.size === 0) {
345
+ this.globalHandlers.delete(eventName);
346
+ }
347
+ }
348
+ }
349
+ }
350
+ /**
351
+ * Listen once
352
+ */
353
+ once(eventName, handler, componentId = null) {
354
+ const onceHandler = (event) => {
355
+ handler(event);
356
+ this.off(eventName, onceHandler, componentId);
357
+ };
358
+ return this.on(eventName, onceHandler, componentId);
359
+ }
360
+ /**
361
+ * Notify component handlers
362
+ */
363
+ _notifyHandlers(componentId, event) {
364
+ const componentEvents = this.events.get(componentId);
365
+ if (componentEvents && componentEvents.has(event.name)) {
366
+ const handlers = componentEvents.get(event.name);
367
+ for (const handler of handlers) {
368
+ if (event.stopped)
369
+ break;
370
+ try {
371
+ handler(event);
372
+ }
373
+ catch (error) {
374
+ globalErrorHandler.handle(error, {
375
+ type: 'event-handler-error',
376
+ context: { event, handler: handler.toString() }
377
+ });
378
+ }
379
+ }
380
+ }
381
+ }
382
+ /**
383
+ * Notify global handlers
384
+ */
385
+ _notifyGlobalHandlers(event) {
386
+ const handlers = this.globalHandlers.get(event.name);
387
+ if (handlers) {
388
+ for (const handler of handlers) {
389
+ if (event.stopped)
390
+ break;
391
+ try {
392
+ handler(event);
393
+ }
394
+ catch (error) {
395
+ globalErrorHandler.handle(error, {
396
+ type: 'global-event-handler-error',
397
+ context: { event, handler: handler.toString() }
398
+ });
399
+ }
400
+ }
401
+ }
402
+ }
403
+ /**
404
+ * Clean up events for a component
405
+ */
406
+ cleanup(componentId) {
407
+ this.events.delete(componentId);
408
+ }
409
+ /**
410
+ * Get event statistics
411
+ */
412
+ getStats() {
413
+ return {
414
+ componentEvents: this.events.size,
415
+ globalEvents: this.globalHandlers.size,
416
+ totalHandlers: Array.from(this.events.values()).reduce((sum, events) => {
417
+ return sum + Array.from(events.values()).reduce((eventSum, handlers) => {
418
+ return eventSum + handlers.size;
419
+ }, 0);
420
+ }, 0) + Array.from(this.globalHandlers.values()).reduce((sum, handlers) => {
421
+ return sum + handlers.size;
422
+ }, 0)
423
+ };
424
+ }
425
+ }
426
+ /**
427
+ * Global event system instance
428
+ */
429
+ export const eventSystem = new ComponentEventSystem();
430
+ /**
431
+ * Lifecycle hooks factory
432
+ */
433
+ export function createLifecycleHooks() {
434
+ const hooks = {};
435
+ Object.values(LIFECYCLE_PHASES).forEach(phase => {
436
+ hooks[phase] = (callback) => {
437
+ // This would be called during component creation
438
+ const instance = getCurrentInstance();
439
+ if (instance) {
440
+ instance.hook(phase, callback);
441
+ }
442
+ };
443
+ });
444
+ return hooks;
445
+ }
446
+ /**
447
+ * Get current component instance (context-based)
448
+ */
449
+ let currentInstance = null;
450
+ export function getCurrentInstance() {
451
+ return currentInstance;
452
+ }
453
+ export function setCurrentInstance(instance) {
454
+ currentInstance = instance;
455
+ }
456
+ /**
457
+ * Lifecycle hooks for direct use
458
+ */
459
+ export const useHooks = createLifecycleHooks();
460
+ /**
461
+ * Utility functions for component management
462
+ */
463
+ export const componentUtils = {
464
+ /**
465
+ * Get component lifecycle instance
466
+ */
467
+ getLifecycle(component) {
468
+ return componentInstances.get(component);
469
+ },
470
+ /**
471
+ * Create component with lifecycle
472
+ */
473
+ createWithLifecycle(component, options = {}) {
474
+ const lifecycle = new ComponentLifecycle(component, options);
475
+ return {
476
+ component,
477
+ lifecycle,
478
+ mount: lifecycle.mount.bind(lifecycle),
479
+ unmount: lifecycle.unmount.bind(lifecycle),
480
+ update: lifecycle.update.bind(lifecycle)
481
+ };
482
+ },
483
+ /**
484
+ * Get all component instances
485
+ */
486
+ getAllInstances() {
487
+ return Array.from(componentRegistry.values());
488
+ },
489
+ /**
490
+ * Find component by ID
491
+ */
492
+ findById(id) {
493
+ return componentRegistry.get(id);
494
+ },
495
+ /**
496
+ * Emit event to component
497
+ */
498
+ emit(component, eventName, data) {
499
+ return eventSystem.emit(eventName, data, component);
500
+ },
501
+ /**
502
+ * Listen to component events
503
+ */
504
+ listen(component, eventName, handler) {
505
+ const lifecycle = componentInstances.get(component);
506
+ return eventSystem.on(eventName, handler, lifecycle?.id);
507
+ }
508
+ };
509
+ /**
510
+ * Component decorator for automatic lifecycle management
511
+ */
512
+ export function withLifecycle(component, options = {}) {
513
+ return function LifecycleComponent(props = {}) {
514
+ const instance = componentUtils.getLifecycle(component);
515
+ if (!instance) {
516
+ const lifecycle = new ComponentLifecycle(component, options);
517
+ setCurrentInstance(lifecycle);
518
+ }
519
+ const result = typeof component === 'function' ? component(_props) : component;
520
+ setCurrentInstance(null);
521
+ return result;
522
+ };
523
+ }
524
+ export default ComponentLifecycle;
525
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../../src/components/lifecycle.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * HTML-specific utility functions
3
+ */
4
+ export function escapeHtml(text: any): any;
5
+ export function unescapeHtml(text: any): any;
6
+ export function isVoidElement(tagName: any): boolean;
7
+ export function formatAttributes(props: any): string;
8
+ export function minifyHtml(html: any, options?: {}): any;
9
+ /**
10
+ * HTML Void Elements - elements that cannot have children
11
+ * These elements are self-closing and don't need closing tags
12
+ */
13
+ export const voidElements: Set<string>;
14
+ //# sourceMappingURL=html-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-utils.d.ts","sourceRoot":"","sources":["../../../../src/core/html-utils.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2CASC;AAED,6CASC;AAED,qDAuBC;AAED,qDAiFC;AAED,yDAcC;AAED;;;GAGG;AACH,uCAeG"}