@mappoh/nova 0.3.0 → 0.5.1

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 (252) hide show
  1. package/README.md +180 -30
  2. package/dist/alert/alert.d.ts +32 -0
  3. package/dist/alert/alert.d.ts.map +1 -0
  4. package/dist/alert/alert.js +307 -0
  5. package/dist/alert/alert.js.map +1 -0
  6. package/dist/alert/index.d.ts +3 -0
  7. package/dist/alert/index.d.ts.map +1 -0
  8. package/dist/alert/index.js +2 -0
  9. package/dist/alert/index.js.map +1 -0
  10. package/dist/animation/flip.d.ts.map +1 -1
  11. package/dist/animation/flip.js +19 -12
  12. package/dist/animation/flip.js.map +1 -1
  13. package/dist/animation/stagger.d.ts +43 -0
  14. package/dist/animation/stagger.d.ts.map +1 -0
  15. package/dist/animation/stagger.js +150 -0
  16. package/dist/animation/stagger.js.map +1 -0
  17. package/dist/avatar/avatar.d.ts +27 -0
  18. package/dist/avatar/avatar.d.ts.map +1 -0
  19. package/dist/avatar/avatar.js +132 -0
  20. package/dist/avatar/avatar.js.map +1 -0
  21. package/dist/avatar/index.d.ts +3 -0
  22. package/dist/avatar/index.d.ts.map +1 -0
  23. package/dist/avatar/index.js +2 -0
  24. package/dist/avatar/index.js.map +1 -0
  25. package/dist/badge/badge.d.ts +27 -0
  26. package/dist/badge/badge.d.ts.map +1 -0
  27. package/dist/badge/badge.js +118 -0
  28. package/dist/badge/badge.js.map +1 -0
  29. package/dist/badge/index.d.ts +3 -0
  30. package/dist/badge/index.d.ts.map +1 -0
  31. package/dist/badge/index.js +2 -0
  32. package/dist/badge/index.js.map +1 -0
  33. package/dist/cache/cache.d.ts +28 -0
  34. package/dist/cache/cache.d.ts.map +1 -0
  35. package/dist/cache/cache.js +67 -0
  36. package/dist/cache/cache.js.map +1 -0
  37. package/dist/cache/index.d.ts +3 -0
  38. package/dist/cache/index.d.ts.map +1 -0
  39. package/dist/cache/index.js +2 -0
  40. package/dist/cache/index.js.map +1 -0
  41. package/dist/chart/chart.d.ts +4 -0
  42. package/dist/chart/chart.d.ts.map +1 -1
  43. package/dist/chart/chart.js +89 -6
  44. package/dist/chart/chart.js.map +1 -1
  45. package/dist/command-palette/command-palette.d.ts +31 -0
  46. package/dist/command-palette/command-palette.d.ts.map +1 -0
  47. package/dist/command-palette/command-palette.js +590 -0
  48. package/dist/command-palette/command-palette.js.map +1 -0
  49. package/dist/command-palette/index.d.ts +3 -0
  50. package/dist/command-palette/index.d.ts.map +1 -0
  51. package/dist/command-palette/index.js +2 -0
  52. package/dist/command-palette/index.js.map +1 -0
  53. package/dist/component/component.d.ts +21 -2
  54. package/dist/component/component.d.ts.map +1 -1
  55. package/dist/component/component.js +127 -7
  56. package/dist/component/component.js.map +1 -1
  57. package/dist/component/connect.d.ts +52 -0
  58. package/dist/component/connect.d.ts.map +1 -1
  59. package/dist/component/connect.js +151 -25
  60. package/dist/component/connect.js.map +1 -1
  61. package/dist/component/directives.d.ts +20 -0
  62. package/dist/component/directives.d.ts.map +1 -0
  63. package/dist/component/directives.js +42 -0
  64. package/dist/component/directives.js.map +1 -0
  65. package/dist/component/html.d.ts +8 -0
  66. package/dist/component/html.d.ts.map +1 -1
  67. package/dist/component/html.js +11 -0
  68. package/dist/component/html.js.map +1 -1
  69. package/dist/component/index.d.ts +9 -3
  70. package/dist/component/index.d.ts.map +1 -1
  71. package/dist/component/index.js +6 -2
  72. package/dist/component/index.js.map +1 -1
  73. package/dist/component/portal.d.ts +32 -0
  74. package/dist/component/portal.d.ts.map +1 -0
  75. package/dist/component/portal.js +70 -0
  76. package/dist/component/portal.js.map +1 -0
  77. package/dist/component/ref.d.ts +18 -0
  78. package/dist/component/ref.d.ts.map +1 -0
  79. package/dist/component/ref.js +17 -0
  80. package/dist/component/ref.js.map +1 -0
  81. package/dist/component/slot-styles.d.ts +18 -0
  82. package/dist/component/slot-styles.d.ts.map +1 -0
  83. package/dist/component/slot-styles.js +94 -0
  84. package/dist/component/slot-styles.js.map +1 -0
  85. package/dist/component/template.d.ts +2 -0
  86. package/dist/component/template.d.ts.map +1 -1
  87. package/dist/component/template.js +122 -4
  88. package/dist/component/template.js.map +1 -1
  89. package/dist/context/context.d.ts +39 -0
  90. package/dist/context/context.d.ts.map +1 -0
  91. package/dist/context/context.js +111 -0
  92. package/dist/context/context.js.map +1 -0
  93. package/dist/context/index.d.ts +3 -0
  94. package/dist/context/index.d.ts.map +1 -0
  95. package/dist/context/index.js +2 -0
  96. package/dist/context/index.js.map +1 -0
  97. package/dist/devtools/devtools.d.ts +54 -0
  98. package/dist/devtools/devtools.d.ts.map +1 -1
  99. package/dist/devtools/devtools.js +86 -0
  100. package/dist/devtools/devtools.js.map +1 -1
  101. package/dist/devtools/index.d.ts +2 -2
  102. package/dist/devtools/index.d.ts.map +1 -1
  103. package/dist/devtools/index.js +1 -1
  104. package/dist/devtools/index.js.map +1 -1
  105. package/dist/editor/editor.d.ts +40 -0
  106. package/dist/editor/editor.d.ts.map +1 -0
  107. package/dist/editor/editor.js +955 -0
  108. package/dist/editor/editor.js.map +1 -0
  109. package/dist/editor/index.d.ts +3 -0
  110. package/dist/editor/index.d.ts.map +1 -0
  111. package/dist/editor/index.js +2 -0
  112. package/dist/editor/index.js.map +1 -0
  113. package/dist/event-bus/event-bus.d.ts +20 -0
  114. package/dist/event-bus/event-bus.d.ts.map +1 -0
  115. package/dist/event-bus/event-bus.js +55 -0
  116. package/dist/event-bus/event-bus.js.map +1 -0
  117. package/dist/event-bus/index.d.ts +3 -0
  118. package/dist/event-bus/index.d.ts.map +1 -0
  119. package/dist/event-bus/index.js +2 -0
  120. package/dist/event-bus/index.js.map +1 -0
  121. package/dist/forms/form-engine.d.ts +1 -1
  122. package/dist/forms/form-engine.d.ts.map +1 -1
  123. package/dist/forms/wasm-validators.d.ts +19 -11
  124. package/dist/forms/wasm-validators.d.ts.map +1 -1
  125. package/dist/forms/wasm-validators.js +191 -31
  126. package/dist/forms/wasm-validators.js.map +1 -1
  127. package/dist/gesture/gesture.d.ts +2 -0
  128. package/dist/gesture/gesture.d.ts.map +1 -1
  129. package/dist/gesture/gesture.js +81 -0
  130. package/dist/gesture/gesture.js.map +1 -1
  131. package/dist/http/http.d.ts +8 -0
  132. package/dist/http/http.d.ts.map +1 -1
  133. package/dist/http/http.js +18 -4
  134. package/dist/http/http.js.map +1 -1
  135. package/dist/i18n/i18n.d.ts +6 -0
  136. package/dist/i18n/i18n.d.ts.map +1 -1
  137. package/dist/i18n/i18n.js +71 -9
  138. package/dist/i18n/i18n.js.map +1 -1
  139. package/dist/machine/index.d.ts +3 -0
  140. package/dist/machine/index.d.ts.map +1 -0
  141. package/dist/machine/index.js +2 -0
  142. package/dist/machine/index.js.map +1 -0
  143. package/dist/machine/machine.d.ts +26 -0
  144. package/dist/machine/machine.d.ts.map +1 -0
  145. package/dist/machine/machine.js +79 -0
  146. package/dist/machine/machine.js.map +1 -0
  147. package/dist/modal/modal.d.ts.map +1 -1
  148. package/dist/modal/modal.js +13 -29
  149. package/dist/modal/modal.js.map +1 -1
  150. package/dist/notification-center/index.d.ts +3 -0
  151. package/dist/notification-center/index.d.ts.map +1 -0
  152. package/dist/notification-center/index.js +2 -0
  153. package/dist/notification-center/index.js.map +1 -0
  154. package/dist/notification-center/notification-center.d.ts +55 -0
  155. package/dist/notification-center/notification-center.d.ts.map +1 -0
  156. package/dist/notification-center/notification-center.js +941 -0
  157. package/dist/notification-center/notification-center.js.map +1 -0
  158. package/dist/pagination/index.d.ts +3 -0
  159. package/dist/pagination/index.d.ts.map +1 -0
  160. package/dist/pagination/index.js +2 -0
  161. package/dist/pagination/index.js.map +1 -0
  162. package/dist/pagination/pagination.d.ts +31 -0
  163. package/dist/pagination/pagination.d.ts.map +1 -0
  164. package/dist/pagination/pagination.js +213 -0
  165. package/dist/pagination/pagination.js.map +1 -0
  166. package/dist/progress/progress.d.ts.map +1 -1
  167. package/dist/progress/progress.js +5 -7
  168. package/dist/progress/progress.js.map +1 -1
  169. package/dist/query/index.d.ts +3 -0
  170. package/dist/query/index.d.ts.map +1 -0
  171. package/dist/query/index.js +2 -0
  172. package/dist/query/index.js.map +1 -0
  173. package/dist/query/query.d.ts +31 -0
  174. package/dist/query/query.d.ts.map +1 -0
  175. package/dist/query/query.js +150 -0
  176. package/dist/query/query.js.map +1 -0
  177. package/dist/radio-group/index.d.ts +3 -0
  178. package/dist/radio-group/index.d.ts.map +1 -0
  179. package/dist/radio-group/index.js +2 -0
  180. package/dist/radio-group/index.js.map +1 -0
  181. package/dist/radio-group/radio-group.d.ts +37 -0
  182. package/dist/radio-group/radio-group.d.ts.map +1 -0
  183. package/dist/radio-group/radio-group.js +251 -0
  184. package/dist/radio-group/radio-group.js.map +1 -0
  185. package/dist/rating/index.d.ts +3 -0
  186. package/dist/rating/index.d.ts.map +1 -0
  187. package/dist/rating/index.js +2 -0
  188. package/dist/rating/index.js.map +1 -0
  189. package/dist/rating/rating.d.ts +31 -0
  190. package/dist/rating/rating.d.ts.map +1 -0
  191. package/dist/rating/rating.js +187 -0
  192. package/dist/rating/rating.js.map +1 -0
  193. package/dist/router/router.d.ts +16 -1
  194. package/dist/router/router.d.ts.map +1 -1
  195. package/dist/router/router.js +88 -11
  196. package/dist/router/router.js.map +1 -1
  197. package/dist/skeleton/index.d.ts +3 -0
  198. package/dist/skeleton/index.d.ts.map +1 -0
  199. package/dist/skeleton/index.js +2 -0
  200. package/dist/skeleton/index.js.map +1 -0
  201. package/dist/skeleton/skeleton.d.ts +24 -0
  202. package/dist/skeleton/skeleton.d.ts.map +1 -0
  203. package/dist/skeleton/skeleton.js +91 -0
  204. package/dist/skeleton/skeleton.js.map +1 -0
  205. package/dist/slider/index.d.ts +3 -0
  206. package/dist/slider/index.d.ts.map +1 -0
  207. package/dist/slider/index.js +2 -0
  208. package/dist/slider/index.js.map +1 -0
  209. package/dist/slider/slider.d.ts +33 -0
  210. package/dist/slider/slider.d.ts.map +1 -0
  211. package/dist/slider/slider.js +248 -0
  212. package/dist/slider/slider.js.map +1 -0
  213. package/dist/spinner/index.d.ts +3 -0
  214. package/dist/spinner/index.d.ts.map +1 -0
  215. package/dist/spinner/index.js +2 -0
  216. package/dist/spinner/index.js.map +1 -0
  217. package/dist/spinner/spinner.d.ts +23 -0
  218. package/dist/spinner/spinner.d.ts.map +1 -0
  219. package/dist/spinner/spinner.js +82 -0
  220. package/dist/spinner/spinner.js.map +1 -0
  221. package/dist/sw/sw.d.ts.map +1 -1
  222. package/dist/sw/sw.js +39 -7
  223. package/dist/sw/sw.js.map +1 -1
  224. package/dist/switch/index.d.ts +3 -0
  225. package/dist/switch/index.d.ts.map +1 -0
  226. package/dist/switch/index.js +2 -0
  227. package/dist/switch/index.js.map +1 -0
  228. package/dist/switch/switch.d.ts +27 -0
  229. package/dist/switch/switch.d.ts.map +1 -0
  230. package/dist/switch/switch.js +163 -0
  231. package/dist/switch/switch.js.map +1 -0
  232. package/dist/theme/index.d.ts +2 -0
  233. package/dist/theme/index.d.ts.map +1 -1
  234. package/dist/theme/index.js +1 -0
  235. package/dist/theme/index.js.map +1 -1
  236. package/dist/theme/scale.d.ts +40 -0
  237. package/dist/theme/scale.d.ts.map +1 -0
  238. package/dist/theme/scale.js +62 -0
  239. package/dist/theme/scale.js.map +1 -0
  240. package/dist/utils/index.d.ts +29 -0
  241. package/dist/utils/index.d.ts.map +1 -0
  242. package/dist/utils/index.js +114 -0
  243. package/dist/utils/index.js.map +1 -0
  244. package/dist/websocket/index.d.ts +3 -0
  245. package/dist/websocket/index.d.ts.map +1 -0
  246. package/dist/websocket/index.js +2 -0
  247. package/dist/websocket/index.js.map +1 -0
  248. package/dist/websocket/websocket.d.ts +31 -0
  249. package/dist/websocket/websocket.d.ts.map +1 -0
  250. package/dist/websocket/websocket.js +164 -0
  251. package/dist/websocket/websocket.js.map +1 -0
  252. package/package.json +85 -1
