@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
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Nova Engine — Template Directives
3
+ *
4
+ * Utility functions for dynamic class and style attribute bindings.
5
+ */
6
+ /**
7
+ * Build a class attribute string from an object of class names to booleans.
8
+ *
9
+ * Usage: html`<div class=${classMap({ btn: true, 'is-active': active })}>`
10
+ */
11
+ export declare function classMap(obj: Record<string, boolean | undefined | null>): string;
12
+ /**
13
+ * Build a style attribute string from an object of CSS properties to values.
14
+ * camelCase keys are converted to kebab-case. Number values auto-append 'px'.
15
+ * Null/undefined values are skipped.
16
+ *
17
+ * Usage: html`<div style=${styleMap({ fontSize: 16, color: 'red' })}>`
18
+ */
19
+ export declare function styleMap(obj: Record<string, string | number | undefined | null>): string;
20
+ //# sourceMappingURL=directives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../src/component/directives.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,MAAM,CAShF;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,MAAM,CAUxF"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Nova Engine — Template Directives
3
+ *
4
+ * Utility functions for dynamic class and style attribute bindings.
5
+ */
6
+ /**
7
+ * Build a class attribute string from an object of class names to booleans.
8
+ *
9
+ * Usage: html`<div class=${classMap({ btn: true, 'is-active': active })}>`
10
+ */
11
+ export function classMap(obj) {
12
+ let result = '';
13
+ for (const key in obj) {
14
+ if (obj[key]) {
15
+ if (result)
16
+ result += ' ';
17
+ result += key;
18
+ }
19
+ }
20
+ return result;
21
+ }
22
+ /**
23
+ * Build a style attribute string from an object of CSS properties to values.
24
+ * camelCase keys are converted to kebab-case. Number values auto-append 'px'.
25
+ * Null/undefined values are skipped.
26
+ *
27
+ * Usage: html`<div style=${styleMap({ fontSize: 16, color: 'red' })}>`
28
+ */
29
+ export function styleMap(obj) {
30
+ let result = '';
31
+ for (const key in obj) {
32
+ const val = obj[key];
33
+ if (val == null)
34
+ continue;
35
+ const prop = key.replace(/[A-Z]/g, (m) => '-' + m.toLowerCase());
36
+ if (result)
37
+ result += '; ';
38
+ result += `${prop}: ${typeof val === 'number' ? val + 'px' : val}`;
39
+ }
40
+ return result;
41
+ }
42
+ //# sourceMappingURL=directives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directives.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,GAA+C;IACtE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACb,IAAI,MAAM;gBAAE,MAAM,IAAI,GAAG,CAAC;YAC1B,MAAM,IAAI,GAAG,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAuD;IAC9E,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,GAAG,IAAI,IAAI;YAAE,SAAS;QAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,IAAI,MAAM;YAAE,MAAM,IAAI,IAAI,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,KAAK,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -32,4 +32,12 @@ export declare class SafeHTML {
32
32
  export declare function raw(value: string): SafeHTML;
33
33
  /** Tagged template — returns TemplateResult for fine-grained rendering */
34
34
  export declare function html(strings: TemplateStringsArray, ...values: unknown[]): TemplateResult;
35
+ /**
36
+ * Assign a stable key to a TemplateResult for efficient keyed list diffing.
37
+ * When items in an array have keys, the template engine uses WASM-accelerated
38
+ * LIS diffing (if loaded) to compute minimal DOM operations.
39
+ *
40
+ * Usage: items.map(item => key(item.id, html`<li>${item.name}</li>`))
41
+ */
42
+ export declare function key(k: string, result: TemplateResult): TemplateResult;
35
43
  //# sourceMappingURL=html.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/component/html.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQjD;AAED;;;;;;;;;GASG;AACH,qBAAa,QAAQ;aACS,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAE3C,QAAQ,IAAI,MAAM;CAGnB;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAE3C;AAED,0EAA0E;AAC1E,wBAAgB,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAExF"}
