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></div>`, 0);
4
+ var root = _$_.template_el('div');
5
5
 
6
6
  function StaticHtml_render(__anchor, __block) {
7
7
  const html = '<p><strong>Bold</strong> text</p>';
@@ -13,7 +13,7 @@ function StaticHtml_render(__anchor, __block) {
13
13
 
14
14
  StaticHtml[_$_.$r] = StaticHtml_render;
15
15
 
16
- var root_1 = _$_.template(`<div></div>`, 0);
16
+ var root_1 = _$_.template_el('div');
17
17
 
18
18
  function DynamicHtml_render(__anchor, __block) {
19
19
  const content = '<p>Dynamic <span>HTML</span> content</p>';
@@ -25,7 +25,7 @@ function DynamicHtml_render(__anchor, __block) {
25
25
 
26
26
  DynamicHtml[_$_.$r] = DynamicHtml_render;
27
27
 
28
- var root_2 = _$_.template(`<div></div>`, 0);
28
+ var root_2 = _$_.template_el('div');
29
29
 
30
30
  function EmptyHtml_render(__anchor, __block) {
31
31
  const html = '';
@@ -37,7 +37,7 @@ function EmptyHtml_render(__anchor, __block) {
37
37
 
38
38
  EmptyHtml[_$_.$r] = EmptyHtml_render;
39
39
 
40
- var root_3 = _$_.template(`<section></section>`, 0);
40
+ var root_3 = _$_.template_el('section');
41
41
 
42
42
  function ComplexHtml_render(__anchor, __block) {
43
43
  const html = '<div class="nested"><span>Nested <em>content</em></span></div>';
@@ -49,11 +49,11 @@ function ComplexHtml_render(__anchor, __block) {
49
49
 
50
50
  ComplexHtml[_$_.$r] = ComplexHtml_render;
51
51
 
52
- var root_4 = _$_.template(`<div><!><!></div>`, 0);
52
+ var root_4 = _$_.template(`<div><!><!>`);
53
53
 
54
54
  function render(__prev) {
55
- _$_.html(__prev._node, () => __prev._html1);
56
- _$_.html(__prev._node_1, () => __prev._html2);
55
+ _$_.html(__prev._a, () => __prev._b);
56
+ _$_.html(__prev._c, () => __prev._d);
57
57
  }
58
58
 
59
59
  function MultipleHtml_render(__anchor, __block) {
@@ -68,16 +68,16 @@ function MultipleHtml_render(__anchor, __block) {
68
68
  _$_.hydrating && _$_.pop(div_3);
69
69
  }
70
70
 
71
- _$_.render(render, { _node: node, _html1: html1, _node_1: node_1, _html2: html2 });
71
+ _$_.render(render, { _a: node, _b: html1, _c: node_1, _d: html2 });
72
72
  _$_.append(__anchor, div_3);
73
73
  }
74
74
 
75
75
  MultipleHtml[_$_.$r] = MultipleHtml_render;
76
76
 
77
- var root_5 = _$_.template(`<div><!><button>Increment</button></div>`, 0);
77
+ var root_5 = _$_.template(`<div><!><button>Increment`);
78
78
 
79
79
  function render_1(__prev) {
80
- _$_.html(__prev._node_2, () => "<p>Count: 0</p>");
80
+ _$_.html(__prev._a, () => "<p>Count: 0</p>");
81
81
  }
82
82
 
83
83
  function HtmlWithReactivity_render(__anchor, __block) {
@@ -89,13 +89,13 @@ function HtmlWithReactivity_render(__anchor, __block) {
89
89
  _$_.hydrating && _$_.pop(div_4);
90
90
  }
91
91
 
92
- _$_.render(render_1, { _node_2: node_2 });
92
+ _$_.render(render_1, { _a: node_2 });
93
93
  _$_.append(__anchor, div_4);
94
94
  }
95
95
 
96
96
  HtmlWithReactivity[_$_.$r] = HtmlWithReactivity_render;
97
97
 
98
- var root_6 = _$_.template(`<div class="wrapper"><div class="inner"><!></div></div>`, 0);
98
+ var root_6 = _$_.template(`<div class=wrapper><div class=inner><!>`);
99
99
 
100
100
  function HtmlWrapper_render(__anchor, __block, { children }) {
101
101
  var div_5 = root_6();
@@ -116,7 +116,7 @@ function HtmlWrapper_render(__anchor, __block, { children }) {
116
116
 
117
117
  HtmlWrapper[_$_.$r] = HtmlWrapper_render;
118
118
 
119
- var root_7 = _$_.template(`<div class="vp-doc"></div>`, 0);
119
+ var root_7 = _$_.template_el('div', ['class', 'vp-doc']);
120
120
 
121
121
  function HtmlInChildren_render(__anchor, __block) {
122
122
  const content = '<p><strong>Bold</strong> text</p>';
@@ -133,7 +133,7 @@ function HtmlInChildren_render(__anchor, __block) {
133
133
 
134
134
  HtmlInChildren[_$_.$r] = HtmlInChildren_render;
135
135
 
136
- var root_8 = _$_.template(`<h1>Title</h1><div class="content"></div>`, 1, 2);
136
+ var root_8 = _$_.template(`<h1>Title</h1><div class=content>`, 1, 2);
137
137
 
138
138
  function HtmlInChildrenWithSiblings_render(__anchor, __block) {
139
139
  const content = '<p>Dynamic content</p>';
@@ -152,11 +152,11 @@ function HtmlInChildrenWithSiblings_render(__anchor, __block) {
152
152
 
153
153
  HtmlInChildrenWithSiblings[_$_.$r] = HtmlInChildrenWithSiblings_render;
154
154
 
155
- var root_9 = _$_.template(`<div class="doc"><!><!></div>`, 0);
155
+ var root_9 = _$_.template(`<div class=doc><!><!>`);
156
156
 
157
157
  function render_2(__prev) {
158
- _$_.html(__prev._node_3, () => __prev._html1);
159
- _$_.html(__prev._node_4, () => __prev._html2);
158
+ _$_.html(__prev._a, () => __prev._b);
159
+ _$_.html(__prev._c, () => __prev._d);
160
160
  }
161
161
 
162
162
  function MultipleHtmlInChildren_render(__anchor, __block) {
@@ -174,13 +174,7 @@ function MultipleHtmlInChildren_render(__anchor, __block) {
174
174
  _$_.hydrating && _$_.pop(div_9);
175
175
  }
176
176
 
177
- _$_.render(render_2, {
178
- _node_3: node_3,
179
- _html1: html1,
180
- _node_4: node_4,
181
- _html2: html2
182
- });
183
-
177
+ _$_.render(render_2, { _a: node_3, _b: html1, _c: node_4, _d: html2 });
184
178
  _$_.append(__anchor, div_9);
185
179
  })
186
180
  });
@@ -188,7 +182,7 @@ function MultipleHtmlInChildren_render(__anchor, __block) {
188
182
 
189
183
  MultipleHtmlInChildren[_$_.$r] = MultipleHtmlInChildren_render;
190
184
 
191
- var root_10 = _$_.template(`<div></div>`, 0);
185
+ var root_10 = _$_.template_el('div');
192
186
 
193
187
  function HtmlWithComments_render(__anchor, __block) {
194
188
  const content = '<p>Before comment</p><!-- TODO: Elaborate --><p>After comment</p>';
@@ -200,7 +194,7 @@ function HtmlWithComments_render(__anchor, __block) {
200
194
 
201
195
  HtmlWithComments[_$_.$r] = HtmlWithComments_render;
202
196
 
203
- var root_11 = _$_.template(`<div></div>`, 0);
197
+ var root_11 = _$_.template_el('div');
204
198
 
205
199
  function HtmlWithEmptyComment_render(__anchor, __block) {
206
200
  const content = '<p>Before</p><!----><p>After</p>';
@@ -212,7 +206,7 @@ function HtmlWithEmptyComment_render(__anchor, __block) {
212
206
 
213
207
  HtmlWithEmptyComment[_$_.$r] = HtmlWithEmptyComment_render;
214
208
 
215
- var root_12 = _$_.template(`<div class="vp-doc"></div>`, 0);
209
+ var root_12 = _$_.template_el('div', ['class', 'vp-doc']);
216
210
 
217
211
  function HtmlWithCommentsInChildren_render(__anchor, __block) {
218
212
  const content = '<h2 id="intro">Introduction</h2><p>Some text</p><!-- TODO --><p>More text</p>';
@@ -229,7 +223,7 @@ function HtmlWithCommentsInChildren_render(__anchor, __block) {
229
223
 
230
224
  HtmlWithCommentsInChildren[_$_.$r] = HtmlWithCommentsInChildren_render;
231
225
 
232
- var root_13 = _$_.template(`<footer class="doc-footer">Footer content</footer>`, 0);
226
+ var root_13 = _$_.template_el('footer', ['class', 'doc-footer'], 'Footer content');
233
227
 
234
228
  function DocFooter_render(__anchor, __block) {
235
229
  var footer = root_13();
@@ -239,7 +233,7 @@ function DocFooter_render(__anchor, __block) {
239
233
 
240
234
  DocFooter[_$_.$r] = DocFooter_render;
241
235
 
242
- var root_15 = _$_.template(`<div class="edit-link"><a>Edit</a></div>`, 0);
236
+ var root_15 = _$_.template(`<div class=edit-link><a>Edit`);
243
237
 
244
238
  function consequent(__anchor, editPath) {
245
239
  var div_16 = root_15();
@@ -247,7 +241,7 @@ function consequent(__anchor, editPath) {
247
241
  {
248
242
  var a = _$_.hydrating ? _$_.hydrate_child() : div_16.firstChild;
249
243
 
250
- _$_.set_attribute(a, 'href', `https://github.com/edit/${editPath}`);
244
+ a.setAttribute('href', `https://github.com/edit/${editPath}`);
251
245
  }
