ripple 0.3.112 → 0.3.113

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 (31) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/package.json +3 -3
  3. package/tests/client/basic/basic.rendering.test.tsrx +72 -0
  4. package/tests/client/compiler/compiler.basic.test.tsrx +36 -4
  5. package/tests/client/composite/composite.props.test.tsrx +46 -0
  6. package/tests/hydration/basic.test.js +39 -0
  7. package/tests/hydration/compiled/client/basic.js +133 -5
  8. package/tests/hydration/compiled/client/if-fragment-controlflow.js +166 -214
  9. package/tests/hydration/compiled/client/streaming.js +81 -105
  10. package/tests/hydration/compiled/server/basic.js +121 -2
  11. package/tests/hydration/compiled/server/events.js +61 -5
  12. package/tests/hydration/compiled/server/for.js +242 -26
  13. package/tests/hydration/compiled/server/head.js +45 -5
  14. package/tests/hydration/compiled/server/html.js +24 -8
  15. package/tests/hydration/compiled/server/if-fragment-controlflow.js +73 -18
  16. package/tests/hydration/compiled/server/mixed-control-flow.js +9 -1
  17. package/tests/hydration/compiled/server/nested-control-flow.js +9 -1
  18. package/tests/hydration/compiled/server/reactivity.js +43 -3
  19. package/tests/hydration/compiled/server/streaming.js +131 -38
  20. package/tests/hydration/compiled/server/track-async-serialization.js +106 -10
  21. package/tests/hydration/compiled/server/try.js +45 -5
  22. package/tests/hydration/components/basic.tsrx +43 -0
  23. package/tests/server/basic.test.tsrx +30 -0
  24. package/tests/server/compiler.test.tsrx +29 -4
  25. package/tests/server/composite.props.test.tsrx +26 -0
  26. package/tests/server/streaming-ssr.test.tsrx +9 -9
  27. package/tests/server/track-async-serialization.test.tsrx +4 -4
  28. package/tests/types/component-return.ts +48 -0
  29. package/tests/utils/runtime-imports.test.js +5 -1
  30. package/tsconfig.typecheck.json +1 -1
  31. package/types/index.d.ts +10 -1
@@ -2,33 +2,30 @@
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
4
  var root = _$_.template(`<div class="resolved"><span class="value"> </span><button class="inc">inc</button></div>`, 0);
5
- var root_4 = _$_.template(`<!><footer class="after-async">after-async</footer>`, 1, 2);
6
- var root_3 = _$_.template(`<!>`, 1, 1);
7
- var root_5 = _$_.template(`<p class="loading">loading...</p>`, 0);
5
+ var root_3 = _$_.template(`<!><footer class="after-async">after-async</footer>`, 1, 2);
6
+ var root_4 = _$_.template(`<p class="loading">loading...</p>`, 0);
8
7
  var root_2 = _$_.template(`<span class="before">before</span><!><span class="sibling-after">sibling-after</span>`, 1, 3);
9
8
  var root_1 = _$_.template(`<!>`, 1, 1);
