ripple 0.4.3 → 0.4.4

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 (38) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/package.json +3 -3
  3. package/src/constants.js +6 -0
  4. package/src/runtime/internal/client/attributes.js +251 -125
  5. package/src/runtime/internal/client/blocks.js +16 -6
  6. package/src/runtime/internal/client/composite.js +292 -100
  7. package/src/runtime/internal/client/constants.js +8 -0
  8. package/src/runtime/internal/client/expression.js +4 -4
  9. package/src/runtime/internal/client/for.js +13 -38
  10. package/src/runtime/internal/client/if.js +56 -1
  11. package/src/runtime/internal/client/index.js +6 -6
  12. package/src/runtime/internal/client/runtime.js +73 -11
  13. package/src/runtime/internal/client/template-ns.js +45 -4
  14. package/src/runtime/internal/client/template.js +56 -0
  15. package/tests/client/composite/composite.dynamic-components.test.tsrx +40 -0
  16. package/tests/client/css/scoped-styles.test.tsrx +3 -1
  17. package/tests/client/svg.test.tsrx +273 -1
  18. package/tests/hydration/compiled/client/basic.js +36 -35
  19. package/tests/hydration/compiled/client/composite.js +11 -2
  20. package/tests/hydration/compiled/client/events.js +1 -1
  21. package/tests/hydration/compiled/client/for.js +73 -62
  22. package/tests/hydration/compiled/client/fragment-cursor.js +182 -115
  23. package/tests/hydration/compiled/client/head.js +10 -10
  24. package/tests/hydration/compiled/client/hmr.js +11 -2
  25. package/tests/hydration/compiled/client/html-in-template.js +1 -1
  26. package/tests/hydration/compiled/client/html.js +78 -50
  27. package/tests/hydration/compiled/client/if-children.js +94 -26
  28. package/tests/hydration/compiled/client/if-fragment-controlflow.js +34 -14
  29. package/tests/hydration/compiled/client/if.js +65 -17
  30. package/tests/hydration/compiled/client/mixed-control-flow.js +50 -20
  31. package/tests/hydration/compiled/client/nested-control-flow.js +188 -97
  32. package/tests/hydration/compiled/client/portal.js +14 -5
  33. package/tests/hydration/compiled/client/reactivity.js +3 -3
  34. package/tests/hydration/compiled/client/streaming.js +17 -17
  35. package/tests/hydration/compiled/client/switch.js +17 -17
  36. package/tests/hydration/compiled/client/track-async-serialization.js +19 -19
  37. package/tests/hydration/compiled/client/try.js +9 -9
  38. package/tests/hydration/compiled/client/typed-text.js +3 -2
@@ -1,7 +1,7 @@
1
1
  // @ts-nocheck
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
- var root_1 = _$_.template(`<div class=portal-content>Portal content`);
4
+ var root_1 = _$_.template_el('div', ['class', 'portal-content'], 'Portal content');
5
5
  var root = _$_.template(`<div class=container><h1>Main Content`);
6
6
 
