@coherent.js/core 1.0.0-beta.5 → 1.0.0-beta.7

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 (110) hide show
  1. package/dist/coherent.d.ts +150 -10
  2. package/dist/coherent.d.ts.map +1 -1
  3. package/dist/coherent.js +166 -33
  4. package/dist/coherent.js.map +1 -1
  5. package/dist/components/component-system.js +109 -109
  6. package/dist/components/lifecycle.d.ts +212 -0
  7. package/dist/components/lifecycle.d.ts.map +1 -0
  8. package/dist/components/lifecycle.js +525 -0
  9. package/dist/components/lifecycle.js.map +1 -0
  10. package/dist/core/html-utils.js +5 -5
  11. package/dist/core/object-factory.js +21 -21
  12. package/dist/core/object-utils.js +2 -2
  13. package/dist/dev/dev-tools.d.ts +1 -1
  14. package/dist/dev/dev-tools.js +28 -28
  15. package/dist/forms/validation.d.ts +271 -0
  16. package/dist/forms/validation.d.ts.map +1 -0
  17. package/dist/forms/validation.js +573 -0
  18. package/dist/forms/validation.js.map +1 -0
  19. package/dist/index.cjs +2839 -1464
  20. package/dist/index.cjs.map +4 -4
  21. package/dist/index.js +2837 -1473
  22. package/dist/index.js.map +4 -4
  23. package/dist/performance/bundle-optimizer.js +11 -11
  24. package/dist/performance/cache-manager.js +6 -6
  25. package/dist/performance/component-cache.d.ts +120 -0
  26. package/dist/performance/component-cache.d.ts.map +1 -0
  27. package/dist/performance/component-cache.js +364 -0
  28. package/dist/performance/component-cache.js.map +1 -0
  29. package/dist/performance/monitor.js +10 -10
  30. package/dist/performance/monitor.js.map +1 -1
  31. package/dist/rendering/base-renderer.js +13 -13
  32. package/dist/rendering/css-manager.d.ts +73 -0
  33. package/dist/rendering/css-manager.d.ts.map +1 -0
  34. package/dist/rendering/css-manager.js +176 -0
  35. package/dist/rendering/css-manager.js.map +1 -0
  36. package/dist/rendering/dom-renderer.d.ts +23 -0
  37. package/dist/rendering/dom-renderer.d.ts.map +1 -1
  38. package/dist/rendering/dom-renderer.js +77 -9
  39. package/dist/rendering/dom-renderer.js.map +1 -1
  40. package/dist/rendering/html-renderer.d.ts +15 -0
  41. package/dist/rendering/html-renderer.d.ts.map +1 -1
  42. package/dist/rendering/html-renderer.js +85 -4
  43. package/dist/rendering/html-renderer.js.map +1 -1
  44. package/dist/rendering/streaming-renderer.js +12 -12
  45. package/dist/rendering/vdom-diff.d.ts +47 -0
  46. package/dist/rendering/vdom-diff.d.ts.map +1 -0
  47. package/dist/rendering/vdom-diff.js +416 -0
  48. package/dist/rendering/vdom-diff.js.map +1 -0
  49. package/dist/routing/router.d.ts +241 -0
  50. package/dist/routing/router.d.ts.map +1 -0
  51. package/dist/routing/router.js +648 -0
  52. package/dist/routing/router.js.map +1 -0
  53. package/dist/state/reactive-state.d.ts +166 -0
  54. package/dist/state/reactive-state.d.ts.map +1 -0
  55. package/dist/state/reactive-state.js +546 -0
  56. package/dist/state/reactive-state.js.map +1 -0
  57. package/dist/utils/dependency-utils.js +2 -2
  58. package/dist/utils/error-handler.d.ts +148 -0
  59. package/dist/utils/error-handler.d.ts.map +1 -0
  60. package/dist/utils/error-handler.js +468 -0
  61. package/dist/utils/error-handler.js.map +1 -0
  62. package/dist/utils/normalization.js +1 -1
  63. package/dist/utils/validation.js +1 -1
  64. package/package.json +7 -22
  65. package/types/elements.d.ts +1080 -0
  66. package/types/index.d.ts +199 -65
  67. package/dist/database/adapters/mongodb.d.ts +0 -15
  68. package/dist/database/adapters/mongodb.d.ts.map +0 -1
  69. package/dist/database/adapters/mongodb.js +0 -216
  70. package/dist/database/adapters/mongodb.js.map +0 -1
  71. package/dist/database/adapters/mysql.d.ts +0 -12
  72. package/dist/database/adapters/mysql.d.ts.map +0 -1
  73. package/dist/database/adapters/mysql.js +0 -171
  74. package/dist/database/adapters/mysql.js.map +0 -1
  75. package/dist/database/adapters/postgresql.d.ts +0 -12
  76. package/dist/database/adapters/postgresql.d.ts.map +0 -1
  77. package/dist/database/adapters/postgresql.js +0 -177
  78. package/dist/database/adapters/postgresql.js.map +0 -1
  79. package/dist/database/adapters/sqlite.d.ts +0 -15
  80. package/dist/database/adapters/sqlite.d.ts.map +0 -1
  81. package/dist/database/adapters/sqlite.js +0 -241
  82. package/dist/database/adapters/sqlite.js.map +0 -1
  83. package/dist/database/connection-manager.d.ts +0 -135
  84. package/dist/database/connection-manager.d.ts.map +0 -1
  85. package/dist/database/connection-manager.js +0 -362
  86. package/dist/database/connection-manager.js.map +0 -1
  87. package/dist/database/index.d.ts +0 -38
  88. package/dist/database/index.d.ts.map +0 -1
  89. package/dist/database/index.js +0 -60
  90. package/dist/database/index.js.map +0 -1
  91. package/dist/database/middleware.d.ts +0 -122
  92. package/dist/database/middleware.d.ts.map +0 -1
  93. package/dist/database/middleware.js +0 -390
  94. package/dist/database/middleware.js.map +0 -1
  95. package/dist/database/migration.d.ts +0 -62
  96. package/dist/database/migration.d.ts.map +0 -1
  97. package/dist/database/migration.js +0 -423
  98. package/dist/database/migration.js.map +0 -1
  99. package/dist/database/model.d.ts +0 -8
  100. package/dist/database/model.d.ts.map +0 -1
  101. package/dist/database/model.js +0 -167
  102. package/dist/database/model.js.map +0 -1
  103. package/dist/database/query-builder.d.ts +0 -111
  104. package/dist/database/query-builder.d.ts.map +0 -1
  105. package/dist/database/query-builder.js +0 -187
  106. package/dist/database/query-builder.js.map +0 -1
  107. package/dist/database/utils.d.ts +0 -196
  108. package/dist/database/utils.d.ts.map +0 -1
  109. package/dist/database/utils.js +0 -372
  110. package/dist/database/utils.js.map +0 -1