@@ -6,12 +6,15 @@
6
6
  */
7
7
  import { SafeHTML } from './html';
8
8
  import { SignalBinding } from './bind';
9
+ import { getDiffEngine } from './diff-wasm';
9
10
  // --- Constants ---
10
11
  const MARKER = 'nova-ph';
11
12
  const MARKER_COMMENT = `<!--${MARKER}-->`;
12
13
  const EVENT_PREFIX = '@';
14
+ const PROP_PREFIX = '.';
13
15
  // Detects attribute context: matches ` name="` or ` name='` or ` name=` at end of string
14
- const ATTR_REGEX = /\s([a-zA-Z@_][\w.-]*)=["']?$/;
16
+ // Also matches `.prop=` prefix for property bindings
17
+ const ATTR_REGEX = /\s([a-zA-Z@._][\w.-]*)=["']?$/;
15
18
  // Attributes that accept URLs — values are sanitized to block javascript:/vbscript: injection
16
19
  const URL_ATTRS = new Set(['href', 'src', 'action', 'formaction', 'data', 'poster', 'srcdoc']);
17
20
  // Template cache keyed by TemplateStringsArray identity (same call site = same object ref)
@@ -27,6 +30,8 @@ var PartType;
27
30
  export class TemplateResult {
28
31
  strings;
29
32
  values;
33
+ /** Optional key for keyed list diffing — set via key() helper */
34
+ _key;
30
35
  constructor(strings, values) {
31
36
  this.strings = strings;
32
37
  this.values = values;
@@ -105,6 +110,13 @@ function parseTemplate(strings) {
105
110
  htmlStr += ` data-nova-e${parts.length}`;
106
111
  parts.push({ type: PartType.EVENT, name: eventName, nodeIndex: -1 });
107
112
  }
113
+ else if (name.startsWith(PROP_PREFIX)) {
114
+ // Property binding: .value=${val} or .checked="${val}"
115
+ const propName = name.slice(1);
116
+ htmlStr = htmlStr.slice(0, htmlStr.length - matchStr.length);
117
+ htmlStr += ` data-nova-a${parts.length}="${name}"`;
118
+ parts.push({ type: PartType.ATTRIBUTE, name: propName, nodeIndex: -1, isProp: true });
119
+ }
108
120
  else {
109
121
  // Attribute binding: class=${value} or class="${value}"
110
122
  htmlStr = htmlStr.slice(0, htmlStr.length - matchStr.length);
@@ -247,6 +259,94 @@ class NodePart {
247
259
  }
248
260
  _updateArray(items) {
249
261
  const prevItems = Array.isArray(this._value) ? this._value : [];
262
+ // Check if items are keyed TemplateResults
263
+ const newKeys = this._extractKeys(items);
264
+ const oldKeys = this._extractKeys(prevItems);
265
+ const engine = newKeys && oldKeys ? getDiffEngine() : null;
266
+ if (engine && newKeys && oldKeys) {
267
+ this._updateArrayKeyed(items, prevItems, newKeys, oldKeys, engine);
268
+ }
269
+ else {
270
+ this._updateArrayPositional(items, prevItems);
271
+ }
272
+ }
273
+ /** Extract keys from items if ALL are keyed TemplateResults */
274
+ _extractKeys(items) {
275
+ if (items.length === 0)
276
+ return [];
277
+ const keys = [];
278
+ for (const item of items) {
279
+ if (item instanceof TemplateResult && item._key != null) {
280
+ keys.push(item._key);
281
+ }
282
+ else {
283
+ return null;
284
+ }
285
+ }
286
+ return keys;
287
+ }
288
+ /** Keyed diffing using WASM-accelerated LIS algorithm */
289
+ _updateArrayKeyed(items, _prevItems, newKeys, oldKeys, engine) {
290
+ const ops = engine(oldKeys, newKeys);
291
+ const parent = this._parent;
292
+ // Build key→index map for old instances
293
+ const oldKeyMap = new Map();
294
+ for (let i = 0; i < oldKeys.length; i++)
295
+ oldKeyMap.set(oldKeys[i], i);
296
+ const newInstances = new Array(items.length);
297
+ const consumed = new Set();
298
+ // Process removals first
299
+ for (const op of ops) {
300
+ if (op.op === 'remove') {
301
+ const idx = op.index;
302
+ if (idx < this._childInstances.length) {
303
+ this._childInstances[idx].dispose();
304
+ consumed.add(idx);
305
+ }
306
+ }
307
+ }
308
+ // Build result: for each new item, reuse old instance or create new
309
+ for (let i = 0; i < items.length; i++) {
310
+ const item = items[i];
311
+ const oldIdx = oldKeyMap.get(item._key);
312
+ if (oldIdx != null && !consumed.has(oldIdx) && this._childInstances[oldIdx]) {
313
+ const inst = this._childInstances[oldIdx];
314
+ inst.update(item.values);
315
+ newInstances[i] = inst;
316
+ consumed.add(oldIdx);
317
+ }
318
+ else {
319
+ const inst = createInstance(item);
320
+ newInstances[i] = inst;
321
+ }
322
+ }
323
+ // Dispose remaining unconsumed old instances
324
+ for (let i = 0; i < this._childInstances.length; i++) {
325
+ if (!consumed.has(i)) {
326
+ this._childInstances[i].dispose();
327
+ }
328
+ }
329
+ // Remove old nodes
330
+ for (const node of this._nodes) {
331
+ if (node.parentNode)
332
+ node.remove();
333
+ }
334
+ // Insert all new nodes in order before marker
335
+ const newNodes = [];
336
+ for (const inst of newInstances) {
337
+ if (!inst)
338
+ continue;
339
+ for (const node of inst.nodes) {
340
+ parent.insertBefore(node, this._marker);
341
+ }
342
+ newNodes.push(...inst.nodes);
343
+ }
344
+ this._childInstances = newInstances.filter((x) => !!x);
345
+ this._nodes = newNodes;
346
+ this._value = items;
347
+ }
348
+ /** Original position-based array update (fallback when no keys or no engine) */
349
+ _updateArrayPositional(items, prevItems) {
250
350
  const newInstances = [];
251
351
  const newNodes = [];
252
352
  for (let i = 0; i < items.length; i++) {
@@ -273,7 +373,8 @@ class NodePart {
273
373
  prevInstance?.dispose();
274
374
  const span = document.createElement('span');
275
375
  span.style.display = 'contents';
276
- span.innerHTML = item.content;
376
+ // SafeHTML is pre-sanitized trusted content — innerHTML is safe by design
377
+ span.innerHTML = item.content; // eslint-disable-line no-unsanitized/property
277
378
  this._parent.insertBefore(span, this._marker);
278
379
  newNodes.push(span);
279
380
  }
@@ -327,10 +428,12 @@ class AttributePart {
327
428
  _value = undefined;
328
429
  _element;
329
430
  _name;
431
+ _isProp;
330
432
  _signalUnsub = null;
331
- constructor(element, name) {
433
+ constructor(element, name, isProp = false) {
332
434
  this._element = element;
333
435
  this._name = name;
436
+ this._isProp = isProp;
334
437
  }
335
438
  update(value) {
336
439
  // Signal binding: subscribe and update attribute directly on signal change
@@ -353,7 +456,18 @@ class AttributePart {
353
456
  this._commitValue(value);
354
457
  }
355
458
  _commitValue(value) {
459
+ // Ref binding: set ref.current to the element
460
+ if (this._name === 'ref' && value != null && typeof value === 'object' && 'current' in value) {
461
+ value.current = this._element;
462
+ this._value = value;
463
+ return;
464
+ }
356
465
  this._value = value;
466
+ // Property binding: set DOM property directly
467
+ if (this._isProp) {
468
+ this._element[this._name] = value;
469
+ return;
470
+ }
357
471
  if (value == null || value === false) {
358
472
  this._element.removeAttribute(this._name);
359
473
  }
@@ -378,6 +492,10 @@ class AttributePart {
378
492
  this._signalUnsub();
379
493
  this._signalUnsub = null;
380
494
  }
495
+ // Clear ref on dispose
496
+ if (this._name === 'ref' && this._value != null && typeof this._value === 'object' && 'current' in this._value) {
497
+ this._value.current = null;
498
+ }
381
499
  }
382
500
  }
383
501
  class EventPart {
@@ -463,7 +581,7 @@ export function createInstance(result) {
463
581
  parts.push(new NodePart(node));
464
582
  }
465
583
  else if (info.type === PartType.ATTRIBUTE && node.nodeType === Node.ELEMENT_NODE) {
466
- parts.push(new AttributePart(node, info.name));
584
+ parts.push(new AttributePart(node, info.name, info.isProp));
467
585
  }
468
586
  else if (info.type === PartType.EVENT && node.nodeType === Node.ELEMENT_NODE) {
469
587
  parts.push(new EventPart(node, info.name));
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Nova Engine — Context / Dependency Injection
3
+ *
4
+ * Provides ancestor-to-descendant data passing via DOM events.
5
+ * Follows the W3C Context Protocol (similar to Lit's context).
6
+ */
7
+ export interface Context<T> {
8
+ readonly __contextKey: symbol;
9
+ readonly defaultValue: T;
10
+ }
11
+ /** Create a typed context with a default value. */
12
+ export declare function createContext<T>(defaultValue: T): Context<T>;
13
+ /**
14
+ * Provide a context value on an element.
15
+ *
16
+ * Any descendant that dispatches a `context-request` event whose key
17
+ * matches will receive the value via its callback. Returns a cleanup
18
+ * function that removes the listener and notifies all subscribers that
19
+ * the provider is going away (by sending `undefined`).
20
+ */
21
+ export declare function provide<T>(element: HTMLElement, context: Context<T>, value: T): () => void;
22
+ /**
23
+ * Synchronously consume a context value from the nearest ancestor provider.
24
+ *
25
+ * Dispatches a `context-request` CustomEvent that bubbles up the DOM.
26
+ * If no provider responds, the context's `defaultValue` is returned.
27
+ */
28
+ export declare function consume<T>(element: HTMLElement, context: Context<T>): T;
29
+ /**
30
+ * Consume a context value and subscribe to future updates.
31
+ *
32
+ * The `callback` is invoked immediately with the current value (or
33
+ * `defaultValue` if no provider exists) and again whenever the provider
34
+ * pushes a new value.
35
+ *
36
+ * Returns a cleanup function that unsubscribes.
37
+ */
38
+ export declare function consumeAsync<T>(element: HTMLElement, context: Context<T>, callback: (value: T) => void): () => void;
39
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;CAC1B;AAWD,mDAAmD;AACnD,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE5D;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,CAAC,EACvB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,KAAK,EAAE,CAAC,GACP,MAAM,IAAI,CAmCZ;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAmBvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAC3B,MAAM,IAAI,CA8BZ"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Nova Engine — Context / Dependency Injection
3
+ *
4
+ * Provides ancestor-to-descendant data passing via DOM events.
5
+ * Follows the W3C Context Protocol (similar to Lit's context).
6
+ */
7
+ const CONTEXT_REQUEST = 'context-request';
8
+ /** Create a typed context with a default value. */
9
+ export function createContext(defaultValue) {
10
+ return { __contextKey: Symbol(), defaultValue };
11
+ }
12
+ /**
13
+ * Provide a context value on an element.
14
+ *
15
+ * Any descendant that dispatches a `context-request` event whose key
16
+ * matches will receive the value via its callback. Returns a cleanup
17
+ * function that removes the listener and notifies all subscribers that
18
+ * the provider is going away (by sending `undefined`).
19
+ */
20
+ export function provide(element, context, value) {
21
+ let currentValue = value;
22
+ const subscribers = new Set();
23
+ function handleRequest(e) {
24
+ const ce = e;
25
+ if (ce.detail.key !== context.__contextKey)
26
+ return;
27
+ // Stop propagation so no ancestor provider accidentally responds.
28
+ ce.stopImmediatePropagation();
29
+ // Deliver the current value.
30
+ ce.detail.callback(currentValue);
31
+ // If the consumer asked for subscriptions, remember it.
32
+ if (ce.detail.subscribe) {
33
+ subscribers.add(ce.detail.callback);
34
+ }
35
+ }
36
+ element.addEventListener(CONTEXT_REQUEST, handleRequest);
37
+ function cleanup() {
38
+ element.removeEventListener(CONTEXT_REQUEST, handleRequest);
39
+ subscribers.clear();
40
+ }
41
+ /** Update the provided value and notify all subscribers. */
42
+ cleanup.update = (next) => {
43
+ if (Object.is(currentValue, next))
44
+ return;
45
+ currentValue = next;
46
+ for (const cb of [...subscribers])
47
+ cb(currentValue);
48
+ };
49
+ return cleanup;
50
+ }
51
+ /**
52
+ * Synchronously consume a context value from the nearest ancestor provider.
53
+ *
54
+ * Dispatches a `context-request` CustomEvent that bubbles up the DOM.
55
+ * If no provider responds, the context's `defaultValue` is returned.
56
+ */
57
+ export function consume(element, context) {
58
+ let result = context.defaultValue;
59
+ let responded = false;
60
+ const event = new CustomEvent(CONTEXT_REQUEST, {
61
+ bubbles: true,
62
+ composed: true,
63
+ detail: {
64
+ key: context.__contextKey,
65
+ callback: (value) => {
66
+ result = value;
67
+ responded = true;
68
+ },
69
+ subscribe: false,
70
+ },
71
+ });
72
+ element.dispatchEvent(event);
73
+ return responded ? result : context.defaultValue;
74
+ }
75
+ /**
76
+ * Consume a context value and subscribe to future updates.
77
+ *
78
+ * The `callback` is invoked immediately with the current value (or
79
+ * `defaultValue` if no provider exists) and again whenever the provider
80
+ * pushes a new value.
81
+ *
82
+ * Returns a cleanup function that unsubscribes.
83
+ */
84
+ export function consumeAsync(element, context, callback) {
85
+ let responded = false;
86
+ let unsubscribed = false;
87
+ const wrappedCallback = (value) => {
88
+ if (unsubscribed)
89
+ return;
90
+ responded = true;
91
+ callback(value);
92
+ };
93
+ const event = new CustomEvent(CONTEXT_REQUEST, {
94
+ bubbles: true,
95
+ composed: true,
96
+ detail: {
97
+ key: context.__contextKey,
98
+ callback: wrappedCallback,
99
+ subscribe: true,
100
+ },
101
+ });
102
+ element.dispatchEvent(event);
103
+ // If no provider answered, deliver the default.
104
+ if (!responded) {
105
+ callback(context.defaultValue);
106
+ }
107
+ return () => {
108
+ unsubscribed = true;
109
+ };
110
+ }
111
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { createContext, provide, consume, consumeAsync } from './context';
2
+ export type { Context } from './context';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC1E,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createContext, provide, consume, consumeAsync } from './context';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
@@ -3,7 +3,55 @@
3
3
  *
4
4
  * In-browser component inspector, state viewer, router debugger,
5
5
  * and performance profiler for Nova applications.
6
+ *
7
+ * Includes live signal/store inspection and mutation logging.
8
+ */
9
+ import type { Store } from '../state/store';
10
+ /** A registered signal entry for devtools inspection. */
11
+ export interface RegisteredSignal {
12
+ /** Human-readable label */
13
+ name: string;
14
+ /** Read the current value */
15
+ read: () => unknown;
16
+ /** Unsubscribe function returned by subscribe() */
17
+ unsub?: () => void;
18
+ }
19
+ /**
20
+ * Register a signal so it can be inspected via devtools.
21
+ *
22
+ * ```ts
23
+ * const count = store.signal(0);
24
+ * registerSignal('count', count);
25
+ * ```
26
+ */
27
+ export declare function registerSignal(name: string, read: () => unknown): () => void;
28
+ /**
29
+ * Return a snapshot of all registered signals with their current values.
6
30
  */
31
+ export declare function inspectSignals(): Record<string, unknown>;
32
+ /**
33
+ * Display the current state of a store as a plain object snapshot.
34
+ * Logs to the console and returns the snapshot.
35
+ */
36
+ export declare function inspectStore<T extends Record<string, any>>(store: Store<T>): Readonly<T>;
37
+ /**
38
+ * Subscribe to a store and log every mutation to the console with a
39
+ * timestamp. Returns an unsubscribe function.
40
+ */
41
+ export declare function logStateChanges<T extends Record<string, any>>(store: Store<T>): () => void;
42
+ export interface NovaDevtoolsGlobal {
43
+ inspectSignals: typeof inspectSignals;
44
+ inspectStore: typeof inspectStore;
45
+ logStateChanges: typeof logStateChanges;
46
+ registerSignal: typeof registerSignal;
47
+ /** The active devtools instance, set when createDevtools() is called */
48
+ instance: DevtoolsInstance | null;
49
+ }
50
+ declare global {
51
+ interface Window {
52
+ __NOVA_DEVTOOLS__?: NovaDevtoolsGlobal;
53
+ }
54
+ }
7
55
  export interface DevtoolsOptions {
8
56
  /** Keyboard shortcut to toggle overlay. Default: 'ctrl+shift+d' */
9
57
  shortcut?: string;
@@ -20,6 +68,12 @@ export interface DevtoolsInstance {
20
68
  toggle(): void;
21
69
  isOpen(): boolean;
22
70
  log(label: string, data?: unknown): void;
71
+ /** Return a snapshot of all registered signals with current values. */
72
+ inspectSignals(): Record<string, unknown>;
73
+ /** Log and return a store's current state. */
74
+ inspectStore<T extends Record<string, any>>(store: Store<T>): Readonly<T>;
75
+ /** Subscribe to a store and log mutations. Returns unsubscribe. */
76
+ logStateChanges<T extends Record<string, any>>(store: Store<T>): () => void;
23
77
  destroy(): void;
24
78
  }
25
79
  /** Create a Nova devtools overlay. */
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../src/devtools/devtools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;CACtE;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,OAAO,CAAC;IAClB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzC,OAAO,IAAI,IAAI,CAAC;CACjB;AA8DD,sCAAsC;AACtC,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,gBAAgB,CA+K9E"}
1
+ {"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../src/devtools/devtools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAM5C,yDAAyD;AACzD,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,OAAO,CAAC;IACpB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB;AAID;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,GAAG,MAAM,IAAI,CAG5E;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMxD;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAIxF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAM1F;AAMD,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,wEAAwE;IACxE,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACnC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;KACxC;CACF;AAgCD,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;CACtE;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,OAAO,CAAC;IAClB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzC,uEAAuE;IACvE,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,8CAA8C;IAC9C,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1E,mEAAmE;IACnE,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;IAC5E,OAAO,IAAI,IAAI,CAAC;CACjB;AA8DD,sCAAsC;AACtC,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,gBAAgB,CAwL9E"}
@@ -3,7 +3,84 @@
3
3
  *
4
4
  * In-browser component inspector, state viewer, router debugger,
5
5
  * and performance profiler for Nova applications.
6
+ *
7
+ * Includes live signal/store inspection and mutation logging.
8
+ */
9
+ const signalRegistry = new Map();
10
+ /**
11
+ * Register a signal so it can be inspected via devtools.
12
+ *
13
+ * ```ts
14
+ * const count = store.signal(0);
15
+ * registerSignal('count', count);
16
+ * ```
17
+ */
18
+ export function registerSignal(name, read) {
19
+ signalRegistry.set(name, { name, read });
20
+ return () => { signalRegistry.delete(name); };
21
+ }
22
+ /**
23
+ * Return a snapshot of all registered signals with their current values.
6
24
  */
25
+ export function inspectSignals() {
26
+ const snapshot = {};
27
+ for (const [name, entry] of signalRegistry) {
28
+ try {
29
+ snapshot[name] = entry.read();
30
+ }
31
+ catch {
32
+ snapshot[name] = '<error>';
33
+ }
34
+ }
35
+ return snapshot;
36
+ }
37
+ /* ------------------------------------------------------------------ */
38
+ /* Store inspection */
39
+ /* ------------------------------------------------------------------ */
40
+ /**
41
+ * Display the current state of a store as a plain object snapshot.
42
+ * Logs to the console and returns the snapshot.
43
+ */
44
+ export function inspectStore(store) {
45
+ const snap = store.snapshot();
46
+ console.log('[nova/devtools] store snapshot', snap);
47
+ return snap;
48
+ }
49
+ /**
50
+ * Subscribe to a store and log every mutation to the console with a
51
+ * timestamp. Returns an unsubscribe function.
52
+ */
53
+ export function logStateChanges(store) {
54
+ return store.onAny(() => {
55
+ const time = new Date().toISOString();
56
+ const snap = store.snapshot();
57
+ console.log(`[nova/devtools] [${time}] state changed`, snap);
58
+ });
59
+ }
60
+ function ensureGlobal() {
61
+ if (typeof window === 'undefined') {
62
+ // SSR / non-browser — return a no-op object that won't be attached
63
+ return {
64
+ inspectSignals,
65
+ inspectStore,
66
+ logStateChanges,
67
+ registerSignal,
68
+ instance: null,
69
+ };
70
+ }
71
+ if (!window.__NOVA_DEVTOOLS__) {
72
+ window.__NOVA_DEVTOOLS__ = {
73
+ inspectSignals,
74
+ inspectStore,
75
+ logStateChanges,
76
+ registerSignal,
77
+ instance: null,
78
+ };
79
+ }
80
+ return window.__NOVA_DEVTOOLS__;
81
+ }
82
+ // Register on load
83
+ ensureGlobal();
7
84
  const STYLE_ID = 'nova-devtools-styles';
8
85
  function injectStyles() {
9
86
  if (document.getElementById(STYLE_ID))
@@ -224,14 +301,23 @@ export function createDevtools(options = {}) {
224
301
  if (opened && activeTab === 2)
225
302
  renderContent();
226
303
  },
304
+ inspectSignals,
305
+ inspectStore,
306
+ logStateChanges,
227
307
  destroy() {
228
308
  instance.close();
229
309
  document.removeEventListener('keydown', onKeydown);
230
310
  document.removeEventListener('mousemove', onHover);
231
311
  panel.remove();
232
312
  document.getElementById(STYLE_ID)?.remove();
313
+ // Clear global reference
314
+ const g = ensureGlobal();
315
+ if (g.instance === instance)
316
+ g.instance = null;
233
317
  },
234
318
  };
319
+ // Register instance on the global devtools object
320
+ ensureGlobal().instance = instance;
235
321
  return instance;
236
322
  }
237
323
  //# sourceMappingURL=devtools.js.map