252
246
 
253
247
  _$_.append(__anchor, div_16);
@@ -257,13 +251,13 @@ function if_1(editPath) {
257
251
  if (editPath) return consequent;
258
252
  }
259
253
 
260
- var root_16 = _$_.template(`<nav class="prev-next"><a> </a></nav>`, 0);
254
+ var root_16 = _$_.template(`<nav class=prev-next><a> `);
261
255
 
262
256
  function render_3(__prev) {
263
- var __a = __prev._nextLink.href;
257
+ var __a = __prev._a.href;
264
258
 
265
259
  if (__prev.a !== __a) {
266
- _$_.set_attribute(__prev._a_1, 'href', __prev.a = __a);
260
+ _$_.set_attribute(__prev._b, 'href', __prev.a = __a);
267
261
  }
268
262
  }
269
263
 
@@ -281,7 +275,7 @@ function consequent_1(__anchor, nextLink) {
281
275
  }
282
276
  }
283
277
 
284
- _$_.render(render_3, { a: void 0, _nextLink: nextLink, _a_1: a_1 });
278
+ _$_.render(render_3, { a: void 0, _a: nextLink, _b: a_1 });
285
279
  _$_.append(__anchor, nav);
286
280
  }
287
281
 
@@ -289,24 +283,24 @@ function if_2(nextLink) {
289
283
  if (nextLink) return consequent_1;
290
284
  }
291
285
 
292
- var root_18 = _$_.template(`<li><a></a></li>`, 0);
286
+ var root_18 = _$_.template(`<li><a>`);
293
287
 
294
288
  function render_4(__prev) {
295
- var __a = __prev._item.text;
289
+ var __a = __prev._a.text;
296
290
 
297
291
  if (__prev.a !== __a) {
298
- _$_.set_text_content(__prev._a_2, __a, __prev.a);
292
+ _$_.set_text_content(__prev._b, __a, __prev.a);
299
293
  __prev.a = __a;
300
294
  }
301
295
 
302
- var __b = __prev._item.href;
296
+ var __b = __prev._a.href;
303
297
 
304
298
  if (__prev.b !== __b) {
305
- _$_.set_attribute(__prev._a_2, 'href', __prev.b = __b);
299
+ _$_.set_attribute(__prev._b, 'href', __prev.b = __b);
306
300
  }
307
301
  }
308
302
 
309
- var root_17 = _$_.template(`<div class="toc"><ul></ul></div>`, 0);
303
+ var root_17 = _$_.template(`<div class=toc><ul>`);
310
304
 
311
305
  function consequent_2(__anchor, toc) {
312
306
  var div_17 = root_17();
@@ -325,7 +319,7 @@ function consequent_2(__anchor, toc) {
325
319
  var a_2 = _$_.hydrating ? _$_.hydrate_child() : li.firstChild;
326
320
  }
327
321
 
328
- _$_.item({ a: '', b: void 0, _item: item, _a_2: a_2 });
322
+ _$_.item({ a: '', b: void 0, _a: item, _b: a_2 });
329
323
  _$_.append(__anchor, li);
330
324
  },
331
325
  4,
@@ -344,7 +338,15 @@ function if_3(toc) {
344
338
  if (toc.length > 0) return consequent_2;
345
339
  }
346
340
 
347
- var root_14 = _$_.template(`<div class="layout"><div class="content-container"><article><div><!></div></article></div><aside><!></aside></div>`, 0);
341
+ var root_14 = _$_.template(`<div class=layout><div class=content-container><article><div><!></div></article></div><aside><!>`);
342
+
343
+ function render_5(__prev) {
344
+ var __a = if_3(__prev._a);
345
+
346
+ if (__prev.a !== __a) {
347
+ _$_.if_update(__prev._b, __prev.a = __a);
348
+ }
349
+ }
348
350
 
349
351
  function DocLayout_render(
350
352
  __anchor,
@@ -390,18 +392,19 @@ function DocLayout_render(
390
392
 
391
393
  {
392
394
  var node_8 = _$_.hydrating ? _$_.hydrate_child() : aside.firstChild;
395
+ var ifs = _$_.if_static(node_8, if_3, 0, toc);
393
396
 
394
- _$_.if(node_8, if_3, false, toc);
395
397
  _$_.hydrating && _$_.pop(aside);
396
398
  }
397
399
  }
398
400
 
401
+ _$_.render(render_5, { a: _$_.UNINITIALIZED, _a: toc, _b: ifs });
399
402
  _$_.append(__anchor, div_13);
400
403
  }
401
404
 
402
405
  DocLayout[_$_.$r] = DocLayout_render;
403
406
 
404
- var root_19 = _$_.template(`<div class="vp-doc"></div>`, 0);
407
+ var root_19 = _$_.template_el('div', ['class', 'vp-doc']);
405
408
 
