@miurajs/miura-render 0.1.0 → 0.2.0

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 (263) hide show
  1. package/README.md +6 -6
  2. package/dist/index.d.ts +14 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +13 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/src/binding-manager/binding-manager.d.ts +30 -0
  7. package/dist/src/binding-manager/binding-manager.d.ts.map +1 -0
  8. package/dist/src/binding-manager/binding-manager.js +245 -0
  9. package/dist/src/binding-manager/binding-manager.js.map +1 -0
  10. package/dist/src/binding-manager/binding-type.d.ts +24 -0
  11. package/dist/src/binding-manager/binding-type.d.ts.map +1 -0
  12. package/dist/src/binding-manager/binding-type.js +25 -0
  13. package/dist/src/binding-manager/binding-type.js.map +1 -0
  14. package/dist/src/binding-manager/bindings/async-binding.d.ts +23 -0
  15. package/dist/src/binding-manager/bindings/async-binding.d.ts.map +1 -0
  16. package/dist/src/binding-manager/bindings/async-binding.js +67 -0
  17. package/dist/src/binding-manager/bindings/async-binding.js.map +1 -0
  18. package/dist/src/binding-manager/bindings/attribute-binding.d.ts +41 -0
  19. package/dist/src/binding-manager/bindings/attribute-binding.d.ts.map +1 -0
  20. package/dist/src/binding-manager/bindings/attribute-binding.js +79 -0
  21. package/dist/src/binding-manager/bindings/attribute-binding.js.map +1 -0
  22. package/dist/src/binding-manager/bindings/bind-binding.d.ts +30 -0
  23. package/dist/src/binding-manager/bindings/bind-binding.d.ts.map +1 -0
  24. package/dist/src/binding-manager/bindings/bind-binding.js +81 -0
  25. package/dist/src/binding-manager/bindings/bind-binding.js.map +1 -0
  26. package/dist/src/binding-manager/bindings/binding.d.ts +6 -0
  27. package/dist/src/binding-manager/bindings/binding.d.ts.map +1 -0
  28. package/dist/src/binding-manager/bindings/binding.js +2 -0
  29. package/dist/src/binding-manager/bindings/binding.js.map +1 -0
  30. package/dist/src/binding-manager/bindings/boolean-binding.d.ts +18 -0
  31. package/dist/src/binding-manager/bindings/boolean-binding.d.ts.map +1 -0
  32. package/dist/src/binding-manager/bindings/boolean-binding.js +65 -0
  33. package/dist/src/binding-manager/bindings/boolean-binding.js.map +1 -0
  34. package/dist/src/binding-manager/bindings/class-binding.d.ts +10 -0
  35. package/dist/src/binding-manager/bindings/class-binding.d.ts.map +1 -0
  36. package/dist/src/binding-manager/bindings/class-binding.js +68 -0
  37. package/dist/src/binding-manager/bindings/class-binding.js.map +1 -0
  38. package/dist/src/binding-manager/bindings/directive-binding.d.ts +15 -0
  39. package/dist/src/binding-manager/bindings/directive-binding.d.ts.map +1 -0
  40. package/dist/src/binding-manager/bindings/directive-binding.js +70 -0
  41. package/dist/src/binding-manager/bindings/directive-binding.js.map +1 -0
  42. package/dist/src/binding-manager/bindings/event-binding.d.ts +14 -0
  43. package/dist/src/binding-manager/bindings/event-binding.d.ts.map +1 -0
  44. package/dist/src/binding-manager/bindings/event-binding.js +73 -0
  45. package/dist/src/binding-manager/bindings/event-binding.js.map +1 -0
  46. package/dist/src/binding-manager/bindings/node-binding.d.ts +36 -0
  47. package/dist/src/binding-manager/bindings/node-binding.d.ts.map +1 -0
  48. package/dist/src/binding-manager/bindings/node-binding.js +235 -0
  49. package/dist/src/binding-manager/bindings/node-binding.js.map +1 -0
  50. package/dist/src/binding-manager/bindings/object-class-binding.d.ts +16 -0
  51. package/dist/src/binding-manager/bindings/object-class-binding.d.ts.map +1 -0
  52. package/dist/src/binding-manager/bindings/object-class-binding.js +42 -0
  53. package/dist/src/binding-manager/bindings/object-class-binding.js.map +1 -0
  54. package/dist/src/binding-manager/bindings/object-style-binding.d.ts +16 -0
  55. package/dist/src/binding-manager/bindings/object-style-binding.d.ts.map +1 -0
  56. package/dist/src/binding-manager/bindings/object-style-binding.js +38 -0
  57. package/dist/src/binding-manager/bindings/object-style-binding.js.map +1 -0
  58. package/dist/src/binding-manager/bindings/property-binding.d.ts +12 -0
  59. package/dist/src/binding-manager/bindings/property-binding.d.ts.map +1 -0
  60. package/dist/src/binding-manager/bindings/property-binding.js +44 -0
  61. package/dist/src/binding-manager/bindings/property-binding.js.map +1 -0
  62. package/dist/src/binding-manager/bindings/reference-binding.d.ts +14 -0
  63. package/dist/src/binding-manager/bindings/reference-binding.d.ts.map +1 -0
  64. package/dist/src/binding-manager/bindings/reference-binding.js +44 -0
  65. package/dist/src/binding-manager/bindings/reference-binding.js.map +1 -0
  66. package/dist/src/binding-manager/bindings/spread-binding.d.ts +16 -0
  67. package/dist/src/binding-manager/bindings/spread-binding.d.ts.map +1 -0
  68. package/dist/src/binding-manager/bindings/spread-binding.js +40 -0
  69. package/dist/src/binding-manager/bindings/spread-binding.js.map +1 -0
  70. package/dist/src/binding-manager/bindings/style-binding.d.ts +10 -0
  71. package/dist/src/binding-manager/bindings/style-binding.d.ts.map +1 -0
  72. package/dist/src/binding-manager/bindings/style-binding.js +44 -0
  73. package/dist/src/binding-manager/bindings/style-binding.js.map +1 -0
  74. package/dist/src/compiler/code-factory.d.ts +45 -0
  75. package/dist/src/compiler/code-factory.d.ts.map +1 -0
  76. package/dist/src/compiler/code-factory.js +211 -0
  77. package/dist/src/compiler/code-factory.js.map +1 -0
  78. package/dist/src/compiler/compiler.d.ts +77 -0
  79. package/dist/src/compiler/compiler.d.ts.map +1 -0
  80. package/dist/src/compiler/compiler.js +77 -0
  81. package/dist/src/compiler/compiler.js.map +1 -0
  82. package/dist/src/compiler/constants.d.ts +5 -0
  83. package/dist/src/compiler/constants.d.ts.map +1 -0
  84. package/dist/src/compiler/constants.js +9 -0
  85. package/dist/src/compiler/constants.js.map +1 -0
  86. package/dist/src/css-result.d.ts +27 -0
  87. package/dist/src/css-result.d.ts.map +1 -0
  88. package/dist/src/css-result.js +56 -0
  89. package/dist/src/css-result.js.map +1 -0
  90. package/dist/src/css.d.ts +26 -0
  91. package/dist/src/css.d.ts.map +1 -0
  92. package/dist/src/css.js +62 -0
  93. package/dist/src/css.js.map +1 -0
  94. package/dist/src/directives/animate.directive.d.ts +42 -0
  95. package/dist/src/directives/animate.directive.d.ts.map +1 -0
  96. package/dist/src/directives/animate.directive.js +349 -0
  97. package/dist/src/directives/animate.directive.js.map +1 -0
  98. package/dist/src/directives/await.d.ts +68 -0
  99. package/dist/src/directives/await.d.ts.map +1 -0
  100. package/dist/src/directives/await.js +70 -0
  101. package/dist/src/directives/await.js.map +1 -0
  102. package/dist/src/directives/choose.d.ts +28 -0
  103. package/dist/src/directives/choose.d.ts.map +1 -0
  104. package/dist/src/directives/choose.js +30 -0
  105. package/dist/src/directives/choose.js.map +1 -0
  106. package/dist/src/directives/decorator-example.d.ts +8 -0
  107. package/dist/src/directives/decorator-example.d.ts.map +1 -0
  108. package/dist/src/directives/decorator-example.js +32 -0
  109. package/dist/src/directives/decorator-example.js.map +1 -0
  110. package/dist/src/directives/decorators.d.ts +3 -0
  111. package/dist/src/directives/decorators.d.ts.map +1 -0
  112. package/dist/src/directives/decorators.js +17 -0
  113. package/dist/src/directives/decorators.js.map +1 -0
  114. package/dist/src/directives/directive-manager.d.ts +26 -0
  115. package/dist/src/directives/directive-manager.d.ts.map +1 -0
  116. package/dist/src/directives/directive-manager.js +114 -0
  117. package/dist/src/directives/directive-manager.js.map +1 -0
  118. package/dist/src/directives/directive.d.ts +38 -0
  119. package/dist/src/directives/directive.d.ts.map +1 -0
  120. package/dist/src/directives/directive.js +18 -0
  121. package/dist/src/directives/directive.js.map +1 -0
  122. package/dist/src/directives/focus.directive.d.ts +16 -0
  123. package/dist/src/directives/focus.directive.d.ts.map +1 -0
  124. package/dist/src/directives/focus.directive.js +29 -0
  125. package/dist/src/directives/focus.directive.js.map +1 -0
  126. package/dist/src/directives/gesture.directive.d.ts +58 -0
  127. package/dist/src/directives/gesture.directive.d.ts.map +1 -0
  128. package/dist/src/directives/gesture.directive.js +331 -0
  129. package/dist/src/directives/gesture.directive.js.map +1 -0
  130. package/dist/src/directives/index.d.ts +34 -0
  131. package/dist/src/directives/index.d.ts.map +1 -0
  132. package/dist/src/directives/index.js +35 -0
  133. package/dist/src/directives/index.js.map +1 -0
  134. package/dist/src/directives/intersection.directive.d.ts +18 -0
  135. package/dist/src/directives/intersection.directive.d.ts.map +1 -0
  136. package/dist/src/directives/intersection.directive.js +50 -0
  137. package/dist/src/directives/intersection.directive.js.map +1 -0
  138. package/dist/src/directives/keyed-diff.d.ts +30 -0
  139. package/dist/src/directives/keyed-diff.d.ts.map +1 -0
  140. package/dist/src/directives/keyed-diff.js +185 -0
  141. package/dist/src/directives/keyed-diff.js.map +1 -0
  142. package/dist/src/directives/lazy-setup.d.ts +3 -0
  143. package/dist/src/directives/lazy-setup.d.ts.map +1 -0
  144. package/dist/src/directives/lazy-setup.js +55 -0
  145. package/dist/src/directives/lazy-setup.js.map +1 -0
  146. package/dist/src/directives/lazy.directive.d.ts +19 -0
  147. package/dist/src/directives/lazy.directive.d.ts.map +1 -0
  148. package/dist/src/directives/lazy.directive.js +73 -0
  149. package/dist/src/directives/lazy.directive.js.map +1 -0
  150. package/dist/src/directives/media.directive.d.ts +31 -0
  151. package/dist/src/directives/media.directive.d.ts.map +1 -0
  152. package/dist/src/directives/media.directive.js +105 -0
  153. package/dist/src/directives/media.directive.js.map +1 -0
  154. package/dist/src/directives/mutation.directive.d.ts +11 -0
  155. package/dist/src/directives/mutation.directive.d.ts.map +1 -0
  156. package/dist/src/directives/mutation.directive.js +56 -0
  157. package/dist/src/directives/mutation.directive.js.map +1 -0
  158. package/dist/src/directives/repeat.d.ts +50 -0
  159. package/dist/src/directives/repeat.d.ts.map +1 -0
  160. package/dist/src/directives/repeat.js +47 -0
  161. package/dist/src/directives/repeat.js.map +1 -0
  162. package/dist/src/directives/resize.directive.d.ts +14 -0
  163. package/dist/src/directives/resize.directive.d.ts.map +1 -0
  164. package/dist/src/directives/resize.directive.js +81 -0
  165. package/dist/src/directives/resize.directive.js.map +1 -0
  166. package/dist/src/directives/setup.d.ts +9 -0
  167. package/dist/src/directives/setup.d.ts.map +1 -0
  168. package/dist/src/directives/setup.js +9 -0
  169. package/dist/src/directives/setup.js.map +1 -0
  170. package/dist/src/directives/structural/async.directive.d.ts +39 -0
  171. package/dist/src/directives/structural/async.directive.d.ts.map +1 -0
  172. package/dist/src/directives/structural/async.directive.js +115 -0
  173. package/dist/src/directives/structural/async.directive.js.map +1 -0
  174. package/dist/src/directives/structural/for.directive.d.ts +37 -0
  175. package/dist/src/directives/structural/for.directive.d.ts.map +1 -0
  176. package/dist/src/directives/structural/for.directive.js +209 -0
  177. package/dist/src/directives/structural/for.directive.js.map +1 -0
  178. package/dist/src/directives/structural/if.directive.d.ts +54 -0
  179. package/dist/src/directives/structural/if.directive.d.ts.map +1 -0
  180. package/dist/src/directives/structural/if.directive.js +210 -0
  181. package/dist/src/directives/structural/if.directive.js.map +1 -0
  182. package/dist/src/directives/structural/structural.directive.d.ts +11 -0
  183. package/dist/src/directives/structural/structural.directive.d.ts.map +1 -0
  184. package/dist/src/directives/structural/structural.directive.js +29 -0
  185. package/dist/src/directives/structural/structural.directive.js.map +1 -0
  186. package/dist/src/directives/structural/switch.directive.d.ts +12 -0
  187. package/dist/src/directives/structural/switch.directive.d.ts.map +1 -0
  188. package/dist/src/directives/structural/switch.directive.js +69 -0
  189. package/dist/src/directives/structural/switch.directive.js.map +1 -0
  190. package/dist/src/directives/structural/virtual-scroll.directive.d.ts +50 -0
  191. package/dist/src/directives/structural/virtual-scroll.directive.d.ts.map +1 -0
  192. package/dist/src/directives/structural/virtual-scroll.directive.js +165 -0
  193. package/dist/src/directives/structural/virtual-scroll.directive.js.map +1 -0
  194. package/dist/src/directives/utils.d.ts +61 -0
  195. package/dist/src/directives/utils.d.ts.map +1 -0
  196. package/dist/src/directives/utils.js +121 -0
  197. package/dist/src/directives/utils.js.map +1 -0
  198. package/dist/src/directives/validate.directive.d.ts +41 -0
  199. package/dist/src/directives/validate.directive.d.ts.map +1 -0
  200. package/dist/src/directives/validate.directive.js +161 -0
  201. package/dist/src/directives/validate.directive.js.map +1 -0
  202. package/dist/src/directives/virtual-scroll.d.ts +91 -0
  203. package/dist/src/directives/virtual-scroll.d.ts.map +1 -0
  204. package/dist/src/directives/virtual-scroll.js +78 -0
  205. package/dist/src/directives/virtual-scroll.js.map +1 -0
  206. package/dist/src/directives/when.d.ts +24 -0
  207. package/dist/src/directives/when.d.ts.map +1 -0
  208. package/dist/src/directives/when.js +25 -0
  209. package/dist/src/directives/when.js.map +1 -0
  210. package/dist/src/html.d.ts +23 -0
  211. package/dist/src/html.d.ts.map +1 -0
  212. package/dist/src/html.js +37 -0
  213. package/dist/src/html.js.map +1 -0
  214. package/dist/src/modifiers/capture-modifier.d.ts +6 -0
  215. package/dist/src/modifiers/capture-modifier.d.ts.map +1 -0
  216. package/dist/src/modifiers/capture-modifier.js +14 -0
  217. package/dist/src/modifiers/capture-modifier.js.map +1 -0
  218. package/dist/src/modifiers/event-modifiers.d.ts +38 -0
  219. package/dist/src/modifiers/event-modifiers.d.ts.map +1 -0
  220. package/dist/src/modifiers/event-modifiers.js +90 -0
  221. package/dist/src/modifiers/event-modifiers.js.map +1 -0
  222. package/dist/src/modifiers/key-modifiers.d.ts +8 -0
  223. package/dist/src/modifiers/key-modifiers.d.ts.map +1 -0
  224. package/dist/src/modifiers/key-modifiers.js +29 -0
  225. package/dist/src/modifiers/key-modifiers.js.map +1 -0
  226. package/dist/src/modifiers/mouse-modifiers.d.ts +8 -0
  227. package/dist/src/modifiers/mouse-modifiers.d.ts.map +1 -0
  228. package/dist/src/modifiers/mouse-modifiers.js +15 -0
  229. package/dist/src/modifiers/mouse-modifiers.js.map +1 -0
  230. package/dist/src/modifiers/once-modifier.d.ts +6 -0
  231. package/dist/src/modifiers/once-modifier.d.ts.map +1 -0
  232. package/dist/src/modifiers/once-modifier.js +11 -0
  233. package/dist/src/modifiers/once-modifier.js.map +1 -0
  234. package/dist/src/modifiers/passive-modifier.d.ts +6 -0
  235. package/dist/src/modifiers/passive-modifier.d.ts.map +1 -0
  236. package/dist/src/modifiers/passive-modifier.js +14 -0
  237. package/dist/src/modifiers/passive-modifier.js.map +1 -0
  238. package/dist/src/processor/parser.d.ts +74 -0
  239. package/dist/src/processor/parser.d.ts.map +1 -0
  240. package/dist/src/processor/parser.js +345 -0
  241. package/dist/src/processor/parser.js.map +1 -0
  242. package/dist/src/processor/processor.d.ts +68 -0
  243. package/dist/src/processor/processor.d.ts.map +1 -0
  244. package/dist/src/processor/processor.js +138 -0
  245. package/dist/src/processor/processor.js.map +1 -0
  246. package/dist/src/processor/template-result.d.ts +74 -0
  247. package/dist/src/processor/template-result.d.ts.map +1 -0
  248. package/dist/src/processor/template-result.js +53 -0
  249. package/dist/src/processor/template-result.js.map +1 -0
  250. package/dist/src/processor/types.d.ts +16 -0
  251. package/dist/src/processor/types.d.ts.map +1 -0
  252. package/dist/src/processor/types.js +13 -0
  253. package/dist/src/processor/types.js.map +1 -0
  254. package/dist/src/utils/debug.d.ts +7 -0
  255. package/dist/src/utils/debug.d.ts.map +1 -0
  256. package/dist/src/utils/debug.js +7 -0
  257. package/dist/src/utils/debug.js.map +1 -0
  258. package/dist/src/utils/performance.d.ts +50 -0
  259. package/dist/src/utils/performance.d.ts.map +1 -0
  260. package/dist/src/utils/performance.js +51 -0
  261. package/dist/src/utils/performance.js.map +1 -0
  262. package/dist/tsconfig.tsbuildinfo +1 -0
  263. package/package.json +8 -10
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @miura/miura-render
1
+ # @miurajs/miura-render
2
2
 
