ripple 0.4.2 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/CHANGELOG.md +164 -0
  2. package/package.json +10 -4
  3. package/src/constants.js +6 -0
  4. package/src/jsx-runtime.d.ts +2 -1
  5. package/src/runtime/array.js +15 -9
  6. package/src/runtime/index-client.js +25 -7
  7. package/src/runtime/index-server.js +1 -0
  8. package/src/runtime/internal/client/attributes.js +439 -0
  9. package/src/runtime/internal/client/blocks.js +20 -20
  10. package/src/runtime/internal/client/component.js +2 -5
  11. package/src/runtime/internal/client/composite.js +295 -95
  12. package/src/runtime/internal/client/constants.js +14 -6
  13. package/src/runtime/internal/client/context.js +3 -2
  14. package/src/runtime/internal/client/css.js +11 -26
  15. package/src/runtime/internal/client/errors.js +188 -0
  16. package/src/runtime/internal/client/events.js +79 -34
  17. package/src/runtime/internal/client/expression.js +25 -120
  18. package/src/runtime/internal/client/for.js +113 -262
  19. package/src/runtime/internal/client/head.js +4 -3
  20. package/src/runtime/internal/client/html.js +5 -3
  21. package/src/runtime/internal/client/hydrate.js +484 -0
  22. package/src/runtime/internal/client/hydration-enabled.js +7 -0
  23. package/src/runtime/internal/client/hydration.js +16 -81
  24. package/src/runtime/internal/client/if.js +69 -10
  25. package/src/runtime/internal/client/index.js +18 -10
  26. package/src/runtime/internal/client/operations.js +11 -7
  27. package/src/runtime/internal/client/portal.js +3 -2
  28. package/src/runtime/internal/client/render.js +42 -325
  29. package/src/runtime/internal/client/root-boundary-enabled.js +7 -0
  30. package/src/runtime/internal/client/runtime.js +157 -371
  31. package/src/runtime/internal/client/template-ns.js +88 -0
  32. package/src/runtime/internal/client/template.js +118 -139
  33. package/src/runtime/internal/client/track-async.js +356 -0
  34. package/src/runtime/internal/client/try.js +133 -319
  35. package/src/runtime/internal/client/types.d.ts +48 -24
  36. package/src/runtime/internal/server/index.js +31 -29
  37. package/src/runtime/internal/server/prerender.js +27 -0
  38. package/src/server/index.js +1 -0
  39. package/src/utils/class-name.js +28 -0
  40. package/tests/client/basic/basic.errors.test.tsrx +3 -3
  41. package/tests/client/compiler/__snapshots__/compiler.typescript.test.tsrx.snap +0 -2
  42. package/tests/client/compiler/compiler.basic.test.tsrx +2 -2
  43. package/tests/client/compiler/compiler.tracked-access.test.tsrx +3 -3
  44. package/tests/client/composite/composite.dynamic-components.test.tsrx +40 -0
  45. package/tests/client/composite/composite.props.test.tsrx +10 -10
  46. package/tests/client/css/scoped-styles.test.tsrx +3 -1
  47. package/tests/client/derived-release.test.tsrx +3 -3
  48. package/tests/client/for-item.test.tsrx +39 -0
  49. package/tests/client/for-selector.test.tsrx +95 -0
  50. package/tests/client/svg.test.tsrx +273 -1
  51. package/tests/hydration/compiled/client/basic.js +88 -87
  52. package/tests/hydration/compiled/client/composite.js +15 -6
  53. package/tests/hydration/compiled/client/events.js +40 -48
  54. package/tests/hydration/compiled/client/for.js +191 -199
  55. package/tests/hydration/compiled/client/fragment-cursor.js +633 -334
  56. package/tests/hydration/compiled/client/head.js +22 -22
  57. package/tests/hydration/compiled/client/hmr.js +14 -5
  58. package/tests/hydration/compiled/client/html-in-template.js +5 -5
  59. package/tests/hydration/compiled/client/html.js +195 -177
  60. package/tests/hydration/compiled/client/if-children.js +136 -63
  61. package/tests/hydration/compiled/client/if-fragment-controlflow.js +63 -43
  62. package/tests/hydration/compiled/client/if.js +78 -30
  63. package/tests/hydration/compiled/client/mixed-control-flow.js +90 -72
  64. package/tests/hydration/compiled/client/nested-control-flow.js +266 -307
  65. package/tests/hydration/compiled/client/portal.js +20 -11
  66. package/tests/hydration/compiled/client/reactivity.js +29 -29
  67. package/tests/hydration/compiled/client/return.js +2 -2
  68. package/tests/hydration/compiled/client/streaming.js +33 -35
  69. package/tests/hydration/compiled/client/switch.js +25 -25
  70. package/tests/hydration/compiled/client/track-async-serialization.js +41 -41
  71. package/tests/hydration/compiled/client/try.js +15 -15
  72. package/tests/hydration/compiled/client/typed-text.js +8 -7
  73. package/tests/hydration/compiled/server/basic.js +6 -6
  74. package/tests/hydration/compiled/server/events.js +8 -8
  75. package/tests/hydration/compiled/server/for.js +22 -22
  76. package/tests/hydration/compiled/server/fragment-cursor.js +188 -52
  77. package/tests/hydration/compiled/server/head.js +6 -6
  78. package/tests/hydration/compiled/server/hmr.js +1 -1
  79. package/tests/hydration/compiled/server/html.js +1 -1
  80. package/tests/hydration/compiled/server/if-children.js +9 -9
  81. package/tests/hydration/compiled/server/if.js +5 -5
  82. package/tests/hydration/compiled/server/mixed-control-flow.js +4 -4
  83. package/tests/hydration/compiled/server/portal.js +1 -1
  84. package/tests/hydration/compiled/server/reactivity.js +9 -9
  85. package/tests/hydration/compiled/server/streaming.js +9 -9
  86. package/tests/hydration/compiled/server/switch.js +4 -4
  87. package/tests/hydration/compiled/server/track-async-serialization.js +16 -16
  88. package/tests/hydration/compiled/server/try.js +4 -4
  89. package/tests/hydration/compiled/server/typed-text.js +1 -1
  90. package/tests/hydration/components/fragment-cursor.tsrx +60 -0
  91. package/tests/hydration/components/track-async-serialization.tsrx +2 -2
  92. package/tests/hydration/fragment-cursor.test.js +34 -1
  93. package/tests/hydration/track-async-serialization.test.js +1 -1
  94. package/tests/server/basic.components.test.tsrx +3 -3
  95. package/tests/server/track-async-serialization.test.tsrx +6 -6
  96. package/tests/utils/tracked-types.test.js +3 -3
  97. package/types/index.d.ts +8 -8
  98. package/types/server.d.ts +17 -0
