ripple 0.4.3 → 0.4.5

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 (42) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/package.json +3 -3
  3. package/src/constants.js +6 -0
  4. package/src/runtime/internal/client/attributes.js +259 -126
  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/events.js +15 -1
  9. package/src/runtime/internal/client/expression.js +4 -4
  10. package/src/runtime/internal/client/for.js +13 -38
  11. package/src/runtime/internal/client/if.js +56 -1
  12. package/src/runtime/internal/client/index.js +8 -6
  13. package/src/runtime/internal/client/operations.js +9 -4
  14. package/src/runtime/internal/client/render.js +37 -0
  15. package/src/runtime/internal/client/runtime.js +94 -20
  16. package/src/runtime/internal/client/template-ns.js +45 -4
  17. package/src/runtime/internal/client/template.js +103 -0
  18. package/tests/client/composite/composite.dynamic-components.test.tsrx +40 -0
  19. package/tests/client/css/scoped-styles.test.tsrx +3 -1
  20. package/tests/client/svg.test.tsrx +273 -1
  21. package/tests/hydration/compiled/client/basic.js +79 -51
  22. package/tests/hydration/compiled/client/composite.js +13 -4
  23. package/tests/hydration/compiled/client/events.js +22 -7
  24. package/tests/hydration/compiled/client/for.js +110 -71
  25. package/tests/hydration/compiled/client/fragment-cursor.js +342 -156
  26. package/tests/hydration/compiled/client/head.js +13 -13
  27. package/tests/hydration/compiled/client/hmr.js +16 -4
  28. package/tests/hydration/compiled/client/html-in-template.js +1 -1
  29. package/tests/hydration/compiled/client/html.js +144 -87
  30. package/tests/hydration/compiled/client/if-children.js +118 -33
  31. package/tests/hydration/compiled/client/if-fragment-controlflow.js +41 -21
  32. package/tests/hydration/compiled/client/if.js +70 -18
  33. package/tests/hydration/compiled/client/mixed-control-flow.js +50 -20
  34. package/tests/hydration/compiled/client/nested-control-flow.js +191 -100
  35. package/tests/hydration/compiled/client/portal.js +29 -9
  36. package/tests/hydration/compiled/client/reactivity.js +9 -5
  37. package/tests/hydration/compiled/client/streaming.js +21 -18
  38. package/tests/hydration/compiled/client/switch.js +17 -17
  39. package/tests/hydration/compiled/client/track-async-serialization.js +29 -21
  40. package/tests/hydration/compiled/client/try.js +13 -10
  41. package/tests/hydration/compiled/client/typed-text.js +3 -2
  42. package/tests/utils/inline-drift.test.js +83 -0
@@ -1,8 +1,8 @@
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`);
5
- var root = _$_.template(`<div class=container><h1>Main Content`);
4
+ var root_1 = _$_.template_el('div', ['class', 'portal-content'], 'Portal content');
5
+ var root = _$_.template_el('div', ['class', 'container'], [['h1', null, 'Main Content']]);
6
6
 
7
7
  function SimplePortal_render(__anchor, __block) {
8
8
  var div = root();
@@ -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) => {
@@ -39,7 +39,15 @@ function if_1(show) {
39
39
  if (show.value) return consequent;
40
40
  }
41
41
 
42
- var root_2 = _$_.template(`<div class=container><button class=toggle>Toggle`);
42
+ var root_2 = _$_.template_el('div', ['class', 'container'], [['button', ['class', 'toggle'], 'Toggle']]);
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
+ }
43
51
 
44
52
  function ConditionalPortal_render(__anchor, __block) {
45
53
  const show = _$_.track(true, __block, 'm1ectw');
@@ -51,18 +59,23 @@ 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`);
65
- var root_4 = _$_.template(`<div><div class=main-content>Main page content</div><div class=footer>Footer`);
73
+ var root_5 = _$_.template_el('div', ['class', 'portal-content'], 'Modal content');
74
+
75
+ var root_4 = _$_.template_el('div', null, [
76
+ ['div', ['class', 'main-content'], 'Main page content'],
77
+ ['div', ['class', 'footer'], 'Footer']
78
+ ]);
66
79
 
