ripple 0.3.9 → 0.3.10

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 (60) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/package.json +2 -2
  3. package/src/compiler/phases/1-parse/index.js +25 -15
  4. package/src/compiler/phases/2-analyze/index.js +35 -88
  5. package/src/compiler/phases/2-analyze/prune.js +13 -5
  6. package/src/compiler/phases/3-transform/client/index.js +188 -56
  7. package/src/compiler/phases/3-transform/server/index.js +62 -40
  8. package/src/compiler/types/index.d.ts +9 -1
  9. package/src/compiler/types/parse.d.ts +2 -0
  10. package/src/compiler/utils.js +101 -1
  11. package/src/runtime/element.js +39 -0
  12. package/src/runtime/internal/client/composite.js +10 -6
  13. package/src/runtime/internal/client/expression.js +218 -0
  14. package/src/runtime/internal/client/index.js +4 -0
  15. package/src/runtime/internal/client/portal.js +12 -6
  16. package/src/runtime/internal/server/index.js +26 -1
  17. package/tests/client/basic/basic.components.test.ripple +85 -87
  18. package/tests/client/basic/basic.errors.test.ripple +4 -8
  19. package/tests/client/basic/basic.rendering.test.ripple +23 -8
  20. package/tests/client/capture-error.js +12 -0
  21. package/tests/client/compiler/compiler.basic.test.ripple +76 -6
  22. package/tests/client/composite/composite.props.test.ripple +1 -3
  23. package/tests/client/composite/composite.render.test.ripple +45 -13
  24. package/tests/client/css/global-additional-cases.test.ripple +3 -3
  25. package/tests/client/svg.test.ripple +4 -4
  26. package/tests/hydration/basic.test.js +23 -0
  27. package/tests/hydration/compiled/client/basic.js +118 -66
  28. package/tests/hydration/compiled/client/composite.js +90 -37
  29. package/tests/hydration/compiled/client/events.js +18 -18
  30. package/tests/hydration/compiled/client/for.js +62 -62
  31. package/tests/hydration/compiled/client/head.js +10 -10
  32. package/tests/hydration/compiled/client/hmr.js +13 -10
  33. package/tests/hydration/compiled/client/html.js +274 -236
  34. package/tests/hydration/compiled/client/if-children.js +41 -35
  35. package/tests/hydration/compiled/client/if.js +2 -2
  36. package/tests/hydration/compiled/client/mixed-control-flow.js +12 -12
  37. package/tests/hydration/compiled/client/nested-control-flow.js +46 -46
  38. package/tests/hydration/compiled/client/portal.js +8 -8
  39. package/tests/hydration/compiled/client/reactivity.js +14 -14
  40. package/tests/hydration/compiled/client/return.js +2 -2
  41. package/tests/hydration/compiled/client/try.js +4 -4
  42. package/tests/hydration/compiled/server/basic.js +64 -31
  43. package/tests/hydration/compiled/server/composite.js +62 -29
  44. package/tests/hydration/compiled/server/hmr.js +24 -37
  45. package/tests/hydration/compiled/server/html.js +472 -611
  46. package/tests/hydration/compiled/server/if-children.js +77 -103
  47. package/tests/hydration/compiled/server/portal.js +8 -8
  48. package/tests/hydration/components/basic.ripple +15 -5
  49. package/tests/hydration/components/composite.ripple +13 -1
  50. package/tests/hydration/components/hmr.ripple +1 -3
  51. package/tests/hydration/components/html.ripple +13 -35
  52. package/tests/hydration/components/if-children.ripple +4 -8
  53. package/tests/hydration/composite.test.js +11 -0
  54. package/tests/server/basic.attributes.test.ripple +50 -0
  55. package/tests/server/basic.components.test.ripple +22 -28
  56. package/tests/server/basic.test.ripple +12 -0
  57. package/tests/server/compiler.test.ripple +25 -8
  58. package/tests/server/composite.props.test.ripple +1 -3
  59. package/tests/server/style-identifier.test.ripple +2 -4
  60. package/types/index.d.ts +9 -2
@@ -224,13 +224,16 @@ export function HtmlWrapper(__anchor, { children }, __block) {
224
224
  var div_7 = _$_.child(div_6);
225
225
 
226
226
  {
227
- var node_7 = _$_.child(div_7);
227
+ var expression = _$_.child(div_7);
228
228
 
229
- children(node_7, {}, _$_.active_block);
230
229
  _$_.pop(div_7);
231
230
  }
232
231
  }
233
232
 
233
+ _$_.render(() => {
234
+ _$_.expression(expression, () => children);
235
+ });
236
+
234
237
  _$_.append(__anchor, div_6);
235
238
  _$_.pop_component();
236
239
  }
@@ -240,29 +243,29 @@ export function HtmlInChildren(__anchor, _, __block) {
240
243
 
241
244
  const content = '<p><strong>Bold</strong> text</p>';
242
245
  var fragment = root_7();
243
- var node_8 = _$_.first_child_frag(fragment);
246
+ var node_7 = _$_.first_child_frag(fragment);
244
247
 
245
248
  HtmlWrapper(
246
- node_8,
249
+ node_7,
247
250
  {
248
- children(__anchor, _, __block) {
251
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
249
252
  _$_.push_component();
250
253
 
251
254
  var div_8 = root_8();
252
255
 
253
256
  {
254
- var node_9 = _$_.child(div_8);
257
+ var node_8 = _$_.child(div_8);
255
258
 
256
259
  _$_.pop(div_8);
257
260
  }
258
261
 
259
262
  _$_.render(() => {
260
- _$_.html(node_9, () => content);
263
+ _$_.html(node_8, () => content);
261
264
  });
262
265
 
263
266
  _$_.append(__anchor, div_8);
264
267
  _$_.pop_component();
265
- }
268
+ })
266
269
  },
267
270
  _$_.active_block
268
271
  );
@@ -276,12 +279,12 @@ export function HtmlInChildrenWithSiblings(__anchor, _, __block) {
276
279
 
277
280
  const content = '<p>Dynamic content</p>';
278
281
  var fragment_1 = root_9();
279
- var node_10 = _$_.first_child_frag(fragment_1);
282
+ var node_9 = _$_.first_child_frag(fragment_1);
280
283
 
281
284
  HtmlWrapper(
282
- node_10,
285
+ node_9,
283
286
  {
284
- children(__anchor, _, __block) {
287
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
285
288
  _$_.push_component();
286
289
 
287
290
  var fragment_2 = root_10();
@@ -289,7 +292,7 @@ export function HtmlInChildrenWithSiblings(__anchor, _, __block) {
289
292
  var div_9 = _$_.sibling(h1_1);
290
293
 
291
294
  {
292
- var node_11 = _$_.child(div_9);
295
+ var node_10 = _$_.child(div_9);
293
296
 
294
297
  _$_.pop(div_9);
295
298
  }
@@ -297,12 +300,12 @@ export function HtmlInChildrenWithSiblings(__anchor, _, __block) {
297
300
  _$_.next();
298
301
 
299
302
  _$_.render(() => {
300
- _$_.html(node_11, () => content);
303
+ _$_.html(node_10, () => content);
301
304
  });
302
305
 
303
306
  _$_.append(__anchor, fragment_2, true);
304
307
  _$_.pop_component();
305
- }
308
+ })
306
309
  },
307
310
  _$_.active_block
308
311
  );
@@ -317,34 +320,34 @@ export function MultipleHtmlInChildren(__anchor, _, __block) {
317
320
  const html1 = '<p>First</p>';
318
321
  const html2 = '<p>Second</p>';
319
322
  var fragment_3 = root_11();
320
- var node_12 = _$_.first_child_frag(fragment_3);
323
+ var node_11 = _$_.first_child_frag(fragment_3);
321
324
 
322
325
  HtmlWrapper(
323
- node_12,
326
+ node_11,
324
327
  {
325
- children(__anchor, _, __block) {
328
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
326
329
  _$_.push_component();
327
330
 
328
331
  var div_10 = root_12();
329
332
 
330
333
  {
331
- var node_13 = _$_.child(div_10);
332
- var node_14 = _$_.sibling(node_13);
334
+ var node_12 = _$_.child(div_10);
335
+ var node_13 = _$_.sibling(node_12);
333
336
 
334
337
  _$_.pop(div_10);
335
338
  }
336
339
 
337
340
  _$_.render(
338
341
  (__prev) => {
339
- _$_.html(node_13, () => html1);
340
- _$_.html(node_14, () => html2);
342
+ _$_.html(node_12, () => html1);
343
+ _$_.html(node_13, () => html2);
341
344
  },
342
345
  {}
343
346
  );
344
347
 
345
348
  _$_.append(__anchor, div_10);
346
349
  _$_.pop_component();
347
- }
350
+ })
348
351
  },
349
352
  _$_.active_block
350
353
  );