3
3
  The rendering engine for the miura framework. Provides tagged template literals (`html`/`css`), a state-machine parser, a binding manager, structural directives, and performance utilities including LIS-based keyed diffing, async rendering, and virtual scrolling.
4
4
 
@@ -16,7 +16,7 @@ The rendering engine for the miura framework. Provides tagged template literals
16
16
  ## Installation
17
17
 
18
18
  ```bash
19
- pnpm add @miura/miura-render
19
+ pnpm add @miurajs/miura-render
20
20
  ```
21
21
 
22
22
  ## Template Syntax
@@ -139,7 +139,7 @@ The algorithm identifies items already in correct relative order (via Longest In
139
139
  Declarative promise-based rendering.
140
140
 
141
141
  ```typescript
142
- import { createAsyncTracker, resolveAsync } from '@miura/miura-render';
142
+ import { createAsyncTracker, resolveAsync } from '@miurajs/miura-render';
143
143
 
144
144
  // Create a tracker
145
145
  const tracker = createAsyncTracker(
@@ -204,7 +204,7 @@ The directive:
204
204
  Lower-level pure function for custom virtual scroll implementations:
205
205
 
206
206
  ```typescript
207
- import { computeVirtualSlice } from '@miura/miura-render';
207
+ import { computeVirtualSlice } from '@miurajs/miura-render';
208
208
 
209
209
  const vs = computeVirtualSlice({
210
210
  items: this.allItems,
@@ -296,7 +296,7 @@ Template string → TemplateParser → ParsedTemplate (HTML + TemplateBinding[])
296
296
  ### Direct usage
297
297
 
298
298
  ```typescript
299
- import { TemplateCompiler } from '@miura/miura-render';
299
+ import { TemplateCompiler } from '@miurajs/miura-render';
300
300
 
301
301
  const compiler = new TemplateCompiler();
302
302
 
@@ -314,7 +314,7 @@ compiled.update(refs, newResult.values);
314
314
  ## CSS Tagged Template
315
315
 
316
316
  ```typescript
317
- import { css } from '@miura/miura-render';
317
+ import { css } from '@miurajs/miura-render';
318
318
 
319
319
  const styles = css`
320
320
  :host { display: block; }
@@ -0,0 +1,14 @@
1
+ export * from './src/processor/template-result';
2
+ export * from './src/processor/processor';
3
+ export * from './src/processor/types';
4
+ export * from './src/css-result';
5
+ export * from './src/utils/debug';
6
+ export * from './src/utils/performance';
7
+ export { html, getHtmlMetrics, resetHtmlMetrics } from './src/html';
8
+ export { css, getCssMetrics, resetCssMetrics, clearCssCache } from './src/css';
9
+ export * from './src/directives';
10
+ export { TemplateCompiler } from './src/compiler/compiler';
11
+ export type { CompiledTemplate } from './src/compiler/compiler';
12
+ export { NodeBinding } from './src/binding-manager/bindings/node-binding';
13
+ export { DirectiveBinding } from './src/binding-manager/bindings/directive-binding';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/E,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ export * from './src/processor/template-result';
2
+ export * from './src/processor/processor';
3
+ export * from './src/processor/types';
4
+ export * from './src/css-result';
5
+ export * from './src/utils/debug';
6
+ export * from './src/utils/performance';
7
+ export { html, getHtmlMetrics, resetHtmlMetrics } from './src/html';
8
+ export { css, getCssMetrics, resetCssMetrics, clearCssCache } from './src/css';
9
+ export * from './src/directives';
10
+ export { TemplateCompiler } from './src/compiler/compiler';
11
+ export { NodeBinding } from './src/binding-manager/bindings/node-binding';
12
+ export { DirectiveBinding } from './src/binding-manager/bindings/directive-binding';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/E,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { Binding } from './bindings/binding';
2
+ import { TemplateBinding } from '../processor/parser';
3
+ import { ITemplateProcessor } from '../processor/types';
4
+ export declare class BindingManager {
5
+ /**
6
+ * Performance tracking
7
+ */
8
+ private static metrics;
9
+ /**
10
+ * Get performance metrics
11
+ */
12
+ static getPerformanceMetrics(): {
13
+ createTime: number;
14
+ initTime: number;
15
+ bindingCount: number;
16
+ };
17
+ /**
18
+ * Reset performance metrics
19
+ */
20
+ static resetMetrics(): void;
21
+ static createAndInitializeParts(fragment: DocumentFragment, bindings: TemplateBinding[], values: unknown[], context?: unknown, processor?: ITemplateProcessor): Promise<Binding[]>;
22
+ private static createBindings;
23
+ private static createBindingForType;
24
+ private static findBindingElement;
25
+ private static findMarkers;
26
+ private static isBindingMarker;
27
+ private static hasBindingAttribute;
28
+ static initializeBindings(bindings: Binding[], values: unknown[], context?: unknown): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=binding-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-manager.d.ts","sourceRoot":"","sources":["../../../src/binding-manager/binding-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAuBxD,qBAAa,cAAc;IACvB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO,CAIpB;IAEF;;OAEG;IACH,MAAM,CAAC,qBAAqB;;;;;IAI5B;;OAEG;IACH,MAAM,CAAC,YAAY;WAQN,wBAAwB,CACjC,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,eAAe,EAAE,EAC3B,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,OAAO,EACjB,SAAS,CAAC,EAAE,kBAAkB,GAC/B,OAAO,CAAC,OAAO,EAAE,CAAC;IASrB,OAAO,CAAC,MAAM,CAAC,cAAc;IA0D7B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAoEnC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA2BjC,OAAO,CAAC,MAAM,CAAC,WAAW;IAuC1B,OAAO,CAAC,MAAM,CAAC,eAAe;IAI9B,OAAO,CAAC,MAAM,CAAC,mBAAmB;WAMd,kBAAkB,CAClC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,IAAI,CAAC;CA6CnB"}
@@ -0,0 +1,245 @@
1
+ import { NodeBinding } from './bindings/node-binding';
2
+ import { BindingType } from '../processor/template-result';
3
+ import { debugLog } from '../utils/debug';
4
+ import { PropertyBinding } from './bindings/property-binding';
5
+ import { EventBinding } from './bindings/event-binding';
6
+ import { ClassBinding } from './bindings/class-binding';
7
+ import { BooleanBinding } from './bindings/boolean-binding';
8
+ import { ReferenceBinding } from './bindings/reference-binding';
9
+ import { StyleBinding } from './bindings/style-binding';
10
+ import { DirectiveBinding } from './bindings/directive-binding';
11
+ import { AttributeBinding, AttributePartBinding } from './bindings/attribute-binding';
12
+ import { BindBinding } from './bindings/bind-binding';
13
+ import { ObjectClassBinding } from './bindings/object-class-binding';
14
+ import { ObjectStyleBinding } from './bindings/object-style-binding';
15
+ import { SpreadBinding } from './bindings/spread-binding';
16
+ import { AsyncBinding } from './bindings/async-binding';
17
+ function _isSignal(v) {
18
+ return typeof v === 'function' && v.__isSignal === true;
19
+ }
20
+ export class BindingManager {
21
+ /**
22
+ * Performance tracking
23
+ */
24
+ static metrics = {
25
+ createTime: 0,
26
+ initTime: 0,
27
+ bindingCount: 0
28
+ };
29
+ /**
30
+ * Get performance metrics
31
+ */
32
+ static getPerformanceMetrics() {
33
+ return { ...this.metrics };
34
+ }
35
+ /**
36
+ * Reset performance metrics
37
+ */
38
+ static resetMetrics() {
39
+ this.metrics = {
40
+ createTime: 0,
41
+ initTime: 0,
42
+ bindingCount: 0
43
+ };
44
+ }
45
+ static async createAndInitializeParts(fragment, bindings, values, context, processor) {
46
+ const startTime = performance.now();
47
+ const parts = this.createBindings(fragment, bindings, processor);
48
+ await this.initializeBindings(parts, values, context);
49
+ this.metrics.createTime = performance.now() - startTime;
50
+ this.metrics.bindingCount += bindings.length;
51
+ return parts;
52
+ }
53
+ static createBindings(fragment, bindings, processor) {
54
+ debugLog('bindingManager', 'Creating bindings', { bindingsCount: bindings.length });
55
+ const bindingInstances = [];
56
+ // Caches for multi-part attribute groups
57
+ const elementCache = new Map();
58
+ const attrBindingCache = new Map();
59
+ bindings.forEach(binding => {
60
+ // Handle multi-part Attribute bindings
61
+ if (binding.type === BindingType.Attribute) {
62
+ const groupStart = binding.groupStart ?? binding.index;
63
+ let element;
64
+ if (groupStart === binding.index) {
65
+ // First part in the group — find element via marker
66
+ element = this.findBindingElement(fragment, binding.index);
67
+ if (element)
68
+ elementCache.set(groupStart, element);
69
+ }
70
+ else {
71
+ // Subsequent part — reuse cached element
72
+ element = elementCache.get(groupStart) || null;
73
+ }
74
+ if (!element)
75
+ return;
76
+ if (groupStart === binding.index) {
77
+ // Create the shared AttributeBinding
78
+ const strings = binding.strings || ['', ''];
79
+ const attrBinding = new AttributeBinding(element, binding.name || '', strings);
80
+ attrBindingCache.set(groupStart, attrBinding);
81
+ bindingInstances[binding.index] = attrBinding;
82
+ }
83
+ else {
84
+ // Create a part binding that delegates to the shared parent
85
+ const parent = attrBindingCache.get(groupStart);
86
+ if (parent) {
87
+ bindingInstances[binding.index] = new AttributePartBinding(parent, binding.partIndex ?? 0);
88
+ }
89
+ }
90
+ return;
91
+ }
92
+ // Non-attribute bindings — original logic
93
+ const element = this.findBindingElement(fragment, binding.index);
94
+ if (element) {
95
+ const bindingInstance = this.createBindingForType(element, binding, processor);
96
+ if (bindingInstance) {
97
+ bindingInstances[binding.index] = bindingInstance;
98
+ }
99
+ }
100
+ });
101
+ return bindingInstances;
102
+ }
103
+ static createBindingForType(element, binding, processor) {
104
+ const name = binding.name || '';
105
+ switch (binding.type) {
106
+ case BindingType.Node:
107
+ const [startMarker, endMarker] = this.findMarkers(element, binding.index);
108
+ return new NodeBinding(element, startMarker, endMarker, processor);
109
+ case BindingType.Property:
110
+ return new PropertyBinding(element, name.slice(1)); // Remove . prefix
111
+ case BindingType.Boolean:
112
+ const booleanAttrName = name.startsWith('?') ? name.slice(1) : name;
113
+ return new BooleanBinding(element, booleanAttrName);
114
+ case BindingType.Event:
115
+ return new EventBinding(element, name, binding.modifiers || []);
116
+ case BindingType.Class:
117
+ debugLog('bindingManager', 'Creating class binding', {
118
+ element: element.tagName,
119
+ name
120
+ });
121
+ return new ClassBinding(element);
122
+ case BindingType.Reference:
123
+ const refName = name.startsWith('#') ? name.slice(1) : name;
124
+ return new ReferenceBinding(element);
125
+ case BindingType.Style:
126
+ return new StyleBinding(element);
127
+ case BindingType.Directive:
128
+ const directiveName = name.replace(/^#/, '');
129
+ return new DirectiveBinding(element, directiveName);
130
+ case BindingType.Bind: {
131
+ const bindProp = name.startsWith('&') ? name.slice(1) : name;
132
+ return new BindBinding(element, bindProp);
133
+ }
134
+ case BindingType.ObjectClass:
135
+ return new ObjectClassBinding(element);
136
+ case BindingType.ObjectStyle:
137
+ return new ObjectStyleBinding(element);
138
+ case BindingType.Spread:
139
+ return new SpreadBinding(element);
140
+ case BindingType.Async: {
141
+ const asyncProp = name.startsWith('~') ? name.slice(1) : name;
142
+ return new AsyncBinding(element, asyncProp);
143
+ }
144
+ default:
145
+ throw new Error(`Unsupported binding type: ${binding.type}`);
146
+ }
147
+ }
148
+ static findBindingElement(fragment, index) {
149
+ const walker = document.createTreeWalker(fragment, NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_ELEMENT);
150
+ let node;
151
+ while ((node = walker.nextNode())) {
152
+ if (node.nodeType === Node.COMMENT_NODE) {
153
+ const comment = node;
154
+ if (this.isBindingMarker(comment, index)) {
155
+ return comment.parentElement;
156
+ }
157
+ }
158
+ else if (node.nodeType === Node.ELEMENT_NODE) {
159
+ const element = node;
160
+ if (this.hasBindingAttribute(element, index)) {
161
+ return element;
162
+ }
163
+ }
164
+ }
165
+ return null;
166
+ }
167
+ static findMarkers(element, index) {
168
+ const walker = document.createTreeWalker(element.parentElement || element, NodeFilter.SHOW_COMMENT);
169
+ let startMarker = null;
170
+ let endMarker = null;
171
+ let foundStart = false;
172
+ let node;
173
+ while ((node = walker.nextNode())) {
174
+ const comment = node;
175
+ const value = comment.nodeValue || '';
176
+ if (!foundStart && value === `binding:${index}`) {
177
+ startMarker = comment;
178
+ foundStart = true;
179
+ }
180
+ else if (foundStart && value === `/binding:${index}`) {
181
+ endMarker = comment;
182
+ break;
183
+ }
184
+ }
185
+ if (!startMarker || !endMarker) {
186
+ debugLog('bindingManager', 'Failed to find markers', {
187
+ index,
188
+ element,
189
+ parentHTML: element.parentElement?.innerHTML
190
+ });
191
+ throw new Error(`Could not find markers for binding ${index}`);
192
+ }
193
+ return [startMarker, endMarker];
194
+ }
195
+ static isBindingMarker(comment, index) {
196
+ return comment.nodeValue === `binding:${index}`;
197
+ }
198
+ static hasBindingAttribute(element, index) {
199
+ return Array.from(element.attributes).some(attr => attr.value === `binding:${index}`);
200
+ }
201
+ static async initializeBindings(bindings, values, context) {
202
+ const startTime = performance.now();
203
+ debugLog('bindingManager', 'Initializing bindings', {
204
+ bindingsCount: bindings.length,
205
+ valuesCount: values.length
206
+ });
207
+ const promises = bindings.map(async (binding, i) => {
208
+ try {
209
+ const value = values[i];
210
+ if (value === undefined)
211
+ return;
212
+ if (_isSignal(value)) {
213
+ // Already subscribed to this exact signal — skip (idempotent)
214
+ if (binding.__lastSignal === value)
215
+ return;
216
+ // Cancel previous subscription if the signal instance changed
217
+ const prev = binding.__signalUnsub;
218
+ if (typeof prev === 'function')
219
+ prev();
220
+ binding.__lastSignal = value;
221
+ binding.__signalUnsub = value.subscribe((v) => {
222
+ binding.setValue(v, context);
223
+ });
224
+ // Set current value immediately (no full re-render needed)
225
+ await binding.setValue(value.peek(), context);
226
+ return;
227
+ }
228
+ // Handle async directive bindings
229
+ if (binding.setValue.constructor.name === 'AsyncFunction') {
230
+ await binding.setValue(value, context);
231
+ }
232
+ else {
233
+ binding.setValue(value, context);
234
+ }
235
+ }
236
+ catch (error) {
237
+ console.error(`Error initializing binding ${i}:`, error);
238
+ throw error;
239
+ }
240
+ });
241
+ await Promise.all(promises);
242
+ this.metrics.initTime = performance.now() - startTime;
243
+ }
244
+ }
245
+ //# sourceMappingURL=binding-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-manager.js","sourceRoot":"","sources":["../../../src/binding-manager/binding-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Represents the different types of bindings that can be used in templates
3
+ */
4
+ export declare enum BindingType {
5
+ /** Text/Node content binding */
6
+ Node = "node",
7
+ /** Event binding (@event) */
8
+ Event = "event",
9
+ /** Property binding (.prop) */
10
+ Property = "property",
11
+ /** Boolean attribute binding (?attr) */
12
+ Boolean = "boolean",
13
+ /** Reference binding (#ref) */
14
+ Reference = "reference",
15
+ /** Class binding (class="...") */
16
+ Class = "class",
17
+ /** Style binding (style="...") */
18
+ Style = "style",
19
+ /** Template binding (for nested templates) */
20
+ Template = "template",
21
+ /** Expression binding (for computed values) */
22
+ Expression = "expression"
23
+ }
24
+ //# sourceMappingURL=binding-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-type.d.ts","sourceRoot":"","sources":["../../../src/binding-manager/binding-type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,WAAW;IACnB,gCAAgC;IAChC,IAAI,SAAS;IAEb,6BAA6B;IAC7B,KAAK,UAAU;IAEf,+BAA+B;IAC/B,QAAQ,aAAa;IAErB,wCAAwC;IACxC,OAAO,YAAY;IAEnB,+BAA+B;IAC/B,SAAS,cAAc;IAEvB,kCAAkC;IAClC,KAAK,UAAU;IAEf,kCAAkC;IAClC,KAAK,UAAU;IAEf,8CAA8C;IAC9C,QAAQ,aAAa;IAErB,+CAA+C;IAC/C,UAAU,eAAe;CAC5B"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Represents the different types of bindings that can be used in templates
3
+ */
4
+ export var BindingType;
5
+ (function (BindingType) {
6
+ /** Text/Node content binding */
7
+ BindingType["Node"] = "node";
8
+ /** Event binding (@event) */
9
+ BindingType["Event"] = "event";
10
+ /** Property binding (.prop) */
11
+ BindingType["Property"] = "property";
12
+ /** Boolean attribute binding (?attr) */
13
+ BindingType["Boolean"] = "boolean";
14
+ /** Reference binding (#ref) */
15
+ BindingType["Reference"] = "reference";
16
+ /** Class binding (class="...") */
17
+ BindingType["Class"] = "class";
18
+ /** Style binding (style="...") */
19
+ BindingType["Style"] = "style";
20
+ /** Template binding (for nested templates) */
21
+ BindingType["Template"] = "template";
22
+ /** Expression binding (for computed values) */
23
+ BindingType["Expression"] = "expression";
24
+ })(BindingType || (BindingType = {}));
25
+ //# sourceMappingURL=binding-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-type.js","sourceRoot":"","sources":["../../../src/binding-manager/binding-type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,WA2BX;AA3BD,WAAY,WAAW;IACnB,gCAAgC;IAChC,4BAAa,CAAA;IAEb,6BAA6B;IAC7B,8BAAe,CAAA;IAEf,+BAA+B;IAC/B,oCAAqB,CAAA;IAErB,wCAAwC;IACxC,kCAAmB,CAAA;IAEnB,+BAA+B;IAC/B,sCAAuB,CAAA;IAEvB,kCAAkC;IAClC,8BAAe,CAAA;IAEf,kCAAkC;IAClC,8BAAe,CAAA;IAEf,8CAA8C;IAC9C,oCAAqB,CAAA;IAErB,+CAA+C;IAC/C,wCAAyB,CAAA;AAC7B,CAAC,EA3BW,WAAW,KAAX,WAAW,QA2BtB"}
@@ -0,0 +1,23 @@
1
+ import { Binding } from './binding';
2
+ /**
3
+ * AsyncBinding — handles `~prop=${promise}`
4
+ *
5
+ * Accepts a Promise (or any thenable). While the promise is pending, sets a
6
+ * `data-pending` attribute on the element and optionally a `pending` property.
7
+ * When the promise resolves, sets `name` property to the resolved value and
8
+ * removes the pending marker. On rejection, sets `name` to undefined and adds
9
+ * a `data-error` attribute with the error message.
10
+ *
11
+ * Supports re-entrant updates: if a new promise arrives before the previous
12
+ * one settles, the previous result is discarded (last-write wins).
13
+ */
14
+ export declare class AsyncBinding implements Binding {
15
+ private readonly element;
16
+ private readonly name;
17
+ private generation;
18
+ constructor(element: Element, name: string);
19
+ setValue(value: unknown): Promise<void>;
20
+ clear(): void;
21
+ disconnect(): void;
22
+ }
23
+ //# sourceMappingURL=async-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-binding.d.ts","sourceRoot":"","sources":["../../../../src/binding-manager/bindings/async-binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;;;;;;GAWG;AACH,qBAAa,YAAa,YAAW,OAAO;IAIpC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJzB,OAAO,CAAC,UAAU,CAAK;gBAGF,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM;IAG3B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC7C,KAAK,IAAI,IAAI;IAQb,UAAU,IAAI,IAAI;CAGrB"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * AsyncBinding — handles `~prop=${promise}`
3
+ *
4
+ * Accepts a Promise (or any thenable). While the promise is pending, sets a
5
+ * `data-pending` attribute on the element and optionally a `pending` property.
6
+ * When the promise resolves, sets `name` property to the resolved value and
7
+ * removes the pending marker. On rejection, sets `name` to undefined and adds
8
+ * a `data-error` attribute with the error message.
9
+ *
10
+ * Supports re-entrant updates: if a new promise arrives before the previous
11
+ * one settles, the previous result is discarded (last-write wins).
12
+ */
13
+ export class AsyncBinding {
14
+ element;
15
+ name;
16
+ generation = 0;
17
+ constructor(element, name) {
18
+ this.element = element;
19
+ this.name = name;
20
+ }
21
+ async setValue(value) {
22
+ if (value === null || value === undefined) {
23
+ this.element[this.name] = value;
24
+ this.element.removeAttribute('data-pending');
25
+ this.element.removeAttribute('data-error');
26
+ return;
27
+ }
28
+ // Plain (non-promise) value — set directly
29
+ if (typeof value.then !== 'function') {
30
+ this.element[this.name] = value;
31
+ this.element.removeAttribute('data-pending');
32
+ this.element.removeAttribute('data-error');
33
+ return;
34
+ }
35
+ const gen = ++this.generation;
36
+ this.element.setAttribute('data-pending', '');
37
+ this.element['pending'] = true;
38
+ try {
39
+ const resolved = await value;
40
+ if (gen !== this.generation)
41
+ return; // superseded
42
+ this.element[this.name] = resolved;
43
+ this.element['pending'] = false;
44
+ this.element.removeAttribute('data-pending');
45
+ this.element.removeAttribute('data-error');
46
+ }
47
+ catch (err) {
48
+ if (gen !== this.generation)
49
+ return; // superseded
50
+ this.element[this.name] = undefined;
51
+ this.element['pending'] = false;
52
+ this.element.removeAttribute('data-pending');
53
+ this.element.setAttribute('data-error', err instanceof Error ? err.message : String(err));
54
+ }
55
+ }
56
+ clear() {
57
+ this.generation++;
58
+ this.element[this.name] = undefined;
59
+ this.element['pending'] = false;
60
+ this.element.removeAttribute('data-pending');
61
+ this.element.removeAttribute('data-error');
62
+ }
63
+ disconnect() {
64
+ this.generation++; // cancel any in-flight promise
65
+ }
66
+ }
67
+ //# sourceMappingURL=async-binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-binding.js","sourceRoot":"","sources":["../../../../src/binding-manager/bindings/async-binding.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,YAAY;IAIA;IACA;IAJb,UAAU,GAAG,CAAC,CAAC;IAEvB,YACqB,OAAgB,EAChB,IAAY;QADZ,YAAO,GAAP,OAAO,CAAS;QAChB,SAAI,GAAJ,IAAI,CAAQ;IAC9B,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,KAAc;QACzB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,OAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAC3C,OAAO;QACX,CAAC;QAED,2CAA2C;QAC3C,IAAI,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAC3C,OAAO;QACX,CAAC;QAED,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAe,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAExC,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAO,KAA0B,CAAC;YACnD,IAAI,GAAG,KAAK,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,aAAa;YACjD,IAAI,CAAC,OAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;YAC3C,IAAI,CAAC,OAAe,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,GAAG,KAAK,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,aAAa;YACjD,IAAI,CAAC,OAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YAC5C,IAAI,CAAC,OAAe,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,CACrB,YAAY,EACZ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CACnD,CAAC;QACN,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,IAAI,CAAC,OAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;QAC5C,IAAI,CAAC,OAAe,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU;QACN,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,+BAA+B;IACtD,CAAC;CACJ"}
@@ -0,0 +1,41 @@
1
+ import { Binding } from './binding';
2
+ /**
3
+ * Handles generic attribute value composition — both single and multi-expression.
4
+ * For multi-expression attributes like style="color: ${a}; bg: ${b}",
5
+ * the binding concatenates static string segments with dynamic values.
6
+ */
7
+ export declare class AttributeBinding implements Binding {
8
+ private element;
9
+ private attrName;
10
+ private strings;
11
+ private values;
12
+ private committed;
13
+ constructor(element: Element, attrName: string, strings: string[]);
14
+ /**
15
+ * Set a specific part's value (for multi-expression attributes).
16
+ */
17
+ setPartValue(partIndex: number, value: unknown): void;
18
+ /**
19
+ * Standard Binding interface — sets the first (and possibly only) value.
20
+ */
21
+ setValue(value: unknown): void;
22
+ /**
23
+ * Recompute and apply the full attribute value.
24
+ */
25
+ private commit;
26
+ clear(): void;
27
+ disconnect(): void;
28
+ }
29
+ /**
30
+ * Thin wrapper for subsequent expressions in a multi-expression attribute.
31
+ * Delegates to the parent AttributeBinding with the correct part index.
32
+ */
33
+ export declare class AttributePartBinding implements Binding {
34
+ private parent;
35
+ private partIndex;
36
+ constructor(parent: AttributeBinding, partIndex: number);
37
+ setValue(value: unknown): void;
38
+ clear(): void;
39
+ disconnect(): void;
40
+ }
41
+ //# sourceMappingURL=attribute-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribute-binding.d.ts","sourceRoot":"","sources":["../../../../src/binding-manager/bindings/attribute-binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,OAAO;IAKxC,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IANnB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAAS;gBAGd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE;IAM7B;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAKrD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI9B;;OAEG;IACH,OAAO,CAAC,MAAM;IAgBd,KAAK,IAAI,IAAI;IAMb,UAAU,IAAI,IAAI;CAGrB;AAED;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,OAAO;IAE5C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;gBADT,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,MAAM;IAG7B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI9B,KAAK,IAAI,IAAI;IAIb,UAAU,IAAI,IAAI;CAGrB"}