@@ -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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"}
@@ -44,9 +44,9 @@ export function isVoidElement(tagName) {
44
44
  ]);
45
45
  return voidElements.has(tagName.toLowerCase());
46
46
  }
47
- export function formatAttributes(props) {
47
+ export function formatAttributes(_props) {
48
48
  let formatted = '';
49
- for (const key in props) {
49
+ for (const key in _props) {
50
50
  if (props.hasOwnProperty(key)) {
51
51
  let value = props[key];
52
52
  // Convert className to class for HTML output
@@ -109,10 +109,10 @@ export function formatAttributes(props) {
109
109
  try {
110
110
  value = value();
111
111
  }
112
- catch (_error) {
112
+ catch (error) {
113
113
  console.warn(`Error executing function for attribute '${key}':`, {
114
- _error: _error.message,
115
- stack: _error.stack,
114
+ error: error.message,
115
+ stack: error.stack,
116
116
  attributeKey: key,
117
117
  });
118
118
  // Consider different fallback strategies based on attribute type
@@ -38,26 +38,26 @@ export function createTextNode(text) {
38
38
  * Helper function to create common elements
39
39
  */
40
40
  export const h = {
41
- div: (props) => createElement('div', props),
42
- span: (props) => createElement('span', props),
43
- p: (props) => createElement('p', props),
44
- h1: (props) => createElement('h1', props),
45
- h2: (props) => createElement('h2', props),
46
- h3: (props) => createElement('h3', props),
47
- h4: (props) => createElement('h4', props),
48
- h5: (props) => createElement('h5', props),
49
- h6: (props) => createElement('h6', props),
50
- a: (props) => createElement('a', props),
51
- img: (props) => createElement('img', props),
52
- button: (props) => createElement('button', props),
53
- input: (props) => createElement('input', props),
54
- form: (props) => createElement('form', props),
55
- ul: (props) => createElement('ul', props),
56
- ol: (props) => createElement('ol', props),
57
- li: (props) => createElement('li', props),
58
- table: (props) => createElement('table', props),
59
- tr: (props) => createElement('tr', props),
60
- td: (props) => createElement('td', props),
61
- th: (props) => createElement('th', props)
41
+ div: (_props) => createElement('div', _props),
42
+ span: (_props) => createElement('span', _props),
43
+ p: (_props) => createElement('p', _props),
44
+ h1: (_props) => createElement('h1', _props),
45
+ h2: (_props) => createElement('h2', _props),
46
+ h3: (_props) => createElement('h3', _props),
47
+ h4: (_props) => createElement('h4', _props),
48
+ h5: (_props) => createElement('h5', _props),
49
+ h6: (_props) => createElement('h6', _props),
50
+ a: (_props) => createElement('a', _props),
51
+ img: (_props) => createElement('img', _props),
52
+ button: (_props) => createElement('button', _props),
53
+ input: (_props) => createElement('input', _props),
54
+ form: (_props) => createElement('form', _props),
55
+ ul: (_props) => createElement('ul', _props),
56
+ ol: (_props) => createElement('ol', _props),
57
+ li: (_props) => createElement('li', _props),
58
+ table: (_props) => createElement('table', _props),
59
+ tr: (_props) => createElement('tr', _props),
60
+ td: (_props) => createElement('td', _props),
61
+ th: (_props) => createElement('th', _props)
62
62
  };
63
63
  //# sourceMappingURL=object-factory.js.map
@@ -156,7 +156,7 @@ export function smartClone(obj, maxDepth = 10, currentDepth = 0) {
156
156
  };
157
157
  }
158
158
  else {
159
- cloned[tag] = shallowClone(props);
159
+ cloned[tag] = shallowClone(_props);
160
160
  }
161
161
  }
162
162
  else {
@@ -333,7 +333,7 @@ export function normalizeChildren(children) {
333
333
  /**
334
334
  * Get children from a component's props
335
335
  */
336
- export function getChildren(props) {
336
+ export function getChildren(_props) {
337
337
  if (!props || typeof props !== 'object') {
338
338
  return [];
339
339
  }
@@ -77,7 +77,7 @@ export class DevTools {
77
77
  /**
78
78
  * Get component type
79
79
  */
80
- getComponentType(component: any): "function" | "text" | "array" | "element" | "unknown";
80
+ getComponentType(component: any): "text" | "function" | "array" | "element" | "unknown";
81
81
  /**
82
82
  * Visualize component structure
83
83
  */