@@ -360,13 +363,13 @@ export function HtmlWithComments(__anchor, _, __block) {
360
363
  var div_11 = root_13();
361
364
 
362
365
  {
363
- var node_15 = _$_.child(div_11);
366
+ var node_14 = _$_.child(div_11);
364
367
 
365
368
  _$_.pop(div_11);
366
369
  }
367
370
 
368
371
  _$_.render(() => {
369
- _$_.html(node_15, () => content);
372
+ _$_.html(node_14, () => content);
370
373
  });
371
374
 
372
375
  _$_.append(__anchor, div_11);
@@ -380,13 +383,13 @@ export function HtmlWithEmptyComment(__anchor, _, __block) {
380
383
  var div_12 = root_14();
381
384
 
382
385
  {
383
- var node_16 = _$_.child(div_12);
386
+ var node_15 = _$_.child(div_12);
384
387
 
385
388
  _$_.pop(div_12);
386
389
  }
387
390
 
388
391
  _$_.render(() => {
389
- _$_.html(node_16, () => content);
392
+ _$_.html(node_15, () => content);
390
393
  });
391
394
 
392
395
  _$_.append(__anchor, div_12);
@@ -398,29 +401,29 @@ export function HtmlWithCommentsInChildren(__anchor, _, __block) {
398
401
 
399
402
  const content = '<h2 id="intro">Introduction</h2><p>Some text</p><!-- TODO --><p>More text</p>';
400
403
  var fragment_4 = root_15();
401
- var node_17 = _$_.first_child_frag(fragment_4);
404
+ var node_16 = _$_.first_child_frag(fragment_4);
402
405
 
403
406
  HtmlWrapper(
404
- node_17,
407
+ node_16,
405
408
  {
406
- children(__anchor, _, __block) {
409
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
407
410
  _$_.push_component();
408
411
 
409
412
  var div_13 = root_16();
410
413
 
411
414
  {
412
- var node_18 = _$_.child(div_13);
415
+ var node_17 = _$_.child(div_13);
413
416
 
414
417
  _$_.pop(div_13);
415
418
  }
416
419
 
417
420
  _$_.render(() => {
418
- _$_.html(node_18, () => content);
421
+ _$_.html(node_17, () => content);
419
422
  });
420
423
 
421
424
  _$_.append(__anchor, div_13);
422
425
  _$_.pop_component();
423
- }
426
+ })
424
427
  },
425
428
  _$_.active_block
426
429
  );
@@ -457,16 +460,15 @@ export function DocLayout(
457
460
  var div_15 = _$_.child(article_1);
458
461
 
459
462
  {
460
- var node_19 = _$_.child(div_15);
463
+ var expression_1 = _$_.child(div_15);
461
464
 
462
- children(node_19, {}, _$_.active_block);
463
465
  _$_.pop(div_15);
464
466
  }
465
467
  }
466
468
 
467
469
  _$_.pop(article_1);
468
470
 
469
- var node_20 = _$_.sibling(article_1);
471
+ var node_18 = _$_.sibling(article_1);
470
472
 
471
473
  {
472
474
  var consequent = (__anchor) => {
@@ -481,12 +483,12 @@ export function DocLayout(
481
483
  _$_.append(__anchor, div_17);
482
484
  };
483
485
 
484
- _$_.if(node_20, (__render) => {
486
+ _$_.if(node_18, (__render) => {
485
487
  if (editPath) __render(consequent);
486
488
  });
487
489
  }
488
490
 
489
- var node_21 = _$_.sibling(node_20);
491
+ var node_19 = _$_.sibling(node_18);
490
492
 
491
493
  {
492
494
  var consequent_1 = (__anchor) => {
@@ -496,7 +498,7 @@ export function DocLayout(
496
498
  var a_2 = _$_.child(nav_1);
497
499
 
498
500
  {
499
- var text_1 = _$_.child(a_2, true);
501
+ var expression_2 = _$_.child(a_2, true);
500
502
 
501
503
  _$_.pop(a_2);
502
504
  }
@@ -507,7 +509,7 @@ export function DocLayout(
507
509
  var __a = nextLink.text;
508
510
 
509
511
  if (__prev.a !== __a) {
510
- _$_.set_text(text_1, __prev.a = __a);
512
+ _$_.set_text(expression_2, __prev.a = __a);
511
513
  }
512
514
 
513
515
  var __b = nextLink.href;
@@ -522,21 +524,21 @@ export function DocLayout(
522
524
  _$_.append(__anchor, nav_1);
523
525
  };
524
526
 
525
- _$_.if(node_21, (__render) => {
527
+ _$_.if(node_19, (__render) => {
526
528
  if (nextLink) __render(consequent_1);
527
529
  });
528
530
  }
529
531
 
530
- var node_22 = _$_.sibling(node_21);
532
+ var node_20 = _$_.sibling(node_19);
531
533
 
532
- DocFooter(node_22, {}, _$_.active_block);
534
+ DocFooter(node_20, {}, _$_.active_block);
533
535
  _$_.pop(div_16);
534
536
  }
535
537
 
536
538
  var aside_1 = _$_.sibling(div_16);
537
539
 
538
540
  {
539
- var node_23 = _$_.child(aside_1);
541
+ var node_21 = _$_.child(aside_1);
540
542
 
541
543
  {
542
544
  var consequent_2 = (__anchor) => {
@@ -556,7 +558,7 @@ export function DocLayout(
556
558
  var a_3 = _$_.child(li_1);
557
559
 
558
560
  {
559
- var text_2 = _$_.child(a_3, true);
561
+ var expression_3 = _$_.child(a_3, true);
560
562
 
561
563
  _$_.pop(a_3);
562
564
  }
@@ -567,7 +569,7 @@ export function DocLayout(
567
569
  var __a = item.text;
568
570
 
569
571
  if (__prev.a !== __a) {
570
- _$_.set_text(text_2, __prev.a = __a);
572
+ _$_.set_text(expression_3, __prev.a = __a);
571
573
  }
572
574
 
573
575
  var __b = item.href;
@@ -591,7 +593,7 @@ export function DocLayout(
591
593
  _$_.append(__anchor, div_18);
592
594
  };
593
595
 
594
- _$_.if(node_23, (__render) => {
596
+ _$_.if(node_21, (__render) => {
595
597
  if (toc.length > 0) __render(consequent_2);
596
598
  });
597
599
  }
@@ -600,6 +602,10 @@ export function DocLayout(
600
602
  }
601
603
  }
602
604
 
605
+ _$_.render(() => {
606
+ _$_.expression(expression_1, () => children);
607
+ });
608
+
603
609
  _$_.append(__anchor, div_14);
604
610
  _$_.pop_component();
605
611
  }
@@ -609,10 +615,10 @@ export function HtmlWithServerData(__anchor, _, __block) {
609
615
 
610
616
  const content = '<h1 id="intro" class="doc-h1">Introduction</h1><p>Ripple is a framework.</p>';
611
617
  var fragment_5 = root_23();
612
- var node_24 = _$_.first_child_frag(fragment_5);
618
+ var node_22 = _$_.first_child_frag(fragment_5);
613
619
 
614
620
  DocLayout(
615
- node_24,
621
+ node_22,
616
622
  {
617
623
  editPath: "docs/introduction.md",
618
624
  nextLink: { href: '/docs/quick-start', text: 'Quick Start' },
@@ -621,24 +627,24 @@ export function HtmlWithServerData(__anchor, _, __block) {
621
627
  { href: '#features', text: 'Features' }
622
628
  ],
623
629
 
624
- children(__anchor, _, __block) {
630
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
625
631
  _$_.push_component();
626
632
 
627
633
  var div_19 = root_24();
628
634
 
629
635
  {
630
- var node_25 = _$_.child(div_19);
636
+ var node_23 = _$_.child(div_19);
631
637
 
632
638
  _$_.pop(div_19);
633
639
  }
634
640
 
635
641
  _$_.render(() => {
636
- _$_.html(node_25, () => content);
642
+ _$_.html(node_23, () => content);
637
643
  });
638
644
 
639
645
  _$_.append(__anchor, div_19);
640
646
  _$_.pop_component();
641
- }
647
+ })
642
648
  },
643
649
  _$_.active_block
644
650
  );
@@ -652,29 +658,29 @@ export function HtmlWithClientDefaults(__anchor, _, __block) {
652
658
 
653
659
  const content = '<h1 id="intro" class="doc-h1">Introduction</h1><p>Ripple is a framework.</p>';
654
660
  var fragment_6 = root_25();
655
- var node_26 = _$_.first_child_frag(fragment_6);
661
+ var node_24 = _$_.first_child_frag(fragment_6);
656
662
 
657
663
  DocLayout(
658
- node_26,
664
+ node_24,
659
665
  {
660
- children(__anchor, _, __block) {
666
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
661
667
  _$_.push_component();
662
668
 
663
669
  var div_20 = root_26();
664
670
 
665
671
  {
666
- var node_27 = _$_.child(div_20);
672
+ var node_25 = _$_.child(div_20);
667
673
 
668
674
  _$_.pop(div_20);
669
675
  }
670
676
 
671
677
  _$_.render(() => {
672
- _$_.html(node_27, () => content);
678
+ _$_.html(node_25, () => content);
673
679
  });
674
680
 
675
681
  _$_.append(__anchor, div_20);
676
682
  _$_.pop_component();
677
- }
683
+ })
678
684
  },
679
685
  _$_.active_block
680
686
  );
@@ -688,29 +694,29 @@ export function HtmlWithUndefinedContent(__anchor, _, __block) {
688
694
 
689
695
  const content = undefined;
690
696
  var fragment_7 = root_27();
691
- var node_28 = _$_.first_child_frag(fragment_7);
697
+ var node_26 = _$_.first_child_frag(fragment_7);
692
698
 
693
699
  DocLayout(
694
- node_28,
700
+ node_26,
695
701
  {
696
- children(__anchor, _, __block) {
702
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
697
703
  _$_.push_component();
698
704
 
699
705
  var div_21 = root_28();
700
706
 
701
707
  {
702
- var node_29 = _$_.child(div_21);
708
+ var node_27 = _$_.child(div_21);
703
709
 
704
710
  _$_.pop(div_21);
705
711
  }
706
712
 
707
713
  _$_.render(() => {
708
- _$_.html(node_29, () => content);
714
+ _$_.html(node_27, () => content);
709
715
  });
710
716
 
711
717
  _$_.append(__anchor, div_21);
712
718
  _$_.pop_component();
713
- }
719
+ })
714
720
  },
715
721
  _$_.active_block
716
722
  );
@@ -723,19 +729,22 @@ function DynamicHeading(__anchor, { level, children }, __block) {
723
729
  _$_.push_component();
724
730
 
725
731
  var fragment_8 = root_29();
726
- var node_30 = _$_.first_child_frag(fragment_8);
732
+ var node_28 = _$_.first_child_frag(fragment_8);
727
733
 
728
734
  {
729
735
  var switch_case_0 = (__anchor) => {
730
736
  var h1_2 = root_30();
731
737
 
732
738
  {
733
- var node_31 = _$_.child(h1_2);
739
+ var expression_4 = _$_.child(h1_2);
734
740
 
735
- children(node_31, {}, _$_.active_block);
736
741
  _$_.pop(h1_2);
737
742
  }
738
743
 
744
+ _$_.render(() => {
745
+ _$_.expression(expression_4, () => children);
746
+ });
747
+
739
748
  _$_.append(__anchor, h1_2);
740
749
  };
741
750
 
@@ -743,16 +752,19 @@ function DynamicHeading(__anchor, { level, children }, __block) {
743
752
  var h2_1 = root_31();
744
753
 
745
754
  {
746
- var node_32 = _$_.child(h2_1);
755
+ var expression_5 = _$_.child(h2_1);
747
756
 
748
- children(node_32, {}, _$_.active_block);
749
757
  _$_.pop(h2_1);
750
758
  }
751
759
 
760
+ _$_.render(() => {
761
+ _$_.expression(expression_5, () => children);
762
+ });
763
+
752
764
  _$_.append(__anchor, h2_1);
753
765
  };
754
766
 
755
- _$_.switch(node_30, () => {
767
+ _$_.switch(node_28, () => {
756
768
  var result = [];
757
769
 
758
770
  switch (level) {
@@ -784,14 +796,14 @@ function CodeBlock(__anchor, { code }, __block) {
784
796
  var div_24 = _$_.sibling(div_23);
785
797
 
786
798
  {
787
- var node_33 = _$_.child(div_24);
799
+ var node_29 = _$_.child(div_24);
788
800
 
789
801
  _$_.pop(div_24);
790
802
  }
791
803
  }
792
804
 
793
805
  _$_.render(() => {
794
- _$_.html(node_33, () => highlighted);
806
+ _$_.html(node_29, () => highlighted);
795
807
  });
796
808
 
797
809
  _$_.append(__anchor, div_22);
@@ -807,13 +819,16 @@ function ContentWrapper(__anchor, { children }, __block) {
807
819
  var div_26 = _$_.child(div_25);
808
820
 
809
821
  {
810
- var node_34 = _$_.child(div_26);
822
+ var expression_6 = _$_.child(div_26);
811
823
 
812
- children(node_34, {}, _$_.active_block);
813
824
  _$_.pop(div_26);
814
825
  }
815
826
  }
816
827
 
828
+ _$_.render(() => {
829
+ _$_.expression(expression_6, () => children);
830
+ });
831
+
817
832
  _$_.append(__anchor, div_25);
818
833
  _$_.pop_component();
819
834
  }
@@ -822,41 +837,41 @@ export function HtmlAfterSwitchInChildren(__anchor, _, __block) {
822
837
  _$_.push_component();
823
838
 
824
839
  var fragment_9 = root_34();
825
- var node_35 = _$_.first_child_frag(fragment_9);
840
+ var node_30 = _$_.first_child_frag(fragment_9);
826
841
 
827
842
  ContentWrapper(
828
- node_35,
843
+ node_30,
829
844
  {
830
- children(__anchor, _, __block) {
845
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
831
846
  _$_.push_component();
832
847
 
833
848
  var fragment_10 = root_35();
834
- var node_36 = _$_.first_child_frag(fragment_10);
849
+ var node_31 = _$_.first_child_frag(fragment_10);
835
850
 
836
851
  DynamicHeading(
837
- node_36,
852
+ node_31,
838
853
  {
839
854
  level: 1,
840
- children(__anchor, _, __block) {
855
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
841
856
  _$_.push_component();
842
857
 
843
- var text_3 = _$_.text('Title');
858
+ var expression_7 = _$_.text('Title');
844
859
 
845
- _$_.append(__anchor, text_3);
860
+ _$_.append(__anchor, expression_7);
846
861
  _$_.pop_component();
847
- }
862
+ })
848
863
  },
849
864
  _$_.active_block
850
865
  );
851
866
 
852
- var p_2 = _$_.sibling(node_36);
867
+ var p_2 = _$_.sibling(node_31);
853
868
  var p_1 = _$_.sibling(p_2);
854
- var node_37 = _$_.sibling(p_1);
869
+ var node_32 = _$_.sibling(p_1);
855
870
 
856
- CodeBlock(node_37, { code: "const x = 1;" }, _$_.active_block);
871
+ CodeBlock(node_32, { code: "const x = 1;" }, _$_.active_block);
857
872
  _$_.append(__anchor, fragment_10);
858
873
  _$_.pop_component();
859
- }
874
+ })
860
875
  },
861
876
  _$_.active_block
862
877
  );
@@ -865,7 +880,7 @@ export function HtmlAfterSwitchInChildren(__anchor, _, __block) {
865
880
  _$_.pop_component();
866
881
  }
867
882
 
868
- function NavItem(__anchor, { href, text, active = false }, __block) {
883
+ function NavItem(__anchor, { href, text: label, active = false }, __block) {
869
884
  _$_.push_component();
870
885
 
871
886
  var div_27 = root_36();
@@ -873,7 +888,7 @@ function NavItem(__anchor, { href, text, active = false }, __block) {
873
888
  _$_.set_class(div_27, `nav-item${active ? ' active' : ''}`, void 0, true);
874
889
 
875
890
  {
876
- var node_38 = _$_.child(div_27);
891
+ var node_33 = _$_.child(div_27);
877
892
 
878
893
  {
879
894
  var consequent_3 = (__anchor) => {
@@ -882,12 +897,12 @@ function NavItem(__anchor, { href, text, active = false }, __block) {
882
897
  _$_.append(__anchor, div_28);
883
898
  };
884
899
 
885
- _$_.if(node_38, (__render) => {
900
+ _$_.if(node_33, (__render) => {
886
901
  if (active) __render(consequent_3);
887
902
  });
888
903
  }
889
904
 
890
- var a_4 = _$_.sibling(node_38);
905
+ var a_4 = _$_.sibling(node_33);
891
906
 
892
907
  _$_.set_attribute(a_4, 'href', href);
893
908
 
@@ -895,9 +910,9 @@ function NavItem(__anchor, { href, text, active = false }, __block) {
895
910
  var span_1 = _$_.child(a_4);
896
911
 
897
912
  {
898
- var text_4 = _$_.child(span_1, true);
913
+ var expression_8 = _$_.child(span_1, true);
899
914
 
900
- text_4.nodeValue = text;
915
+ expression_8.nodeValue = label;
901
916
  _$_.pop(span_1);
902
917
  }
903
918
  }
@@ -922,9 +937,9 @@ function SidebarSection(__anchor, { title, children }, __block) {
922
937
  var h2_2 = _$_.child(div_29);
923
938
 
924
939
  {
925
- var text_5 = _$_.child(h2_2, true);
940
+ var expression_9 = _$_.child(h2_2, true);
926
941
 
927
- text_5.nodeValue = title;
942
+ expression_9.nodeValue = title;
928
943
  _$_.pop(h2_2);
929
944
  }
930
945
 
@@ -935,23 +950,26 @@ function SidebarSection(__anchor, { title, children }, __block) {
935
950
 
936
951
  _$_.pop(div_29);
937
952
 
938
- var node_39 = _$_.sibling(div_29);
953
+ var node_34 = _$_.sibling(div_29);
939
954
 
940
955
  {
941
956
  var consequent_4 = (__anchor) => {
942
957
  var div_30 = root_39();
943
958
 
944
959
  {
945
- var node_40 = _$_.child(div_30);
960
+ var expression_10 = _$_.child(div_30);
946
961
 
947
- children(node_40, {}, _$_.active_block);
948
962
  _$_.pop(div_30);
949
963
  }
950
964
 
965
+ _$_.render(() => {
966
+ _$_.expression(expression_10, () => children);
967
+ });
968
+
951
969
  _$_.append(__anchor, div_30);
952
970
  };
953
971
 
954
- _$_.if(node_39, (__render) => {
972
+ _$_.if(node_34, (__render) => {
955
973
  if (_$_.get(lazy)) __render(consequent_4);
956
974
  });
957
975
  }
@@ -975,20 +993,20 @@ function SideNav(__anchor, { currentPath }, __block) {
975
993
  var div_31 = _$_.child(nav_2);
976
994
 
977
995
  {
978
- var node_41 = _$_.child(div_31);
996
+ var node_35 = _$_.child(div_31);
979
997
 
980
998
  SidebarSection(
981
- node_41,
999
+ node_35,
982
1000
  {
983
1001
  title: "Getting Started",
984
- children(__anchor, _, __block) {
1002
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
985
1003
  _$_.push_component();
986
1004
 
987
1005
  var fragment_11 = root_41();
988
- var node_42 = _$_.first_child_frag(fragment_11);
1006
+ var node_36 = _$_.first_child_frag(fragment_11);
989
1007
 
990
1008
  NavItem(
991
- node_42,
1009
+ node_36,
992
1010
  {
993
1011
  href: "/intro",
994
1012
  text: "Introduction",
@@ -997,10 +1015,10 @@ function SideNav(__anchor, { currentPath }, __block) {
997
1015
  _$_.active_block
998
1016
  );
999
1017
 
1000
- var node_43 = _$_.sibling(node_42);
1018
+ var node_37 = _$_.sibling(node_36);
1001
1019
 
1002
1020
  NavItem(
1003
- node_43,
1021
+ node_37,
1004
1022
  {
1005
1023
  href: "/start",
1006
1024
  text: "Quick Start",
@@ -1011,7 +1029,7 @@ function SideNav(__anchor, { currentPath }, __block) {
1011
1029
 
1012
1030
  _$_.append(__anchor, fragment_11);
1013
1031
  _$_.pop_component();
1014
- }
1032
+ })
1015
1033
  },
1016
1034
  _$_.active_block
1017
1035
  );
@@ -1022,20 +1040,20 @@ function SideNav(__anchor, { currentPath }, __block) {
1022
1040
  var div_32 = _$_.sibling(div_31);
1023
1041
 
1024
1042
  {
1025
- var node_44 = _$_.child(div_32);
1043
+ var node_38 = _$_.child(div_32);
1026
1044
 
1027
1045
  SidebarSection(
1028
- node_44,
1046
+ node_38,
1029
1047
  {
1030
1048
  title: "Guide",
1031
- children(__anchor, _, __block) {
1049
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
1032
1050
  _$_.push_component();
1033
1051
 
1034
1052
  var fragment_12 = root_42();
1035
- var node_45 = _$_.first_child_frag(fragment_12);
1053
+ var node_39 = _$_.first_child_frag(fragment_12);
1036
1054
 
1037
1055
  NavItem(
1038
- node_45,
1056
+ node_39,
1039
1057
  {
1040
1058
  href: "/guide/app",
1041
1059
  text: "Application",
@@ -1044,10 +1062,10 @@ function SideNav(__anchor, { currentPath }, __block) {
1044
1062
  _$_.active_block
1045
1063
  );
1046
1064
 
1047
- var node_46 = _$_.sibling(node_45);
1065
+ var node_40 = _$_.sibling(node_39);
1048
1066
 
1049
1067
  NavItem(
1050
- node_46,
1068
+ node_40,
1051
1069
  {
1052
1070
  href: "/guide/syntax",
1053
1071
  text: "Syntax",
@@ -1058,7 +1076,7 @@ function SideNav(__anchor, { currentPath }, __block) {
1058
1076
 
1059
1077
  _$_.append(__anchor, fragment_12);
1060
1078
  _$_.pop_component();
1061
- }
1079
+ })
1062
1080
  },
1063
1081
  _$_.active_block
1064
1082
  );
@@ -1087,25 +1105,25 @@ export function LayoutWithSidebarAndMain(__anchor, _, __block) {
1087
1105
  var div_33 = root_44();
1088
1106
 
1089
1107
  {
1090
- var node_47 = _$_.child(div_33);
1108
+ var node_41 = _$_.child(div_33);
1091
1109
 
1092
- PageHeader(node_47, {}, _$_.active_block);
1110
+ PageHeader(node_41, {}, _$_.active_block);
1093
1111
 
1094
- var div_34 = _$_.sibling(node_47);
1112
+ var div_34 = _$_.sibling(node_41);
1095
1113
 
1096
1114
  {
1097
- var node_48 = _$_.child(div_34);
1115
+ var node_42 = _$_.child(div_34);
1098
1116
 
1099
- SideNav(node_48, { currentPath: "/intro" }, _$_.active_block);
1117
+ SideNav(node_42, { currentPath: "/intro" }, _$_.active_block);
1100
1118
 
1101
- var main_1 = _$_.sibling(node_48);
1119
+ var main_1 = _$_.sibling(node_42);
1102
1120
 
1103
1121
  {
1104
1122
  var div_35 = _$_.child(main_1);
1105
1123
 
1106
1124
  _$_.pop(div_35);
1107
1125
 
1108
- var node_49 = _$_.sibling(div_35);
1126
+ var node_43 = _$_.sibling(div_35);
1109
1127
 
1110
1128
  {
1111
1129
  var consequent_5 = (__anchor) => {
@@ -1114,14 +1132,14 @@ export function LayoutWithSidebarAndMain(__anchor, _, __block) {
1114
1132
  _$_.append(__anchor, div_36);
1115
1133
  };
1116
1134
 
1117
- _$_.if(node_49, (__render) => {
1135
+ _$_.if(node_43, (__render) => {
1118
1136
  if (true) __render(consequent_5);
1119
1137
  });
1120
1138
  }
1121
1139
 
1122
- var node_50 = _$_.sibling(node_49);
1140
+ var node_44 = _$_.sibling(node_43);
1123
1141
 
1124
- PageHeader(node_50, {}, _$_.active_block);
1142
+ PageHeader(node_44, {}, _$_.active_block);
1125
1143
  _$_.pop(main_1);
1126
1144
  }
1127
1145
 
@@ -1144,13 +1162,16 @@ function ArticleWrapper(__anchor, { children }, __block) {
1144
1162
  var div_37 = _$_.child(article_2);
1145
1163
 
1146
1164
  {
1147
- var node_51 = _$_.child(div_37);
1165
+ var expression_11 = _$_.child(div_37);
1148
1166
 
1149
- children(node_51, {}, _$_.active_block);
1150
1167
  _$_.pop(div_37);
1151
1168
  }
1152
1169
  }
1153
1170
 
1171
+ _$_.render(() => {
1172
+ _$_.expression(expression_11, () => children);
1173
+ });
1174
+
1154
1175
  _$_.append(__anchor, article_2);
1155
1176
  _$_.pop_component();
1156
1177
  }
@@ -1170,24 +1191,24 @@ export function ArticleWithChildrenThenSibling(__anchor, _, __block) {
1170
1191
  var div_38 = root_48();
1171
1192
 
1172
1193
  {
1173
- var node_52 = _$_.child(div_38);
1194
+ var node_45 = _$_.child(div_38);
1174
1195
 
1175
1196
  ArticleWrapper(
1176
- node_52,
1197
+ node_45,
1177
1198
  {
1178
- children(__anchor, _, __block) {
1199
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
1179
1200
  _$_.push_component();
1180
1201
 
1181
1202
  var fragment_13 = root_49();
1182
1203
 
1183
1204
  _$_.append(__anchor, fragment_13);
1184
1205
  _$_.pop_component();
1185
- }
1206
+ })
1186
1207
  },
1187
1208
  _$_.active_block
1188
1209
  );
1189
1210
 
1190
- var node_53 = _$_.sibling(node_52);
1211
+ var node_46 = _$_.sibling(node_45);
1191
1212
 
1192
1213
  {
1193
1214
  var consequent_6 = (__anchor) => {
@@ -1196,12 +1217,12 @@ export function ArticleWithChildrenThenSibling(__anchor, _, __block) {
1196
1217
  _$_.append(__anchor, div_39);
1197
1218
  };
1198
1219
 
1199
- _$_.if(node_53, (__render) => {
1220
+ _$_.if(node_46, (__render) => {
1200
1221
  if (true) __render(consequent_6);
1201
1222
  });
1202
1223
  }
1203
1224
 
1204
- var node_54 = _$_.sibling(node_53);
1225
+ var node_47 = _$_.sibling(node_46);
1205
1226
 
1206
1227
  {
1207
1228
  var consequent_7 = (__anchor) => {
@@ -1210,14 +1231,14 @@ export function ArticleWithChildrenThenSibling(__anchor, _, __block) {
1210
1231
  _$_.append(__anchor, nav_3);
1211
1232
  };
1212
1233
 
1213
- _$_.if(node_54, (__render) => {
1234
+ _$_.if(node_47, (__render) => {
1214
1235
  if (true) __render(consequent_7);
1215
1236
  });
1216
1237
  }
1217
1238
 
1218
- var node_55 = _$_.sibling(node_54);
1239
+ var node_48 = _$_.sibling(node_47);
1219
1240
 
1220
- SimpleFooter(node_55, {}, _$_.active_block);
1241
+ SimpleFooter(node_48, {}, _$_.active_block);
1221
1242
  _$_.pop(div_38);
1222
1243
  }
1223
1244
 
@@ -1232,34 +1253,34 @@ export function ArticleWithHtmlChildThenSibling(__anchor, _, __block) {
1232
1253
  var div_40 = root_52();
1233
1254
 
1234
1255
  {
1235
- var node_56 = _$_.child(div_40);
1256
+ var node_49 = _$_.child(div_40);
1236
1257
 
1237
1258
  ArticleWrapper(
1238
- node_56,
1259
+ node_49,
1239
1260
  {
1240
- children(__anchor, _, __block) {
1261
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
1241
1262
  _$_.push_component();
1242
1263
 
1243
1264
  var div_41 = root_53();
1244
1265
 
1245
1266
  {
1246
- var node_57 = _$_.child(div_41);
1267
+ var node_50 = _$_.child(div_41);
1247
1268
 
1248
1269
  _$_.pop(div_41);
1249
1270
  }
1250
1271
 
1251
1272
  _$_.render(() => {
1252
- _$_.html(node_57, () => htmlContent);
1273
+ _$_.html(node_50, () => htmlContent);
1253
1274
  });
1254
1275
 
1255
1276
  _$_.append(__anchor, div_41);
1256
1277
  _$_.pop_component();
1257
- }
1278
+ })
1258
1279
  },
1259
1280
  _$_.active_block
1260
1281
  );
1261
1282
 
1262
- var node_58 = _$_.sibling(node_56);
1283
+ var node_51 = _$_.sibling(node_49);
1263
1284
 
1264
1285
  {
1265
1286
  var consequent_8 = (__anchor) => {
@@ -1268,14 +1289,14 @@ export function ArticleWithHtmlChildThenSibling(__anchor, _, __block) {
1268
1289
  _$_.append(__anchor, div_42);
1269
1290
  };
1270
1291
 
1271
- _$_.if(node_58, (__render) => {
1292
+ _$_.if(node_51, (__render) => {
1272
1293
  if (true) __render(consequent_8);
1273
1294
  });
1274
1295
  }
1275
1296
 
1276
- var node_59 = _$_.sibling(node_58);
1297
+ var node_52 = _$_.sibling(node_51);
1277
1298
 
1278
- SimpleFooter(node_59, {}, _$_.active_block);
1299
+ SimpleFooter(node_52, {}, _$_.active_block);
1279
1300
  _$_.pop(div_40);
1280
1301
  }
1281
1302
 
@@ -1295,16 +1316,15 @@ function InlineArticleLayout(__anchor, { children }, __block) {
1295
1316
  var div_44 = _$_.child(article_3);
1296
1317
 
1297
1318
  {
1298
- var node_60 = _$_.child(div_44);
1319
+ var expression_12 = _$_.child(div_44);
1299
1320
 
1300
- children(node_60, {}, _$_.active_block);
1301
1321
  _$_.pop(div_44);
1302
1322
  }
1303
1323
  }
1304
1324
 
1305
1325
  _$_.pop(article_3);
1306
1326
 
1307
- var node_61 = _$_.sibling(article_3);
1327
+ var node_53 = _$_.sibling(article_3);
1308
1328
 
1309
1329
  {
1310
1330
  var consequent_9 = (__anchor) => {
@@ -1313,17 +1333,21 @@ function InlineArticleLayout(__anchor, { children }, __block) {
1313
1333
  _$_.append(__anchor, div_45);
1314
1334
  };
1315
1335
 
1316
- _$_.if(node_61, (__render) => {
1336
+ _$_.if(node_53, (__render) => {
1317
1337
  if (true) __render(consequent_9);
1318
1338
  });
1319
1339
  }
1320
1340
 
1321
- var node_62 = _$_.sibling(node_61);
1341
+ var node_54 = _$_.sibling(node_53);
1322
1342
 
1323
- SimpleFooter(node_62, {}, _$_.active_block);
1343
+ SimpleFooter(node_54, {}, _$_.active_block);
1324
1344
  _$_.pop(div_43);
1325
1345
  }
1326
1346
 
1347
+ _$_.render(() => {
1348
+ _$_.expression(expression_12, () => children);
1349
+ });
1350
+
1327
1351
  _$_.append(__anchor, div_43);
1328
1352
  _$_.pop_component();
1329
1353
  }
@@ -1333,29 +1357,29 @@ export function InlineArticleWithHtmlChild(__anchor, _, __block) {
1333
1357
 
1334
1358
  const htmlContent = '<pre><code>const x = 1;</code></pre>';
1335
1359
  var fragment_14 = root_57();
1336
- var node_63 = _$_.first_child_frag(fragment_14);
1360
+ var node_55 = _$_.first_child_frag(fragment_14);
1337
1361
 
1338
1362
  InlineArticleLayout(
1339
- node_63,
1363
+ node_55,
1340
1364
  {
1341
- children(__anchor, _, __block) {
1365
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
1342
1366
  _$_.push_component();
1343
1367
 
1344
1368
  var div_46 = root_58();
1345
1369
 
1346
1370
  {
1347
- var node_64 = _$_.child(div_46);
1371
+ var node_56 = _$_.child(div_46);
1348
1372
 
1349
1373
  _$_.pop(div_46);
1350
1374
  }
1351
1375
 
1352
1376
  _$_.render(() => {
1353
- _$_.html(node_64, () => htmlContent);
1377
+ _$_.html(node_56, () => htmlContent);
1354
1378
  });
1355
1379
 
1356
1380
  _$_.append(__anchor, div_46);
1357
1381
  _$_.pop_component();
1358
- }
1382
+ })
1359
1383
  },
1360
1384
  _$_.active_block
1361
1385
  );
@@ -1401,18 +1425,18 @@ function DocsLayoutInner(
1401
1425
  var div_47 = root_62();
1402
1426
 
1403
1427
  {
1404
- var node_65 = _$_.child(div_47);
1428
+ var node_57 = _$_.child(div_47);
1405
1429
 
1406
- HeaderStub(node_65, {}, _$_.active_block);
1430
+ HeaderStub(node_57, {}, _$_.active_block);
1407
1431
 
1408
- var div_48 = _$_.sibling(node_65);
1432
+ var div_48 = _$_.sibling(node_57);
1409
1433
 
1410
1434
  {
1411
- var node_66 = _$_.child(div_48);
1435
+ var node_58 = _$_.child(div_48);
1412
1436
 
1413
- SidebarStub(node_66, {}, _$_.active_block);
1437
+ SidebarStub(node_58, {}, _$_.active_block);
1414
1438
 
1415
- var main_2 = _$_.sibling(node_66);
1439
+ var main_2 = _$_.sibling(node_58);
1416
1440
 
1417
1441
  {
1418
1442
  var div_52 = _$_.child(main_2);
@@ -1430,16 +1454,15 @@ function DocsLayoutInner(
1430
1454
  var div_49 = _$_.child(article_4);
1431
1455
 
1432
1456
  {
1433
- var node_67 = _$_.child(div_49);
1457
+ var expression_13 = _$_.child(div_49);
1434
1458
 
1435
- children(node_67, {}, _$_.active_block);
1436
1459
  _$_.pop(div_49);
1437
1460
  }
1438
1461
  }
1439
1462
 
1440
1463
  _$_.pop(article_4);
1441
1464
 
1442
- var node_68 = _$_.sibling(article_4);
1465
+ var node_59 = _$_.sibling(article_4);
1443
1466
 
1444
1467
  {
1445
1468
  var consequent_10 = (__anchor) => {
@@ -1448,12 +1471,12 @@ function DocsLayoutInner(
1448
1471
  _$_.append(__anchor, div_53);
1449
1472
  };
1450
1473
 
1451
- _$_.if(node_68, (__render) => {
1474
+ _$_.if(node_59, (__render) => {
1452
1475
  if (editPath) __render(consequent_10);
1453
1476
  });
1454
1477
  }
1455
1478
 
1456
- var node_69 = _$_.sibling(node_68);
1479
+ var node_60 = _$_.sibling(node_59);
1457
1480
 
1458
1481
  {
1459
1482
  var consequent_11 = (__anchor) => {
@@ -1463,7 +1486,7 @@ function DocsLayoutInner(
1463
1486
  var a_5 = _$_.child(nav_4);
1464
1487
 
1465
1488
  {
1466
- var text_6 = _$_.child(a_5, true);
1489
+ var expression_14 = _$_.child(a_5, true);
1467
1490
 
1468
1491
  _$_.pop(a_5);
1469
1492
  }
@@ -1474,7 +1497,7 @@ function DocsLayoutInner(
1474
1497
  var __a = nextLink.text;
1475
1498
 
1476
1499
  if (__prev.a !== __a) {
1477
- _$_.set_text(text_6, __prev.a = __a);
1500
+ _$_.set_text(expression_14, __prev.a = __a);
1478
1501
  }
1479
1502
 
1480
1503
  var __b = nextLink.href;
@@ -1489,14 +1512,14 @@ function DocsLayoutInner(
1489
1512
  _$_.append(__anchor, nav_4);
1490
1513
  };
1491
1514
 
1492
- _$_.if(node_69, (__render) => {
1515
+ _$_.if(node_60, (__render) => {
1493
1516
  if (nextLink) __render(consequent_11);
1494
1517
  });
1495
1518
  }
1496
1519
 
1497
- var node_70 = _$_.sibling(node_69);
1520
+ var node_61 = _$_.sibling(node_60);
1498
1521
 
1499
- FooterStub(node_70, {}, _$_.active_block);
1522
+ FooterStub(node_61, {}, _$_.active_block);
1500
1523
  _$_.pop(div_50);
1501
1524
  }
1502
1525
  }
@@ -1509,6 +1532,10 @@ function DocsLayoutInner(
1509
1532
  _$_.pop(div_47);
1510
1533
  }
1511
1534
 
1535
+ _$_.render(() => {
1536
+ _$_.expression(expression_13, () => children);
1537
+ });
1538
+
1512
1539
  _$_.append(__anchor, div_47);
1513
1540
  _$_.pop_component();
1514
1541
  }
@@ -1518,31 +1545,31 @@ export function DocsLayoutWithData(__anchor, _, __block) {
1518
1545
 
1519
1546
  const htmlContent = '<h1>Title</h1><p>Content</p>';
1520
1547
  var fragment_15 = root_65();
1521
- var node_71 = _$_.first_child_frag(fragment_15);
1548
+ var node_62 = _$_.first_child_frag(fragment_15);
1522
1549
 
1523
1550
  DocsLayoutInner(
1524
- node_71,
1551
+ node_62,
1525
1552
  {
1526
1553
  editPath: "docs/styling.md",
1527
1554
  nextLink: { href: '/next', text: 'Next' },
1528
- children(__anchor, _, __block) {
1555
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
1529
1556
  _$_.push_component();
1530
1557
 
1531
1558
  var div_54 = root_66();
1532
1559
 
1533
1560
  {
1534
- var node_72 = _$_.child(div_54);
1561
+ var node_63 = _$_.child(div_54);
1535
1562
 
1536
1563
  _$_.pop(div_54);
1537
1564
  }
1538
1565
 
1539
1566
  _$_.render(() => {
1540
- _$_.html(node_72, () => htmlContent);
1567
+ _$_.html(node_63, () => htmlContent);
1541
1568
  });
1542
1569
 
1543
1570
  _$_.append(__anchor, div_54);
1544
1571
  _$_.pop_component();
1545
- }
1572
+ })
1546
1573
  },
1547
1574
  _$_.active_block
1548
1575
  );
@@ -1556,29 +1583,29 @@ export function DocsLayoutWithoutData(__anchor, _, __block) {
1556
1583
 
1557
1584
  const htmlContent = undefined;
1558
1585
  var fragment_16 = root_67();
1559
- var node_73 = _$_.first_child_frag(fragment_16);
1586
+ var node_64 = _$_.first_child_frag(fragment_16);
1560
1587
 
1561
1588
  DocsLayoutInner(
1562
- node_73,
1589
+ node_64,
1563
1590
  {
1564
- children(__anchor, _, __block) {
1591
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
1565
1592
  _$_.push_component();
1566
1593
 
1567
1594
  var div_55 = root_68();
1568
1595
 
1569
1596
  {
1570
- var node_74 = _$_.child(div_55);
1597
+ var node_65 = _$_.child(div_55);
1571
1598
 
1572
1599
  _$_.pop(div_55);
1573
1600
  }
1574
1601
 
1575
1602
  _$_.render(() => {
1576
- _$_.html(node_74, () => htmlContent);
1603
+ _$_.html(node_65, () => htmlContent);
1577
1604
  });
1578
1605
 
1579
1606
  _$_.append(__anchor, div_55);
1580
1607
  _$_.pop_component();
1581
- }
1608
+ })
1582
1609
  },
1583
1610
  _$_.active_block
1584
1611
  );
@@ -1603,18 +1630,18 @@ function DocsLayoutExact(
1603
1630
  var div_56 = root_69();
1604
1631
 
1605
1632
  {
1606
- var node_75 = _$_.child(div_56);
1633
+ var node_66 = _$_.child(div_56);
1607
1634
 
1608
- HeaderStub(node_75, {}, _$_.active_block);
1635
+ HeaderStub(node_66, {}, _$_.active_block);
1609
1636
 
1610
- var div_57 = _$_.sibling(node_75);
1637
+ var div_57 = _$_.sibling(node_66);
1611
1638
 
1612
1639
  {
1613
- var node_76 = _$_.child(div_57);
1640
+ var node_67 = _$_.child(div_57);
1614
1641
 
1615
- SidebarStub(node_76, {}, _$_.active_block);
1642
+ SidebarStub(node_67, {}, _$_.active_block);
1616
1643
 
1617
- var main_3 = _$_.sibling(node_76);
1644
+ var main_3 = _$_.sibling(node_67);
1618
1645
 
1619
1646
  {
1620
1647
  var div_61 = _$_.child(main_3);
@@ -1632,16 +1659,15 @@ function DocsLayoutExact(
1632
1659
  var div_58 = _$_.child(article_5);
1633
1660
 
1634
1661
  {
1635
- var node_77 = _$_.child(div_58);
1662
+ var expression_15 = _$_.child(div_58);
1636
1663
 
1637
- children(node_77, {}, _$_.active_block);
1638
1664
  _$_.pop(div_58);
1639
1665
  }
1640
1666
  }
1641
1667
 
1642
1668
  _$_.pop(article_5);
1643
1669
 
1644
- var node_78 = _$_.sibling(article_5);
1670
+ var node_68 = _$_.sibling(article_5);
1645
1671
 
1646
1672
  {
1647
1673
  var consequent_12 = (__anchor) => {
@@ -1656,19 +1682,19 @@ function DocsLayoutExact(
1656
1682
  _$_.append(__anchor, div_62);
1657
1683
  };
1658
1684
 
1659
- _$_.if(node_78, (__render) => {
1685
+ _$_.if(node_68, (__render) => {
1660
1686
  if (editPath) __render(consequent_12);
1661
1687
  });
1662
1688
  }
1663
1689
 
1664
- var node_79 = _$_.sibling(node_78);
1690
+ var node_69 = _$_.sibling(node_68);
1665
1691
 
1666
1692
  {
1667
1693
  var consequent_15 = (__anchor) => {
1668
1694
  var nav_5 = root_71();
1669
1695
 
1670
1696
  {
1671
- var node_80 = _$_.child(nav_5);
1697
+ var node_70 = _$_.child(nav_5);
1672
1698
 
1673
1699
  {
1674
1700
  var consequent_13 = (__anchor) => {
@@ -1678,7 +1704,7 @@ function DocsLayoutExact(
1678
1704
  var span_2 = _$_.child(a_7);
1679
1705
 
1680
1706
  {
1681
- var text_7 = _$_.child(span_2, true);
1707
+ var expression_16 = _$_.child(span_2, true);
1682
1708
 
1683
1709
  _$_.pop(span_2);
1684
1710
  }
@@ -1689,7 +1715,7 @@ function DocsLayoutExact(
1689
1715
  var __a = prevLink.text;
1690
1716
 
1691
1717
  if (__prev.a !== __a) {
1692
- _$_.set_text(text_7, __prev.a = __a);
1718
+ _$_.set_text(expression_16, __prev.a = __a);
1693
1719
  }
1694
1720
 
1695
1721
  var __b = prevLink.href;
@@ -1710,12 +1736,12 @@ function DocsLayoutExact(
1710
1736
  _$_.append(__anchor, span_3);
1711
1737
  };
1712
1738
 
1713
- _$_.if(node_80, (__render) => {
1739
+ _$_.if(node_70, (__render) => {
1714
1740
  if (prevLink) __render(consequent_13); else __render(alternate, false);
1715
1741
  });
1716
1742
  }
1717
1743
 
1718
- var node_81 = _$_.sibling(node_80);
1744
+ var node_71 = _$_.sibling(node_70);
1719
1745
 
1720
1746
  {
1721
1747
  var consequent_14 = (__anchor) => {
@@ -1725,7 +1751,7 @@ function DocsLayoutExact(
1725
1751
  var span_4 = _$_.child(a_8);
1726
1752
 
1727
1753
  {
1728
- var text_8 = _$_.child(span_4, true);
1754
+ var expression_17 = _$_.child(span_4, true);
1729
1755
 
1730
1756
  _$_.pop(span_4);
1731
1757
  }
@@ -1736,7 +1762,7 @@ function DocsLayoutExact(
1736
1762
  var __a = nextLink.text;
1737
1763
 
1738
1764
  if (__prev.a !== __a) {
1739
- _$_.set_text(text_8, __prev.a = __a);
1765
+ _$_.set_text(expression_17, __prev.a = __a);
1740
1766
  }
1741
1767
 
1742
1768
  var __b = nextLink.href;
@@ -1751,7 +1777,7 @@ function DocsLayoutExact(
1751
1777
  _$_.append(__anchor, a_8);
1752
1778
  };
1753
1779
 
1754
- _$_.if(node_81, (__render) => {
1780
+ _$_.if(node_71, (__render) => {
1755
1781
  if (nextLink) __render(consequent_14);
1756
1782
  });
1757
1783
  }
@@ -1762,14 +1788,14 @@ function DocsLayoutExact(
1762
1788
  _$_.append(__anchor, nav_5);
1763
1789
  };
1764
1790
 
1765
- _$_.if(node_79, (__render) => {
1791
+ _$_.if(node_69, (__render) => {
1766
1792
  if (prevLink || nextLink) __render(consequent_15);
1767
1793
  });
1768
1794
  }
1769
1795
 
1770
- var node_82 = _$_.sibling(node_79);
1796
+ var node_72 = _$_.sibling(node_69);
1771
1797
 
1772
- FooterStub(node_82, {}, _$_.active_block);
1798
+ FooterStub(node_72, {}, _$_.active_block);
1773
1799
  _$_.pop(div_59);
1774
1800
  }
1775
1801
  }
@@ -1779,7 +1805,7 @@ function DocsLayoutExact(
1779
1805
  var aside_4 = _$_.sibling(div_60);
1780
1806
 
1781
1807
  {
1782
- var node_83 = _$_.child(aside_4);
1808
+ var node_73 = _$_.child(aside_4);
1783
1809
 
1784
1810
  {
1785
1811
  var consequent_16 = (__anchor) => {
@@ -1796,7 +1822,7 @@ function DocsLayoutExact(
1796
1822
  var a_9 = root_76();
1797
1823
 
1798
1824
  {
1799
- var text_9 = _$_.child(a_9, true);
1825
+ var expression_18 = _$_.child(a_9, true);
1800
1826
 
1801
1827
  _$_.pop(a_9);
1802
1828
  }
@@ -1806,7 +1832,7 @@ function DocsLayoutExact(
1806
1832
  var __a = item.text;
1807
1833
 
1808
1834
  if (__prev.a !== __a) {
1809
- _$_.set_text(text_9, __prev.a = __a);
1835
+ _$_.set_text(expression_18, __prev.a = __a);
1810
1836
  }
1811
1837
 
1812
1838
  var __b = item.href;
@@ -1830,7 +1856,7 @@ function DocsLayoutExact(
1830
1856
  _$_.append(__anchor, div_63);
1831
1857
  };
1832
1858
 
1833
- _$_.if(node_83, (__render) => {
1859
+ _$_.if(node_73, (__render) => {
1834
1860
  if (toc.length > 0) __render(consequent_16);
1835
1861
  });
1836
1862
  }
@@ -1846,6 +1872,10 @@ function DocsLayoutExact(
1846
1872
  _$_.pop(div_56);
1847
1873
  }
1848
1874
 
1875
+ _$_.render(() => {
1876
+ _$_.expression(expression_15, () => children);
1877
+ });
1878
+
1849
1879
  _$_.append(__anchor, div_56);
1850
1880
  _$_.pop_component();
1851
1881
  }
@@ -1855,10 +1885,10 @@ export function DocsLayoutExactWithData(__anchor, _, __block) {
1855
1885
 
1856
1886
  const htmlContent = '<h1>Styling Guide</h1><p>Content</p>';
1857
1887
  var fragment_17 = root_77();
1858
- var node_84 = _$_.first_child_frag(fragment_17);
1888
+ var node_74 = _$_.first_child_frag(fragment_17);
1859
1889
 
1860
1890
  DocsLayoutExact(
1861
- node_84,
1891
+ node_74,
1862
1892
  {
1863
1893
  editPath: "docs/guide/styling.md",
1864
1894
  prevLink: { href: '/prev', text: 'Previous' },
@@ -1868,24 +1898,24 @@ export function DocsLayoutExactWithData(__anchor, _, __block) {
1868
1898
  { href: '#usage', text: 'Usage' }
1869
1899
  ],
1870
1900
 
1871
- children(__anchor, _, __block) {
1901
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
1872
1902
  _$_.push_component();
1873
1903
 
1874
1904
  var div_64 = root_78();
1875
1905
 
1876
1906
  {
1877
- var node_85 = _$_.child(div_64);
1907
+ var node_75 = _$_.child(div_64);
1878
1908
 
1879
1909
  _$_.pop(div_64);
1880
1910
  }
1881
1911
 
1882
1912
  _$_.render(() => {
1883
- _$_.html(node_85, () => htmlContent);
1913
+ _$_.html(node_75, () => htmlContent);
1884
1914
  });
1885
1915
 
1886
1916
  _$_.append(__anchor, div_64);
1887
1917
  _$_.pop_component();
1888
- }
1918
+ })
1889
1919
  },
1890
1920
  _$_.active_block
1891
1921
  );
@@ -1903,33 +1933,33 @@ export function DocsLayoutExactWithoutData(__anchor, _, __block) {
1903
1933
  const nextLink = undefined;
1904
1934
  const toc = undefined;
1905
1935
  var fragment_18 = root_79();
1906
- var node_86 = _$_.first_child_frag(fragment_18);
1936
+ var node_76 = _$_.first_child_frag(fragment_18);
1907
1937
 
1908
1938
  DocsLayoutExact(
1909
- node_86,
1939
+ node_76,
1910
1940
  {
1911
1941
  editPath,
1912
1942
  prevLink,
1913
1943
  nextLink,
1914
1944
  toc,
1915
- children(__anchor, _, __block) {
1945
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
1916
1946
  _$_.push_component();
1917
1947
 
1918
1948
  var div_65 = root_80();
1919
1949
 
1920
1950
  {
1921
- var node_87 = _$_.child(div_65);
1951
+ var node_77 = _$_.child(div_65);
1922
1952
 
1923
1953
  _$_.pop(div_65);
1924
1954
  }
1925
1955
 
1926
1956
  _$_.render(() => {
1927
- _$_.html(node_87, () => htmlContent);
1957
+ _$_.html(node_77, () => htmlContent);
1928
1958
  });
1929
1959
 
1930
1960
  _$_.append(__anchor, div_65);
1931
1961
  _$_.pop_component();
1932
- }
1962
+ })
1933
1963
  },
1934
1964
  _$_.active_block
1935
1965
  );
@@ -1985,16 +2015,24 @@ function LayoutWithTemplate(__anchor, { children, data }, __block) {
1985
2015
  var main_4 = _$_.sibling(template_3);
1986
2016
 
1987
2017
  {
1988
- var node_88 = _$_.child(main_4);
2018
+ var expression_19 = _$_.child(main_4);
1989
2019
 
1990
- children(node_88, {}, _$_.active_block);
1991
2020
  _$_.pop(main_4);
1992
2021
  }
1993
2022
  }
1994
2023
 
1995
- _$_.render(() => {
1996
- template_3.innerHTML = _$_.with_scope(__block, () => JSON.stringify(data));
1997
- });
2024
+ _$_.render(
2025
+ (__prev) => {
2026
+ var __a = _$_.with_scope(__block, () => JSON.stringify(data));
2027
+
2028
+ if (__prev.a !== __a) {
2029
+ template_3.innerHTML = __prev.a = __a;
2030
+ }
2031
+
2032
+ _$_.expression(expression_19, () => children);
2033
+ },
2034
+ { a: '' }
2035
+ );
1998
2036
 
1999
2037
  _$_.append(__anchor, div_68);
2000
2038
  _$_.pop_component();
@@ -2005,30 +2043,30 @@ export function NestedTemplateInLayout(__anchor, _, __block) {
2005
2043
 
2006
2044
  const doc = { title: 'Comparison', html: '<p>Content</p>' };
2007
2045
  var fragment_19 = root_84();
2008
- var node_89 = _$_.first_child_frag(fragment_19);
2046
+ var node_78 = _$_.first_child_frag(fragment_19);
2009
2047
 
2010
2048
  LayoutWithTemplate(
2011
- node_89,
2049
+ node_78,
2012
2050
  {
2013
2051
  data: doc,
2014
- children(__anchor, _, __block) {
2052
+ children: _$_.ripple_element(function render_children(__anchor, _, __block) {
2015
2053
  _$_.push_component();
2016
2054
 
2017
2055
  var div_69 = root_85();
2018
2056
 
2019
2057
  {
2020
- var node_90 = _$_.child(div_69);
2058
+ var node_79 = _$_.child(div_69);
2021
2059
 
2022
2060
  _$_.pop(div_69);
2023
2061
  }
2024
2062
 
2025
2063
  _$_.render(() => {
2026
- _$_.html(node_90, () => doc.html);
2064
+ _$_.html(node_79, () => doc.html);
2027
2065
  });
2028
2066
 
2029
2067
  _$_.append(__anchor, div_69);
2030
2068
  _$_.pop_component();
2031
- }
2069
+ })
2032
2070
  },
2033
2071
  _$_.active_block
2034
2072
  );