67
80
  function PortalWithMainContent_render(__anchor, __block) {
68
81
  var div_4 = root_4();
@@ -85,8 +98,15 @@ function PortalWithMainContent_render(__anchor, __block) {
85
98
 
86
99
  PortalWithMainContent[_$_.$r] = PortalWithMainContent_render;
87
100
 
88
- var root_7 = _$_.template(`<div class=portal-content>Portal content`);
89
- var root_6 = _$_.template(`<div class=outer><div class=inner><span>Nested content`);
101
+ var root_7 = _$_.template_el('div', ['class', 'portal-content'], 'Portal content');
102
+
103
+ var root_6 = _$_.template_el('div', ['class', 'outer'], [
104
+ [
105
+ 'div',
106
+ ['class', 'inner'],
107
+ [['span', null, 'Nested content']]
108
+ ]
109
+ ]);
90
110
 
91
111
  function NestedContentWithPortal_render(__anchor, __block) {
92
112
  var div_7 = root_6();
@@ -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;
@@ -22,7 +22,7 @@ function TrackedState_render(__anchor, __block) {
22
22
 
23
23
  TrackedState[_$_.$r] = TrackedState_render;
24
24
 
25
- var root_1 = _$_.template(`<div><span class=count> `);
25
+ var root_1 = _$_.template_el('div', null, [['span', ['class', 'count'], ' ']]);
26
26
 
27
27
  function CounterWithInitial_render(__anchor, __block, props) {
28
28
  const count = _$_.track(props.initial, __block, '133ubs');
@@ -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');
@@ -70,7 +70,11 @@ function ComputedValues_render(__anchor, __block) {
70
70
 
71
71
  ComputedValues[_$_.$r] = ComputedValues_render;
72
72
 
73
- var root_3 = _$_.template(`<div class=multiple-tracked><div class=x></div><div class=y></div><div class=z>`);
73
+ var root_3 = _$_.template_el('div', ['class', 'multiple-tracked'], [
74
+ ['div', ['class', 'x']],
75
+ ['div', ['class', 'y']],
76
+ ['div', ['class', 'z']]
77
+ ]);
74
78
 
75
79
  function render_1(__prev) {
76
80
  var __a = __prev._a.value;
@@ -124,7 +128,7 @@ function MultipleTracked_render(__anchor, __block) {
124
128
 
125
129
  MultipleTracked[_$_.$r] = MultipleTracked_render;
126
130
 
127
- var root_4 = _$_.template(`<div class=name> `);
131
+ var root_4 = _$_.template_el('div', ['class', 'name'], ' ');
128
132
 
129
133
  function DerivedState_render(__anchor, __block) {
130
134
  const firstName = _$_.track('John', __block, 'qnrtu2');
@@ -1,7 +1,10 @@
1
1
  // @ts-nocheck
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
- var root = _$_.template(`<div class=resolved><span class=value></span><button class=inc>inc`);
4
+ var root = _$_.template_el('div', ['class', 'resolved'], [
5
+ ['span', ['class', 'value']],
6
+ ['button', ['class', 'inc'], 'inc']
7
+ ]);
5
8
 
6
9
  function render(__prev) {
7
10
  var __a = __prev._a.value + ':' + __prev._b.value;
@@ -31,7 +34,7 @@ function BasicContent_render(__anchor, __block) {
31
34
  BasicContent[_$_.$r] = BasicContent_render;
32
35
 
33
36
  var root_3 = _$_.template(`<!><footer class=after-async>after-async`, 1, 2);
34
- var root_4 = _$_.template(`<p class=loading>loading...`);
37
+ var root_4 = _$_.template_el('p', ['class', 'loading'], 'loading...');
35
38
  var root_2 = _$_.template(`<span class=before>before</span><!><span class=sibling-after>sibling-after`, 1, 3);
36
39
  var root_1 = _$_.template(`<!>`, 1, 1);
37
40
 
@@ -71,7 +74,7 @@ function StreamPending_render(__anchor, __block) {
71
74
 
72
75
  StreamPending[_$_.$r] = StreamPending_render;
73
76
 
74
- var root_5 = _$_.template(`<p class=resolved> `);
77
+ var root_5 = _$_.template_el('p', ['class', 'resolved'], ' ');
75
78
 
76
79
  function CatchOnlyContent_render(__anchor, __block) {
77
80
  const data = _$_.track_async(() => controls.catchOnly.promise, __block, 'mgtlfq');
@@ -89,7 +92,7 @@ function CatchOnlyContent_render(__anchor, __block) {
89
92
 
90
93
  CatchOnlyContent[_$_.$r] = CatchOnlyContent_render;
91
94
 
92
- var root_8 = _$_.template(`<em class=caught> `);
95
+ var root_8 = _$_.template_el('em', ['class', 'caught'], ' ');
93
96
  var root_7 = _$_.template(`<span class=before>before</span><!>`, 1, 2);
94
97
  var root_6 = _$_.template(`<!>`, 1, 1);
95
98
 
@@ -129,7 +132,7 @@ function StreamCatchOnly_render(__anchor, __block) {
129
132
 
130
133
  StreamCatchOnly[_$_.$r] = StreamCatchOnly_render;
131
134
 
132
- var root_9 = _$_.template(`<p class=resolved> `);
135
+ var root_9 = _$_.template_el('p', ['class', 'resolved'], ' ');
133
136
 
134
137
  function RejectContent_render(__anchor, __block) {
135
138
  const data = _$_.track_async(() => controls.rejects.promise, __block, '15p08yc');
@@ -147,8 +150,8 @@ function RejectContent_render(__anchor, __block) {
147
150
 
148
151
  RejectContent[_$_.$r] = RejectContent_render;
149
152
 
150
- var root_10 = _$_.template(`<em class=caught> `);
151
- var root_11 = _$_.template(`<p class=loading>loading...`);
153
+ var root_10 = _$_.template_el('em', ['class', 'caught'], ' ');
154
+ var root_11 = _$_.template_el('p', ['class', 'loading'], 'loading...');
152
155
 
153
156
  function StreamRejects_render(__anchor, __block) {
154
157
  _$_.try(
@@ -179,7 +182,7 @@ function StreamRejects_render(__anchor, __block) {
179
182
 
180
183
  StreamRejects[_$_.$r] = StreamRejects_render;
181
184
 
182
- var root_12 = _$_.template(`<p class=resolved> `);
185
+ var root_12 = _$_.template_el('p', ['class', 'resolved'], ' ');
183
186
 
184
187
  function NoCatchContent_render(__anchor, __block) {
185
188
  const data = _$_.track_async(() => controls.noCatch.promise, __block, 'tvfywb');
@@ -197,7 +200,7 @@ function NoCatchContent_render(__anchor, __block) {
197
200
 
198
201
  NoCatchContent[_$_.$r] = NoCatchContent_render;
199
202
 
200
- var root_13 = _$_.template(`<p class=loading>loading...`);
203
+ var root_13 = _$_.template_el('p', ['class', 'loading'], 'loading...');
201
204
 
202
205
  function StreamNoCatch_render(__anchor, __block) {
203
206
  _$_.try(
@@ -217,7 +220,7 @@ function StreamNoCatch_render(__anchor, __block) {
217
220
 
218
221
  StreamNoCatch[_$_.$r] = StreamNoCatch_render;
219
222
 
220
- var root_14 = _$_.template(`<section class=root-catch> `);
223
+ var root_14 = _$_.template_el('section', ['class', 'root-catch'], ' ');
221
224
 
222
225
  function RootCatch_render(__anchor, __block, { error, reset }) {
223
226
  var section = root_14();
@@ -236,7 +239,7 @@ function RootCatch_render(__anchor, __block, { error, reset }) {
236
239
 
237
240
  RootCatch[_$_.$r] = RootCatch_render;
238
241
 
239
- var root_15 = _$_.template(`<p class=root-pending>root-loading`);
242
+ var root_15 = _$_.template_el('p', ['class', 'root-pending'], 'root-loading');
240
243
 
241
244
  function RootPending_render(__anchor, __block) {
242
245
  var p_6 = root_15();
@@ -246,7 +249,7 @@ function RootPending_render(__anchor, __block) {
246
249
 
247
250
  RootPending[_$_.$r] = RootPending_render;
248
251
 
249
- var root_17 = _$_.template(`<p class=head-content> `);
252
+ var root_17 = _$_.template_el('p', ['class', 'head-content'], ' ');
250
253
  var root_16 = _$_.template(`<!>`, 1, 1);
251
254
 
252
255
  function HeadContent_render(__anchor, __block) {
@@ -290,7 +293,7 @@ function HeadContent_render(__anchor, __block) {
290
293
 
291
294
  HeadContent[_$_.$r] = HeadContent_render;
292
295
 
293
- var root_18 = _$_.template(`<p class=loading>loading...`);
296
+ var root_18 = _$_.template_el('p', ['class', 'loading'], 'loading...');
294
297
 
295
298
  function StreamHead_render(__anchor, __block) {
296
299
  _$_.try(
@@ -310,7 +313,7 @@ function StreamHead_render(__anchor, __block) {
310
313
 
311
314
  StreamHead[_$_.$r] = StreamHead_render;
312
315
 
313
- var root_19 = _$_.template(`<p class=root-async> `);
316
+ var root_19 = _$_.template_el('p', ['class', 'root-async'], ' ');
314
317
 
315
318
  function StreamRootDirect_render(__anchor, __block) {
316
319
  const data = _$_.track_async(() => controls.rootDirect.promise, __block, '1gc250a');
@@ -328,7 +331,7 @@ function StreamRootDirect_render(__anchor, __block) {
328
331
 
329
332
  StreamRootDirect[_$_.$r] = StreamRootDirect_render;
330
333
 
331
- var root_20 = _$_.template(`<p class=outer> `);
334
+ var root_20 = _$_.template_el('p', ['class', 'outer'], ' ');
332
335
 
333
336
  function OuterContent_render(__anchor, __block) {
334
337
  const data = _$_.track_async(() => controls.outer.promise, __block, 'ev54ge');
@@ -346,7 +349,7 @@ function OuterContent_render(__anchor, __block) {
346
349
 
347
350
  OuterContent[_$_.$r] = OuterContent_render;
348
351
 
349
- var root_21 = _$_.template(`<p class=inner> `);
352
+ var root_21 = _$_.template_el('p', ['class', 'inner'], ' ');
350
353
 
351
354
  function InnerContent_render(__anchor, __block) {
352
355
  const data = _$_.track_async(() => controls.inner.promise, __block, 'u3o1kd');
@@ -364,9 +367,9 @@ function InnerContent_render(__anchor, __block) {
364
367
 
365
368
  InnerContent[_$_.$r] = InnerContent_render;
366
369
 
367
- var root_23 = _$_.template(`<p class=inner-loading>inner-loading`);
370
+ var root_23 = _$_.template_el('p', ['class', 'inner-loading'], 'inner-loading');
368
371
  var root_22 = _$_.template(`<!><!>`, 1, 2);
369
- var root_24 = _$_.template(`<p class=outer-loading>outer-loading`);
372
+ var root_24 = _$_.template_el('p', ['class', 'outer-loading'], 'outer-loading');
370
373
 
371
374
  function StreamNested_render(__anchor, __block) {
372
375
  _$_.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(
@@ -179,8 +179,12 @@ function AsyncNumericValue_render(__anchor, __block) {
179
179
 
180
180
  AsyncNumericValue[_$_.$r] = AsyncNumericValue_render;
181
181
 
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...`);
182
+ var root_12 = _$_.template_el('div', ['class', 'user'], [
183
+ ['span', ['class', 'name'], ' '],
184
+ ['span', ['class', 'age'], ' ']
185
+ ]);
186
+
187
+ var root_13 = _$_.template_el('div', ['class', 'loading'], 'loading user...');
184
188
 
185
189
  function AsyncObjectValue_render(__anchor, __block) {
186
190
  _$_.try(
@@ -223,8 +227,12 @@ function AsyncObjectValue_render(__anchor, __block) {
223
227
 
224
228
  AsyncObjectValue[_$_.$r] = AsyncObjectValue_render;
225
229
 
226
- var root_14 = _$_.template(`<div class=multi><span class=first> </span><span class=second> `);
227
- var root_15 = _$_.template(`<div class=loading>loading...`);
230
+ var root_14 = _$_.template_el('div', ['class', 'multi'], [
231
+ ['span', ['class', 'first'], ' '],
232
+ ['span', ['class', 'second'], ' ']
233
+ ]);
234
+
235
+ var root_15 = _$_.template_el('div', ['class', 'loading'], 'loading...');
228
236
 
229
237
  function AsyncMultipleValues_render(__anchor, __block) {
230
238
  _$_.try(
@@ -268,9 +276,9 @@ function AsyncMultipleValues_render(__anchor, __block) {
268
276
 
269
277
  AsyncMultipleValues[_$_.$r] = AsyncMultipleValues_render;
270
278
 
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...`);
279
+ var root_16 = _$_.template_el('p', ['class', 'result'], ' ');
280
+ var root_17 = _$_.template_el('p', ['class', 'error'], ' ');
281
+ var root_18 = _$_.template_el('p', ['class', 'loading'], 'loading...');
274
282
 
275
283
  function AsyncWithCatch_render(__anchor, __block) {
276
284
  _$_.try(
@@ -311,8 +319,8 @@ function AsyncWithCatch_render(__anchor, __block) {
311
319
 
312
320
  AsyncWithCatch[_$_.$r] = AsyncWithCatch_render;
313
321
 
314
- var root_19 = _$_.template(`<p class=result> `);
315
- var root_20 = _$_.template(`<p class=pending>loading...`);
322
+ var root_19 = _$_.template_el('p', ['class', 'result'], ' ');
323
+ var root_20 = _$_.template_el('p', ['class', 'pending'], 'loading...');
316
324
 
317
325
  function ChildWithError_render(__anchor, __block) {
318
326
  _$_.try(
@@ -342,7 +350,7 @@ function ChildWithError_render(__anchor, __block) {
342
350
 
343
351
  ChildWithError[_$_.$r] = ChildWithError_render;
344
352
 
345
- var root_21 = _$_.template(`<p class=parent-error> `);
353
+ var root_21 = _$_.template_el('p', ['class', 'parent-error'], ' ');
346
354
 
347
355
  function ParentWithCatch_render(__anchor, __block) {
348
356
  _$_.try(
@@ -369,7 +377,7 @@ function ParentWithCatch_render(__anchor, __block) {
369
377
 
370
378
  ParentWithCatch[_$_.$r] = ParentWithCatch_render;
371
379
 
372
- var root_22 = _$_.template(`<p class=result> `);
380
+ var root_22 = _$_.template_el('p', ['class', 'result'], ' ');
373
381
 
374
382
  function ReactiveDependencyResult_render(__anchor, __block, { count }) {
375
383
  const data = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(`count-${count.value}`)), __block, '6vdwe2');
@@ -387,7 +395,7 @@ function ReactiveDependencyResult_render(__anchor, __block, { count }) {
387
395
 
388
396
  ReactiveDependencyResult[_$_.$r] = ReactiveDependencyResult_render;
389
397
 
390
- var root_25 = _$_.template(`<p class=loading>loading...`);
398
+ var root_25 = _$_.template_el('p', ['class', 'loading'], 'loading...');
391
399
  var root_24 = _$_.template(`<button class=increment>increment</button><!>`, 1, 2);
392
400
  var root_23 = _$_.template(`<!>`, 1, 1);
393
401
 
@@ -427,7 +435,7 @@ function AsyncWithReactiveDependency_render(__anchor, __block) {
427
435
 
428
436
  AsyncWithReactiveDependency[_$_.$r] = AsyncWithReactiveDependency_render;
429
437
 
430
- var root_28 = _$_.template(`<p class=loading>loading...`);
438
+ var root_28 = _$_.template_el('p', ['class', 'loading'], 'loading...');
431
439
  var root_27 = _$_.template(`<button class=increment>increment</button><!>`, 1, 2);
432
440
  var root_26 = _$_.template(`<!>`, 1, 1);
433
441
 
@@ -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();
@@ -11,7 +11,10 @@ function RootPending_render(__anchor, __block) {
11
11
 
12
12
  RootPending[_$_.$r] = RootPending_render;
13
13
 
14
- var root_1 = _$_.template(`<section class=root-catch><p class=root-error> </p><button class=root-reset>retry`);
14
+ var root_1 = _$_.template_el('section', ['class', 'root-catch'], [
15
+ ['p', ['class', 'root-error'], ' '],
16
+ ['button', ['class', 'root-reset'], 'retry']
17
+ ]);
15
18
 
16
19
  function RootCatch_render(__anchor, __block, { error, reset }) {
17
20
  var section = root_1();
@@ -36,7 +39,7 @@ function RootCatch_render(__anchor, __block, { error, reset }) {
36
39
 
37
40
  RootCatch[_$_.$r] = RootCatch_render;
38
41
 
39
- var root_2 = _$_.template(`<p>should not render`);
42
+ var root_2 = _$_.template_el('p', null, 'should not render');
40
43
 
41
44
  function RootThrows_render(__anchor, __block) {
42
45
  throw _$_.with_scope(__block, () => new Error('root exploded'));
@@ -48,7 +51,7 @@ function RootThrows_render(__anchor, __block) {
48
51
 
49
52
  RootThrows[_$_.$r] = RootThrows_render;
50
53
 
51
- var root_3 = _$_.template(`<p class=root-async-value> `);
54
+ var root_3 = _$_.template_el('p', ['class', 'root-async-value'], ' ');
52
55
 
53
56
  function RootAsyncDirect_render(__anchor, __block) {
54
57
  const value = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve('root async value')), __block, '1nl29mb');
@@ -66,7 +69,7 @@ function RootAsyncDirect_render(__anchor, __block) {
66
69
 
67
70
  RootAsyncDirect[_$_.$r] = RootAsyncDirect_render;
68
71
 
69
- var root_4 = _$_.template(`<p class=root-async-value> `);
72
+ var root_4 = _$_.template_el('p', ['class', 'root-async-value'], ' ');
70
73
 
71
74
  function RootAsyncRejects_render(__anchor, __block) {
72
75
  const value = _$_.track_async(() => _$_.with_scope(__block, () => Promise.reject(new Error('root async failed'))), __block, '1mjk6zo');
@@ -84,7 +87,7 @@ function RootAsyncRejects_render(__anchor, __block) {
84
87
 
85
88
  RootAsyncRejects[_$_.$r] = RootAsyncRejects_render;
86
89
 
87
- var root_5 = _$_.template(`<p class=loading>loading...`);
90
+ var root_5 = _$_.template_el('p', ['class', 'loading'], 'loading...');
88
91
 
89
92
  function AsyncListInTryPending_render(__anchor, __block) {
90
93
  _$_.try(
@@ -104,8 +107,8 @@ function AsyncListInTryPending_render(__anchor, __block) {
104
107
 
105
108
  AsyncListInTryPending[_$_.$r] = AsyncListInTryPending_render;
106
109
 
107
- var root_7 = _$_.template(`<li> `);
108
- var root_6 = _$_.template(`<ul class=items>`);
110
+ var root_7 = _$_.template_el('li', null, ' ');
111
+ var root_6 = _$_.template_el('ul', ['class', 'items']);
109
112
 
110
113
  function AsyncList_render(__anchor, __block) {
111
114
  const items = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(['alpha', 'beta', 'gamma'])), __block, '1dw7tpj');
@@ -138,7 +141,7 @@ function AsyncList_render(__anchor, __block) {
138
141
 
139
142
  AsyncList[_$_.$r] = AsyncList_render;
140
143
 
141
- var root_10 = _$_.template(`<div class=loading>loading async content`);
144
+ var root_10 = _$_.template_el('div', ['class', 'loading'], 'loading async content');
142
145
  var root_9 = _$_.template(`<div class=before>before</div><!>`, 1, 2);
143
146
  var root_8 = _$_.template(`<!>`, 1, 1);
144
147
 
@@ -172,7 +175,7 @@ function AsyncTryWithLeadingSibling_render(__anchor, __block) {
172
175
 
173
176
  AsyncTryWithLeadingSibling[_$_.$r] = AsyncTryWithLeadingSibling_render;
174
177
 
175
- var root_11 = _$_.template(`<div class=resolved> `);
178
+ var root_11 = _$_.template_el('div', ['class', 'resolved'], ' ');
176
179
 
177
180
  function AsyncContent_render(__anchor, __block) {
178
181
  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);