7
7
  function SimplePortal_render(__anchor, __block) {
@@ -25,7 +25,7 @@ function SimplePortal_render(__anchor, __block) {
25
25
 
26
26
  SimplePortal[_$_.$r] = SimplePortal_render;
27
27
 
28
- var root_3 = _$_.template(`<div class=portal-content>Portal is visible`);
28
+ var root_3 = _$_.template_el('div', ['class', 'portal-content'], 'Portal is visible');
29
29
 
30
30
  function consequent(__anchor, show) {
31
31
  _$_.portal(__anchor, () => typeof document !== 'undefined' ? document.body : null, (__anchor, __block) => {
@@ -41,6 +41,14 @@ function if_1(show) {
41
41
 
42
42
  var root_2 = _$_.template(`<div class=container><button class=toggle>Toggle`);
43
43
 
44
+ function render(__prev) {
45
+ var __a = if_1(__prev._a);
46
+
47
+ if (__prev.a !== __a) {
48
+ _$_.if_update(__prev._b, __prev.a = __a);
49
+ }
50
+ }
51
+
44
52
  function ConditionalPortal_render(__anchor, __block) {
45
53
  const show = _$_.track(true, __block, 'm1ectw');
46
54
  var div_2 = root_2();
@@ -51,17 +59,18 @@ function ConditionalPortal_render(__anchor, __block) {
51
59
  button.__click = () => show.value = !show.value;
52
60
 
53
61
  var node_1 = _$_.hydrating ? _$_.hydrate_sibling() : _$_.append_into(div_2, true);
62
+ var ifs = _$_.if_static(node_1, if_1, 0, show);
54
63
 
55
- _$_.if(node_1, if_1, false, show);
56
64
  _$_.hydrating && _$_.pop(div_2);
57
65
  }
58
66
 
67
+ _$_.render(render, { a: _$_.UNINITIALIZED, _a: show, _b: ifs });
59
68
  _$_.append(__anchor, div_2);
60
69
  }
61
70
 
62
71
  ConditionalPortal[_$_.$r] = ConditionalPortal_render;
63
72
 
64
- var root_5 = _$_.template(`<div class=portal-content>Modal content`);
73
+ var root_5 = _$_.template_el('div', ['class', 'portal-content'], 'Modal content');
65
74
  var root_4 = _$_.template(`<div><div class=main-content>Main page content</div><div class=footer>Footer`);
66
75
 
67
76
  function PortalWithMainContent_render(__anchor, __block) {
@@ -85,7 +94,7 @@ function PortalWithMainContent_render(__anchor, __block) {
85
94
 
86
95
  PortalWithMainContent[_$_.$r] = PortalWithMainContent_render;
87
96
 
88
- var root_7 = _$_.template(`<div class=portal-content>Portal content`);
97
+ var root_7 = _$_.template_el('div', ['class', 'portal-content'], 'Portal content');
89
98
  var root_6 = _$_.template(`<div class=outer><div class=inner><span>Nested content`);
90
99
 
91
100
  function NestedContentWithPortal_render(__anchor, __block) {
@@ -1,7 +1,7 @@
1
1
  // @ts-nocheck
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
- var root = _$_.template(`<div class=count>`);
4
+ var root = _$_.template_el('div', ['class', 'count']);
5
5
 
6
6
  function render(__prev) {
7
7
  var __a = __prev._a.value;
@@ -50,7 +50,7 @@ function CounterWrapper_render(__anchor, __block) {
50
50
 
51
51
  CounterWrapper[_$_.$r] = CounterWrapper_render;
52
52
 
53
- var root_2 = _$_.template(`<div class=sum> `);
53
+ var root_2 = _$_.template_el('div', ['class', 'sum'], ' ');
54
54
 
55
55
  function ComputedValues_render(__anchor, __block) {
56
56
  const a = _$_.track(2, __block, '1ex10ij');
@@ -124,7 +124,7 @@ function MultipleTracked_render(__anchor, __block) {
124
124
 
125
125
  MultipleTracked[_$_.$r] = MultipleTracked_render;
126
126
 
127
- var root_4 = _$_.template(`<div class=name> `);
127
+ var root_4 = _$_.template_el('div', ['class', 'name'], ' ');
128
128
 
129
129
  function DerivedState_render(__anchor, __block) {
130
130
  const firstName = _$_.track('John', __block, 'qnrtu2');
@@ -31,7 +31,7 @@ function BasicContent_render(__anchor, __block) {
31
31
  BasicContent[_$_.$r] = BasicContent_render;
32
32
 
33
33
  var root_3 = _$_.template(`<!><footer class=after-async>after-async`, 1, 2);
34
- var root_4 = _$_.template(`<p class=loading>loading...`);
34
+ var root_4 = _$_.template_el('p', ['class', 'loading'], 'loading...');
35
35
  var root_2 = _$_.template(`<span class=before>before</span><!><span class=sibling-after>sibling-after`, 1, 3);
36
36
  var root_1 = _$_.template(`<!>`, 1, 1);
37
37
 
@@ -71,7 +71,7 @@ function StreamPending_render(__anchor, __block) {
71
71
 
72
72
  StreamPending[_$_.$r] = StreamPending_render;
73
73
 
74
- var root_5 = _$_.template(`<p class=resolved> `);
74
+ var root_5 = _$_.template_el('p', ['class', 'resolved'], ' ');
75
75
 
76
76
  function CatchOnlyContent_render(__anchor, __block) {
77
77
  const data = _$_.track_async(() => controls.catchOnly.promise, __block, 'mgtlfq');
@@ -89,7 +89,7 @@ function CatchOnlyContent_render(__anchor, __block) {
89
89
 
90
90
  CatchOnlyContent[_$_.$r] = CatchOnlyContent_render;
91
91
 
92
- var root_8 = _$_.template(`<em class=caught> `);
92
+ var root_8 = _$_.template_el('em', ['class', 'caught'], ' ');
93
93
  var root_7 = _$_.template(`<span class=before>before</span><!>`, 1, 2);
94
94
  var root_6 = _$_.template(`<!>`, 1, 1);
95
95
 
@@ -129,7 +129,7 @@ function StreamCatchOnly_render(__anchor, __block) {
129
129
 
130
130
  StreamCatchOnly[_$_.$r] = StreamCatchOnly_render;
131
131
 
132
- var root_9 = _$_.template(`<p class=resolved> `);
132
+ var root_9 = _$_.template_el('p', ['class', 'resolved'], ' ');
133
133
 
134
134
  function RejectContent_render(__anchor, __block) {
135
135
  const data = _$_.track_async(() => controls.rejects.promise, __block, '15p08yc');
@@ -147,8 +147,8 @@ function RejectContent_render(__anchor, __block) {
147
147
 
148
148
  RejectContent[_$_.$r] = RejectContent_render;
149
149
 
150
- var root_10 = _$_.template(`<em class=caught> `);
151
- var root_11 = _$_.template(`<p class=loading>loading...`);
150
+ var root_10 = _$_.template_el('em', ['class', 'caught'], ' ');
151
+ var root_11 = _$_.template_el('p', ['class', 'loading'], 'loading...');
152
152
 
153
153
  function StreamRejects_render(__anchor, __block) {
154
154
  _$_.try(
@@ -179,7 +179,7 @@ function StreamRejects_render(__anchor, __block) {
179
179
 
180
180
  StreamRejects[_$_.$r] = StreamRejects_render;
181
181
 
182
- var root_12 = _$_.template(`<p class=resolved> `);
182
+ var root_12 = _$_.template_el('p', ['class', 'resolved'], ' ');
183
183
 
184
184
  function NoCatchContent_render(__anchor, __block) {
185
185
  const data = _$_.track_async(() => controls.noCatch.promise, __block, 'tvfywb');
@@ -197,7 +197,7 @@ function NoCatchContent_render(__anchor, __block) {
197
197
 
198
198
  NoCatchContent[_$_.$r] = NoCatchContent_render;
199
199
 
200
- var root_13 = _$_.template(`<p class=loading>loading...`);
200
+ var root_13 = _$_.template_el('p', ['class', 'loading'], 'loading...');
201
201
 
202
202
  function StreamNoCatch_render(__anchor, __block) {
203
203
  _$_.try(
@@ -217,7 +217,7 @@ function StreamNoCatch_render(__anchor, __block) {
217
217
 
218
218
  StreamNoCatch[_$_.$r] = StreamNoCatch_render;
219
219
 
220
- var root_14 = _$_.template(`<section class=root-catch> `);
220
+ var root_14 = _$_.template_el('section', ['class', 'root-catch'], ' ');
221
221
 
222
222
  function RootCatch_render(__anchor, __block, { error, reset }) {
223
223
  var section = root_14();
@@ -236,7 +236,7 @@ function RootCatch_render(__anchor, __block, { error, reset }) {
236
236
 
237
237
  RootCatch[_$_.$r] = RootCatch_render;
238
238
 
239
- var root_15 = _$_.template(`<p class=root-pending>root-loading`);
239
+ var root_15 = _$_.template_el('p', ['class', 'root-pending'], 'root-loading');
240
240
 
241
241
  function RootPending_render(__anchor, __block) {
242
242
  var p_6 = root_15();
@@ -246,7 +246,7 @@ function RootPending_render(__anchor, __block) {
246
246
 
247
247
  RootPending[_$_.$r] = RootPending_render;
248
248
 
249
- var root_17 = _$_.template(`<p class=head-content> `);
249
+ var root_17 = _$_.template_el('p', ['class', 'head-content'], ' ');
250
250
  var root_16 = _$_.template(`<!>`, 1, 1);
251
251
 
252
252
  function HeadContent_render(__anchor, __block) {
@@ -290,7 +290,7 @@ function HeadContent_render(__anchor, __block) {
290
290
 
291
291
  HeadContent[_$_.$r] = HeadContent_render;
292
292
 
293
- var root_18 = _$_.template(`<p class=loading>loading...`);
293
+ var root_18 = _$_.template_el('p', ['class', 'loading'], 'loading...');
294
294
 
295
295
  function StreamHead_render(__anchor, __block) {
296
296
  _$_.try(
@@ -310,7 +310,7 @@ function StreamHead_render(__anchor, __block) {
310
310
 
311
311
  StreamHead[_$_.$r] = StreamHead_render;
312
312
 
313
- var root_19 = _$_.template(`<p class=root-async> `);
313
+ var root_19 = _$_.template_el('p', ['class', 'root-async'], ' ');
314
314
 
315
315
  function StreamRootDirect_render(__anchor, __block) {
316
316
  const data = _$_.track_async(() => controls.rootDirect.promise, __block, '1gc250a');
@@ -328,7 +328,7 @@ function StreamRootDirect_render(__anchor, __block) {
328
328
 
329
329
  StreamRootDirect[_$_.$r] = StreamRootDirect_render;
330
330
 
331
- var root_20 = _$_.template(`<p class=outer> `);
331
+ var root_20 = _$_.template_el('p', ['class', 'outer'], ' ');
332
332
 
333
333
  function OuterContent_render(__anchor, __block) {
334
334
  const data = _$_.track_async(() => controls.outer.promise, __block, 'ev54ge');
@@ -346,7 +346,7 @@ function OuterContent_render(__anchor, __block) {
346
346
 
347
347
  OuterContent[_$_.$r] = OuterContent_render;
348
348
 
349
- var root_21 = _$_.template(`<p class=inner> `);
349
+ var root_21 = _$_.template_el('p', ['class', 'inner'], ' ');
350
350
 
351
351
  function InnerContent_render(__anchor, __block) {
352
352
  const data = _$_.track_async(() => controls.inner.promise, __block, 'u3o1kd');
@@ -364,9 +364,9 @@ function InnerContent_render(__anchor, __block) {
364
364
 
365
365
  InnerContent[_$_.$r] = InnerContent_render;
366
366
 
367
- var root_23 = _$_.template(`<p class=inner-loading>inner-loading`);
367
+ var root_23 = _$_.template_el('p', ['class', 'inner-loading'], 'inner-loading');
368
368
  var root_22 = _$_.template(`<!><!>`, 1, 2);
369
- var root_24 = _$_.template(`<p class=outer-loading>outer-loading`);
369
+ var root_24 = _$_.template_el('p', ['class', 'outer-loading'], 'outer-loading');
370
370
 
371
371
  function StreamNested_render(__anchor, __block) {
372
372
  _$_.try(
@@ -1,9 +1,9 @@
1
1
  // @ts-nocheck
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
- var root = _$_.template(`<div class=status-success>Success`);
5
- var root_1 = _$_.template(`<div class=status-error>Error`);
6
- var root_2 = _$_.template(`<div class=status-unknown>Unknown`);
4
+ var root = _$_.template_el('div', ['class', 'status-success'], 'Success');
5
+ var root_1 = _$_.template_el('div', ['class', 'status-error'], 'Error');
6
+ var root_2 = _$_.template_el('div', ['class', 'status-unknown'], 'Unknown');
7
7
 
8
8
  function switch_case_0(__anchor, status) {
9
9
  var div = root();
@@ -44,9 +44,9 @@ function SwitchStatic_render(__anchor, __block) {
44
44
 
45
45
  SwitchStatic[_$_.$r] = SwitchStatic_render;
46
46
 
47
- var root_5 = _$_.template(`<div class=case-a>Case A`);
48
- var root_6 = _$_.template(`<div class=case-b>Case B`);
49
- var root_7 = _$_.template(`<div class=case-c>Case C`);
47
+ var root_5 = _$_.template_el('div', ['class', 'case-a'], 'Case A');
48
+ var root_6 = _$_.template_el('div', ['class', 'case-b'], 'Case B');
49
+ var root_7 = _$_.template_el('div', ['class', 'case-c'], 'Case C');
50
50
 
51
51
  function switch_case_0_1(__anchor, status) {
52
52
  var div_3 = root_5();
@@ -106,8 +106,8 @@ function SwitchReactive_render(__anchor, __block) {
106
106
 
107
107
  SwitchReactive[_$_.$r] = SwitchReactive_render;
108
108
 
109
- var root_8 = _$_.template(`<div class=case-1-2>1 or 2`);
110
- var root_9 = _$_.template(`<div class=case-other>Other`);
109
+ var root_8 = _$_.template_el('div', ['class', 'case-1-2'], '1 or 2');
110
+ var root_9 = _$_.template_el('div', ['class', 'case-other'], 'Other');
111
111
 
112
112
  function switch_case_0_2(__anchor, val) {
113
113
  var div_6 = root_8();
@@ -142,9 +142,9 @@ function SwitchFallthrough_render(__anchor, __block) {
142
142
 
143
143
  SwitchFallthrough[_$_.$r] = SwitchFallthrough_render;
144
144
 
145
- var root_12 = _$_.template(`<div class=level-1>Level 1`);
146
- var root_13 = _$_.template(`<div class=level-2>Level 2`);
147
- var root_14 = _$_.template(`<div class=level-3>Level 3`);
145
+ var root_12 = _$_.template_el('div', ['class', 'level-1'], 'Level 1');
146
+ var root_13 = _$_.template_el('div', ['class', 'level-2'], 'Level 2');
147
+ var root_14 = _$_.template_el('div', ['class', 'level-3'], 'Level 3');
148
148
 
149
149
  function switch_case_0_3(__anchor, level) {
150
150
  var div_8 = root_12();
@@ -204,9 +204,9 @@ function SwitchNumericLevels_render(__anchor, __block) {
204
204
 
205
205
  SwitchNumericLevels[_$_.$r] = SwitchNumericLevels_render;
206
206
 
207
- var root_17 = _$_.template(`<div class=block-1>Block 1`);
208
- var root_18 = _$_.template(`<div class=block-2>Block 2`);
209
- var root_19 = _$_.template(`<div class=block-3>Block 3`);
207
+ var root_17 = _$_.template_el('div', ['class', 'block-1'], 'Block 1');
208
+ var root_18 = _$_.template_el('div', ['class', 'block-2'], 'Block 2');
209
+ var root_19 = _$_.template_el('div', ['class', 'block-3'], 'Block 3');
210
210
 
211
211
  function switch_case_0_4(__anchor, level) {
212
212
  var div_11 = root_17();
@@ -266,9 +266,9 @@ function SwitchBlockScoped_render(__anchor, __block) {
266
266
 
267
267
  SwitchBlockScoped[_$_.$r] = SwitchBlockScoped_render;
268
268
 
269
- var root_22 = _$_.template(`<div class=nobreak-1>NoBreak 1`);
270
- var root_23 = _$_.template(`<div class=nobreak-2>NoBreak 2`);
271
- var root_24 = _$_.template(`<div class=nobreak-3>NoBreak 3`);
269
+ var root_22 = _$_.template_el('div', ['class', 'nobreak-1'], 'NoBreak 1');
270
+ var root_23 = _$_.template_el('div', ['class', 'nobreak-2'], 'NoBreak 2');
271
+ var root_24 = _$_.template_el('div', ['class', 'nobreak-3'], 'NoBreak 3');
272
272
 
273
273
  function switch_case_0_5(__anchor, level) {
274
274
  var div_14 = root_22();
@@ -1,7 +1,7 @@
1
1
  // @ts-nocheck
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
- var root = _$_.template(`<p class=result> `);
4
+ var root = _$_.template_el('p', ['class', 'result'], ' ');
5
5
 
6
6
  function MoneyResult_render(__anchor, __block, { count }) {
7
7
  const money = _$_.track_async(() => _$_.with_scope(__block, () => doubleMoney(new Money(count.value, 'USD'))), __block, 'csssmh');
@@ -19,7 +19,7 @@ function MoneyResult_render(__anchor, __block, { count }) {
19
19
 
20
20
  MoneyResult[_$_.$r] = MoneyResult_render;
21
21
 
22
- var root_3 = _$_.template(`<p class=loading>loading...`);
22
+ var root_3 = _$_.template_el('p', ['class', 'loading'], 'loading...');
23
23
  var root_2 = _$_.template(`<button class=increment>increment</button><!>`, 1, 2);
24
24
  var root_1 = _$_.template(`<!>`, 1, 1);
25
25
 
@@ -59,7 +59,7 @@ function AsyncCustomType_render(__anchor, __block) {
59
59
 
60
60
  AsyncCustomType[_$_.$r] = AsyncCustomType_render;
61
61
 
62
- var root_4 = _$_.template(`<p class=result> `);
62
+ var root_4 = _$_.template_el('p', ['class', 'result'], ' ');
63
63
 
64
64
  function ServerCallResult_render(__anchor, __block, { count }) {
65
65
  const data = _$_.track_async(() => _$_.with_scope(__block, () => formatValue(count.value)), __block, 'lq8y0o');
@@ -77,7 +77,7 @@ function ServerCallResult_render(__anchor, __block, { count }) {
77
77
 
78
78
  ServerCallResult[_$_.$r] = ServerCallResult_render;
79
79
 
80
- var root_7 = _$_.template(`<p class=loading>loading...`);
80
+ var root_7 = _$_.template_el('p', ['class', 'loading'], 'loading...');
81
81
  var root_6 = _$_.template(`<button class=increment>increment</button><!>`, 1, 2);
82
82
  var root_5 = _$_.template(`<!>`, 1, 1);
83
83
 
@@ -117,8 +117,8 @@ function AsyncWithServerCall_render(__anchor, __block) {
117
117
 
118
118
  AsyncWithServerCall[_$_.$r] = AsyncWithServerCall_render;
119
119
 
120
- var root_8 = _$_.template(`<p class=result> `);
121
- var root_9 = _$_.template(`<p class=loading>loading...`);
120
+ var root_8 = _$_.template_el('p', ['class', 'result'], ' ');
121
+ var root_9 = _$_.template_el('p', ['class', 'loading'], 'loading...');
122
122
 
123
123
  function AsyncSimpleValue_render(__anchor, __block) {
124
124
  _$_.try(
@@ -148,8 +148,8 @@ function AsyncSimpleValue_render(__anchor, __block) {
148
148
 
149
149
  AsyncSimpleValue[_$_.$r] = AsyncSimpleValue_render;
150
150
 
151
- var root_10 = _$_.template(`<span class=count> `);
152
- var root_11 = _$_.template(`<span class=pending>...`);
151
+ var root_10 = _$_.template_el('span', ['class', 'count'], ' ');
152
+ var root_11 = _$_.template_el('span', ['class', 'pending'], '...');
153
153
 
154
154
  function AsyncNumericValue_render(__anchor, __block) {
155
155
  _$_.try(
@@ -180,7 +180,7 @@ function AsyncNumericValue_render(__anchor, __block) {
180
180
  AsyncNumericValue[_$_.$r] = AsyncNumericValue_render;
181
181
 
182
182
  var root_12 = _$_.template(`<div class=user><span class=name> </span><span class=age> `);
183
- var root_13 = _$_.template(`<div class=loading>loading user...`);
183
+ var root_13 = _$_.template_el('div', ['class', 'loading'], 'loading user...');
184
184
 
185
185
  function AsyncObjectValue_render(__anchor, __block) {
186
186
  _$_.try(
@@ -224,7 +224,7 @@ function AsyncObjectValue_render(__anchor, __block) {
224
224
  AsyncObjectValue[_$_.$r] = AsyncObjectValue_render;
225
225
 
226
226
  var root_14 = _$_.template(`<div class=multi><span class=first> </span><span class=second> `);
227
- var root_15 = _$_.template(`<div class=loading>loading...`);
227
+ var root_15 = _$_.template_el('div', ['class', 'loading'], 'loading...');
228
228
 
229
229
  function AsyncMultipleValues_render(__anchor, __block) {
230
230
  _$_.try(
@@ -268,9 +268,9 @@ function AsyncMultipleValues_render(__anchor, __block) {
268
268
 
269
269
  AsyncMultipleValues[_$_.$r] = AsyncMultipleValues_render;
270
270
 
271
- var root_16 = _$_.template(`<p class=result> `);
272
- var root_17 = _$_.template(`<p class=error> `);
273
- var root_18 = _$_.template(`<p class=loading>loading...`);
271
+ var root_16 = _$_.template_el('p', ['class', 'result'], ' ');
272
+ var root_17 = _$_.template_el('p', ['class', 'error'], ' ');
273
+ var root_18 = _$_.template_el('p', ['class', 'loading'], 'loading...');
274
274
 
275
275
  function AsyncWithCatch_render(__anchor, __block) {
276
276
  _$_.try(
@@ -311,8 +311,8 @@ function AsyncWithCatch_render(__anchor, __block) {
311
311
 
312
312
  AsyncWithCatch[_$_.$r] = AsyncWithCatch_render;
313
313
 
314
- var root_19 = _$_.template(`<p class=result> `);
315
- var root_20 = _$_.template(`<p class=pending>loading...`);
314
+ var root_19 = _$_.template_el('p', ['class', 'result'], ' ');
315
+ var root_20 = _$_.template_el('p', ['class', 'pending'], 'loading...');
316
316
 
317
317
  function ChildWithError_render(__anchor, __block) {
318
318
  _$_.try(
@@ -342,7 +342,7 @@ function ChildWithError_render(__anchor, __block) {
342
342
 
343
343
  ChildWithError[_$_.$r] = ChildWithError_render;
344
344
 
345
- var root_21 = _$_.template(`<p class=parent-error> `);
345
+ var root_21 = _$_.template_el('p', ['class', 'parent-error'], ' ');
346
346
 
347
347
  function ParentWithCatch_render(__anchor, __block) {
348
348
  _$_.try(
@@ -369,7 +369,7 @@ function ParentWithCatch_render(__anchor, __block) {
369
369
 
370
370
  ParentWithCatch[_$_.$r] = ParentWithCatch_render;
371
371
 
372
- var root_22 = _$_.template(`<p class=result> `);
372
+ var root_22 = _$_.template_el('p', ['class', 'result'], ' ');
373
373
 
374
374
  function ReactiveDependencyResult_render(__anchor, __block, { count }) {
375
375
  const data = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(`count-${count.value}`)), __block, '6vdwe2');
@@ -387,7 +387,7 @@ function ReactiveDependencyResult_render(__anchor, __block, { count }) {
387
387
 
388
388
  ReactiveDependencyResult[_$_.$r] = ReactiveDependencyResult_render;
389
389
 
390
- var root_25 = _$_.template(`<p class=loading>loading...`);
390
+ var root_25 = _$_.template_el('p', ['class', 'loading'], 'loading...');
391
391
  var root_24 = _$_.template(`<button class=increment>increment</button><!>`, 1, 2);
392
392
  var root_23 = _$_.template(`<!>`, 1, 1);
393
393
 
@@ -427,7 +427,7 @@ function AsyncWithReactiveDependency_render(__anchor, __block) {
427
427
 
428
428
  AsyncWithReactiveDependency[_$_.$r] = AsyncWithReactiveDependency_render;
429
429
 
430
- var root_28 = _$_.template(`<p class=loading>loading...`);
430
+ var root_28 = _$_.template_el('p', ['class', 'loading'], 'loading...');
431
431
  var root_27 = _$_.template(`<button class=increment>increment</button><!>`, 1, 2);
432
432
  var root_26 = _$_.template(`<!>`, 1, 1);
433
433
 
@@ -1,7 +1,7 @@
1
1
  // @ts-nocheck
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
- var root = _$_.template(`<p class=root-pending>root loading...`);
4
+ var root = _$_.template_el('p', ['class', 'root-pending'], 'root loading...');
5
5
 
6
6
  function RootPending_render(__anchor, __block) {
7
7
  var p = root();
@@ -36,7 +36,7 @@ function RootCatch_render(__anchor, __block, { error, reset }) {
36
36
 
37
37
  RootCatch[_$_.$r] = RootCatch_render;
38
38
 
39
- var root_2 = _$_.template(`<p>should not render`);
39
+ var root_2 = _$_.template_el('p', null, 'should not render');
40
40
 
41
41
  function RootThrows_render(__anchor, __block) {
42
42
  throw _$_.with_scope(__block, () => new Error('root exploded'));
@@ -48,7 +48,7 @@ function RootThrows_render(__anchor, __block) {
48
48
 
49
49
  RootThrows[_$_.$r] = RootThrows_render;
50
50
 
51
- var root_3 = _$_.template(`<p class=root-async-value> `);
51
+ var root_3 = _$_.template_el('p', ['class', 'root-async-value'], ' ');
52
52
 
53
53
  function RootAsyncDirect_render(__anchor, __block) {
54
54
  const value = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve('root async value')), __block, '1nl29mb');
@@ -66,7 +66,7 @@ function RootAsyncDirect_render(__anchor, __block) {
66
66
 
67
67
  RootAsyncDirect[_$_.$r] = RootAsyncDirect_render;
68
68
 
69
- var root_4 = _$_.template(`<p class=root-async-value> `);
69
+ var root_4 = _$_.template_el('p', ['class', 'root-async-value'], ' ');
70
70
 
71
71
  function RootAsyncRejects_render(__anchor, __block) {
72
72
  const value = _$_.track_async(() => _$_.with_scope(__block, () => Promise.reject(new Error('root async failed'))), __block, '1mjk6zo');
@@ -84,7 +84,7 @@ function RootAsyncRejects_render(__anchor, __block) {
84
84
 
85
85
  RootAsyncRejects[_$_.$r] = RootAsyncRejects_render;
86
86
 
87
- var root_5 = _$_.template(`<p class=loading>loading...`);
87
+ var root_5 = _$_.template_el('p', ['class', 'loading'], 'loading...');
88
88
 
89
89
  function AsyncListInTryPending_render(__anchor, __block) {
90
90
  _$_.try(
@@ -104,8 +104,8 @@ function AsyncListInTryPending_render(__anchor, __block) {
104
104
 
105
105
  AsyncListInTryPending[_$_.$r] = AsyncListInTryPending_render;
106
106
 
107
- var root_7 = _$_.template(`<li> `);
108
- var root_6 = _$_.template(`<ul class=items>`);
107
+ var root_7 = _$_.template_el('li', null, ' ');
108
+ var root_6 = _$_.template_el('ul', ['class', 'items']);
109
109
 
110
110
  function AsyncList_render(__anchor, __block) {
111
111
  const items = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(['alpha', 'beta', 'gamma'])), __block, '1dw7tpj');
@@ -138,7 +138,7 @@ function AsyncList_render(__anchor, __block) {
138
138
 
139
139
  AsyncList[_$_.$r] = AsyncList_render;
140
140
 
141
- var root_10 = _$_.template(`<div class=loading>loading async content`);
141
+ var root_10 = _$_.template_el('div', ['class', 'loading'], 'loading async content');
142
142
  var root_9 = _$_.template(`<div class=before>before</div><!>`, 1, 2);
143
143
  var root_8 = _$_.template(`<!>`, 1, 1);
144
144
 
@@ -172,7 +172,7 @@ function AsyncTryWithLeadingSibling_render(__anchor, __block) {
172
172
 
173
173
  AsyncTryWithLeadingSibling[_$_.$r] = AsyncTryWithLeadingSibling_render;
174
174
 
175
- var root_11 = _$_.template(`<div class=resolved> `);
175
+ var root_11 = _$_.template_el('div', ['class', 'resolved'], ' ');
176
176
 
177
177
  function AsyncContent_render(__anchor, __block) {
178
178
  const value = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve('ready')), __block, '62wwns');
@@ -4,13 +4,14 @@ import * as _$_ from 'ripple/internal/client';
4
4
  var root_1 = _$_.template(`<div class=typed-run> <span>tail</span></div><p class=typed-number></p><button>update`, 1, 3);
5
5
 
6
6
  function render(__prev) {
7
- var __a = 'value: ' + (__prev._a.value.label + String(__prev._a.value.count ?? ''));
7
+ var __row_value = __prev._a.value;
8
+ var __a = 'value: ' + (__row_value.label + String(__row_value.count ?? ''));
8
9
 
9
10
  if (__prev.a !== __a) {
10
11
  _$_.set_text(__prev._b, __prev.a = __a);
11
12
  }
12
13
 
13
- var __b = (0, __prev._a.value.count);
14
+ var __b = (0, __row_value.count);
14
15
 
15
16
  if (__prev.b !== __b) {
16
17
  _$_.set_text_content(__prev._c, __b, __prev.b);