1
+ {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/component/html.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQjD;AAED;;;;;;;;;GASG;AACH,qBAAa,QAAQ;aACS,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAE3C,QAAQ,IAAI,MAAM;CAGnB;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAE3C;AAED,0EAA0E;AAC1E,wBAAgB,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAExF;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,cAAc,CAGrE"}
@@ -48,4 +48,15 @@ export function raw(value) {
48
48
  export function html(strings, ...values) {
49
49
  return new TemplateResult(strings, values);
50
50
  }
51
+ /**
52
+ * Assign a stable key to a TemplateResult for efficient keyed list diffing.
53
+ * When items in an array have keys, the template engine uses WASM-accelerated
54
+ * LIS diffing (if loaded) to compute minimal DOM operations.
55
+ *
56
+ * Usage: items.map(item => key(item.id, html`<li>${item.name}</li>`))
57
+ */
58
+ export function key(k, result) {
59
+ result._key = k;
60
+ return result;
61
+ }
51
62
  //# sourceMappingURL=html.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAChC,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,QAAQ;IACS;IAA5B,YAA4B,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAE/C,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,CAAC,KAAa;IAC/B,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,IAAI,CAAC,OAA6B,EAAE,GAAG,MAAiB;IACtE,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAChC,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,QAAQ;IACS;IAA5B,YAA4B,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAE/C,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,CAAC,KAAa;IAC/B,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,IAAI,CAAC,OAA6B,EAAE,GAAG,MAAiB;IACtE,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,MAAsB;IACnD,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;IAChB,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,9 +1,15 @@
1
- export { Component, html, raw, TemplateResult } from './component';
1
+ export { Component, html, raw, key, TemplateResult } from './component';
2
2
  export type { PropType, PropDefinition } from './component';
3
3
  export { TemplateInstance, createInstance } from './template';
4
4
  export { bind, SignalBinding } from './bind';
5
5
  export { hydrateTemplate } from './hydrate';
6
6
  export type { HydrationInstance } from './hydrate';
7
- export { useSignal, useStore, useEffect, useTick } from './connect';
8
- export type { TickHandle } from './connect';
7
+ export { useSignal, useStore, useEffect, useTick, useInterval, useScroll, afterRender, useComputed } from './connect';
8
+ export type { TickHandle, IntervalHandle } from './connect';
9
+ export { classMap, styleMap } from './directives';
10
+ export { createRef } from './ref';
11
+ export type { Ref } from './ref';
12
+ export { createPortal, usePortal } from './portal';
13
+ export type { PortalInstance, PortalOptions } from './portal';
14
+ export { slotStyles } from './slot-styles';
9
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/component/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACnE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/component/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtH,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,YAAY,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -1,6 +1,10 @@
1
- export { Component, html, raw, TemplateResult } from './component';
1
+ export { Component, html, raw, key, TemplateResult } from './component';
2
2
  export { TemplateInstance, createInstance } from './template';
3
3
  export { bind, SignalBinding } from './bind';
4
4
  export { hydrateTemplate } from './hydrate';
5
- export { useSignal, useStore, useEffect, useTick } from './connect';
5
+ export { useSignal, useStore, useEffect, useTick, useInterval, useScroll, afterRender, useComputed } from './connect';
6
+ export { classMap, styleMap } from './directives';
7
+ export { createRef } from './ref';
8
+ export { createPortal, usePortal } from './portal';
9
+ export { slotStyles } from './slot-styles';
6
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEtH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Nova Engine — Portal / Teleport
3
+ *
4
+ * Render content outside the current shadow root, typically into document.body.
5
+ * Useful for tooltips, dropdowns, and modals that need to escape overflow clipping.
6
+ */
7
+ import type { Component } from './component';
8
+ import { TemplateResult } from './template';
9
+ export interface PortalOptions {
10
+ /** Target element to render into. Default: document.body */
11
+ target?: HTMLElement;
12
+ /** CSS class for the portal wrapper */
13
+ class?: string;
14
+ }
15
+ export interface PortalInstance {
16
+ /** The portal wrapper element in the target */
17
+ readonly container: HTMLElement;
18
+ /** Update the portal's content */
19
+ update(content: string | HTMLElement | TemplateResult): void;
20
+ /** Remove the portal from the DOM and clean up */
21
+ destroy(): void;
22
+ }
23
+ /**
24
+ * Create a portal that renders content into a target element (default: document.body).
25
+ */
26
+ export declare function createPortal(content: string | HTMLElement | TemplateResult, options?: PortalOptions): PortalInstance;
27
+ /**
28
+ * Create a portal tied to a component's lifecycle.
29
+ * Automatically destroyed when the component disconnects.
30
+ */
31
+ export declare function usePortal(component: Component, content: string | HTMLElement | TemplateResult, options?: PortalOptions): PortalInstance;
32
+ //# sourceMappingURL=portal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../src/component/portal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAoC,MAAM,YAAY,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,kCAAkC;IAClC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,cAAc,GAAG,IAAI,CAAC;IAC7D,kDAAkD;IAClD,OAAO,IAAI,IAAI,CAAC;CACjB;AAmCD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,cAAc,EAC9C,OAAO,CAAC,EAAE,aAAa,GACtB,cAAc,CAqBhB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,cAAc,EAC9C,OAAO,CAAC,EAAE,aAAa,GACtB,cAAc,CAIhB"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Nova Engine — Portal / Teleport
3
+ *
4
+ * Render content outside the current shadow root, typically into document.body.
5
+ * Useful for tooltips, dropdowns, and modals that need to escape overflow clipping.
6
+ */
7
+ import { TemplateResult, createInstance } from './template';
8
+ function renderInto(wrapper, content, prevInstance, prevStrings) {
9
+ // Surgical update: reuse Parts Engine instance when same template structure
10
+ if (content instanceof TemplateResult &&
11
+ prevInstance &&
12
+ prevStrings === content.strings &&
13
+ prevInstance.nodes[0]?.parentNode) {
14
+ prevInstance.update(content.values);
15
+ return prevInstance;
16
+ }
17
+ // Different content type, different template, or first render — full replace
18
+ if (prevInstance)
19
+ prevInstance.dispose();
20
+ wrapper.textContent = '';
21
+ if (content instanceof TemplateResult) {
22
+ const instance = createInstance(content);
23
+ wrapper.appendChild(instance.fragment);
24
+ return instance;
25
+ }
26
+ else if (typeof content === 'string') {
27
+ wrapper.textContent = content;
28
+ }
29
+ else {
30
+ wrapper.appendChild(content);
31
+ }
32
+ return null;
33
+ }
34
+ /**
35
+ * Create a portal that renders content into a target element (default: document.body).
36
+ */
37
+ export function createPortal(content, options) {
38
+ const target = options?.target ?? document.body;
39
+ const wrapper = document.createElement('div');
40
+ wrapper.setAttribute('data-nova-portal', '');
41
+ if (options?.class)
42
+ wrapper.className = options.class;
43
+ let instance = renderInto(wrapper, content, null, null);
44
+ let prevStrings = content instanceof TemplateResult ? content.strings : null;
45
+ target.appendChild(wrapper);
46
+ return {
47
+ get container() { return wrapper; },
48
+ update(c) {
49
+ instance = renderInto(wrapper, c, instance, prevStrings);
50
+ prevStrings = c instanceof TemplateResult ? c.strings : null;
51
+ },
52
+ destroy() {
53
+ if (instance) {
54
+ instance.dispose();
55
+ instance = null;
56
+ }
57
+ wrapper.remove();
58
+ },
59
+ };
60
+ }
61
+ /**
62
+ * Create a portal tied to a component's lifecycle.
63
+ * Automatically destroyed when the component disconnects.
64
+ */
65
+ export function usePortal(component, content, options) {
66
+ const portal = createPortal(content, options);
67
+ component._addCleanup(() => portal.destroy());
68
+ return portal;
69
+ }
70
+ //# sourceMappingURL=portal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAoB,cAAc,EAAE,MAAM,YAAY,CAAC;AAkB9E,SAAS,UAAU,CACjB,OAAoB,EACpB,OAA8C,EAC9C,YAAqC,EACrC,WAAwC;IAExC,4EAA4E;IAC5E,IACE,OAAO,YAAY,cAAc;QACjC,YAAY;QACZ,WAAW,KAAK,OAAO,CAAC,OAAO;QAC/B,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EACjC,CAAC;QACD,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,6EAA6E;IAC7E,IAAI,YAAY;QAAE,YAAY,CAAC,OAAO,EAAE,CAAC;IACzC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;IAEzB,IAAI,OAAO,YAAY,cAAc,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,QAAQ,CAAC;IAClB,CAAC;SAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,OAA8C,EAC9C,OAAuB;IAEvB,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC;IAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC7C,IAAI,OAAO,EAAE,KAAK;QAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAEtD,IAAI,QAAQ,GAA4B,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjF,IAAI,WAAW,GAAgC,OAAO,YAAY,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1G,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAE5B,OAAO;QACL,IAAI,SAAS,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,CAAwC;YAC7C,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACzD,WAAW,GAAG,CAAC,YAAY,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,CAAC;QACD,OAAO;YACL,IAAI,QAAQ,EAAE,CAAC;gBAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,CAAC;YACtD,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,SAAoB,EACpB,OAA8C,EAC9C,OAAuB;IAEvB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Nova Engine — Ref Directive
3
+ *
4
+ * Direct DOM element references that survive re-renders.
5
+ */
6
+ export interface Ref<T = Element> {
7
+ current: T | null;
8
+ }
9
+ /**
10
+ * Create a ref object for direct DOM element access.
11
+ *
12
+ * Usage:
13
+ * const myRef = createRef<HTMLDivElement>();
14
+ * render() { return html`<div ref=${myRef}>...</div>`; }
15
+ * // After render: myRef.current is the <div> element
16
+ */
17
+ export declare function createRef<T = Element>(): Ref<T>;
18
+ //# sourceMappingURL=ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../../src/component/ref.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,OAAO;IAC9B,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAE/C"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Nova Engine — Ref Directive
3
+ *
4
+ * Direct DOM element references that survive re-renders.
5
+ */
6
+ /**
7
+ * Create a ref object for direct DOM element access.
8
+ *
9
+ * Usage:
10
+ * const myRef = createRef<HTMLDivElement>();
11
+ * render() { return html`<div ref=${myRef}>...</div>`; }
12
+ * // After render: myRef.current is the <div> element
13
+ */
14
+ export function createRef() {
15
+ return { current: null };
16
+ }
17
+ //# sourceMappingURL=ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Nova Engine — Scoped Slot Styles
3
+ *
4
+ * Inject light-DOM styles scoped to a component's tag name, enabling
5
+ * deep styling of slotted content beyond ::slotted() limitations.
6
+ */
7
+ import type { Component } from './component';
8
+ /**
9
+ * Inject styles into the light DOM scoped to a component's tag name.
10
+ * Allows styling of slotted content at any depth (not just direct children).
11
+ * Shared across all instances of the same component — deduplicated by tag.
12
+ * Cleaned up when the last instance disconnects.
13
+ *
14
+ * @param component The component to scope styles to
15
+ * @param styles CSS rules (selectors are auto-prefixed with the component tag)
16
+ */
17
+ export declare function slotStyles(component: Component, styles: string): void;
18
+ //# sourceMappingURL=slot-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-styles.d.ts","sourceRoot":"","sources":["../../src/component/slot-styles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA+D7C;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAwBrE"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Nova Engine — Scoped Slot Styles
3
+ *
4
+ * Inject light-DOM styles scoped to a component's tag name, enabling
5
+ * deep styling of slotted content beyond ::slotted() limitations.
6
+ */
7
+ /** Track instance counts per tag for cleanup */
8
+ const instanceCounts = new Map();
9
+ /** Scope CSS selectors with a tag prefix. Handles comma-separated selectors,
10
+ * @media/@supports (scopes inner selectors), and @keyframes/@font-face (leaves alone). */
11
+ function scopeCSS(css, tag) {
12
+ // Strip CSS comments to prevent braces inside comments from corrupting the parser
13
+ css = css.replace(/\/\*[\s\S]*?\*\//g, '');
14
+ let result = '';
15
+ let i = 0;
16
+ let depth = 0;
17
+ let atSkipDepth = -1; // brace depth when we entered a non-scopable @-rule
18
+ while (i < css.length) {
19
+ const openIdx = css.indexOf('{', i);
20
+ const closeIdx = css.indexOf('}', i);
21
+ if (openIdx === -1 && closeIdx === -1) {
22
+ result += css.slice(i);
23
+ break;
24
+ }
25
+ if (openIdx !== -1 && (closeIdx === -1 || openIdx < closeIdx)) {
26
+ const before = css.slice(i, openIdx);
27
+ const trimmed = before.trim();
28
+ if (trimmed.startsWith('@')) {
29
+ result += before + '{';
30
+ // @keyframes and @font-face: don't scope inner content
31
+ if (/^@(keyframes|font-face)\b/i.test(trimmed)) {
32
+ atSkipDepth = depth;
33
+ }
34
+ }
35
+ else if (atSkipDepth >= 0) {
36
+ // Inside non-scopable @-rule (e.g. keyframe stops)
37
+ result += before + '{';
38
+ }
39
+ else {
40
+ // Normal selector — prefix each comma-separated part
41
+ const leading = before.match(/^(\s*)/)?.[1] ?? '';
42
+ const scoped = trimmed.split(',')
43
+ .map(s => s.trim())
44
+ .filter(Boolean)
45
+ .map(s => `${tag} ${s}`)
46
+ .join(', ');
47
+ result += leading + scoped + ' {';
48
+ }
49
+ depth++;
50
+ i = openIdx + 1;
51
+ }
52
+ else {
53
+ result += css.slice(i, closeIdx + 1);
54
+ depth--;
55
+ if (atSkipDepth >= 0 && depth <= atSkipDepth) {
56
+ atSkipDepth = -1;
57
+ }
58
+ i = closeIdx + 1;
59
+ }
60
+ }
61
+ return result;
62
+ }
63
+ /**
64
+ * Inject styles into the light DOM scoped to a component's tag name.
65
+ * Allows styling of slotted content at any depth (not just direct children).
66
+ * Shared across all instances of the same component — deduplicated by tag.
67
+ * Cleaned up when the last instance disconnects.
68
+ *
69
+ * @param component The component to scope styles to
70
+ * @param styles CSS rules (selectors are auto-prefixed with the component tag)
71
+ */
72
+ export function slotStyles(component, styles) {
73
+ const tag = component.constructor.tag;
74
+ const styleId = `nova-slot-${tag}`;
75
+ // Track instance count
76
+ instanceCounts.set(tag, (instanceCounts.get(tag) ?? 0) + 1);
77
+ // Inject once per tag
78
+ if (!document.getElementById(styleId)) {
79
+ const style = document.createElement('style');
80
+ style.id = styleId;
81
+ style.textContent = scopeCSS(styles, tag);
82
+ document.head.appendChild(style);
83
+ }
84
+ component._addCleanup(() => {
85
+ const count = (instanceCounts.get(tag) ?? 1) - 1;
86
+ instanceCounts.set(tag, count);
87
+ // Remove style only when last instance disconnects
88
+ if (count <= 0) {
89
+ instanceCounts.delete(tag);
90
+ document.getElementById(styleId)?.remove();
91
+ }
92
+ });
93
+ }
94
+ //# sourceMappingURL=slot-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-styles.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ interface Part {
11
11
  export declare class TemplateResult {
12
12
  readonly strings: TemplateStringsArray;
13
13
  readonly values: unknown[];
14
+ /** Optional key for keyed list diffing — set via key() helper */
15
+ _key?: string;
14
16
  constructor(strings: TemplateStringsArray, values: unknown[]);
15
17
  /** Backward compat: renders to HTML string (same output as old SafeHTML) */
16
18
  get content(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/component/template.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuCH,UAAU,IAAI;IACZ,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,OAAO,IAAI,IAAI,CAAC;CACjB;AAID,qBAAa,cAAc;aAEP,OAAO,EAAE,oBAAoB;aAC7B,MAAM,EAAE,OAAO,EAAE;gBADjB,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,OAAO,EAAE;IAGnC,4EAA4E;IAC5E,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,QAAQ,IAAI,MAAM;CAGnB;AAuYD,qBAAa,gBAAgB;IAC3B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAY;gBAEf,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;IAOzE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI;IAS/B,OAAO,IAAI,IAAI;CAOhB;AAID,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAwCvE"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/component/template.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4CH,UAAU,IAAI;IACZ,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,OAAO,IAAI,IAAI,CAAC;CACjB;AAID,qBAAa,cAAc;aAKP,OAAO,EAAE,oBAAoB;aAC7B,MAAM,EAAE,OAAO,EAAE;IALnC,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;gBAGI,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,OAAO,EAAE;IAGnC,4EAA4E;IAC5E,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,QAAQ,IAAI,MAAM;CAGnB;AAugBD,qBAAa,gBAAgB;IAC3B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAY;gBAEf,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;IAOzE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI;IAS/B,OAAO,IAAI,IAAI;CAOhB;AAID,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAwCvE"}