10
- var root_6 = _$_.template(`<p class="resolved"> </p>`, 0);
11
- var root_9 = _$_.template(`<em class="caught"> </em>`, 0);
12
- var root_8 = _$_.template(`<span class="before">before</span><!>`, 1, 2);
13
- var root_7 = _$_.template(`<!>`, 1, 1);
14
- var root_10 = _$_.template(`<p class="resolved"> </p>`, 0);
15
- var root_11 = _$_.template(`<em class="caught"> </em>`, 0);
16
- var root_12 = _$_.template(`<p class="loading">loading...</p>`, 0);
17
- var root_13 = _$_.template(`<p class="resolved"> </p>`, 0);
18
- var root_14 = _$_.template(`<p class="loading">loading...</p>`, 0);
19
- var root_15 = _$_.template(`<section class="root-catch"> </section>`, 0);
20
- var root_16 = _$_.template(`<p class="root-pending">root-loading</p>`, 0);
21
- var root_19 = _$_.template(`<p class="head-content"> </p>`, 0);
22
- var root_18 = _$_.template(`<!>`, 1, 1);
23
- var root_17 = _$_.template(`<!>`, 1, 1);
24
- var root_20 = _$_.template(`<p class="loading">loading...</p>`, 0);
25
- var root_21 = _$_.template(`<p class="root-async"> </p>`, 0);
26
- var root_22 = _$_.template(`<p class="outer"> </p>`, 0);
27
- var root_23 = _$_.template(`<p class="inner"> </p>`, 0);
28
- var root_26 = _$_.template(`<p class="inner-loading">inner-loading</p>`, 0);
29
- var root_25 = _$_.template(`<!><!>`, 1, 2);
30
- var root_24 = _$_.template(`<!>`, 1, 1);
31
- var root_27 = _$_.template(`<p class="outer-loading">outer-loading</p>`, 0);
9
+ var root_5 = _$_.template(`<p class="resolved"> </p>`, 0);
10
+ var root_8 = _$_.template(`<em class="caught"> </em>`, 0);
11
+ var root_7 = _$_.template(`<span class="before">before</span><!>`, 1, 2);
12
+ var root_6 = _$_.template(`<!>`, 1, 1);
13
+ var root_9 = _$_.template(`<p class="resolved"> </p>`, 0);
14
+ var root_10 = _$_.template(`<em class="caught"> </em>`, 0);
15
+ var root_11 = _$_.template(`<p class="loading">loading...</p>`, 0);
16
+ var root_12 = _$_.template(`<p class="resolved"> </p>`, 0);
17
+ var root_13 = _$_.template(`<p class="loading">loading...</p>`, 0);
18
+ var root_14 = _$_.template(`<section class="root-catch"> </section>`, 0);
19
+ var root_15 = _$_.template(`<p class="root-pending">root-loading</p>`, 0);
20
+ var root_17 = _$_.template(`<p class="head-content"> </p>`, 0);
21
+ var root_16 = _$_.template(`<!>`, 1, 1);
22
+ var root_18 = _$_.template(`<p class="loading">loading...</p>`, 0);
23
+ var root_19 = _$_.template(`<p class="root-async"> </p>`, 0);
24
+ var root_20 = _$_.template(`<p class="outer"> </p>`, 0);
25
+ var root_21 = _$_.template(`<p class="inner"> </p>`, 0);
26
+ var root_23 = _$_.template(`<p class="inner-loading">inner-loading</p>`, 0);
27
+ var root_22 = _$_.template(`<!><!>`, 1, 2);
28
+ var root_24 = _$_.template(`<p class="outer-loading">outer-loading</p>`, 0);
32
29
 
33
30
  import { track, trackAsync } from 'ripple';
34
31
 