@@ -1,7 +1,7 @@
1
1
  // @ts-nocheck
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
- var root = _$_.template(`<div>Hello World</div>`, 0);
4
+ var root = _$_.template_el('div', null, 'Hello World');
5
5
 
6
6
  function StaticText_render(__anchor, __block) {
7
7
  var div = root();
@@ -11,7 +11,7 @@ function StaticText_render(__anchor, __block) {
11
11
 
12
12
  StaticText[_$_.$r] = StaticText_render;
13
13
 
14
- var root_2 = _$_.template(`<h1>Title</h1><p>Paragraph text</p><span>Span text</span>`, 1, 3);
14
+ var root_2 = _$_.template(`<h1>Title</h1><p>Paragraph text</p><span>Span text`, 1, 3);
15
15
  var root_1 = _$_.template(`<!>`, 1, 1);
16
16
 
17
17
  function MultipleElements_render(__anchor, __block) {
@@ -30,7 +30,7 @@ function MultipleElements_render(__anchor, __block) {
30
30
 
31
31
  MultipleElements[_$_.$r] = MultipleElements_render;
32
32
 
33
- var root_3 = _$_.template(`<div class="outer"><div class="inner"><span>Nested content</span></div></div>`, 0);
33
+ var root_3 = _$_.template(`<div class=outer><div class=inner><span>Nested content`);
34
34
 
35
35
  function NestedElements_render(__anchor, __block) {
36
36
  var div_1 = root_3();
@@ -40,7 +40,7 @@ function NestedElements_render(__anchor, __block) {
40
40
 
41
41
  NestedElements[_$_.$r] = NestedElements_render;
42
42
 
43
- var root_5 = _$_.template(`<input type="text" placeholder="Enter text" disabled><a href="/link" target="_blank">Link</a>`, 1, 2);
43
+ var root_5 = _$_.template(`<input type=text placeholder="Enter text" disabled><a href=/link target=_blank>Link`, 1, 2);
44
44
  var root_4 = _$_.template(`<!>`, 1, 1);
45
45
 
46
46
  function WithAttributes_render(__anchor, __block) {
@@ -59,7 +59,7 @@ function WithAttributes_render(__anchor, __block) {
59
59
 
60
60
  WithAttributes[_$_.$r] = WithAttributes_render;
61
61
 
62
- var root_6 = _$_.template(`<span class="child">Child content</span>`, 0);
62
+ var root_6 = _$_.template_el('span', ['class', 'child'], 'Child content');
63
63
 
64
64
  function ChildComponent_render(__anchor, __block) {
65
65
  var span = root_6();
@@ -69,7 +69,7 @@ function ChildComponent_render(__anchor, __block) {
69
69
 
70
70
  ChildComponent[_$_.$r] = ChildComponent_render;
71
71
 
72
- var root_7 = _$_.template(`<div class="parent"></div>`, 0);
72
+ var root_7 = _$_.template_el('div', ['class', 'parent']);
73
73
 
74
74
  function ParentWithChild_render(__anchor, __block) {
75
75
  var div_2 = root_7();
@@ -86,7 +86,7 @@ function ParentWithChild_render(__anchor, __block) {
86
86
 
87
87
  ParentWithChild[_$_.$r] = ParentWithChild_render;
88
88
 
89
- var root_8 = _$_.template(`<div class="first">First</div>`, 0);
89
+ var root_8 = _$_.template_el('div', ['class', 'first'], 'First');
90
90
 
91
91
  function FirstSibling_render(__anchor, __block) {
92
92
  var div_3 = root_8();
@@ -96,7 +96,7 @@ function FirstSibling_render(__anchor, __block) {
96
96
 
97
97
  FirstSibling[_$_.$r] = FirstSibling_render;
98
98
 
99
- var root_9 = _$_.template(`<div class="second">Second</div>`, 0);
99
+ var root_9 = _$_.template_el('div', ['class', 'second'], 'Second');
100
100
 
101
101
  function SecondSibling_render(__anchor, __block) {
102
102
  var div_4 = root_9();
@@ -130,13 +130,13 @@ function SiblingComponents_render(__anchor, __block) {
130
130
 
131
131
  SiblingComponents[_$_.$r] = SiblingComponents_render;
132
132
 
133
- var root_12 = _$_.template(`<div></div>`, 0);
133
+ var root_12 = _$_.template_el('div');
134
134
 
135
135
  function render(__prev) {
136
- var __a = 'Hello ' + __prev._props.name;
136
+ var __a = 'Hello ' + __prev._a.name;
137
137
 
138
138
  if (__prev.a !== __a) {
139
- _$_.set_text_content(__prev._div_5, __a, __prev.a);
139
+ _$_.set_text_content(__prev._b, __a, __prev.a);
140
140
  __prev.a = __a;
141
141
  }
142
142
  }
@@ -144,7 +144,7 @@ function render(__prev) {
144
144
  function Greeting_render(__anchor, __block, props) {
145
145
  var div_5 = root_12();
146
146
 
147
- _$_.render(render, { a: '', _props: props, _div_5: div_5 });
147
+ _$_.render(render, { a: '', _a: props, _b: div_5 });
148
148
  _$_.append(__anchor, div_5);
149
149
  }
150
150
 
@@ -156,7 +156,7 @@ function WithGreeting_render(__anchor, __block) {
156
156
 
157
157
  WithGreeting[_$_.$r] = WithGreeting_render;
158
158
 
159
- var root_14 = _$_.template(`<div></div><span> </span>`, 1, 2);
159
+ var root_14 = _$_.template(`<div></div><span> `, 1, 2);
160
160
  var root_13 = _$_.template(`<!>`, 1, 1);
161
161
 
162
162
  function ExpressionContent_render(__anchor, __block) {
@@ -190,7 +190,7 @@ function ExpressionContent_render(__anchor, __block) {
190
190
 
191
191
  ExpressionContent[_$_.$r] = ExpressionContent_render;
192
192
 
193
- var root_15 = _$_.template(`<div class="helper-item"></div>`, 0);
193
+ var root_15 = _$_.template_el('div', ['class', 'helper-item']);
194
194
 
195
195
  function NestedHelperItem_render(__anchor, __block, { item }) {
196
196
  var div_7 = root_15();
@@ -204,7 +204,7 @@ function NestedHelperItem_render(__anchor, __block, { item }) {
204
204
 
205
205
  NestedHelperItem[_$_.$r] = NestedHelperItem_render;
206
206
 
207
- var root_17 = _$_.template(`<span class="label"></span><!>`, 1, 2);
207
+ var root_17 = _$_.template(`<span class=label></span><!>`, 1, 2);
208
208
  var root_16 = _$_.template(`<!>`, 1, 1);
209
209
 
210
210
  function NestedTsxTsrxFragment_render(__anchor, __block, { label }) {
@@ -238,8 +238,8 @@ function NestedTsxTsrxFragment_render(__anchor, __block, { label }) {
238
238
 
239
239
  NestedTsxTsrxFragment[_$_.$r] = NestedTsxTsrxFragment_render;
240
240
 
241
- var root_19 = _$_.template(`<div class="app-item"> </div>`, 0);
242
- var root_18 = _$_.template(`<div class="nested-expression-values"><!></div>`, 0);
241
+ var root_19 = _$_.template_el('div', ['class', 'app-item'], ' ');
242
+ var root_18 = _$_.template(`<div class=nested-expression-values><!>`);
243
243
 
244
244
  function NestedTsxTsrxExpressionValues_render(__anchor, __block) {
245
245
  var div_8 = root_18();
@@ -276,10 +276,10 @@ function NestedTsxTsrxExpressionValues_render(__anchor, __block) {
276
276
 
277
277
  NestedTsxTsrxExpressionValues[_$_.$r] = NestedTsxTsrxExpressionValues_render;
278
278
 
279
- var root_20 = _$_.template(`<strong class="middle">beta</strong>`, 0);
280
- var root_21 = _$_.template(`<em class="tail">epsilon</em>`, 0);
279
+ var root_20 = _$_.template_el('strong', ['class', 'middle'], 'beta');
280
+ var root_21 = _$_.template_el('em', ['class', 'tail'], 'epsilon');
281
281
  var root_22 = _$_.template(` `, 1, 1);
282
- var root_23 = _$_.template(`<div class="mixed-collection"><!></div>`, 0);
282
+ var root_23 = _$_.template(`<div class=mixed-collection><!>`);
283
283
 
284
284
  function MixedTsrxCollectionText_render(__anchor, __block) {
285
285
  const content = _$_.tsrx_element((__anchor, __block) => {
@@ -322,10 +322,10 @@ function MixedTsrxCollectionText_render(__anchor, __block) {
322
322
 
323
323
  MixedTsrxCollectionText[_$_.$r] = MixedTsrxCollectionText_render;
324
324
 
325
- var root_24 = _$_.template(`<strong class="middle">beta</strong>`, 0);
326
- var root_25 = _$_.template(`<em class="tail">epsilon</em>`, 0);
325
+ var root_24 = _$_.template_el('strong', ['class', 'middle'], 'beta');
326
+ var root_25 = _$_.template_el('em', ['class', 'tail'], 'epsilon');
327
327
  var root_26 = _$_.template(` `, 1, 1);
328
- var root_27 = _$_.template(`<div class="mixed-collection-split"><!></div>`, 0);
328
+ var root_27 = _$_.template(`<div class=mixed-collection-split><!>`);
329
329
 
330
330
  function MixedTsrxCollectionSplitServerText_render(__anchor, __block) {
331
331
  const content = _$_.tsrx_element((__anchor, __block) => {
@@ -368,10 +368,10 @@ function MixedTsrxCollectionSplitServerText_render(__anchor, __block) {
368
368
 
369
369
  MixedTsrxCollectionSplitServerText[_$_.$r] = MixedTsrxCollectionSplitServerText_render;
370
370
 
371
- var root_28 = _$_.template(`<strong class="middle">beta</strong>`, 0);
372
- var root_29 = _$_.template(`<em class="tail">epsilon</em>`, 0);
371
+ var root_28 = _$_.template_el('strong', ['class', 'middle'], 'beta');
372
+ var root_29 = _$_.template_el('em', ['class', 'tail'], 'epsilon');
373
373
  var root_30 = _$_.template(` `, 1, 1);
374
- var root_31 = _$_.template(`<div class="mixed-collection-split"><!></div>`, 0);
374
+ var root_31 = _$_.template(`<div class=mixed-collection-split><!>`);
375
375
 
376
376
  function MixedTsrxCollectionSplitClientText_render(__anchor, __block) {
377
377
  const content = _$_.tsrx_element((__anchor, __block) => {
@@ -414,9 +414,9 @@ function MixedTsrxCollectionSplitClientText_render(__anchor, __block) {
414
414
 
415
415
  MixedTsrxCollectionSplitClientText[_$_.$r] = MixedTsrxCollectionSplitClientText_render;
416
416
 
417
- var root_32 = _$_.template(`<span class="primitive-tail"> ok</span>`, 0);
417
+ var root_32 = _$_.template_el('span', ['class', 'primitive-tail'], ' ok');
418
418
  var root_33 = _$_.template(` `, 1, 1);
419
- var root_34 = _$_.template(`<div class="mixed-collection-primitive"><!></div>`, 0);
419
+ var root_34 = _$_.template(`<div class=mixed-collection-primitive><!>`);
420
420
 
421
421
  function MixedTsrxCollectionPrimitiveServerText_render(__anchor, __block) {
422
422
  const content = _$_.tsrx_element((__anchor, __block) => {
@@ -452,9 +452,9 @@ function MixedTsrxCollectionPrimitiveServerText_render(__anchor, __block) {
452
452
 
453
453
  MixedTsrxCollectionPrimitiveServerText[_$_.$r] = MixedTsrxCollectionPrimitiveServerText_render;
454
454
 
455
- var root_35 = _$_.template(`<span class="primitive-tail"> ok</span>`, 0);
455
+ var root_35 = _$_.template_el('span', ['class', 'primitive-tail'], ' ok');
456
456
  var root_36 = _$_.template(` `, 1, 1);
457
- var root_37 = _$_.template(`<div class="mixed-collection-primitive"><!></div>`, 0);
457
+ var root_37 = _$_.template(`<div class=mixed-collection-primitive><!>`);
458
458
 
459
459
  function MixedTsrxCollectionPrimitiveClientText_render(__anchor, __block) {
460
460
  const content = _$_.tsrx_element((__anchor, __block) => {
@@ -490,7 +490,7 @@ function MixedTsrxCollectionPrimitiveClientText_render(__anchor, __block) {
490
490
 
491
491
  MixedTsrxCollectionPrimitiveClientText[_$_.$r] = MixedTsrxCollectionPrimitiveClientText_render;
492
492
 
493
- var root_38 = _$_.template(`<div class="dynamic-array-call"> </div>`, 0);
493
+ var root_38 = _$_.template_el('div', ['class', 'dynamic-array-call'], ' ');
494
494
 
495
495
  function DynamicArrayFromCall_render(__anchor, __block) {
496
496
  const items = _$_.with_scope(__block, createPrimitiveItems);
@@ -508,10 +508,10 @@ function DynamicArrayFromCall_render(__anchor, __block) {
508
508
 
509
509
  DynamicArrayFromCall[_$_.$r] = DynamicArrayFromCall_render;
510
510
 
511
- var root_39 = _$_.template(`<div class="dynamic-array-track"> </div>`, 0);
511
+ var root_39 = _$_.template_el('div', ['class', 'dynamic-array-track'], ' ');
512
512
 
513
513
  function DynamicArrayFromTrack_render(__anchor, __block) {
514
- const items = _$_.track(['start:', ['one', 2], true, null, false, ':end'], __block, 'b5de6402');
514
+ const items = _$_.track(['start:', ['one', 2], true, null, false, ':end'], __block, '1egmw3m');
515
515
  var div_16 = root_39();
516
516
 
517
517
  {
@@ -526,7 +526,7 @@ function DynamicArrayFromTrack_render(__anchor, __block) {
526
526
 
527
527
  DynamicArrayFromTrack[_$_.$r] = DynamicArrayFromTrack_render;
528
528
 
529
- var root_40 = _$_.template(`<div class="dynamic-array-conditional"> </div>`, 0);
529
+ var root_40 = _$_.template_el('div', ['class', 'dynamic-array-conditional'], ' ');
530
530
 
531
531
  function DynamicArrayFromConditional_render(__anchor, __block) {
532
532
  const condition = true;
@@ -549,7 +549,7 @@ function DynamicArrayFromConditional_render(__anchor, __block) {
549
549
 
550
550
  DynamicArrayFromConditional[_$_.$r] = DynamicArrayFromConditional_render;
551
551
 
552
- var root_41 = _$_.template(`<div class="dynamic-array-logical"> </div>`, 0);
552
+ var root_41 = _$_.template_el('div', ['class', 'dynamic-array-logical'], ' ');
553
553
 
554
554
  function DynamicArrayFromLogical_render(__anchor, __block) {
555
555
  const condition = true;
@@ -568,7 +568,7 @@ function DynamicArrayFromLogical_render(__anchor, __block) {
568
568
 
569
569
  DynamicArrayFromLogical[_$_.$r] = DynamicArrayFromLogical_render;
570
570
 
571
- var root_42 = _$_.template(`<section class="outer"><div class="inner">from tsrx</div></section>`, 0);
571
+ var root_42 = _$_.template(`<section class=outer><div class=inner>from tsrx`);
572
572
  var root_44 = _$_.template(`<!>`, 1, 1);
573
573
  var root_43 = _$_.template(`<!>`, 1, 1);
574
574
 
@@ -595,7 +595,7 @@ function NestedTsrxInsideTopLevelTsxExpression_render(__anchor, __block) {
595
595
 
596
596
  NestedTsrxInsideTopLevelTsxExpression[_$_.$r] = NestedTsrxInsideTopLevelTsxExpression_render;
597
597
 
598
- var root_45 = _$_.template(`<div class="wrapper"><section class="native"><span class="nested-tsrx">inside nested tsrx</span></section></div>`, 0);
598
+ var root_45 = _$_.template(`<div class=wrapper><section class=native><span class=nested-tsrx>inside nested tsrx`);
599
599
  var root_47 = _$_.template(`<!>`, 1, 1);
600
600
  var root_46 = _$_.template(`<!>`, 1, 1);
601
601
 
@@ -622,8 +622,8 @@ function NestedTsrxElementsInsideTopLevelTsxValue_render(__anchor, __block) {
622
622
 
623
623
  NestedTsrxElementsInsideTopLevelTsxValue[_$_.$r] = NestedTsrxElementsInsideTopLevelTsxValue_render;
624
624
 
625
- var root_48 = _$_.template(`<span class="nested-tsx">inside nested tsx</span>`, 0);
626
- var root_49 = _$_.template(`<div class="native"> </div>`, 0);
625
+ var root_48 = _$_.template_el('span', ['class', 'nested-tsx'], 'inside nested tsx');
626
+ var root_49 = _$_.template_el('div', ['class', 'native'], ' ');
627
627
  var root_51 = _$_.template(`<!>`, 1, 1);
628
628
  var root_50 = _$_.template(`<!>`, 1, 1);
629
629
 
@@ -663,7 +663,7 @@ function TsxDeclaredBeforeTopLevelTsx_render(__anchor, __block) {
663
663
 
664
664
  TsxDeclaredBeforeTopLevelTsx[_$_.$r] = TsxDeclaredBeforeTopLevelTsx_render;
665
665
 
666
- var root_52 = _$_.template(`<div class="text-prop"> </div>`, 0);
666
+ var root_52 = _$_.template_el('div', ['class', 'text-prop'], ' ');
667
667
 
668
668
  function TextProp_render(__anchor, __block, { children }) {
669
669
  var div_21 = root_52();
@@ -680,13 +680,13 @@ function TextProp_render(__anchor, __block, { children }) {
680
680
 
681
681
  TextProp[_$_.$r] = TextProp_render;
682
682
 
683
- var root_53 = _$_.template(`<div class="text-prop"></div>`, 0);
683
+ var root_53 = _$_.template_el('div', ['class', 'text-prop']);
684
684
 
685
685
  function render_1(__prev) {
686
- var __a = __prev._children.value;
686
+ var __a = __prev._a.value;
687
687
 
688
688
  if (__prev.a !== __a) {
689
- _$_.set_text_content(__prev._div_22, __a, __prev.a);
689
+ _$_.set_text_content(__prev._b, __a, __prev.a);
690
690
  __prev.a = __a;
691
691
  }
692
692
  }
@@ -694,17 +694,17 @@ function render_1(__prev) {
694
694
  function TypedTextProp_render(__anchor, __block, { children }) {
695
695
  var div_22 = root_53();
696
696
 
697
- _$_.render(render_1, { a: '', _children: children, _div_22: div_22 });
697
+ _$_.render(render_1, { a: '', _a: children, _b: div_22 });
698
698
  _$_.append(__anchor, div_22);
699
699
  }
700
700
 
701
701
  TypedTextProp[_$_.$r] = TypedTextProp_render;
702
702
 
703
- var root_55 = _$_.template(`<!><button class="show-text">Show</button>`, 1, 2);
703
+ var root_55 = _$_.template(`<!><button class=show-text>Show`, 1, 2);
704
704
  var root_54 = _$_.template(`<!>`, 1, 1);
705
705
 
706
706
  function TextPropWithToggle_render(__anchor, __block) {
707
- const show = _$_.track(false, __block, '1ba81c3b');
707
+ const show = _$_.track(false, __block, '7o96bf');
708
708
  var fragment_21 = root_54();
709
709
  var node_14 = _$_.first_child_frag(fragment_21);
710
710
 
@@ -713,7 +713,7 @@ function TextPropWithToggle_render(__anchor, __block) {
713
713
  var node_13 = _$_.first_child_frag(fragment_22);
714
714
 
715
715
  _$_.render_component(TextProp, node_13, {
716
- children: _$_.normalize_children(_$_.track(() => show.value ? 'hello' : '', __block, '649e2af0'))
716
+ children: _$_.normalize_children(_$_.track(() => show.value ? 'hello' : '', __block, 'rx1khc'))
717
717
  });
718
718
 
719
719
  var button = _$_.hydrating ? _$_.hydrate_sibling() : node_13.nextSibling;
@@ -727,11 +727,11 @@ function TextPropWithToggle_render(__anchor, __block) {
727
727
 
728
728
  TextPropWithToggle[_$_.$r] = TextPropWithToggle_render;
729
729
 
730
- var root_57 = _$_.template(`<!><button class="show-text">Show</button>`, 1, 2);
730
+ var root_57 = _$_.template(`<!><button class=show-text>Show`, 1, 2);
731
731
  var root_56 = _$_.template(`<!>`, 1, 1);
732
732
 
733
733
  function TypedTextPropWithToggle_render(__anchor, __block) {
734
- const show = _$_.track(false, __block, 'ba719d47');
734
+ const show = _$_.track(false, __block, '1fqc2fb');
735
735
  var fragment_23 = root_56();
736
736
  var node_16 = _$_.first_child_frag(fragment_23);
737
737
 
@@ -740,7 +740,7 @@ function TypedTextPropWithToggle_render(__anchor, __block) {
740
740
  var node_15 = _$_.first_child_frag(fragment_24);
741
741
 
742
742
  _$_.render_component(TypedTextProp, node_15, {
743
- children: _$_.normalize_children(_$_.track(() => show.value ? 'hello' : '', __block, '6fb091f9'))
743
+ children: _$_.normalize_children(_$_.track(() => show.value ? 'hello' : '', __block, 'uzmy9l'))
744
744
  });
745
745
 
746
746
  var button_1 = _$_.hydrating ? _$_.hydrate_sibling() : node_15.nextSibling;
@@ -754,7 +754,7 @@ function TypedTextPropWithToggle_render(__anchor, __block) {
754
754
 
755
755
  TypedTextPropWithToggle[_$_.$r] = TypedTextPropWithToggle_render;
756
756
 
757
- var root_59 = _$_.template(`<h1 class="sr-only">heading</h1><p class="subtitle">first paragraph</p><p class="subtitle">second paragraph</p>`, 1, 3);
757
+ var root_59 = _$_.template(`<h1 class=sr-only>heading</h1><p class=subtitle>first paragraph</p><p class=subtitle>second paragraph`, 1, 3);
758
758
  var root_58 = _$_.template(`<!>`, 1, 1);
759
759
 
760
760
  function StaticHeader_render(__anchor, __block) {
@@ -773,7 +773,7 @@ function StaticHeader_render(__anchor, __block) {
773
773
 
774
774
  StaticHeader[_$_.$r] = StaticHeader_render;
775
775
 
776
- var root_61 = _$_.template(`<!><span class="sibling1"></span><span class="sibling2"></span>`, 1, 3);
776
+ var root_61 = _$_.template(`<!><span class=sibling1></span><span class=sibling2>`, 1, 3);
777
777
  var root_60 = _$_.template(`<!>`, 1, 1);
778
778
 
779
779
  function StaticChildWithSiblings_render(__anchor, __block) {
@@ -807,7 +807,7 @@ function StaticChildWithSiblings_render(__anchor, __block) {
807
807
 
808
808
  StaticChildWithSiblings[_$_.$r] = StaticChildWithSiblings_render;
809
809
 
810
- var root_63 = _$_.template(`<h1 class="sr-only">Ripple</h1><img src="/images/logo.png" alt="Logo" class="logo"><p class="subtitle">the elegant TypeScript UI framework</p>`, 1, 3);
810
+ var root_63 = _$_.template(`<h1 class=sr-only>Ripple</h1><img src=/images/logo.png alt=Logo class=logo><p class=subtitle>the elegant TypeScript UI framework`, 1, 3);
811
811
  var root_62 = _$_.template(`<!>`, 1, 1);
812
812
 
813
813
  function Header_render(__anchor, __block) {
@@ -826,8 +826,8 @@ function Header_render(__anchor, __block) {
826
826
 
827
827
  Header[_$_.$r] = Header_render;
828
828
 
829
- var root_65 = _$_.template(`<a href="/playground" class="playground-link">Playground</a>`, 0);
830
- var root_64 = _$_.template(`<div class="social-links"><a href="https://github.com" class="github-link">GitHub</a><a href="https://discord.com" class="discord-link">Discord</a><!></div>`, 0);
829
+ var root_65 = _$_.template_el('a', ['href', '/playground', 'class', 'playground-link'], 'Playground');
830
+ var root_64 = _$_.template(`<div class=social-links><a href=https://github.com class=github-link>GitHub</a><a href=https://discord.com class=discord-link>Discord</a><!>`);
831
831
 
832
832
  function Actions_render(__anchor, __block, { playgroundVisible = false }) {
833
833
  var div_23 = root_64();
@@ -853,7 +853,7 @@ function Actions_render(__anchor, __block, { playgroundVisible = false }) {
853
853
 
854
854
  Actions[_$_.$r] = Actions_render;
855
855
 
856
- var root_66 = _$_.template(`<main><div class="container"><!></div></main>`, 0);
856
+ var root_66 = _$_.template(`<main><div class=container><!>`);
857
857
 
858
858
  function Layout_render(__anchor, __block, { children }) {
859
859
  var main = root_66();
@@ -874,7 +874,7 @@ function Layout_render(__anchor, __block, { children }) {
874
874
 
875
875
  Layout[_$_.$r] = Layout_render;
876
876
 
877
- var root_67 = _$_.template(`<div class="content"><p>Some content here</p></div>`, 0);
877
+ var root_67 = _$_.template(`<div class=content><p>Some content here`);
878
878
 
879
879
  function Content_render(__anchor, __block) {
880
880
  var div_25 = root_67();
@@ -912,7 +912,7 @@ function WebsiteIndex_render(__anchor, __block) {
912
912
 
913
913
  WebsiteIndex[_$_.$r] = WebsiteIndex_render;
914
914
 
915
- var root_69 = _$_.template(`<footer class="last-child">I am the last child</footer>`, 0);
915
+ var root_69 = _$_.template_el('footer', ['class', 'last-child'], 'I am the last child');
916
916
 
917
917
  function LastChild_render(__anchor, __block) {
918
918
  var footer = root_69();
@@ -922,7 +922,7 @@ function LastChild_render(__anchor, __block) {
922
922
 
923
923
  LastChild[_$_.$r] = LastChild_render;
924
924
 
925
- var root_70 = _$_.template(`<div class="wrapper"><h1>Header</h1><p>Some content</p></div>`, 0);
925
+ var root_70 = _$_.template(`<div class=wrapper><h1>Header</h1><p>Some content`);
926
926
 
927
927
  function ComponentAsLastSibling_render(__anchor, __block) {
928
928
  var div_26 = root_70();
@@ -941,7 +941,7 @@ function ComponentAsLastSibling_render(__anchor, __block) {
941
941
 
942
942
  ComponentAsLastSibling[_$_.$r] = ComponentAsLastSibling_render;
943
943
 
944
- var root_71 = _$_.template(`<div class="inner"><span>Inner text</span></div>`, 0);
944
+ var root_71 = _$_.template(`<div class=inner><span>Inner text`);
945
945
 
946
946
  function InnerContent_render(__anchor, __block) {
947
947
  var div_27 = root_71();
@@ -959,7 +959,7 @@ function InnerContent_render(__anchor, __block) {
959
959
 
960
960
  InnerContent[_$_.$r] = InnerContent_render;
961
961
 
962
- var root_72 = _$_.template(`<section class="outer"><h2>Section title</h2></section>`, 0);
962
+ var root_72 = _$_.template(`<section class=outer><h2>Section title`);
963
963
 
964
964
  function NestedComponentAsLastSibling_render(__anchor, __block) {
965
965
  var section_1 = root_72();
@@ -977,13 +977,13 @@ function NestedComponentAsLastSibling_render(__anchor, __block) {
977
977
 
978
978
  NestedComponentAsLastSibling[_$_.$r] = NestedComponentAsLastSibling_render;
979
979
 
980
- var root_73 = _$_.template(`<div></div>`, 0);
980
+ var root_73 = _$_.template_el('div');
981
981
 
982
982
  function render_2(__prev) {
983
- var __a = "label: " + String(_$_.with_scope(__prev.___block, fetchLabel));
983
+ var __a = "label: " + String(_$_.with_scope(__prev._a, fetchLabel));
984
984
 
985
985
  if (__prev.a !== __a) {
986
- _$_.set_text_content(__prev._div_28, __a, __prev.a);
986
+ _$_.set_text_content(__prev._b, __a, __prev.a);
987
987
  __prev.a = __a;
988
988
  }
989
989
  }
@@ -991,19 +991,19 @@ function render_2(__prev) {
991
991
  function TextTailExpression_render(__anchor, __block) {
992
992
  var div_28 = root_73();
993
993
 
994
- _$_.render(render_2, { a: '', ___block: __block, _div_28: div_28 });
994
+ _$_.render(render_2, { a: '', _a: __block, _b: div_28 });
995
995
  _$_.append(__anchor, div_28);
996
996
  }
997
997
 
998
998
  TextTailExpression[_$_.$r] = TextTailExpression_render;
999
999
 
1000
- var root_74 = _$_.template(`<div></div>`, 0);
1000
+ var root_74 = _$_.template_el('div');
1001
1001
 
1002
1002
  function render_3(__prev) {
1003
- var __a = 'frag-' + String(_$_.with_scope(__prev.___block, fetchLabel));
1003
+ var __a = 'frag-' + String(_$_.with_scope(__prev._a, fetchLabel));
1004
1004
 
1005
1005
  if (__prev.a !== __a) {
1006
- _$_.set_text_content(__prev._div_29, __a, __prev.a);
1006
+ _$_.set_text_content(__prev._b, __a, __prev.a);
1007
1007
  __prev.a = __a;
1008
1008
  }
1009
1009
  }
@@ -1011,13 +1011,13 @@ function render_3(__prev) {
1011
1011
  function FragmentTailExpression_render(__anchor, __block) {
1012
1012
  var div_29 = root_74();
1013
1013
 
1014
- _$_.render(render_3, { a: '', ___block: __block, _div_29: div_29 });
1014
+ _$_.render(render_3, { a: '', _a: __block, _b: div_29 });
1015
1015
  _$_.append(__anchor, div_29);
1016
1016
  }
1017
1017
 
1018
1018
  FragmentTailExpression[_$_.$r] = FragmentTailExpression_render;
1019
1019
 
1020
- var root_75 = _$_.template(`<div>frag-<span>tail</span></div>`, 0);
1020
+ var root_75 = _$_.template(`<div>frag-<span>tail`);
1021
1021
 
1022
1022
  function FragmentChildOnly_render(__anchor, __block) {
1023
1023
  var div_30 = root_75();
@@ -1031,7 +1031,7 @@ function FragmentChildOnly_render(__anchor, __block) {
1031
1031
 
1032
1032
  FragmentChildOnly[_$_.$r] = FragmentChildOnly_render;
1033
1033
 
1034
- var root_77 = _$_.template(`<!><p>after-opaque</p>`, 1, 2);
1034
+ var root_77 = _$_.template(`<!><p>after-opaque`, 1, 2);
1035
1035
  var root_76 = _$_.template(`<!>`, 1, 1);
1036
1036
 
1037
1037
  function OpaqueLead_render(__anchor, __block, props) {
@@ -1052,7 +1052,7 @@ function OpaqueLead_render(__anchor, __block, props) {
1052
1052
 
1053
1053
  OpaqueLead[_$_.$r] = OpaqueLead_render;
1054
1054
 
1055
- var root_78 = _$_.template(`<div></div>`, 0);
1055
+ var root_78 = _$_.template_el('div');
1056
1056
 
1057
1057
  function FragmentLeadsWithOpaqueValue_render(__anchor, __block) {
1058
1058
  var div_31 = root_78();
@@ -1069,13 +1069,13 @@ function FragmentLeadsWithOpaqueValue_render(__anchor, __block) {
1069
1069
 
1070
1070
  FragmentLeadsWithOpaqueValue[_$_.$r] = FragmentLeadsWithOpaqueValue_render;
1071
1071
 
1072
- var root_80 = _$_.template(` <p>after-call</p>`, 1, 2);
1072
+ var root_80 = _$_.template(` <p>after-call`, 1, 2);
1073
1073
 
1074
1074
  function render_4(__prev) {
1075
- var __a = String(_$_.with_scope(__prev.___block, fetchLabel));
1075
+ var __a = String(_$_.with_scope(__prev._a, fetchLabel));
1076
1076
 
1077
1077
  if (__prev.a !== __a) {
1078
- _$_.set_text(__prev._expression_32, __prev.a = __a);
1078
+ _$_.set_text(__prev._b, __prev.a = __a);
1079
1079
  }
1080
1080
  }
1081
1081
 
@@ -1090,7 +1090,7 @@ function PrimitiveCallLead_render(__anchor, __block) {
1090
1090
  var expression_32 = _$_.first_child_frag(fragment_35, true);
1091
1091
 
1092
1092
  _$_.next();
1093
- _$_.render(render_4, { a: ' ', ___block: __block, _expression_32: expression_32 });
1093
+ _$_.render(render_4, { a: ' ', _a: __block, _b: expression_32 });
1094
1094
  _$_.append(__anchor, fragment_35);
1095
1095
  }));
1096
1096
 
@@ -1099,7 +1099,7 @@ function PrimitiveCallLead_render(__anchor, __block) {
1099
1099
 
1100
1100
  PrimitiveCallLead[_$_.$r] = PrimitiveCallLead_render;
1101
1101
 
1102
- var root_81 = _$_.template(`<div></div>`, 0);
1102
+ var root_81 = _$_.template_el('div');
1103
1103
 
1104
1104
  function FragmentLeadsWithPrimitiveCall_render(__anchor, __block) {
1105
1105
  var div_32 = root_81();
@@ -1116,13 +1116,14 @@ function FragmentLeadsWithPrimitiveCall_render(__anchor, __block) {
1116
1116
 
1117
1117
  FragmentLeadsWithPrimitiveCall[_$_.$r] = FragmentLeadsWithPrimitiveCall_render;
1118
1118
 
1119
- var root_83 = _$_.template(`<div class="primitive-calls"></div><button>update</button>`, 1, 2);
1119
+ var root_83 = _$_.template(`<div class=primitive-calls></div><button>update`, 1, 2);
1120
1120
 
1121
1121
  function render_5(__prev) {
1122
- var __a = "sum: " + (String(Number(__prev._count.value) + Number(__prev._count.value) ?? '') + ("; big: " + String(_$_.with_scope(__prev.___block, () => BigInt(__prev._count.value)) ?? '')));
1122
+ var __count_value = __prev._a.value;
1123
+ var __a = "sum: " + (String(Number(__count_value) + Number(__count_value) ?? '') + ("; big: " + String(_$_.with_scope(__prev._b, () => BigInt(__prev._a.value)) ?? '')));
1123
1124
 
1124
1125
  if (__prev.a !== __a) {
1125
- _$_.set_text_content(__prev._div_33, __a, __prev.a);
1126
+ _$_.set_text_content(__prev._c, __a, __prev.a);
1126
1127
  __prev.a = __a;
1127
1128
  }
1128
1129
  }
@@ -1130,7 +1131,7 @@ function render_5(__prev) {
1130
1131
  var root_82 = _$_.template(`<!>`, 1, 1);
1131
1132
 
1132
1133
  function PrimitiveTextCalls_render(__anchor, __block) {
1133
- const count = _$_.track(2, __block, 'eea72017');
1134
+ const count = _$_.track(2, __block, '1u7u49j');
1134
1135
  var fragment_36 = root_82();
1135
1136
  var node_30 = _$_.first_child_frag(fragment_36);
1136
1137
 
@@ -1140,7 +1141,7 @@ function PrimitiveTextCalls_render(__anchor, __block) {
1140
1141
  var button_2 = _$_.hydrating ? _$_.hydrate_sibling() : div_33.nextSibling;
1141
1142
 
1142
1143
  button_2.__click = () => count.value++;
1143
- _$_.render(render_5, { a: '', _count: count, ___block: __block, _div_33: div_33 });
1144
+ _$_.render(render_5, { a: '', _a: count, _b: __block, _c: div_33 });
1144
1145
  _$_.append(__anchor, fragment_37);
1145
1146
  }));
1146
1147
 
@@ -1149,11 +1150,11 @@ function PrimitiveTextCalls_render(__anchor, __block) {
1149
1150
 
1150
1151
  PrimitiveTextCalls[_$_.$r] = PrimitiveTextCalls_render;
1151
1152
 
1152
- var root_84 = _$_.template(`<b>string</b>`, 0);
1153
- var root_85 = _$_.template(`<b>number</b>`, 0);
1154
- var root_86 = _$_.template(`<b>bigint</b>`, 0);
1155
- var root_87 = _$_.template(`<b>date</b>`, 0);
1156
- var root_89 = _$_.template(`<p>before<!>after</p><p>before<!>after</p><p>before<!>after</p><p>before<!>after</p>`, 1, 4);
1153
+ var root_84 = _$_.template_el('b', null, 'string');
1154
+ var root_85 = _$_.template_el('b', null, 'number');
1155
+ var root_86 = _$_.template_el('b', null, 'bigint');
1156
+ var root_87 = _$_.template_el('b', null, 'date');
1157
+ var root_89 = _$_.template(`<p>before<!>after</p><p>before<!>after</p><p>before<!>after</p><p>before<!>after`, 1, 4);
1157
1158
  var root_88 = _$_.template(`<!>`, 1, 1);
1158
1159
 
1159
1160
  function ShadowedTextCalls_render(__anchor, __block) {
@@ -1,7 +1,7 @@
1
1
  // @ts-nocheck
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
- var root = _$_.template(`<div class="layout"><!></div>`, 0);
4
+ var root = _$_.template(`<div class=layout><!>`);
5
5
 
6
6
  function Layout_render(__anchor, __block, { children }) {
7
7
  var div = root();
@@ -18,7 +18,7 @@ function Layout_render(__anchor, __block, { children }) {
18
18
 
19
19
  Layout[_$_.$r] = Layout_render;
20
20
 
21
- var root_1 = _$_.template(`<div class="layout">before<!>after</div>`, 0);
21
+ var root_1 = _$_.template(`<div class=layout>before<!>after`);
22
22
 
23
23
  function TextWrappedLayout_render(__anchor, __block, { children }) {
24
24
  var div_1 = root_1();
@@ -36,7 +36,7 @@ function TextWrappedLayout_render(__anchor, __block, { children }) {
36
36
 
37
37
  TextWrappedLayout[_$_.$r] = TextWrappedLayout_render;
38
38
 
39
- var root_2 = _$_.template(`<div class="single">single</div>`, 0);
39
+ var root_2 = _$_.template_el('div', ['class', 'single'], 'single');
40
40
 
41
41
  function SingleChild_render(__anchor, __block) {
42
42
  var div_2 = root_2();
@@ -46,7 +46,7 @@ function SingleChild_render(__anchor, __block) {
46
46
 
47
47
  SingleChild[_$_.$r] = SingleChild_render;
48
48
 
49
- var root_4 = _$_.template(`<h1>title</h1><p>description</p>`, 1, 2);
49
+ var root_4 = _$_.template(`<h1>title</h1><p>description`, 1, 2);
50
50
  var root_3 = _$_.template(`<!>`, 1, 1);
51
51
 
52
52
  function MultiRootChild_render(__anchor, __block) {
@@ -81,7 +81,7 @@ function LayoutWithSingleChild_render(__anchor, __block) {
81
81
 
82
82
  LayoutWithSingleChild[_$_.$r] = LayoutWithSingleChild_render;
83
83
 
84
- var root_5 = _$_.template(`<!><div class="extra">extra</div>`, 1, 2);
84
+ var root_5 = _$_.template(`<!><div class=extra>extra`, 1, 2);
85
85
 
86
86
  function LayoutWithMultipleChildren_render(__anchor, __block) {
87
87
  _$_.render_component(Layout, __anchor, {
@@ -141,6 +141,10 @@ DynamicTagElement[_$_.$r] = DynamicTagElement_render;
141
141
 
142
142
  var root_7 = _$_.template(`<!>`, 1, 1);
143
143
 
144
+ function render(__prev) {
145
+ __prev.a = _$_.dynamic(__prev.a, __prev._a, __prev._b, {});
146
+ }
147
+
144
148
  function DynamicTagComponent_render(__anchor, __block) {
145
149
  const Comp = SingleChild;
146
150
 
@@ -149,7 +153,12 @@ function DynamicTagComponent_render(__anchor, __block) {
149
153
  var fragment_4 = root_7();
150
154
  var node_3 = _$_.first_child_frag(fragment_4);
151
155
 
152
- _$_.composite(() => Comp, node_3, () => ({}));
156
+ _$_.render(render, {
157
+ a: _$_.dynamic_init(node_3, () => Comp, () => ({})),
158
+ _a: node_3,
159
+ _b: Comp
160
+ });
161
+
153
162
  _$_.append(__anchor, fragment_4);
154
163
  })
155
164
  });