406
409
  function HtmlWithServerData_render(__anchor, __block) {
407
410
  const content = '<h1 id="intro" class="doc-h1">Introduction</h1><p>Ripple is a framework.</p>';
@@ -425,7 +428,7 @@ function HtmlWithServerData_render(__anchor, __block) {
425
428
 
426
429
  HtmlWithServerData[_$_.$r] = HtmlWithServerData_render;
427
430
 
428
- var root_20 = _$_.template(`<div class="vp-doc"></div>`, 0);
431
+ var root_20 = _$_.template_el('div', ['class', 'vp-doc']);
429
432
 
430
433
  function HtmlWithClientDefaults_render(__anchor, __block) {
431
434
  const content = '<h1 id="intro" class="doc-h1">Introduction</h1><p>Ripple is a framework.</p>';
@@ -442,7 +445,7 @@ function HtmlWithClientDefaults_render(__anchor, __block) {
442
445
 
443
446
  HtmlWithClientDefaults[_$_.$r] = HtmlWithClientDefaults_render;
444
447
 
445
- var root_21 = _$_.template(`<div class="vp-doc"></div>`, 0);
448
+ var root_21 = _$_.template_el('div', ['class', 'vp-doc']);
446
449
 
447
450
  function HtmlWithUndefinedContent_render(__anchor, __block) {
448
451
  const content = undefined;
@@ -459,10 +462,10 @@ function HtmlWithUndefinedContent_render(__anchor, __block) {
459
462
 
460
463
  HtmlWithUndefinedContent[_$_.$r] = HtmlWithUndefinedContent_render;
461
464
 
462
- var root_22 = _$_.template(`<h1 class="heading"><!></h1>`, 0);
463
- var root_23 = _$_.template(`<h2 class="heading"><!></h2>`, 0);
465
+ var root_22 = _$_.template(`<h1 class=heading><!>`);
466
+ var root_23 = _$_.template(`<h2 class=heading><!>`);
464
467
 
465
- function switch_case_0(__anchor, { level, children }) {
468
+ function switch_case_0(__anchor, { a: level, b: children }) {
466
469
  var h1_1 = root_22();
467
470
 
468
471
  {
@@ -475,7 +478,7 @@ function switch_case_0(__anchor, { level, children }) {
475
478
  _$_.append(__anchor, h1_1);
476
479
  }
477
480
 
478
- function switch_case_1(__anchor, { level, children }) {
481
+ function switch_case_1(__anchor, { a: level, b: children }) {
479
482
  var h2 = root_23();
480
483
 
481
484
  {
@@ -488,7 +491,7 @@ function switch_case_1(__anchor, { level, children }) {
488
491
  _$_.append(__anchor, h2);
489
492
  }
490
493
 
491
- function switch_1({ level, children }) {
494
+ function switch_1({ a: level, b: children }) {
492
495
  switch (level) {
493
496
  case 1:
494
497
  return switch_case_0;
@@ -499,12 +502,12 @@ function switch_1({ level, children }) {
499
502
  }
500
503
 
501
504
  function DynamicHeading_render(__anchor, __block, { level, children }) {
502
- _$_.switch(__anchor, switch_1, true, { level, children });
505
+ _$_.switch(__anchor, switch_1, true, { a: level, b: children });
503
506
  }
504
507
 
505
508
  DynamicHeading[_$_.$r] = DynamicHeading_render;
506
509
 
507
- var root_24 = _$_.template(`<div class="code-block"><div class="header"><button>Copy</button><span class="lang">js</span></div><div class="content"></div></div>`, 0);
510
+ var root_24 = _$_.template(`<div class=code-block><div class=header><button>Copy</button><span class=lang>js</span></div><div class=content>`);
508
511
 
509
512
  function CodeBlock_render(__anchor, __block, { code }) {
510
513
  const highlighted = `<pre class="shiki"><code>${code}</code></pre>`;
@@ -522,7 +525,7 @@ function CodeBlock_render(__anchor, __block, { code }) {
522
525
 
523
526
  CodeBlock[_$_.$r] = CodeBlock_render;
524
527
 
525
- var root_25 = _$_.template(`<div class="wrapper"><div class="inner"><!></div></div>`, 0);
528
+ var root_25 = _$_.template(`<div class=wrapper><div class=inner><!>`);
526
529
 
527
530
  function ContentWrapper_render(__anchor, __block, { children }) {
528
531
  var div_24 = root_25();
@@ -543,7 +546,7 @@ function ContentWrapper_render(__anchor, __block, { children }) {
543
546
 
544
547
  ContentWrapper[_$_.$r] = ContentWrapper_render;
545
548
 
546
- var root_26 = _$_.template(`<!><p>First paragraph</p><p>Second paragraph</p><!><p>After code</p>`, 1, 5);
549
+ var root_26 = _$_.template(`<!><p>First paragraph</p><p>Second paragraph</p><!><p>After code`, 1, 5);
547
550
 
548
551
  function HtmlAfterSwitchInChildren_render(__anchor, __block) {
549
552
  _$_.render_component(ContentWrapper, __anchor, {
@@ -573,10 +576,10 @@ function HtmlAfterSwitchInChildren_render(__anchor, __block) {
573
576
 
574
577
  HtmlAfterSwitchInChildren[_$_.$r] = HtmlAfterSwitchInChildren_render;
575
578
 
576
- var root_27 = _$_.template(`<h1 class="heading"><!></h1>`, 0);
577
- var root_28 = _$_.template(`<h2 class="heading"><!></h2>`, 0);
579
+ var root_27 = _$_.template(`<h1 class=heading><!>`);
580
+ var root_28 = _$_.template(`<h2 class=heading><!>`);
578
581
 
579
- function consequent_3(__anchor, { primary, children }) {
582
+ function consequent_3(__anchor, { a: primary, b: children }) {
580
583
  var h1_2 = root_27();
581
584
 
582
585
  {
@@ -589,7 +592,7 @@ function consequent_3(__anchor, { primary, children }) {
589
592
  _$_.append(__anchor, h1_2);
590
593
  }
591
594
 
592
- function alternate(__anchor, { primary, children }) {
595
+ function alternate(__anchor, { a: primary, b: children }) {
593
596
  var h2_1 = root_28();
594
597
 
595
598
  {
@@ -602,17 +605,17 @@ function alternate(__anchor, { primary, children }) {
602
605
  _$_.append(__anchor, h2_1);
603
606
  }
604
607
 
605
- function if_4({ primary, children }) {
608
+ function if_4({ a: primary, b: children }) {
606
609
  if (primary) return consequent_3; else return alternate;
607
610
  }
608
611
 
609
612
  function IfHeading_render(__anchor, __block, { primary, children }) {
610
- _$_.if(__anchor, if_4, true, { primary, children });
613
+ _$_.if(__anchor, if_4, true, { a: primary, b: children });
611
614
  }
612
615
 
613
616
  IfHeading[_$_.$r] = IfHeading_render;
614
617
 
615
- var root_29 = _$_.template(`<!><p>First paragraph</p><p>Second paragraph</p><!><p>After code</p>`, 1, 5);
618
+ var root_29 = _$_.template(`<!><p>First paragraph</p><p>Second paragraph</p><!><p>After code`, 1, 5);
616
619
 
617
620
  function HtmlAfterIfInChildren_render(__anchor, __block) {
618
621
  _$_.render_component(ContentWrapper, __anchor, {
@@ -642,7 +645,7 @@ function HtmlAfterIfInChildren_render(__anchor, __block) {
642
645
 
643
646
  HtmlAfterIfInChildren[_$_.$r] = HtmlAfterIfInChildren_render;
644
647
 
645
- var root_30 = _$_.template(`<span class="for-item"></span>`, 0);
648
+ var root_30 = _$_.template_el('span', ['class', 'for-item']);
646
649
 
647
650
  function ForList_render(__anchor, __block, { items }) {
648
651
  _$_.for(
@@ -663,7 +666,7 @@ function ForList_render(__anchor, __block, { items }) {
663
666
 
664
667
  ForList[_$_.$r] = ForList_render;
665
668
 
666
- var root_31 = _$_.template(`<!><p>First paragraph</p><!><p>After code</p>`, 1, 4);
669
+ var root_31 = _$_.template(`<!><p>First paragraph</p><!><p>After code`, 1, 4);
667
670
 
668
671
  function HtmlAfterForInChildren_render(__anchor, __block) {
669
672
  _$_.render_component(ContentWrapper, __anchor, {
@@ -685,8 +688,8 @@ function HtmlAfterForInChildren_render(__anchor, __block) {
685
688
 
686
689
  HtmlAfterForInChildren[_$_.$r] = HtmlAfterForInChildren_render;
687
690
 
688
- var root_32 = _$_.template(`<div class="try-box"></div>`, 0);
689
- var root_33 = _$_.template(`<span>error</span>`, 0);
691
+ var root_32 = _$_.template_el('div', ['class', 'try-box']);
692
+ var root_33 = _$_.template_el('span', null, 'error');
690
693
 
691
694
  function TryBox_render(__anchor, __block, { value }) {
692
695
  _$_.try(
@@ -712,7 +715,7 @@ function TryBox_render(__anchor, __block, { value }) {
712
715
 
713
716
  TryBox[_$_.$r] = TryBox_render;
714
717
 
715
- var root_34 = _$_.template(`<!><p>First paragraph</p><!><p>After code</p>`, 1, 4);
718
+ var root_34 = _$_.template(`<!><p>First paragraph</p><!><p>After code`, 1, 4);
716
719
 
717
720
  function HtmlAfterTryInChildren_render(__anchor, __block) {
718
721
  _$_.render_component(ContentWrapper, __anchor, {
@@ -734,7 +737,7 @@ function HtmlAfterTryInChildren_render(__anchor, __block) {
734
737
 
735
738
  HtmlAfterTryInChildren[_$_.$r] = HtmlAfterTryInChildren_render;
736
739
 
737
- var root_35 = _$_.template(`<span class="boxed"><!></span>`, 0);
740
+ var root_35 = _$_.template(`<span class=boxed><!>`);
738
741
 
739
742
  function Boxed_render(__anchor, __block, { children }) {
740
743
  var span_2 = root_35();
@@ -767,7 +770,7 @@ function IndirectHeading_render(__anchor, __block, { text }) {
767
770
 
768
771
  IndirectHeading[_$_.$r] = IndirectHeading_render;
769
772
 
770
- var root_37 = _$_.template(`<!><p>First paragraph</p><!><p>After code</p>`, 1, 4);
773
+ var root_37 = _$_.template(`<!><p>First paragraph</p><!><p>After code`, 1, 4);
771
774
 
772
775
  function HtmlAfterComponentInChildren_render(__anchor, __block) {
773
776
  _$_.render_component(ContentWrapper, __anchor, {
@@ -789,7 +792,7 @@ function HtmlAfterComponentInChildren_render(__anchor, __block) {
789
792
 
790
793
  HtmlAfterComponentInChildren[_$_.$r] = HtmlAfterComponentInChildren_render;
791
794
 
792
- var root_39 = _$_.template(`<div class="indicator"></div>`, 0);
795
+ var root_39 = _$_.template_el('div', ['class', 'indicator']);
793
796
 
794
797
  function consequent_4(__anchor, active) {
795
798
  var div_28 = root_39();
@@ -801,19 +804,19 @@ function if_5(active) {
801
804
  if (active) return consequent_4;
802
805
  }
803
806
 
804
- var root_38 = _$_.template(`<div><!><a><span></span></a></div>`, 0);
807
+ var root_38 = _$_.template(`<div><a><span>`);
805
808
 
806
809
  function NavItem_render(__anchor, __block, { href, text: label, active = false }) {
807
810
  var div_27 = root_38();
808
811
 
809
- _$_.set_class(div_27, `nav-item${active ? ' active' : ''}`, void 0, true);
812
+ _$_.set_class(div_27, `nav-item${active ? ' active' : ''}`);
810
813
 
811
814
  {
812
815
  var node_19 = _$_.hydrating ? _$_.hydrate_child() : div_27.firstChild;
813
816
 
814
817
  _$_.if(node_19, if_5, false, active);
815
818
 
816
- var a_3 = _$_.hydrating ? _$_.hydrate_sibling() : node_19.nextSibling;
819
+ var a_3 = _$_.hydrating ? _$_.hydrate_sibling() : node_19;
817
820
 
818
821
  _$_.set_attribute(a_3, 'href', href);
819
822
 
@@ -833,9 +836,9 @@ function NavItem_render(__anchor, __block, { href, text: label, active = false }
833
836
 
834
837
  NavItem[_$_.$r] = NavItem_render;
835
838
 
836
- var root_41 = _$_.template(`<div class="section-items"><!></div>`, 0);
839
+ var root_41 = _$_.template(`<div class=section-items><!>`);
837
840
 
838
- function consequent_5(__anchor, { expanded, children }) {
841
+ function consequent_5(__anchor, { a: expanded, b: children }) {
839
842
  var div_30 = root_41();
840
843
 
841
844
  {
@@ -848,14 +851,22 @@ function consequent_5(__anchor, { expanded, children }) {
848
851
  _$_.append(__anchor, div_30);
849
852
  }
850
853
 
851
- function if_6({ expanded, children }) {
854
+ function if_6({ a: expanded, b: children }) {
852
855
  if (expanded.value) return consequent_5;
853
856
  }
854
857
 
855
- var root_40 = _$_.template(`<section class="sidebar-section"><div class="section-header"><h2></h2><button>Toggle</button></div></section>`, 0);
858
+ var root_40 = _$_.template(`<section class=sidebar-section><div class=section-header><h2></h2><button>Toggle`);
859
+
860
+ function render_6(__prev) {
861
+ var __a = if_6({ a: __prev._a, b: __prev._b });
862
+
863
+ if (__prev.a !== __a) {
864
+ _$_.if_update(__prev._c, __prev.a = __a);
865
+ }
866
+ }
856
867
 
857
868
  function SidebarSection_render(__anchor, __block, { title, children }) {
858
- const expanded = _$_.track(true, __block, '6ac6906f');
869
+ const expanded = _$_.track(true, __block, 'tmjvjj');
859
870
  var section_1 = root_40();
860
871
 
861
872
  {
@@ -875,12 +886,16 @@ function SidebarSection_render(__anchor, __block, { title, children }) {
875
886
 
876
887
  _$_.hydrating && _$_.pop(div_29);
877
888
 
878
- var node_20 = _$_.hydrating ? _$_.hydrate_sibling() : _$_.append_into(section_1);
889
+ var node_20 = _$_.hydrating
890
+ ? _$_.hydrate_sibling()
891
+ : _$_.append_into(section_1, true);
892
+
893
+ var ifs_1 = _$_.if_static(node_20, if_6, 0, { a: expanded, b: children });
879
894
 
880
- _$_.if(node_20, if_6, false, { expanded, children });
881
895
  _$_.hydrating && _$_.pop(section_1);
882
896
  }
883
897
 
898
+ _$_.render(render_6, { a: _$_.UNINITIALIZED, _a: expanded, _b: children, _c: ifs_1 });
884
899
  _$_.append(__anchor, section_1);
885
900
  }
886
901
 
@@ -888,7 +903,7 @@ SidebarSection[_$_.$r] = SidebarSection_render;
888
903
 
889
904
  var root_43 = _$_.template(`<!><!>`, 1, 2);
890
905
  var root_44 = _$_.template(`<!><!>`, 1, 2);
891
- var root_42 = _$_.template(`<aside class="sidebar"><nav><div class="group"></div><div class="group"></div></nav></aside>`, 0);
906
+ var root_42 = _$_.template(`<aside class=sidebar><nav><div class=group></div><div class=group>`);
892
907
 
893
908
  function SideNav_render(__anchor, __block, { currentPath }) {
894
909
  var aside_1 = root_42();
@@ -968,7 +983,7 @@ function SideNav_render(__anchor, __block, { currentPath }) {
968
983
 
969
984
  SideNav[_$_.$r] = SideNav_render;
970
985
 
971
- var root_45 = _$_.template(`<header class="page-header"><div class="logo">MyApp</div></header>`, 0);
986
+ var root_45 = _$_.template(`<header class=page-header><div class=logo>MyApp`);
972
987
 
973
988
  function PageHeader_render(__anchor, __block) {
974
989
  var header = root_45();
@@ -978,7 +993,7 @@ function PageHeader_render(__anchor, __block) {
978
993
 
979
994
  PageHeader[_$_.$r] = PageHeader_render;
980
995
 
981
- var root_47 = _$_.template(`<div class="edit-link"><a href="/edit">Edit</a></div>`, 0);
996
+ var root_47 = _$_.template(`<div class=edit-link><a href=/edit>Edit`);
982
997
 
983
998
  function consequent_6(__anchor) {
984
999
  var div_36 = root_47();
@@ -990,7 +1005,7 @@ function if_7() {
990
1005
  if (true) return consequent_6;
991
1006
  }
992
1007
 
993
- var root_46 = _$_.template(`<div class="layout"><!><div class="content-wrapper"><!><main class="main-content"><div class="article"><div><h1>Introduction</h1><p>Welcome to the docs.</p></div></div></main></div></div>`, 0);
1008
+ var root_46 = _$_.template(`<div class=layout><div class=content-wrapper><main class=main-content><div class=article><div><h1>Introduction</h1><p>Welcome to the docs.`);
994
1009
 
995
1010
  function LayoutWithSidebarAndMain_render(__anchor, __block) {
996
1011
  var div_33 = root_46();
@@ -1000,14 +1015,14 @@ function LayoutWithSidebarAndMain_render(__anchor, __block) {
1000
1015
 
1001
1016
  _$_.render_component(PageHeader, node_25, {});
1002
1017
 
1003
- var div_34 = _$_.hydrating ? _$_.hydrate_sibling() : node_25.nextSibling;
1018
+ var div_34 = _$_.hydrating ? _$_.hydrate_sibling() : node_25;
1004
1019
 
1005
1020
  {
1006
1021
  var node_26 = _$_.hydrating ? _$_.hydrate_child() : div_34.firstChild;
1007
1022
 
1008
1023
  _$_.render_component(SideNav, node_26, { currentPath: "/intro" });
1009
1024
 
1010
- var main = _$_.hydrating ? _$_.hydrate_sibling() : node_26.nextSibling;
1025
+ var main = _$_.hydrating ? _$_.hydrate_sibling() : node_26;
1011
1026
 
1012
1027
  {
1013
1028
  var div_35 = _$_.hydrating ? _$_.hydrate_child() : main.firstChild;
@@ -1032,7 +1047,7 @@ function LayoutWithSidebarAndMain_render(__anchor, __block) {
1032
1047
 
1033
1048
  LayoutWithSidebarAndMain[_$_.$r] = LayoutWithSidebarAndMain_render;
1034
1049
 
1035
- var root_48 = _$_.template(`<article class="doc-content"><div><!></div></article>`, 0);
1050
+ var root_48 = _$_.template(`<article class=doc-content><div><!>`);
1036
1051
 
1037
1052
  function ArticleWrapper_render(__anchor, __block, { children }) {
1038
1053
  var article_1 = root_48();
@@ -1053,7 +1068,7 @@ function ArticleWrapper_render(__anchor, __block, { children }) {
1053
1068
 
1054
1069
  ArticleWrapper[_$_.$r] = ArticleWrapper_render;
1055
1070
 
1056
- var root_49 = _$_.template(`<footer class="doc-footer">Footer</footer>`, 0);
1071
+ var root_49 = _$_.template_el('footer', ['class', 'doc-footer'], 'Footer');
1057
1072
 
1058
1073
  function SimpleFooter_render(__anchor, __block) {
1059
1074
  var footer_1 = root_49();
@@ -1063,8 +1078,8 @@ function SimpleFooter_render(__anchor, __block) {
1063
1078
 
1064
1079
  SimpleFooter[_$_.$r] = SimpleFooter_render;
1065
1080
 
1066
- var root_51 = _$_.template(`<h1>Title</h1><p>Content goes here.</p>`, 1, 2);
1067
- var root_52 = _$_.template(`<div class="edit-link"><a href="/edit">Edit</a></div>`, 0);
1081
+ var root_51 = _$_.template(`<h1>Title</h1><p>Content goes here.`, 1, 2);
1082
+ var root_52 = _$_.template(`<div class=edit-link><a href=/edit>Edit`);
1068
1083
 
1069
1084
  function consequent_7(__anchor) {
1070
1085
  var div_39 = root_52();
@@ -1076,7 +1091,7 @@ function if_8() {
1076
1091
  if (true) return consequent_7;
1077
1092
  }
1078
1093
 
1079
- var root_53 = _$_.template(`<nav class="prev-next"><a href="/prev">Previous</a></nav>`, 0);
1094
+ var root_53 = _$_.template(`<nav class=prev-next><a href=/prev>Previous`);
1080
1095
 
1081
1096
  function consequent_8(__anchor) {
1082
1097
  var nav_2 = root_53();
@@ -1088,7 +1103,7 @@ function if_9() {
1088
1103
  if (true) return consequent_8;
1089
1104
  }
1090
1105
 
1091
- var root_50 = _$_.template(`<div class="content-container"><!><!><!><!></div>`, 0);
1106
+ var root_50 = _$_.template(`<div class=content-container><!><!><!><!>`);
1092
1107
 
1093
1108
  function ArticleWithChildrenThenSibling_render(__anchor, __block) {
1094
1109
  var div_38 = root_50();
@@ -1124,8 +1139,8 @@ function ArticleWithChildrenThenSibling_render(__anchor, __block) {
1124
1139
 
1125
1140
  ArticleWithChildrenThenSibling[_$_.$r] = ArticleWithChildrenThenSibling_render;
1126
1141
 
1127
- var root_55 = _$_.template(`<div class="doc-content"></div>`, 0);
1128
- var root_56 = _$_.template(`<div class="edit-link"><a href="/edit">Edit</a></div>`, 0);
1142
+ var root_55 = _$_.template_el('div', ['class', 'doc-content']);
1143
+ var root_56 = _$_.template(`<div class=edit-link><a href=/edit>Edit`);
1129
1144
 
1130
1145
  function consequent_9(__anchor) {
1131
1146
  var div_42 = root_56();
@@ -1137,7 +1152,7 @@ function if_10() {
1137
1152
  if (true) return consequent_9;
1138
1153
  }
1139
1154
 
1140
- var root_54 = _$_.template(`<div class="content-container"><!><!><!></div>`, 0);
1155
+ var root_54 = _$_.template(`<div class=content-container><!><!><!>`);
1141
1156
 
1142
1157
  function ArticleWithHtmlChildThenSibling_render(__anchor, __block) {
1143
1158
  const htmlContent = '<pre><code>const x = 1;</code></pre>';
@@ -1170,7 +1185,7 @@ function ArticleWithHtmlChildThenSibling_render(__anchor, __block) {
1170
1185
 
1171
1186
  ArticleWithHtmlChildThenSibling[_$_.$r] = ArticleWithHtmlChildThenSibling_render;
1172
1187
 
1173
- var root_58 = _$_.template(`<div class="edit-link"><a href="/edit">Edit</a></div>`, 0);
1188
+ var root_58 = _$_.template(`<div class=edit-link><a href=/edit>Edit`);
1174
1189
 
1175
1190
  function consequent_10(__anchor) {
1176
1191
  var div_45 = root_58();
@@ -1182,7 +1197,7 @@ function if_11() {
1182
1197
  if (true) return consequent_10;
1183
1198
  }
1184
1199
 
1185
- var root_57 = _$_.template(`<div class="content-container"><article class="doc-content"><div><!></div></article></div>`, 0);
1200
+ var root_57 = _$_.template(`<div class=content-container><article class=doc-content><div><!>`);
1186
1201
 
1187
1202
  function InlineArticleLayout_render(__anchor, __block, { children }) {
1188
1203
  var div_43 = root_57();
@@ -1218,7 +1233,7 @@ function InlineArticleLayout_render(__anchor, __block, { children }) {
1218
1233
 
1219
1234
  InlineArticleLayout[_$_.$r] = InlineArticleLayout_render;
1220
1235
 
1221
- var root_59 = _$_.template(`<div class="doc-content"></div>`, 0);
1236
+ var root_59 = _$_.template_el('div', ['class', 'doc-content']);
1222
1237
 
1223
1238
  function InlineArticleWithHtmlChild_render(__anchor, __block) {
1224
1239
  const htmlContent = '<pre><code>const x = 1;</code></pre>';
@@ -1235,7 +1250,7 @@ function InlineArticleWithHtmlChild_render(__anchor, __block) {
1235
1250
 
1236
1251
  InlineArticleWithHtmlChild[_$_.$r] = InlineArticleWithHtmlChild_render;
1237
1252
 
1238
- var root_60 = _$_.template(`<header class="header">Header</header>`, 0);
1253
+ var root_60 = _$_.template_el('header', ['class', 'header'], 'Header');
1239
1254
 
1240
1255
  function HeaderStub_render(__anchor, __block) {
1241
1256
  var header_1 = root_60();
@@ -1245,7 +1260,7 @@ function HeaderStub_render(__anchor, __block) {
1245
1260
 
1246
1261
  HeaderStub[_$_.$r] = HeaderStub_render;
1247
1262
 
1248
- var root_61 = _$_.template(`<aside class="sidebar">Sidebar</aside>`, 0);
1263
+ var root_61 = _$_.template_el('aside', ['class', 'sidebar'], 'Sidebar');
1249
1264
 
1250
1265
  function SidebarStub_render(__anchor, __block) {
1251
1266
  var aside_2 = root_61();
@@ -1255,7 +1270,7 @@ function SidebarStub_render(__anchor, __block) {
1255
1270
 
1256
1271
  SidebarStub[_$_.$r] = SidebarStub_render;
1257
1272
 
1258
- var root_62 = _$_.template(`<footer class="footer">Footer</footer>`, 0);
1273
+ var root_62 = _$_.template_el('footer', ['class', 'footer'], 'Footer');
1259
1274
 
1260
1275
  function FooterStub_render(__anchor, __block) {
1261
1276
  var footer_2 = root_62();
@@ -1265,7 +1280,7 @@ function FooterStub_render(__anchor, __block) {
1265
1280
 
1266
1281
  FooterStub[_$_.$r] = FooterStub_render;
1267
1282
 
1268
- var root_64 = _$_.template(`<div class="edit-link"><a href="/edit">Edit on GitHub</a></div>`, 0);
1283
+ var root_64 = _$_.template(`<div class=edit-link><a href=/edit>Edit on GitHub`);
1269
1284
 
1270
1285
  function consequent_11(__anchor, editPath) {
1271
1286
  var div_53 = root_64();
@@ -1277,13 +1292,13 @@ function if_12(editPath) {
1277
1292
  if (editPath) return consequent_11;
1278
1293
  }
1279
1294
 
1280
- var root_65 = _$_.template(`<nav class="prev-next"><a> </a></nav>`, 0);
1295
+ var root_65 = _$_.template(`<nav class=prev-next><a> `);
1281
1296
 
1282
- function render_5(__prev) {
1283
- var __a = __prev._nextLink.href;
1297
+ function render_7(__prev) {
1298
+ var __a = __prev._a.href;
1284
1299
 
1285
1300
  if (__prev.a !== __a) {
1286
- _$_.set_attribute(__prev._a_4, 'href', __prev.a = __a);
1301
+ _$_.set_attribute(__prev._b, 'href', __prev.a = __a);
1287
1302
  }
1288
1303
  }
1289
1304
 
@@ -1301,7 +1316,7 @@ function consequent_12(__anchor, nextLink) {
1301
1316
  }
1302
1317
  }
1303
1318
 
1304
- _$_.render(render_5, { a: void 0, _nextLink: nextLink, _a_4: a_4 });
1319
+ _$_.render(render_7, { a: void 0, _a: nextLink, _b: a_4 });
1305
1320
  _$_.append(__anchor, nav_3);
1306
1321
  }
1307
1322
 
@@ -1309,7 +1324,7 @@ function if_13(nextLink) {
1309
1324
  if (nextLink) return consequent_12;
1310
1325
  }
1311
1326
 
1312
- var root_63 = _$_.template(`<div class="layout"><!><div class="docs-wrapper"><!><main class="docs-main"><div class="docs-container"><div class="content"><div class="content-container"><article class="doc-content"><div><!></div></article></div></div></div></main></div></div>`, 0);
1327
+ var root_63 = _$_.template(`<div class=layout><div class=docs-wrapper><main class=docs-main><div class=docs-container><div class=content><div class=content-container><article class=doc-content><div><!>`);
1313
1328
 
1314
1329
  function DocsLayoutInner_render(
1315
1330
  __anchor,
@@ -1323,14 +1338,14 @@ function DocsLayoutInner_render(
1323
1338
 
1324
1339
  _$_.render_component(HeaderStub, node_38, {});
1325
1340
 
1326
- var div_48 = _$_.hydrating ? _$_.hydrate_sibling() : node_38.nextSibling;
1341
+ var div_48 = _$_.hydrating ? _$_.hydrate_sibling() : node_38;
1327
1342
 
1328
1343
  {
1329
1344
  var node_39 = _$_.hydrating ? _$_.hydrate_child() : div_48.firstChild;
1330
1345
 
1331
1346
  _$_.render_component(SidebarStub, node_39, {});
1332
1347
 
1333
- var main_1 = _$_.hydrating ? _$_.hydrate_sibling() : node_39.nextSibling;
1348
+ var main_1 = _$_.hydrating ? _$_.hydrate_sibling() : node_39;
1334
1349
 
1335
1350
  {
1336
1351
  var div_51 = _$_.hydrating ? _$_.hydrate_child() : main_1.firstChild;
@@ -1385,7 +1400,7 @@ function DocsLayoutInner_render(
1385
1400
 
1386
1401
  DocsLayoutInner[_$_.$r] = DocsLayoutInner_render;
1387
1402
 
1388
- var root_66 = _$_.template(`<div class="doc-content"></div>`, 0);
1403
+ var root_66 = _$_.template_el('div', ['class', 'doc-content']);
1389
1404
 
1390
1405
  function DocsLayoutWithData_render(__anchor, __block) {
1391
1406
  const htmlContent = '<h1>Title</h1><p>Content</p>';
@@ -1404,7 +1419,7 @@ function DocsLayoutWithData_render(__anchor, __block) {
1404
1419
 
1405
1420
  DocsLayoutWithData[_$_.$r] = DocsLayoutWithData_render;
1406
1421
 
1407
- var root_67 = _$_.template(`<div class="doc-content"></div>`, 0);
1422
+ var root_67 = _$_.template_el('div', ['class', 'doc-content']);
1408
1423
 
1409
1424
  function DocsLayoutWithoutData_render(__anchor, __block) {
1410
1425
  const htmlContent = undefined;
@@ -1421,7 +1436,7 @@ function DocsLayoutWithoutData_render(__anchor, __block) {
1421
1436
 
1422
1437
  DocsLayoutWithoutData[_$_.$r] = DocsLayoutWithoutData_render;
1423
1438
 
1424
- var root_69 = _$_.template(`<div class="edit-link"><a>Edit on GitHub</a></div>`, 0);
1439
+ var root_69 = _$_.template(`<div class=edit-link><a>Edit on GitHub`);
1425
1440
 
1426
1441
  function consequent_13(__anchor, editPath) {
1427
1442
  var div_62 = root_69();
@@ -1429,7 +1444,7 @@ function consequent_13(__anchor, editPath) {
1429
1444
  {
1430
1445
  var a_5 = _$_.hydrating ? _$_.hydrate_child() : div_62.firstChild;
1431
1446
 
1432
- _$_.set_attribute(a_5, 'href', `/edit/${editPath}`);
1447
+ a_5.setAttribute('href', `/edit/${editPath}`);
1433
1448
  }
1434
1449
 
1435
1450
  _$_.append(__anchor, div_62);
@@ -1439,17 +1454,17 @@ function if_14(editPath) {
1439
1454
  if (editPath) return consequent_13;
1440
1455
  }
1441
1456
 
1442
- var root_71 = _$_.template(`<a class="pager prev"><span class="title"> </span></a>`, 0);
1457
+ var root_71 = _$_.template(`<a class="pager prev"><span class=title> `);
1443
1458
 
1444
- function render_6(__prev) {
1445
- var __a = __prev._prevLink.href;
1459
+ function render_8(__prev) {
1460
+ var __a = __prev._a.href;
1446
1461
 
1447
1462
  if (__prev.a !== __a) {
1448
- _$_.set_attribute(__prev._a_6, 'href', __prev.a = __a);
1463
+ _$_.set_attribute(__prev._b, 'href', __prev.a = __a);
1449
1464
  }
1450
1465
  }
1451
1466
 
1452
- var root_72 = _$_.template(`<span></span>`, 0);
1467
+ var root_72 = _$_.template_el('span');
1453
1468
 
1454
1469
  function consequent_14(__anchor, prevLink) {
1455
1470
  var a_6 = root_71();
@@ -1465,7 +1480,7 @@ function consequent_14(__anchor, prevLink) {
1465
1480
  }
1466
1481
  }
1467
1482
 
1468
- _$_.render(render_6, { a: void 0, _prevLink: prevLink, _a_6: a_6 });
1483
+ _$_.render(render_8, { a: void 0, _a: prevLink, _b: a_6 });
1469
1484
  _$_.append(__anchor, a_6);
1470
1485
  }
1471
1486
 
@@ -1479,13 +1494,13 @@ function if_15(prevLink) {
1479
1494
  if (prevLink) return consequent_14; else return alternate_1;
1480
1495
  }
1481
1496
 
1482
- var root_73 = _$_.template(`<a class="pager next"><span class="title"> </span></a>`, 0);
1497
+ var root_73 = _$_.template(`<a class="pager next"><span class=title> `);
1483
1498
 
1484
- function render_7(__prev) {
1485
- var __a = __prev._nextLink.href;
1499
+ function render_9(__prev) {
1500
+ var __a = __prev._a.href;
1486
1501
 
1487
1502
  if (__prev.a !== __a) {
1488
- _$_.set_attribute(__prev._a_7, 'href', __prev.a = __a);
1503
+ _$_.set_attribute(__prev._b, 'href', __prev.a = __a);
1489
1504
  }
1490
1505
  }
1491
1506
 
@@ -1503,7 +1518,7 @@ function consequent_15(__anchor, nextLink) {
1503
1518
  }
1504
1519
  }
1505
1520
 
1506
- _$_.render(render_7, { a: void 0, _nextLink: nextLink, _a_7: a_7 });
1521
+ _$_.render(render_9, { a: void 0, _a: nextLink, _b: a_7 });
1507
1522
  _$_.append(__anchor, a_7);
1508
1523
  }
1509
1524
 
@@ -1511,9 +1526,9 @@ function if_16(nextLink) {
1511
1526
  if (nextLink) return consequent_15;
1512
1527
  }
1513
1528
 
1514
- var root_70 = _$_.template(`<nav class="prev-next"><!><!></nav>`, 0);
1529
+ var root_70 = _$_.template(`<nav class=prev-next><!><!>`);
1515
1530
 
1516
- function consequent_16(__anchor, { prevLink, nextLink }) {
1531
+ function consequent_16(__anchor, { a: prevLink, b: nextLink }) {
1517
1532
  var nav_4 = root_70();
1518
1533
 
1519
1534
  {
@@ -1530,28 +1545,28 @@ function consequent_16(__anchor, { prevLink, nextLink }) {
1530
1545
  _$_.append(__anchor, nav_4);
1531
1546
  }
1532
1547
 
1533
- function if_17({ prevLink, nextLink }) {
1548
+ function if_17({ a: prevLink, b: nextLink }) {
1534
1549
  if (prevLink || nextLink) return consequent_16;
1535
1550
  }
1536
1551
 
1537
- var root_75 = _$_.template(`<a></a>`, 0);
1552
+ var root_75 = _$_.template_el('a');
1538
1553
 
1539
- function render_8(__prev) {
1540
- var __a = __prev._item.text;
1554
+ function render_10(__prev) {
1555
+ var __a = __prev._a.text;
1541
1556
 
1542
1557
  if (__prev.a !== __a) {
1543
- _$_.set_text_content(__prev._a_8, __a, __prev.a);
1558
+ _$_.set_text_content(__prev._b, __a, __prev.a);
1544
1559
  __prev.a = __a;
1545
1560
  }
1546
1561
 
1547
- var __b = __prev._item.href;
1562
+ var __b = __prev._a.href;
1548
1563
 
1549
1564
  if (__prev.b !== __b) {
1550
- _$_.set_attribute(__prev._a_8, 'href', __prev.b = __b);
1565
+ _$_.set_attribute(__prev._b, 'href', __prev.b = __b);
1551
1566
  }
1552
1567
  }
1553
1568
 
1554
- var root_74 = _$_.template(`<div class="aside-content"><nav class="outline"></nav></div>`, 0);
1569
+ var root_74 = _$_.template(`<div class=aside-content><nav class=outline>`);
1555
1570
 
1556
1571
  function consequent_17(__anchor, toc) {
1557
1572
  var div_63 = root_74();
@@ -1566,12 +1581,12 @@ function consequent_17(__anchor, toc) {
1566
1581
  (__anchor, item) => {
1567
1582
  var a_8 = root_75();
1568
1583
 
1569
- _$_.item({ a: '', b: void 0, _item: item, _a_8: a_8 });
1584
+ _$_.item({ a: '', b: void 0, _a: item, _b: a_8 });
1570
1585
  _$_.append(__anchor, a_8);
1571
1586
  },
1572
1587
  4,
1573
1588
  void 0,
1574
- render_8
1589
+ render_10
1575
1590
  );
1576
1591
 
1577
1592
  _$_.hydrating && _$_.pop(nav_5);
@@ -1585,7 +1600,15 @@ function if_18(toc) {
1585
1600
  if (toc.length > 0) return consequent_17;
1586
1601
  }
1587
1602
 
1588
- var root_68 = _$_.template(`<div class="layout"><!><div class="docs-wrapper"><!><main class="docs-main"><div class="docs-container"><div class="content"><div class="content-container"><article class="doc-content"><div><!></div></article></div></div><aside class="aside"><!></aside></div></main></div></div>`, 0);
1603
+ var root_68 = _$_.template(`<div class=layout><div class=docs-wrapper><main class=docs-main><div class=docs-container><div class=content><div class=content-container><article class=doc-content><div><!></div></article></div></div><aside class=aside><!>`);
1604
+
1605
+ function render_11(__prev) {
1606
+ var __a = if_18(__prev._a);
1607
+
1608
+ if (__prev.a !== __a) {
1609
+ _$_.if_update(__prev._b, __prev.a = __a);
1610
+ }
1611
+ }
1589
1612
 
1590
1613
  function DocsLayoutExact_render(
1591
1614
  __anchor,
@@ -1605,14 +1628,14 @@ function DocsLayoutExact_render(
1605
1628
 
1606
1629
  _$_.render_component(HeaderStub, node_43, {});
1607
1630
 
1608
- var div_57 = _$_.hydrating ? _$_.hydrate_sibling() : node_43.nextSibling;
1631
+ var div_57 = _$_.hydrating ? _$_.hydrate_sibling() : node_43;
1609
1632
 
1610
1633
  {
1611
1634
  var node_44 = _$_.hydrating ? _$_.hydrate_child() : div_57.firstChild;
1612
1635
 
1613
1636
  _$_.render_component(SidebarStub, node_44, {});
1614
1637
 
1615
- var main_2 = _$_.hydrating ? _$_.hydrate_sibling() : node_44.nextSibling;
1638
+ var main_2 = _$_.hydrating ? _$_.hydrate_sibling() : node_44;
1616
1639
 
1617
1640
  {
1618
1641
  var div_60 = _$_.hydrating ? _$_.hydrate_child() : main_2.firstChild;
@@ -1645,7 +1668,7 @@ function DocsLayoutExact_render(
1645
1668
 
1646
1669
  var node_46 = _$_.hydrating ? _$_.hydrate_sibling() : _$_.append_into(div_58);
1647
1670
 
1648
- _$_.if(node_46, if_17, false, { prevLink, nextLink });
1671
+ _$_.if(node_46, if_17, false, { a: prevLink, b: nextLink });
1649
1672
 
1650
1673
  var node_49 = _$_.hydrating ? _$_.hydrate_sibling() : _$_.append_into(div_58);
1651
1674
 
@@ -1660,8 +1683,8 @@ function DocsLayoutExact_render(
1660
1683
 
1661
1684
  {
1662
1685
  var node_50 = _$_.hydrating ? _$_.hydrate_child() : aside_3.firstChild;
1686
+ var ifs_2 = _$_.if_static(node_50, if_18, 0, toc);
1663
1687
 
1664
- _$_.if(node_50, if_18, false, toc);
1665
1688
  _$_.hydrating && _$_.pop(aside_3);
1666
1689
  }
1667
1690
  }
@@ -1673,12 +1696,13 @@ function DocsLayoutExact_render(
1673
1696
  _$_.hydrating && _$_.pop(div_56);
1674
1697
  }
1675
1698
 
1699
+ _$_.render(render_11, { a: _$_.UNINITIALIZED, _a: toc, _b: ifs_2 });
1676
1700
  _$_.append(__anchor, div_56);
1677
1701
  }
1678
1702
 
1679
1703
  DocsLayoutExact[_$_.$r] = DocsLayoutExact_render;
1680
1704
 
1681
- var root_76 = _$_.template(`<div class="doc-content"></div>`, 0);
1705
+ var root_76 = _$_.template_el('div', ['class', 'doc-content']);
1682
1706
 
1683
1707
  function DocsLayoutExactWithData_render(__anchor, __block) {
1684
1708
  const htmlContent = '<h1>Styling Guide</h1><p>Content</p>';
@@ -1703,7 +1727,7 @@ function DocsLayoutExactWithData_render(__anchor, __block) {
1703
1727
 
1704
1728
  DocsLayoutExactWithData[_$_.$r] = DocsLayoutExactWithData_render;
1705
1729
 
1706
- var root_77 = _$_.template(`<div class="doc-content"></div>`, 0);
1730
+ var root_77 = _$_.template_el('div', ['class', 'doc-content']);
1707
1731
 
1708
1732
  function DocsLayoutExactWithoutData_render(__anchor, __block) {
1709
1733
  const htmlContent = undefined;
@@ -1728,13 +1752,13 @@ function DocsLayoutExactWithoutData_render(__anchor, __block) {
1728
1752
 
1729
1753
  DocsLayoutExactWithoutData[_$_.$r] = DocsLayoutExactWithoutData_render;
1730
1754
 
1731
- var root_78 = _$_.template(`<div><template id="t1"></template><p class="content">Main content</p></div>`, 0);
1755
+ var root_78 = _$_.template(`<div><template id=t1></template><p class=content>Main content`);
1732
1756
 
1733
- function render_9(__prev) {
1734
- var __a = _$_.with_scope(__prev.___block, () => JSON.stringify(__prev._data));
1757
+ function render_12(__prev) {
1758
+ var __a = _$_.with_scope(__prev._a, () => JSON.stringify(__prev._b));
1735
1759
 
1736
1760
  if (__prev.a !== __a) {
1737
- __prev._template.innerHTML = (__prev.a = __a) ?? __prev._template.innerHTML;
1761
+ __prev._c.innerHTML = (__prev.a = __a) ?? __prev._c.innerHTML;
1738
1762
  }
1739
1763
  }
1740
1764
 
@@ -1746,25 +1770,19 @@ function TemplateWithHtmlContent_render(__anchor, __block) {
1746
1770
  var template = _$_.hydrating ? _$_.hydrate_child() : div_66.firstChild;
1747
1771
  }
1748
1772
 
1749
- _$_.render(render_9, {
1750
- a: template.innerHTML,
1751
- ___block: __block,
1752
- _data: data,
1753
- _template: template
1754
- });
1755
-
1773
+ _$_.render(render_12, { a: template.innerHTML, _a: __block, _b: data, _c: template });
1756
1774
  _$_.append(__anchor, div_66);
1757
1775
  }
1758
1776
 
1759
1777
  TemplateWithHtmlContent[_$_.$r] = TemplateWithHtmlContent_render;
1760
1778
 
1761
- var root_79 = _$_.template(`<div class="wrapper"><h1>Title</h1><template id="data-template"></template><p class="after-template">Content after template</p></div>`, 0);
1779
+ var root_79 = _$_.template(`<div class=wrapper><h1>Title</h1><template id=data-template></template><p class=after-template>Content after template`);
1762
1780
 
1763
- function render_10(__prev) {
1764
- var __a = _$_.with_scope(__prev.___block, () => JSON.stringify(__prev._data));
1781
+ function render_13(__prev) {
1782
+ var __a = _$_.with_scope(__prev._a, () => JSON.stringify(__prev._b));
1765
1783
 
1766
1784
  if (__prev.a !== __a) {
1767
- __prev._template_1.innerHTML = (__prev.a = __a) ?? __prev._template_1.innerHTML;
1785
+ __prev._c.innerHTML = (__prev.a = __a) ?? __prev._c.innerHTML;
1768
1786
  }
1769
1787
  }
1770
1788
 
@@ -1777,11 +1795,11 @@ function TemplateWithHtmlAndSiblings_render(__anchor, __block) {
1777
1795
  var template_1 = _$_.hydrating ? _$_.hydrate_sibling() : h1_3.nextSibling;
1778
1796
  }
1779
1797
 
1780
- _$_.render(render_10, {
1798
+ _$_.render(render_13, {
1781
1799
  a: template_1.innerHTML,
1782
- ___block: __block,
1783
- _data: data,
1784
- _template_1: template_1
1800
+ _a: __block,
1801
+ _b: data,
1802
+ _c: template_1
1785
1803
  });
1786
1804
 
1787
1805
  _$_.append(__anchor, div_67);
@@ -1789,13 +1807,13 @@ function TemplateWithHtmlAndSiblings_render(__anchor, __block) {
1789
1807
 
1790
1808
  TemplateWithHtmlAndSiblings[_$_.$r] = TemplateWithHtmlAndSiblings_render;
1791
1809
 
1792
- var root_80 = _$_.template(`<div class="layout"><template id="page-data"></template><main><!></main></div>`, 0);
1810
+ var root_80 = _$_.template(`<div class=layout><template id=page-data></template><main><!>`);
1793
1811
 
1794
- function render_11(__prev) {
1795
- var __a = _$_.with_scope(__prev.___block, () => JSON.stringify(__prev._data));
1812
+ function render_14(__prev) {
1813
+ var __a = _$_.with_scope(__prev._a, () => JSON.stringify(__prev._b));
1796
1814
 
1797
1815
  if (__prev.a !== __a) {
1798
- __prev._template_2.innerHTML = (__prev.a = __a) ?? __prev._template_2.innerHTML;
1816
+ __prev._c.innerHTML = (__prev.a = __a) ?? __prev._c.innerHTML;
1799
1817
  }
1800
1818
  }
1801
1819
 
@@ -1814,11 +1832,11 @@ function LayoutWithTemplate_render(__anchor, __block, { children, data }) {
1814
1832
  }
1815
1833
  }
1816
1834
 
1817
- _$_.render(render_11, {
1835
+ _$_.render(render_14, {
1818
1836
  a: template_2.innerHTML,
1819
- ___block: __block,
1820
- _data: data,
1821
- _template_2: template_2
1837
+ _a: __block,
1838
+ _b: data,
1839
+ _c: template_2
1822
1840
  });
1823
1841
 
1824
1842
  _$_.append(__anchor, div_68);
@@ -1826,13 +1844,13 @@ function LayoutWithTemplate_render(__anchor, __block, { children, data }) {
1826
1844
 
1827
1845
  LayoutWithTemplate[_$_.$r] = LayoutWithTemplate_render;
1828
1846
 
1829
- var root_81 = _$_.template(`<div class="doc-content"></div>`, 0);
1847
+ var root_81 = _$_.template_el('div', ['class', 'doc-content']);
1830
1848
 
1831
- function render_12(__prev) {
1832
- var __a = __prev._doc.html;
1849
+ function render_15(__prev) {
1850
+ var __a = __prev._a.html;
1833
1851
 
1834
1852
  if (__prev.a !== __a) {
1835
- __prev._div_69.innerHTML = (__prev.a = __a) ?? __prev._div_69.innerHTML;
1853
+ __prev._b.innerHTML = (__prev.a = __a) ?? __prev._b.innerHTML;
1836
1854
  }
1837
1855
  }
1838
1856
 
@@ -1844,7 +1862,7 @@ function NestedTemplateInLayout_render(__anchor, __block) {
1844
1862
  children: _$_.tsrx_element((__anchor, __block) => {
1845
1863
  var div_69 = root_81();
1846
1864
 
1847
- _$_.render(render_12, { a: div_69.innerHTML, _doc: doc, _div_69: div_69 });
1865
+ _$_.render(render_15, { a: div_69.innerHTML, _a: doc, _b: div_69 });
1848
1866
  _$_.append(__anchor, div_69);
1849
1867
  })
1850
1868
  });
@@ -1852,7 +1870,7 @@ function NestedTemplateInLayout_render(__anchor, __block) {
1852
1870
 
1853
1871
  NestedTemplateInLayout[_$_.$r] = NestedTemplateInLayout_render;
1854
1872
 
1855
- var root_82 = _$_.template(`<section class="readable-section"><p>Ergonomics</p><h2>Sibling traversal pattern</h2><p>Before first block</p><p>Before second block</p><pre class="code-block"><code></code></pre><p>Between one and two</p><pre class="code-block"><code></code></pre><p>Between two and three</p><pre class="code-block"><code></code></pre></section>`, 0);
1873
+ var root_82 = _$_.template(`<section class=readable-section><p>Ergonomics</p><h2>Sibling traversal pattern</h2><p>Before first block</p><p>Before second block</p><pre class=code-block><code></code></pre><p>Between one and two</p><pre class=code-block><code></code></pre><p>Between two and three</p><pre class=code-block><code>`);
1856
1874
 
1857
1875
  function HtmlCodeBlocksWithSiblingChain_render(__anchor, __block) {
1858
1876
  const html1 = '<span class="kw">const</span> <span class="id">a</span> = 1;';