@@ -92,9 +89,9 @@ function BasicContent() {
92
89
  export function StreamPending() {
93
90
  return _$_.tsrx_element((__anchor, __block) => {
94
91
  var fragment = root_1();
95
- var node_3 = _$_.first_child_frag(fragment);
92
+ var node_2 = _$_.first_child_frag(fragment);
96
93
 
97
- _$_.expression(node_3, () => _$_.tsrx_element((__anchor, __block) => {
94
+ _$_.expression(node_2, () => _$_.tsrx_element((__anchor, __block) => {
98
95
  var fragment_1 = root_2();
99
96
  var span_1 = _$_.first_child_frag(fragment_1);
100
97
  var node = _$_.sibling(span_1);
@@ -103,21 +100,14 @@ export function StreamPending() {
103
100
  node,
104
101
  (__anchor) => {
105
102
  var fragment_2 = root_3();
106
- var node_2 = _$_.first_child_frag(fragment_2);
107
-
108
- _$_.expression(node_2, () => _$_.tsrx_element((__anchor, __block) => {
109
- var fragment_3 = root_4();
110
- var node_1 = _$_.first_child_frag(fragment_3);
111
-
112
- _$_.render_component(BasicContent, node_1, {});
113
- _$_.append(__anchor, fragment_3);
114
- }));
103
+ var node_1 = _$_.first_child_frag(fragment_2);
115
104
 
105
+ _$_.render_component(BasicContent, node_1, {});
116
106
  _$_.append(__anchor, fragment_2);
117
107
  },
118
108
  null,
119
109
  (__anchor) => {
120
- var p = root_5();
110
+ var p = root_4();
121
111
 
122
112
  _$_.append(__anchor, p);
123
113
  }
@@ -133,7 +123,7 @@ export function StreamPending() {
133
123
  function CatchOnlyContent() {
134
124
  return _$_.tsrx_element((__anchor, __block) => {
135
125
  let lazy_2 = _$_.track_async(() => controls.catchOnly.promise, __block, '50f939c6');
136
- var p_1 = root_6();
126
+ var p_1 = root_5();
137
127
 
138
128
  {
139
129
  var expression_1 = _$_.child(p_1);
@@ -148,21 +138,21 @@ function CatchOnlyContent() {
148
138
 
149
139
  export function StreamCatchOnly() {
150
140
  return _$_.tsrx_element((__anchor, __block) => {
151
- var fragment_4 = root_7();
152
- var node_5 = _$_.first_child_frag(fragment_4);
141
+ var fragment_3 = root_6();
142
+ var node_4 = _$_.first_child_frag(fragment_3);
153
143
 
154
- _$_.expression(node_5, () => _$_.tsrx_element((__anchor, __block) => {
155
- var fragment_5 = root_8();
156
- var span_2 = _$_.first_child_frag(fragment_5);
157
- var node_4 = _$_.sibling(span_2);
144
+ _$_.expression(node_4, () => _$_.tsrx_element((__anchor, __block) => {
145
+ var fragment_4 = root_7();
146
+ var span_2 = _$_.first_child_frag(fragment_4);
147
+ var node_3 = _$_.sibling(span_2);
158
148
 
159
149
  _$_.try(
160
- node_4,
150
+ node_3,
161
151
  (__anchor) => {
162
152
  _$_.render_component(CatchOnlyContent, __anchor, {});
163
153
  },
164
154
  (__anchor, e) => {
165
- var em = root_9();
155
+ var em = root_8();
166
156
 
167
157
  {
168
158
  var expression_2 = _$_.child(em);
@@ -175,17 +165,17 @@ export function StreamCatchOnly() {
175
165
  }
176
166
  );
177
167
 
178
- _$_.append(__anchor, fragment_5);
168
+ _$_.append(__anchor, fragment_4);
179
169
  }));
180
170
 
181
- _$_.append(__anchor, fragment_4);
171
+ _$_.append(__anchor, fragment_3);
182
172
  });
183
173
  }
184
174
 
185
175
  function RejectContent() {
186
176
  return _$_.tsrx_element((__anchor, __block) => {
187
177
  let lazy_3 = _$_.track_async(() => controls.rejects.promise, __block, '96452a54');
188
- var p_2 = root_10();
178
+ var p_2 = root_9();
189
179
 
190
180
  {
191
181
  var expression_3 = _$_.child(p_2);
@@ -206,7 +196,7 @@ export function StreamRejects() {
206
196
  _$_.render_component(RejectContent, __anchor, {});
207
197
  },
208
198
  (__anchor, e) => {
209
- var em_1 = root_11();
199
+ var em_1 = root_10();
210
200
 
211
201
  {
212
202
  var expression_4 = _$_.child(em_1);
@@ -218,7 +208,7 @@ export function StreamRejects() {
218
208
  _$_.append(__anchor, em_1);
219
209
  },
220
210
  (__anchor) => {
221
- var p_3 = root_12();
211
+ var p_3 = root_11();
222
212
 
223
213
  _$_.append(__anchor, p_3);
224
214
  },
@@ -230,7 +220,7 @@ export function StreamRejects() {
230
220
  function NoCatchContent() {
231
221
  return _$_.tsrx_element((__anchor, __block) => {
232
222
  let lazy_4 = _$_.track_async(() => controls.noCatch.promise, __block, '6baa716b');
233
- var p_4 = root_13();
223
+ var p_4 = root_12();
234
224
 
235
225
  {
236
226
  var expression_5 = _$_.child(p_4);
@@ -252,7 +242,7 @@ export function StreamNoCatch() {
252
242
  },
253
243
  null,
254
244
  (__anchor) => {
255
- var p_5 = root_14();
245
+ var p_5 = root_13();
256
246
 
257
247
  _$_.append(__anchor, p_5);
258
248
  },
@@ -263,7 +253,7 @@ export function StreamNoCatch() {
263
253
 
264
254
  export function RootCatch({ error, reset }) {
265
255
  return _$_.tsrx_element((__anchor, __block) => {
266
- var section = root_15();
256
+ var section = root_14();
267
257
 
268
258
  _$_.event('Click', section, reset);
269
259
 
@@ -280,7 +270,7 @@ export function RootCatch({ error, reset }) {
280
270
 
281
271
  export function RootPending() {
282
272
  return _$_.tsrx_element((__anchor, __block) => {
283
- var p_6 = root_16();
273
+ var p_6 = root_15();
284
274
 
285
275
  _$_.append(__anchor, p_6);
286
276
  });
@@ -289,35 +279,28 @@ export function RootPending() {
289
279
  function HeadContent() {
290
280
  return _$_.tsrx_element((__anchor, __block) => {
291
281
  let lazy_5 = _$_.track_async(() => controls.head.promise, __block, '9cd3c3cd');
292
- var fragment_6 = root_17();
293
- var node_7 = _$_.first_child_frag(fragment_6);
282
+ var fragment_5 = root_16();
283
+ var node_5 = _$_.first_child_frag(fragment_5);
294
284
 
295
- _$_.expression(node_7, () => _$_.tsrx_element((__anchor, __block) => {
285
+ _$_.expression(node_5, () => _$_.tsrx_element((__anchor, __block) => {
296
286
  {
297
287
  var consequent = (__anchor) => {
298
- var fragment_7 = root_18();
299
- var node_6 = _$_.first_child_frag(fragment_7);
288
+ var p_7 = root_17();
300
289
 
301
- _$_.expression(node_6, () => _$_.tsrx_element((__anchor, __block) => {
302
- var p_7 = root_19();
303
-
304
- {
305
- var expression_7 = _$_.child(p_7);
290
+ {
291
+ var expression_7 = _$_.child(p_7);
306
292
 
307
- _$_.expression(expression_7, () => lazy_5.value);
308
- _$_.pop(p_7);
309
- }
293
+ _$_.expression(expression_7, () => lazy_5.value);
294
+ _$_.pop(p_7);
295
+ }
310
296
 
311
- _$_.head('814bacd9', (__anchor) => {
312
- _$_.render(() => {
313
- _$_.document.title = 'title:' + lazy_5.value;
314
- });
297
+ _$_.head('814bacd9', (__anchor) => {
298
+ _$_.render(() => {
299
+ _$_.document.title = 'title:' + lazy_5.value;
315
300
  });
301
+ });
316
302
 
317
- _$_.append(__anchor, p_7);
318
- }));
319
-
320
- _$_.append(__anchor, fragment_7);
303
+ _$_.append(__anchor, p_7);
321
304
  };
322
305
 
323
306
  _$_.if(
@@ -330,7 +313,7 @@ function HeadContent() {
330
313
  }
331
314
  }));
332
315
 
333
- _$_.append(__anchor, fragment_6);
316
+ _$_.append(__anchor, fragment_5);
334
317
  });
335
318
  }
336
319
 
@@ -343,7 +326,7 @@ export function StreamHead() {
343
326
  },
344
327
  null,
345
328
  (__anchor) => {
346
- var p_8 = root_20();
329
+ var p_8 = root_18();
347
330
 
348
331
  _$_.append(__anchor, p_8);
349
332
  },
@@ -355,7 +338,7 @@ export function StreamHead() {
355
338
  export function StreamRootDirect() {
356
339
  return _$_.tsrx_element((__anchor, __block) => {
357
340
  let lazy_6 = _$_.track_async(() => controls.rootDirect.promise, __block, 'bc9e61da');
358
- var p_9 = root_21();
341
+ var p_9 = root_19();
359
342
 
360
343
  {
361
344
  var expression_8 = _$_.child(p_9);
@@ -371,7 +354,7 @@ export function StreamRootDirect() {
371
354
  function OuterContent() {
372
355
  return _$_.tsrx_element((__anchor, __block) => {
373
356
  let lazy_7 = _$_.track_async(() => controls.outer.promise, __block, '35931cce');
374
- var p_10 = root_22();
357
+ var p_10 = root_20();
375
358
 
376
359
  {
377
360
  var expression_9 = _$_.child(p_10);
@@ -387,7 +370,7 @@ function OuterContent() {
387
370
  function InnerContent() {
388
371
  return _$_.tsrx_element((__anchor, __block) => {
389
372
  let lazy_8 = _$_.track_async(() => controls.inner.promise, __block, '6c7d38ed');
390
- var p_11 = root_23();
373
+ var p_11 = root_21();
391
374
 
392
375
  {
393
376
  var expression_10 = _$_.child(p_11);
@@ -405,38 +388,31 @@ export function StreamNested() {
405
388
  _$_.try(
406
389
  __anchor,
407
390
  (__anchor) => {
408
- var fragment_8 = root_24();
409
- var node_10 = _$_.first_child_frag(fragment_8);
410
-
411
- _$_.expression(node_10, () => _$_.tsrx_element((__anchor, __block) => {
412
- var fragment_9 = root_25();
413
- var node_8 = _$_.first_child_frag(fragment_9);
414
-
415
- _$_.render_component(OuterContent, node_8, {});
391
+ var fragment_6 = root_22();
392
+ var node_6 = _$_.first_child_frag(fragment_6);
416
393
 
417
- var node_9 = _$_.sibling(node_8);
394
+ _$_.render_component(OuterContent, node_6, {});
418
395
 
419
- _$_.try(
420
- node_9,
421
- (__anchor) => {
422
- _$_.render_component(InnerContent, __anchor, {});
423
- },
424
- null,
425
- (__anchor) => {
426
- var p_12 = root_26();
396
+ var node_7 = _$_.sibling(node_6);
427
397
 
428
- _$_.append(__anchor, p_12);
429
- }
430
- );
398
+ _$_.try(
399
+ node_7,
400
+ (__anchor) => {
401
+ _$_.render_component(InnerContent, __anchor, {});
402
+ },
403
+ null,
404
+ (__anchor) => {
405
+ var p_12 = root_23();
431
406
 
432
- _$_.append(__anchor, fragment_9);
433
- }));
407
+ _$_.append(__anchor, p_12);
408
+ }
409
+ );
434
410
 
435
- _$_.append(__anchor, fragment_8);
411
+ _$_.append(__anchor, fragment_6);
436
412
  },
437
413
  null,
438
414
  (__anchor) => {
439
- var p_13 = root_27();
415
+ var p_13 = root_24();
440
416
 
441
417
  _$_.append(__anchor, p_13);
442
418
  },
@@ -131,7 +131,7 @@ export function Greeting(props) {
131
131
  _$_.regular_block(() => {
132
132
  let __out = '';
133
133
 
134
- __out += '<div>' + _$_.escape('Hello ' + String(props.name ?? '')) + '</div>';
134
+ __out += '<div>' + _$_.escape('Hello ' + props.name) + '</div>';
135
135
  _$_.output_push(__out);
136
136
  });
137
137
  });
@@ -215,7 +215,15 @@ export function NestedTsxTsrxExpressionValues() {
215
215
  __out += '<div class="nested-expression-values"><!--[-->';
216
216
 
217
217
  for (const item of [1, 2, 3]) {
218
- __out += '<div class="app-item">' + _$_.escape(item) + '</div>';
218
+ __out += '<div class="app-item">';
219
+
220
+ {
221
+ _$_.output_push(__out);
222
+ __out = '';
223
+ _$_.render_expression(item);
224
+ }
225
+
226
+ __out += '</div>';
219
227
  }
220
228
 
221
229
  __out += '<!--]-->';
@@ -903,4 +911,115 @@ export function NestedComponentAsLastSibling() {
903
911
  _$_.output_push(__out);
904
912
  });
905
913
  });
914
+ }
915
+
916
+ function fetchLabel() {
917
+ return 'fetched';
918
+ }
919
+
920
+ export function TextTailExpression() {
921
+ return _$_.tsrx_element(() => {
922
+ _$_.regular_block(() => {
923
+ let __out = '';
924
+
925
+ __out += '<div>' + _$_.escape("label: " + String(fetchLabel())) + '</div>';
926
+ _$_.output_push(__out);
927
+ });
928
+ });
929
+ }
930
+
931
+ export function FragmentTailExpression() {
932
+ return _$_.tsrx_element(() => {
933
+ _$_.regular_block(() => {
934
+ let __out = '';
935
+
936
+ __out += '<div>' + _$_.escape('frag-' + String(fetchLabel())) + '</div>';
937
+ _$_.output_push(__out);
938
+ });
939
+ });
940
+ }
941
+
942
+ export function FragmentChildOnly() {
943
+ return _$_.tsrx_element(() => {
944
+ _$_.regular_block(() => {
945
+ let __out = '';
946
+
947
+ __out += '<div>frag-<span>tail</span></div>';
948
+ _$_.output_push(__out);
949
+ });
950
+ });
951
+ }
952
+
953
+ function OpaqueLead(props) {
954
+ return _$_.tsrx_element(() => {
955
+ _$_.regular_block(() => {
956
+ let __out = '';
957
+
958
+ __out += '<!--[-->';
959
+ _$_.output_push(__out);
960
+ __out = '';
961
+ _$_.render_expression(props.header);
962
+ __out += '<p>after-opaque</p><!--]-->';
963
+ _$_.output_push(__out);
964
+ });
965
+ });
966
+ }
967
+
968
+ export function FragmentLeadsWithOpaqueValue() {
969
+ return _$_.tsrx_element(() => {
970
+ _$_.regular_block(() => {
971
+ let __out = '';
972
+
973
+ __out += '<div>';
974
+
975
+ {
976
+ {
977
+ const comp = OpaqueLead;
978
+ const args = [{ header: 'H' }];
979
+
980
+ _$_.output_push(__out);
981
+ __out = '';
982
+ _$_.render_component(comp, ...args);
983
+ }
984
+ }
985
+
986
+ __out += '</div>';
987
+ _$_.output_push(__out);
988
+ });
989
+ });
990
+ }
991
+
992
+ function PrimitiveCallLead() {
993
+ return _$_.tsrx_element(() => {
994
+ _$_.regular_block(() => {
995
+ let __out = '';
996
+
997
+ __out += _$_.escape(String(fetchLabel())) + '<p>after-call</p>';
998
+ _$_.output_push(__out);
999
+ });
1000
+ });
1001
+ }
1002
+
1003
+ export function FragmentLeadsWithPrimitiveCall() {
1004
+ return _$_.tsrx_element(() => {
1005
+ _$_.regular_block(() => {
1006
+ let __out = '';
1007
+
1008
+ __out += '<div>';
1009
+
1010
+ {
1011
+ {
1012
+ const comp = PrimitiveCallLead;
1013
+ const args = [{}];
1014
+
1015
+ _$_.output_push(__out);
1016
+ __out = '';
1017
+ _$_.render_component(comp, ...args);
1018
+ }
1019
+ }
1020
+
1021
+ __out += '</div>';
1022
+ _$_.output_push(__out);
1023
+ });
1024
+ });
906
1025
  }
@@ -10,7 +10,15 @@ export function ClickCounter() {
10
10
  _$_.regular_block(() => {
11
11
  let __out = '';
12
12
 
13
- __out += '<div><button class="increment">Increment</button><span class="count">' + _$_.escape(lazy.value) + '</span></div>';
13
+ __out += '<div><button class="increment">Increment</button><span class="count">';
14
+
15
+ {
16
+ _$_.output_push(__out);
17
+ __out = '';
18
+ _$_.render_expression(lazy.value);
19
+ }
20
+
21
+ __out += '</span></div>';
14
22
  _$_.output_push(__out);
15
23
  });
16
24
  });
@@ -23,7 +31,15 @@ export function IncrementDecrement() {
23
31
  _$_.regular_block(() => {
24
32
  let __out = '';
25
33
 
26
- __out += '<div><button class="decrement">-</button><span class="count">' + _$_.escape(lazy_1.value) + '</span><button class="increment">+</button></div>';
34
+ __out += '<div><button class="decrement">-</button><span class="count">';
35
+
36
+ {
37
+ _$_.output_push(__out);
38
+ __out = '';
39
+ _$_.render_expression(lazy_1.value);
40
+ }
41
+
42
+ __out += '</span><button class="increment">+</button></div>';
27
43
  _$_.output_push(__out);
28
44
  });
29
45
  });
@@ -37,7 +53,23 @@ export function MultipleEvents() {
37
53
  _$_.regular_block(() => {
38
54
  let __out = '';
39
55
 
40
- __out += '<div><button class="target">Target</button><span class="clicks">' + _$_.escape(lazy_2.value) + '</span><span class="hovers">' + _$_.escape(lazy_3.value) + '</span></div>';
56
+ __out += '<div><button class="target">Target</button><span class="clicks">';
57
+
58
+ {
59
+ _$_.output_push(__out);
60
+ __out = '';
61
+ _$_.render_expression(lazy_2.value);
62
+ }
63
+
64
+ __out += '</span><span class="hovers">';
65
+
66
+ {
67
+ _$_.output_push(__out);
68
+ __out = '';
69
+ _$_.render_expression(lazy_3.value);
70
+ }
71
+
72
+ __out += '</span></div>';
41
73
  _$_.output_push(__out);
42
74
  });
43
75
  });
@@ -56,7 +88,23 @@ export function MultiStateUpdate() {
56
88
  _$_.regular_block(() => {
57
89
  let __out = '';
58
90
 
59
- __out += '<div><button class="btn">Click</button><span class="count">' + _$_.escape(lazy_4.value) + '</span><span class="action">' + _$_.escape(lazy_5.value) + '</span></div>';
91
+ __out += '<div><button class="btn">Click</button><span class="count">';
92
+
93
+ {
94
+ _$_.output_push(__out);
95
+ __out = '';
96
+ _$_.render_expression(lazy_4.value);
97
+ }
98
+
99
+ __out += '</span><span class="action">';
100
+
101
+ {
102
+ _$_.output_push(__out);
103
+ __out = '';
104
+ _$_.render_expression(lazy_5.value);
105
+ }
106
+
107
+ __out += '</span></div>';
60
108
  _$_.output_push(__out);
61
109
  });
62
110
  });
@@ -112,7 +160,15 @@ export function ParentWithChildButton() {
112
160
  _$_.render_component(comp, ...args);
113
161
  }
114
162
 
115
- __out += '<span class="count">' + _$_.escape(lazy_7.value) + '</span></div>';
163
+ __out += '<span class="count">';
164
+
165
+ {
166
+ _$_.output_push(__out);
167
+ __out = '';
168
+ _$_.render_expression(lazy_7.value);
169
+ }
170
+
171
+ __out += '</span></div>';
116
172
  _$_.output_push(__out);
117
173
  });
118
174
  });