ripple 0.3.127 → 0.4.0

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 (192) hide show
  1. package/CHANGELOG.md +293 -0
  2. package/package.json +10 -4
  3. package/src/runtime/element.js +23 -6
  4. package/src/runtime/index-client.js +81 -41
  5. package/src/runtime/index-server.js +1 -0
  6. package/src/runtime/internal/client/blocks.js +192 -114
  7. package/src/runtime/internal/client/component.js +4 -30
  8. package/src/runtime/internal/client/composite.js +12 -13
  9. package/src/runtime/internal/client/constants.js +14 -5
  10. package/src/runtime/internal/client/context.js +12 -19
  11. package/src/runtime/internal/client/css.js +7 -9
  12. package/src/runtime/internal/client/events.js +178 -90
  13. package/src/runtime/internal/client/expression.js +185 -124
  14. package/src/runtime/internal/client/for.js +616 -264
  15. package/src/runtime/internal/client/head.js +10 -5
  16. package/src/runtime/internal/client/html.js +1 -0
  17. package/src/runtime/internal/client/hydration.js +152 -10
  18. package/src/runtime/internal/client/if.js +239 -50
  19. package/src/runtime/internal/client/index.js +9 -13
  20. package/src/runtime/internal/client/operations.js +44 -51
  21. package/src/runtime/internal/client/portal.js +163 -85
  22. package/src/runtime/internal/client/render.js +44 -25
  23. package/src/runtime/internal/client/rpc.js +3 -3
  24. package/src/runtime/internal/client/runtime.js +799 -576
  25. package/src/runtime/internal/client/selector.js +77 -0
  26. package/src/runtime/internal/client/template.js +133 -158
  27. package/src/runtime/internal/client/transport.js +38 -0
  28. package/src/runtime/internal/client/try.js +465 -426
  29. package/src/runtime/internal/client/types.d.ts +65 -21
  30. package/src/runtime/internal/client/utils.js +1 -3
  31. package/src/runtime/internal/server/dynamic.js +20 -21
  32. package/src/runtime/internal/server/index.js +327 -275
  33. package/src/runtime/internal/server/rpc.js +3 -2
  34. package/src/runtime/internal/server/transport.js +16 -0
  35. package/src/runtime/transport.js +21 -0
  36. package/tests/client/__snapshots__/for.test.tsrx.snap +0 -5
  37. package/tests/client/array/array.copy-within.test.tsrx +12 -12
  38. package/tests/client/array/array.derived.test.tsrx +46 -46
  39. package/tests/client/array/array.iteration.test.tsrx +10 -10
  40. package/tests/client/array/array.mutations.test.tsrx +20 -20
  41. package/tests/client/array/array.static.test.tsrx +11 -11
  42. package/tests/client/array/array.to-methods.test.tsrx +6 -6
  43. package/tests/client/async-suspend.test.tsrx +74 -75
  44. package/tests/client/basic/basic.attributes.test.tsrx +86 -83
  45. package/tests/client/basic/basic.collections.test.tsrx +12 -12
  46. package/tests/client/basic/basic.components.test.tsrx +99 -25
  47. package/tests/client/basic/basic.errors.test.tsrx +18 -18
  48. package/tests/client/basic/basic.events.test.tsrx +42 -42
  49. package/tests/client/basic/basic.get-set.test.tsrx +8 -8
  50. package/tests/client/basic/basic.reactivity.test.tsrx +97 -29
  51. package/tests/client/basic/basic.rendering.test.tsrx +25 -25
  52. package/tests/client/basic/basic.utilities.test.tsrx +3 -3
  53. package/tests/client/boundaries.test.tsrx +8 -8
  54. package/tests/client/boxed-locals.test.tsrx +452 -0
  55. package/tests/client/compiler/__snapshots__/compiler.assignments.test.tsrx.snap +6 -6
  56. package/tests/client/compiler/compiler.assignments.test.tsrx +9 -73
  57. package/tests/client/compiler/compiler.attributes.test.tsrx +23 -23
  58. package/tests/client/compiler/compiler.basic.test.tsrx +15 -60
  59. package/tests/client/compiler/compiler.tracked-access.test.tsrx +18 -43
  60. package/tests/client/compiler/compiler.try-in-function.test.tsrx +2 -2
  61. package/tests/client/composite/__snapshots__/composite.render.test.tsrx.snap +0 -1
  62. package/tests/client/composite/composite.dynamic-components.test.tsrx +77 -6
  63. package/tests/client/composite/composite.props.test.tsrx +149 -12
  64. package/tests/client/composite/composite.reactivity.test.tsrx +51 -52
  65. package/tests/client/composite/composite.render.test.tsrx +26 -9
  66. package/tests/client/css/scoped-styles.test.tsrx +8 -8
  67. package/tests/client/date.test.tsrx +42 -42
  68. package/tests/client/derived-release.test.tsrx +370 -0
  69. package/tests/client/dynamic-elements.test.tsrx +45 -45
  70. package/tests/client/events.test.tsrx +97 -71
  71. package/tests/client/for-selector.test.tsrx +221 -0
  72. package/tests/client/for-single-root-items.test.tsrx +118 -3
  73. package/tests/client/for.test.tsrx +332 -31
  74. package/tests/client/head.test.tsrx +19 -19
  75. package/tests/client/html.test.tsrx +11 -9
  76. package/tests/client/if-block.test.tsrx +80 -0
  77. package/tests/client/map.test.tsrx +16 -16
  78. package/tests/client/media-query.test.tsrx +7 -7
  79. package/tests/client/portal.test.tsrx +224 -26
  80. package/tests/client/primitive-text.test.tsrx +50 -0
  81. package/tests/client/prop-kind-switch.test.tsrx +141 -0
  82. package/tests/client/ref.test.tsrx +17 -17
  83. package/tests/client/return.test.tsrx +26 -3
  84. package/tests/client/root-boundary.test.tsrx +42 -0
  85. package/tests/client/scoped-flush.test.tsrx +8 -8
  86. package/tests/client/set.test.tsrx +6 -6
  87. package/tests/client/svg.test.tsrx +11 -11
  88. package/tests/client/switch.test.tsrx +44 -44
  89. package/tests/client/track-async-hydration.test.tsrx +4 -4
  90. package/tests/client/try.test.tsrx +151 -83
  91. package/tests/client/tsx.test.tsrx +43 -40
  92. package/tests/client/url/url.derived.test.tsrx +6 -6
  93. package/tests/client/url-search-params/url-search-params.derived.test.tsrx +8 -8
  94. package/tests/client/url-search-params/url-search-params.iteration.test.tsrx +10 -10
  95. package/tests/client/url-search-params/url-search-params.mutation.test.tsrx +10 -10
  96. package/tests/client/url-search-params/url-search-params.retrieval.test.tsrx +18 -18
  97. package/tests/client/url-search-params/url-search-params.serialization.test.tsrx +2 -2
  98. package/tests/hydration/basic.test.js +74 -1
  99. package/tests/hydration/build-components.js +22 -1
  100. package/tests/hydration/compiled/client/basic.js +1142 -713
  101. package/tests/hydration/compiled/client/composite.js +151 -100
  102. package/tests/hydration/compiled/client/events.js +190 -150
  103. package/tests/hydration/compiled/client/for.js +1472 -1126
  104. package/tests/hydration/compiled/client/fragment-cursor.js +2341 -0
  105. package/tests/hydration/compiled/client/head.js +255 -199
  106. package/tests/hydration/compiled/client/hmr.js +54 -41
  107. package/tests/hydration/compiled/client/html-in-template.js +54 -39
  108. package/tests/hydration/compiled/client/html.js +1633 -1263
  109. package/tests/hydration/compiled/client/if-children.js +420 -270
  110. package/tests/hydration/compiled/client/if-fragment-controlflow.js +363 -317
  111. package/tests/hydration/compiled/client/if.js +229 -219
  112. package/tests/hydration/compiled/client/mixed-control-flow.js +420 -400
  113. package/tests/hydration/compiled/client/nested-control-flow.js +1326 -1255
  114. package/tests/hydration/compiled/client/portal.js +87 -95
  115. package/tests/hydration/compiled/client/reactivity.js +140 -83
  116. package/tests/hydration/compiled/client/return.js +28 -19
  117. package/tests/hydration/compiled/client/streaming.js +390 -306
  118. package/tests/hydration/compiled/client/switch.js +258 -266
  119. package/tests/hydration/compiled/client/track-async-serialization.js +448 -280
  120. package/tests/hydration/compiled/client/try.js +173 -129
  121. package/tests/hydration/compiled/client/typed-text.js +71 -0
  122. package/tests/hydration/compiled/fixtures/money.js +10 -0
  123. package/tests/hydration/compiled/server/basic.js +123 -6
  124. package/tests/hydration/compiled/server/composite.js +16 -30
  125. package/tests/hydration/compiled/server/events.js +19 -19
  126. package/tests/hydration/compiled/server/for.js +109 -49
  127. package/tests/hydration/compiled/server/fragment-cursor.js +1687 -0
  128. package/tests/hydration/compiled/server/head.js +20 -28
  129. package/tests/hydration/compiled/server/hmr.js +2 -2
  130. package/tests/hydration/compiled/server/html.js +71 -247
  131. package/tests/hydration/compiled/server/if-children.js +107 -15
  132. package/tests/hydration/compiled/server/if.js +11 -15
  133. package/tests/hydration/compiled/server/mixed-control-flow.js +8 -8
  134. package/tests/hydration/compiled/server/portal.js +14 -22
  135. package/tests/hydration/compiled/server/reactivity.js +14 -46
  136. package/tests/hydration/compiled/server/streaming.js +19 -19
  137. package/tests/hydration/compiled/server/switch.js +8 -8
  138. package/tests/hydration/compiled/server/track-async-serialization.js +150 -23
  139. package/tests/hydration/compiled/server/try.js +8 -8
  140. package/tests/hydration/compiled/server/typed-text.js +17 -0
  141. package/tests/hydration/components/basic.tsrx +44 -8
  142. package/tests/hydration/components/composite.tsrx +2 -2
  143. package/tests/hydration/components/events.tsrx +25 -25
  144. package/tests/hydration/components/for.tsrx +115 -67
  145. package/tests/hydration/components/fragment-cursor.tsrx +650 -0
  146. package/tests/hydration/components/head.tsrx +16 -16
  147. package/tests/hydration/components/hmr.tsrx +2 -2
  148. package/tests/hydration/components/html.tsrx +7 -7
  149. package/tests/hydration/components/if-children.tsrx +72 -25
  150. package/tests/hydration/components/if.tsrx +18 -18
  151. package/tests/hydration/components/mixed-control-flow.tsrx +11 -11
  152. package/tests/hydration/components/portal.tsrx +3 -3
  153. package/tests/hydration/components/reactivity.tsrx +16 -16
  154. package/tests/hydration/components/streaming.tsrx +20 -20
  155. package/tests/hydration/components/switch.tsrx +20 -20
  156. package/tests/hydration/components/text-types.ts +4 -0
  157. package/tests/hydration/components/track-async-serialization.tsrx +80 -26
  158. package/tests/hydration/components/try.tsrx +8 -8
  159. package/tests/hydration/components/typed-text.tsrx +22 -0
  160. package/tests/hydration/fixtures/money.js +10 -0
  161. package/tests/hydration/for.test.js +36 -0
  162. package/tests/hydration/fragment-cursor.test.js +111 -0
  163. package/tests/hydration/if-children.test.js +24 -0
  164. package/tests/hydration/streaming.test.js +19 -0
  165. package/tests/hydration/track-async-serialization.test.js +87 -2
  166. package/tests/hydration/tsconfig.text-types.json +10 -0
  167. package/tests/hydration/typed-text.test.js +34 -0
  168. package/tests/server/await.test.tsrx +3 -3
  169. package/tests/server/basic.attributes.test.tsrx +42 -42
  170. package/tests/server/basic.components.test.tsrx +64 -8
  171. package/tests/server/basic.test.tsrx +34 -32
  172. package/tests/server/compiler.test.tsrx +1 -70
  173. package/tests/server/composite.props.test.tsrx +6 -6
  174. package/tests/server/dynamic-elements.test.tsrx +31 -8
  175. package/tests/server/for.test.tsrx +94 -0
  176. package/tests/server/head.test.tsrx +11 -11
  177. package/tests/server/scoped-styles.test.tsrx +2 -2
  178. package/tests/server/streaming-ssr.test.tsrx +48 -43
  179. package/tests/server/track-async-serialization.test.tsrx +204 -21
  180. package/tests/server/try.test.tsrx +48 -48
  181. package/tests/types/transport.ts +40 -0
  182. package/tests/utils/vite-plugin-config.test.js +23 -0
  183. package/types/index.d.ts +48 -7
  184. package/types/server.d.ts +3 -0
  185. package/types/transport.d.ts +15 -0
  186. package/src/runtime/internal/client/switch.js +0 -113
  187. package/src/utils/errors.js +0 -13
  188. package/tests/client/lazy-array.test.tsrx +0 -31
  189. package/tests/client/lazy-destructuring.test.tsrx +0 -438
  190. package/tests/client/tracked-index-access.test.tsrx +0 -113
  191. package/tests/server/lazy-destructuring.test.tsrx +0 -595
  192. package/tests/server/tracked-index-access.test.tsrx +0 -76
@@ -3,1554 +3,1900 @@ import * as _$_ from 'ripple/internal/client';
3
3
 
4
4
  var root_1 = _$_.template(`<li> </li>`, 0);
5
5
  var root = _$_.template(`<ul></ul>`, 0);
6
+
7
+ function StaticForLoop_render(__anchor, __block) {
8
+ const items = ['Apple', 'Banana', 'Cherry'];
9
+ var ul = root();
10
+
11
+ {
12
+ _$_.for(
13
+ ul,
14
+ () => items,
15
+ (__anchor, item) => {
16
+ var li = root_1();
17
+
18
+ {
19
+ var expression = _$_.hydrating ? _$_.hydrate_child() : li.firstChild;
20
+
21
+ _$_.expression(expression, () => item);
22
+ _$_.hydrating && _$_.pop(li);
23
+ }
24
+
25
+ _$_.append(__anchor, li);
26
+ },
27
+ 4
28
+ );
29
+
30
+ _$_.hydrating && _$_.pop(ul);
31
+ }
32
+
33
+ _$_.append(__anchor, ul);
34
+ }
35
+
36
+ StaticForLoop[_$_.$r] = StaticForLoop_render;
37
+
6
38
  var root_3 = _$_.template(`<li> </li>`, 0);
39
+
40
+ function render(__prev) {
41
+ var __a = `${__prev._i.value}: ${__prev._item}`;
42
+
43
+ if (__prev.a !== __a) {
44
+ _$_.set_text(__prev._expression_1, __prev.a = __a);
45
+ }
46
+ }
47
+
7
48
  var root_2 = _$_.template(`<ul></ul>`, 0);
49
+
50
+ function ForLoopWithIndex_render(__anchor, __block) {
51
+ const items = ['A', 'B', 'C'];
52
+ var ul_1 = root_2();
53
+
54
+ {
55
+ _$_.for(
56
+ ul_1,
57
+ () => items,
58
+ (__anchor, item, i) => {
59
+ var li_1 = root_3();
60
+
61
+ {
62
+ var expression_1 = _$_.hydrating ? _$_.hydrate_text() : li_1.firstChild;
63
+ }
64
+
65
+ _$_.render(render, { a: ' ', _i: i, _item: item, _expression_1: expression_1 });
66
+ _$_.append(__anchor, li_1);
67
+ },
68
+ 12
69
+ );
70
+
71
+ _$_.hydrating && _$_.pop(ul_1);
72
+ }
73
+
74
+ _$_.append(__anchor, ul_1);
75
+ }
76
+
77
+ ForLoopWithIndex[_$_.$r] = ForLoopWithIndex_render;
78
+
8
79
  var root_5 = _$_.template(`<li> </li>`, 0);
9
80
  var root_4 = _$_.template(`<ul></ul>`, 0);
81
+
82
+ function KeyedForLoop_render(__anchor, __block) {
83
+ const items = [
84
+ { id: 1, name: 'First' },
85
+ { id: 2, name: 'Second' },
86
+ { id: 3, name: 'Third' }
87
+ ];
88
+
89
+ var ul_2 = root_4();
90
+
91
+ {
92
+ _$_.for_keyed(
93
+ ul_2,
94
+ () => items,
95
+ (__anchor, pattern) => {
96
+ var li_2 = root_5();
97
+
98
+ {
99
+ var expression_2 = _$_.hydrating ? _$_.hydrate_child() : li_2.firstChild;
100
+
101
+ _$_.expression(expression_2, () => _$_.get(pattern).name);
102
+ _$_.hydrating && _$_.pop(li_2);
103
+ }
104
+
105
+ _$_.append(__anchor, li_2);
106
+ },
107
+ 4,
108
+ (pattern) => _$_.get(pattern).id
109
+ );
110
+
111
+ _$_.hydrating && _$_.pop(ul_2);
112
+ }
113
+
114
+ _$_.append(__anchor, ul_2);
115
+ }
116
+
117
+ KeyedForLoop[_$_.$r] = KeyedForLoop_render;
118
+
10
119
  var root_8 = _$_.template(`<li> </li>`, 0);
11
120
  var root_7 = _$_.template(`<button class="add">Add</button><ul></ul>`, 1, 2);
12
121
  var root_6 = _$_.template(`<!>`, 1, 1);
122
+
123
+ function ReactiveForLoopAdd_render(__anchor, __block) {
124
+ const items = _$_.track(['A', 'B'], __block, 'e145678a');
125
+ var fragment = root_6();
126
+ var node = _$_.first_child_frag(fragment);
127
+
128
+ _$_.expression(node, () => _$_.tsrx_element((__anchor, __block) => {
129
+ var fragment_1 = root_7();
130
+ var button = _$_.first_child_frag(fragment_1);
131
+
132
+ button.__click = () => {
133
+ items.value = [...items.value, 'C'];
134
+ };
135
+
136
+ var ul_3 = _$_.hydrating ? _$_.hydrate_sibling() : button.nextSibling;
137
+
138
+ {
139
+ _$_.for(
140
+ ul_3,
141
+ () => items.value,
142
+ (__anchor, item) => {
143
+ var li_3 = root_8();
144
+
145
+ {
146
+ var expression_3 = _$_.hydrating ? _$_.hydrate_child() : li_3.firstChild;
147
+
148
+ _$_.expression(expression_3, () => item);
149
+ _$_.hydrating && _$_.pop(li_3);
150
+ }
151
+
152
+ _$_.append(__anchor, li_3);
153
+ },
154
+ 4
155
+ );
156
+
157
+ _$_.hydrating && _$_.pop(ul_3);
158
+ }
159
+
160
+ _$_.append(__anchor, fragment_1);
161
+ }));
162
+
163
+ _$_.append(__anchor, fragment);
164
+ }
165
+
166
+ ReactiveForLoopAdd[_$_.$r] = ReactiveForLoopAdd_render;
167
+
13
168
  var root_11 = _$_.template(`<li> </li>`, 0);
14
169
  var root_10 = _$_.template(`<button class="remove">Remove</button><ul></ul>`, 1, 2);
15
170
  var root_9 = _$_.template(`<!>`, 1, 1);
171
+
172
+ function ReactiveForLoopRemove_render(__anchor, __block) {
173
+ const items = _$_.track(['A', 'B', 'C'], __block, 'b4e9bd54');
174
+ var fragment_2 = root_9();
175
+ var node_1 = _$_.first_child_frag(fragment_2);
176
+
177
+ _$_.expression(node_1, () => _$_.tsrx_element((__anchor, __block) => {
178
+ var fragment_3 = root_10();
179
+ var button_1 = _$_.first_child_frag(fragment_3);
180
+
181
+ button_1.__click = () => {
182
+ items.value = _$_.with_scope(__block, () => items.value.slice(0, -1));
183
+ };
184
+
185
+ var ul_4 = _$_.hydrating ? _$_.hydrate_sibling() : button_1.nextSibling;
186
+
187
+ {
188
+ _$_.for(
189
+ ul_4,
190
+ () => items.value,
191
+ (__anchor, item) => {
192
+ var li_4 = root_11();
193
+
194
+ {
195
+ var expression_4 = _$_.hydrating ? _$_.hydrate_child() : li_4.firstChild;
196
+
197
+ _$_.expression(expression_4, () => item);
198
+ _$_.hydrating && _$_.pop(li_4);
199
+ }
200
+
201
+ _$_.append(__anchor, li_4);
202
+ },
203
+ 4
204
+ );
205
+
206
+ _$_.hydrating && _$_.pop(ul_4);
207
+ }
208
+
209
+ _$_.append(__anchor, fragment_3);
210
+ }));
211
+
212
+ _$_.append(__anchor, fragment_2);
213
+ }
214
+
215
+ ReactiveForLoopRemove[_$_.$r] = ReactiveForLoopRemove_render;
216
+
16
217
  var root_13 = _$_.template(`<div><span class="value"> </span><button class="increment">+</button></div>`, 0);
218
+
219
+ function render_1(__prev) {
220
+ var __a = `item-${__prev._i.value}`;
221
+
222
+ if (__prev.a !== __a) {
223
+ _$_.set_class(__prev._div_1, __prev.a = __a, void 0, true);
224
+ }
225
+ }
226
+
17
227
  var root_12 = _$_.template(`<div></div>`, 0);
228
+
229
+ function ForLoopInteractive_render(__anchor, __block) {
230
+ const counts = _$_.track([0, 0, 0], __block, '36f563df');
231
+ var div = root_12();
232
+
233
+ {
234
+ _$_.for(
235
+ div,
236
+ () => counts.value,
237
+ (__anchor, count, i) => {
238
+ var div_1 = root_13();
239
+
240
+ {
241
+ var span = _$_.hydrating ? _$_.hydrate_child() : div_1.firstChild;
242
+
243
+ {
244
+ var expression_5 = _$_.hydrating ? _$_.hydrate_child() : span.firstChild;
245
+
246
+ _$_.expression(expression_5, () => count);
247
+ _$_.hydrating && _$_.pop(span);
248
+ }
249
+
250
+ var button_2 = _$_.hydrating ? _$_.hydrate_sibling() : span.nextSibling;
251
+
252
+ button_2.__click = () => {
253
+ const newCounts = [...counts.value];
254
+
255
+ newCounts[i.value]++;
256
+ counts.value = newCounts;
257
+ };
258
+ }
259
+
260
+ _$_.render(render_1, { a: _$_.UNINITIALIZED, _i: i, _div_1: div_1 });
261
+ _$_.append(__anchor, div_1);
262
+ },
263
+ 12
264
+ );
265
+
266
+ _$_.hydrating && _$_.pop(div);
267
+ }
268
+
269
+ _$_.append(__anchor, div);
270
+ }
271
+
272
+ ForLoopInteractive[_$_.$r] = ForLoopInteractive_render;
273
+
18
274
  var root_16 = _$_.template(`<span> </span>`, 0);
275
+
276
+ function render_2(__prev) {
277
+ var __a = `cell-${__prev._rowIndex.value}-${__prev._colIndex.value}`;
278
+
279
+ if (__prev.a !== __a) {
280
+ _$_.set_class(__prev._span_1, __prev.a = __a, void 0, true);
281
+ }
282
+ }
283
+
284
+ function render_3(__prev) {
285
+ var __a = `row-${__prev._rowIndex.value}`;
286
+
287
+ if (__prev.a !== __a) {
288
+ _$_.set_class(__prev._div_3, __prev.a = __a, void 0, true);
289
+ }
290
+ }
291
+
19
292
  var root_15 = _$_.template(`<div></div>`, 0);
20
293
  var root_14 = _$_.template(`<div class="grid"></div>`, 0);
294
+
295
+ function NestedForLoop_render(__anchor, __block) {
296
+ const grid = [[1, 2], [3, 4]];
297
+ var div_2 = root_14();
298
+
299
+ {
300
+ _$_.for(
301
+ div_2,
302
+ () => grid,
303
+ (__anchor, row, rowIndex) => {
304
+ var div_3 = root_15();
305
+
306
+ {
307
+ _$_.for(
308
+ div_3,
309
+ () => row,
310
+ (__anchor, cell, colIndex) => {
311
+ var span_1 = root_16();
312
+
313
+ {
314
+ var expression_6 = _$_.hydrating ? _$_.hydrate_child() : span_1.firstChild;
315
+
316
+ _$_.expression(expression_6, () => cell);
317
+ _$_.hydrating && _$_.pop(span_1);
318
+ }
319
+
320
+ _$_.render(render_2, {
321
+ a: _$_.UNINITIALIZED,
322
+ _rowIndex: rowIndex,
323
+ _colIndex: colIndex,
324
+ _span_1: span_1
325
+ });
326
+
327
+ _$_.append(__anchor, span_1);
328
+ },
329
+ 12
330
+ );
331
+
332
+ _$_.hydrating && _$_.pop(div_3);
333
+ _$_.render(render_3, { a: _$_.UNINITIALIZED, _rowIndex: rowIndex, _div_3: div_3 });
334
+ }
335
+
336
+ _$_.append(__anchor, div_3);
337
+ },
338
+ 12
339
+ );
340
+
341
+ _$_.hydrating && _$_.pop(div_2);
342
+ }
343
+
344
+ _$_.append(__anchor, div_2);
345
+ }
346
+
347
+ NestedForLoop[_$_.$r] = NestedForLoop_render;
348
+
21
349
  var root_18 = _$_.template(`<span> </span>`, 0);
22
350
  var root_17 = _$_.template(`<div class="container"></div>`, 0);
351
+
352
+ function EmptyForLoop_render(__anchor, __block) {
353
+ const items = [];
354
+ var div_4 = root_17();
355
+
356
+ {
357
+ _$_.for(
358
+ div_4,
359
+ () => items,
360
+ (__anchor, item) => {
361
+ var span_2 = root_18();
362
+
363
+ {
364
+ var expression_7 = _$_.hydrating ? _$_.hydrate_text() : span_2.firstChild;
365
+
366
+ expression_7.nodeValue = item;
367
+ }
368
+
369
+ _$_.append(__anchor, span_2);
370
+ },
371
+ 4
372
+ );
373
+
374
+ _$_.hydrating && _$_.pop(div_4);
375
+ }
376
+
377
+ _$_.append(__anchor, div_4);
378
+ }
379
+
380
+ EmptyForLoop[_$_.$r] = EmptyForLoop_render;
381
+
23
382
  var root_20 = _$_.template(`<div><span class="name"> </span><span class="role"> </span></div>`, 0);
383
+
384
+ function render_4(__prev) {
385
+ var __a = `user-${_$_.get(__prev._pattern_1).id}`;
386
+
387
+ if (__prev.a !== __a) {
388
+ _$_.set_class(__prev._div_6, __prev.a = __a, void 0, true);
389
+ }
390
+ }
391
+
24
392
  var root_19 = _$_.template(`<div></div>`, 0);
393
+
394
+ function ForLoopComplexObjects_render(__anchor, __block) {
395
+ const users = [
396
+ { id: 1, name: 'Alice', role: 'Admin' },
397
+ { id: 2, name: 'Bob', role: 'User' }
398
+ ];
399
+
400
+ var div_5 = root_19();
401
+
402
+ {
403
+ _$_.for_keyed(
404
+ div_5,
405
+ () => users,
406
+ (__anchor, pattern_1) => {
407
+ var div_6 = root_20();
408
+
409
+ {
410
+ var span_3 = _$_.hydrating ? _$_.hydrate_child() : div_6.firstChild;
411
+
412
+ {
413
+ var expression_8 = _$_.hydrating ? _$_.hydrate_child() : span_3.firstChild;
414
+
415
+ _$_.expression(expression_8, () => _$_.get(pattern_1).name);
416
+ _$_.hydrating && _$_.pop(span_3);
417
+ }
418
+
419
+ var span_4 = _$_.hydrating ? _$_.hydrate_sibling() : span_3.nextSibling;
420
+
421
+ {
422
+ var expression_9 = _$_.hydrating ? _$_.hydrate_child() : span_4.firstChild;
423
+
424
+ _$_.expression(expression_9, () => _$_.get(pattern_1).role);
425
+ _$_.hydrating && _$_.pop(span_4);
426
+ }
427
+ }
428
+
429
+ _$_.render(render_4, { a: _$_.UNINITIALIZED, _pattern_1: pattern_1, _div_6: div_6 });
430
+ _$_.append(__anchor, div_6);
431
+ },
432
+ 4,
433
+ (pattern_1) => _$_.get(pattern_1).id
434
+ );
435
+
436
+ _$_.hydrating && _$_.pop(div_5);
437
+ }
438
+
439
+ _$_.append(__anchor, div_5);
440
+ }
441
+
442
+ ForLoopComplexObjects[_$_.$r] = ForLoopComplexObjects_render;
443
+
25
444
  var root_23 = _$_.template(`<li> </li>`, 0);
445
+
446
+ function render_5(__prev) {
447
+ var __a = `item-${_$_.get(__prev._pattern_2).id}`;
448
+
449
+ if (__prev.a !== __a) {
450
+ _$_.set_class(__prev._li_5, __prev.a = __a, void 0, true);
451
+ }
452
+ }
453
+
26
454
  var root_22 = _$_.template(`<button class="reorder">Reorder</button><ul></ul>`, 1, 2);
27
455
  var root_21 = _$_.template(`<!>`, 1, 1);
28
- var root_26 = _$_.template(`<li> </li>`, 0);
29
- var root_25 = _$_.template(`<button class="update">Update</button><ul></ul>`, 1, 2);
30
- var root_24 = _$_.template(`<!>`, 1, 1);
31
- var root_29 = _$_.template(`<li> </li>`, 0);
32
- var root_28 = _$_.template(`<button class="shuffle">Shuffle</button><ul></ul>`, 1, 2);
33
- var root_27 = _$_.template(`<!>`, 1, 1);
34
- var root_33 = _$_.template(`<li> </li>`, 0);
35
- var root_32 = _$_.template(`<ul class="list"></ul>`, 0);
36
- var root_31 = _$_.template(`<button class="toggle">Toggle List</button><button class="add">Add Item</button><!>`, 1, 3);
37
- var root_30 = _$_.template(`<!>`, 1, 1);
38
- var root_36 = _$_.template(`<li> </li>`, 0);
39
- var root_35 = _$_.template(`<button class="populate">Populate</button><ul class="list"></ul>`, 1, 2);
40
- var root_34 = _$_.template(`<!>`, 1, 1);
41
- var root_39 = _$_.template(`<li> </li>`, 0);
42
- var root_38 = _$_.template(`<button class="clear">Clear</button><ul class="list"></ul>`, 1, 2);
43
- var root_37 = _$_.template(`<!>`, 1, 1);
44
- var root_42 = _$_.template(`<span> </span>`, 0);
45
- var root_41 = _$_.template(`<div></div>`, 0);
46
- var root_40 = _$_.template(`<div class="nested-for-reactive"><button class="add-row">Add Row</button><button class="update-cell">Update Cell</button><div class="grid"></div></div>`, 0);
47
- var root_46 = _$_.template(`<li class="member"> </li>`, 0);
48
- var root_45 = _$_.template(`<div><h3 class="team-name"> </h3><ul></ul></div>`, 0);
49
- var root_44 = _$_.template(`<div><h2 class="dept-name"> </h2><!></div>`, 0);
50
- var root_43 = _$_.template(`<div class="org"></div>`, 0);
51
- var root_49 = _$_.template(`<li> </li>`, 0);
52
- var root_48 = _$_.template(`<button class="prepend">Prepend</button><ul></ul>`, 1, 2);
53
- var root_47 = _$_.template(`<!>`, 1, 1);
54
- var root_52 = _$_.template(`<li> </li>`, 0);
55
- var root_51 = _$_.template(`<button class="reorder">Rotate</button><ul></ul>`, 1, 2);
56
- var root_50 = _$_.template(`<!>`, 1, 1);
57
- var root_55 = _$_.template(`<div> </div>`, 0);
58
- var root_54 = _$_.template(`<div class="wrapper"><header class="before">Before</header><!><footer class="after">After</footer></div><button class="add">Add</button>`, 1, 2);
59
- var root_53 = _$_.template(`<!>`, 1, 1);
60
- var root_56 = _$_.template(`<div></div>`, 0);
61
- var root_57 = _$_.template(`<div><input type="checkbox" class="checkbox"><span> </span></div>`, 0);
62
- var root_59 = _$_.template(`<li class="single"> </li>`, 0);
63
- var root_58 = _$_.template(`<ul></ul>`, 0);
64
- var root_62 = _$_.template(`<li> </li>`, 0);
65
- var root_61 = _$_.template(`<button class="prepend">Prepend A</button><ul></ul>`, 1, 2);
66
- var root_60 = _$_.template(`<!>`, 1, 1);
67
- var root_65 = _$_.template(`<li> </li>`, 0);
68
- var root_64 = _$_.template(`<button class="insert">Insert B</button><ul></ul>`, 1, 2);
69
- var root_63 = _$_.template(`<!>`, 1, 1);
70
- var root_68 = _$_.template(`<li> </li>`, 0);
71
- var root_67 = _$_.template(`<button class="remove-middle">Remove B</button><ul></ul>`, 1, 2);
72
- var root_66 = _$_.template(`<!>`, 1, 1);
73
- var root_70 = _$_.template(`<li> </li>`, 0);
74
- var root_69 = _$_.template(`<ul class="large-list"></ul>`, 0);
75
- var root_73 = _$_.template(`<li> </li>`, 0);
76
- var root_72 = _$_.template(`<button class="swap">Swap First and Last</button><ul></ul>`, 1, 2);
77
- var root_71 = _$_.template(`<!>`, 1, 1);
78
- var root_76 = _$_.template(`<li> </li>`, 0);
79
- var root_75 = _$_.template(`<button class="reverse">Reverse</button><ul></ul>`, 1, 2);
80
- var root_74 = _$_.template(`<!>`, 1, 1);
81
456
 
82
- import { track } from 'ripple';
457
+ function KeyedForLoopReorder_render(__anchor, __block) {
458
+ const items = _$_.track(
459
+ [
460
+ { id: 1, name: 'First' },
461
+ { id: 2, name: 'Second' },
462
+ { id: 3, name: 'Third' }
463
+ ],
464
+ __block,
465
+ 'e7abc6a3'
466
+ );
83
467
 
84
- export function StaticForLoop() {
85
- return _$_.tsrx_element((__anchor, __block) => {
86
- const items = ['Apple', 'Banana', 'Cherry'];
87
- var ul = root();
468
+ var fragment_4 = root_21();
469
+ var node_2 = _$_.first_child_frag(fragment_4);
470
+
471
+ _$_.expression(node_2, () => _$_.tsrx_element((__anchor, __block) => {
472
+ var fragment_5 = root_22();
473
+ var button_3 = _$_.first_child_frag(fragment_5);
474
+
475
+ button_3.__click = () => {
476
+ items.value = [items.value[2], items.value[0], items.value[1]];
477
+ };
478
+
479
+ var ul_5 = _$_.hydrating ? _$_.hydrate_sibling() : button_3.nextSibling;
88
480
 
89
481
  {
90
- _$_.for(
91
- ul,
92
- () => items,
93
- (__anchor, item) => {
94
- var li = root_1();
482
+ _$_.for_keyed(
483
+ ul_5,
484
+ () => items.value,
485
+ (__anchor, pattern_2) => {
486
+ var li_5 = root_23();
95
487
 
96
488
  {
97
- var expression = _$_.child(li);
489
+ var expression_10 = _$_.hydrating ? _$_.hydrate_child() : li_5.firstChild;
98
490
 
99
- _$_.expression(expression, () => item);
100
- _$_.pop(li);
491
+ _$_.expression(expression_10, () => _$_.get(pattern_2).name);
492
+ _$_.hydrating && _$_.pop(li_5);
101
493
  }
102
494
 
103
- _$_.append(__anchor, li);
495
+ _$_.render(render_5, { a: _$_.UNINITIALIZED, _pattern_2: pattern_2, _li_5: li_5 });
496
+ _$_.append(__anchor, li_5);
104
497
  },
105
- 4
498
+ 4,
499
+ (pattern_2) => _$_.get(pattern_2).id
106
500
  );
107
501
 
108
- _$_.pop(ul);
502
+ _$_.hydrating && _$_.pop(ul_5);
109
503
  }
110
504
 
111
- _$_.append(__anchor, ul);
112
- });
505
+ _$_.append(__anchor, fragment_5);
506
+ }));
507
+
508
+ _$_.append(__anchor, fragment_4);
113
509
  }
114
510
 
115
- export function ForLoopWithIndex() {
116
- return _$_.tsrx_element((__anchor, __block) => {
117
- const items = ['A', 'B', 'C'];
118
- var ul_1 = root_2();
511
+ KeyedForLoopReorder[_$_.$r] = KeyedForLoopReorder_render;
512
+
513
+ var root_26 = _$_.template(`<li> </li>`, 0);
514
+
515
+ function render_6(__prev) {
516
+ var __a = `item-${_$_.get(__prev._pattern_3).id}`;
517
+
518
+ if (__prev.a !== __a) {
519
+ _$_.set_class(__prev._li_6, __prev.a = __a, void 0, true);
520
+ }
521
+ }
522
+
523
+ var root_25 = _$_.template(`<button class="update">Update</button><ul></ul>`, 1, 2);
524
+ var root_24 = _$_.template(`<!>`, 1, 1);
525
+
526
+ function KeyedForLoopUpdate_render(__anchor, __block) {
527
+ const items = _$_.track([{ id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }], __block, '7a2c2ada');
528
+ var fragment_6 = root_24();
529
+ var node_3 = _$_.first_child_frag(fragment_6);
530
+
531
+ _$_.expression(node_3, () => _$_.tsrx_element((__anchor, __block) => {
532
+ var fragment_7 = root_25();
533
+ var button_4 = _$_.first_child_frag(fragment_7);
534
+
535
+ button_4.__click = () => {
536
+ items.value = _$_.with_scope(__block, () => items.value.map((item) => item.id === 1 ? { ...item, name: 'Updated' } : item));
537
+ };
538
+
539
+ var ul_6 = _$_.hydrating ? _$_.hydrate_sibling() : button_4.nextSibling;
119
540
 
120
541
  {
121
- _$_.for(
122
- ul_1,
123
- () => items,
124
- (__anchor, item, i) => {
125
- var li_1 = root_3();
542
+ _$_.for_keyed(
543
+ ul_6,
544
+ () => items.value,
545
+ (__anchor, pattern_3) => {
546
+ var li_6 = root_26();
126
547
 
127
548
  {
128
- var expression_1 = _$_.child(li_1, true);
549
+ var expression_11 = _$_.hydrating ? _$_.hydrate_child() : li_6.firstChild;
129
550
 
130
- _$_.pop(li_1);
551
+ _$_.expression(expression_11, () => _$_.get(pattern_3).name);
552
+ _$_.hydrating && _$_.pop(li_6);
131
553
  }
132
554
 
133
- _$_.render(() => {
134
- _$_.set_text(expression_1, `${i.value}: ${item}`);
135
- });
136
-
137
- _$_.append(__anchor, li_1);
555
+ _$_.render(render_6, { a: _$_.UNINITIALIZED, _pattern_3: pattern_3, _li_6: li_6 });
556
+ _$_.append(__anchor, li_6);
138
557
  },
139
- 12
558
+ 4,
559
+ (pattern_3) => _$_.get(pattern_3).id
140
560
  );
141
561
 
142
- _$_.pop(ul_1);
562
+ _$_.hydrating && _$_.pop(ul_6);
143
563
  }
144
564
 
145
- _$_.append(__anchor, ul_1);
146
- });
565
+ _$_.append(__anchor, fragment_7);
566
+ }));
567
+
568
+ _$_.append(__anchor, fragment_6);
147
569
  }
148
570
 
149
- export function KeyedForLoop() {
150
- return _$_.tsrx_element((__anchor, __block) => {
151
- const items = [
152
- { id: 1, name: 'First' },
153
- { id: 2, name: 'Second' },
154
- { id: 3, name: 'Third' }
155
- ];
571
+ KeyedForLoopUpdate[_$_.$r] = KeyedForLoopUpdate_render;
156
572
 
157
- var ul_2 = root_4();
573
+ var root_29 = _$_.template(`<li> </li>`, 0);
574
+ var root_28 = _$_.template(`<button class="shuffle">Shuffle</button><ul></ul>`, 1, 2);
575
+ var root_27 = _$_.template(`<!>`, 1, 1);
576
+
577
+ function ForLoopMixedOperations_render(__anchor, __block) {
578
+ const items = _$_.track(['A', 'B', 'C', 'D'], __block, '3dd7c7b6');
579
+ var fragment_8 = root_27();
580
+ var node_4 = _$_.first_child_frag(fragment_8);
581
+
582
+ _$_.expression(node_4, () => _$_.tsrx_element((__anchor, __block) => {
583
+ var fragment_9 = root_28();
584
+ var button_5 = _$_.first_child_frag(fragment_9);
585
+
586
+ button_5.__click = () => {
587
+ items.value = ['D', 'C', 'A', 'E'];
588
+ };
589
+
590
+ var ul_7 = _$_.hydrating ? _$_.hydrate_sibling() : button_5.nextSibling;
158
591
 
159
592
  {
160
- _$_.for_keyed(
161
- ul_2,
162
- () => items,
163
- (__anchor, pattern) => {
164
- var li_2 = root_5();
593
+ _$_.for(
594
+ ul_7,
595
+ () => items.value,
596
+ (__anchor, item) => {
597
+ var li_7 = root_29();
598
+
599
+ _$_.set_class(li_7, `item-${item}`, void 0, true);
165
600
 
166
601
  {
167
- var expression_2 = _$_.child(li_2);
602
+ var expression_12 = _$_.hydrating ? _$_.hydrate_child() : li_7.firstChild;
168
603
 
169
- _$_.expression(expression_2, () => _$_.get(pattern).name);
170
- _$_.pop(li_2);
604
+ _$_.expression(expression_12, () => item);
605
+ _$_.hydrating && _$_.pop(li_7);
171
606
  }
172
607
 
173
- _$_.append(__anchor, li_2);
608
+ _$_.append(__anchor, li_7);
174
609
  },
175
- 4,
176
- (pattern) => _$_.get(pattern).id
610
+ 4
177
611
  );
178
612
 
179
- _$_.pop(ul_2);
613
+ _$_.hydrating && _$_.pop(ul_7);
180
614
  }
181
615
 
182
- _$_.append(__anchor, ul_2);
183
- });
184
- }
616
+ _$_.append(__anchor, fragment_9);
617
+ }));
185
618
 
186
- export function ReactiveForLoopAdd() {
187
- return _$_.tsrx_element((__anchor, __block) => {
188
- let lazy = _$_.track(['A', 'B'], __block, 'e145678a');
189
- var fragment = root_6();
190
- var node = _$_.first_child_frag(fragment);
619
+ _$_.append(__anchor, fragment_8);
620
+ }
191
621
 
192
- _$_.expression(node, () => _$_.tsrx_element((__anchor, __block) => {
193
- var fragment_1 = root_7();
194
- var button = _$_.first_child_frag(fragment_1);
622
+ ForLoopMixedOperations[_$_.$r] = ForLoopMixedOperations_render;
195
623
 
196
- button.__click = () => {
197
- _$_.set(lazy, [...lazy.value, 'C']);
198
- };
624
+ var root_33 = _$_.template(`<li> </li>`, 0);
625
+ var root_32 = _$_.template(`<ul class="list"></ul>`, 0);
199
626
 
200
- var ul_3 = _$_.sibling(button);
627
+ function consequent(__anchor, { showList, items }) {
628
+ var ul_8 = root_32();
201
629
 
202
- {
203
- _$_.for(
204
- ul_3,
205
- () => lazy.value,
206
- (__anchor, item) => {
207
- var li_3 = root_8();
630
+ {
631
+ _$_.for(
632
+ ul_8,
633
+ () => items.value,
634
+ (__anchor, item) => {
635
+ var li_8 = root_33();
208
636
 
209
- {
210
- var expression_3 = _$_.child(li_3);
637
+ {
638
+ var expression_13 = _$_.hydrating ? _$_.hydrate_child() : li_8.firstChild;
211
639
 
212
- _$_.expression(expression_3, () => item);
213
- _$_.pop(li_3);
214
- }
640
+ _$_.expression(expression_13, () => item);
641
+ _$_.hydrating && _$_.pop(li_8);
642
+ }
215
643
 
216
- _$_.append(__anchor, li_3);
217
- },
218
- 4
219
- );
644
+ _$_.append(__anchor, li_8);
645
+ },
646
+ 4
647
+ );
220
648
 
221
- _$_.pop(ul_3);
222
- }
649
+ _$_.hydrating && _$_.pop(ul_8);
650
+ }
223
651
 
224
- _$_.next();
225
- _$_.append(__anchor, fragment_1, true);
226
- }));
652
+ _$_.append(__anchor, ul_8);
653
+ }
227
654
 
228
- _$_.append(__anchor, fragment);
229
- });
655
+ function if_1({ showList, items }) {
656
+ if (showList.value) return consequent;
230
657
  }
231
658
 
232
- export function ReactiveForLoopRemove() {
233
- return _$_.tsrx_element((__anchor, __block) => {
234
- let lazy_1 = _$_.track(['A', 'B', 'C'], __block, 'b4e9bd54');
235
- var fragment_2 = root_9();
236
- var node_1 = _$_.first_child_frag(fragment_2);
659
+ var root_31 = _$_.template(`<button class="toggle">Toggle List</button><button class="add">Add Item</button><!>`, 1, 3);
660
+ var root_30 = _$_.template(`<!>`, 1, 1);
237
661
 
238
- _$_.expression(node_1, () => _$_.tsrx_element((__anchor, __block) => {
239
- var fragment_3 = root_10();
240
- var button_1 = _$_.first_child_frag(fragment_3);
662
+ function ForLoopInsideIf_render(__anchor, __block) {
663
+ const showList = _$_.track(true, __block, '0528df30');
664
+ const items = _$_.track(['X', 'Y', 'Z'], __block, 'bf375103');
665
+ var fragment_10 = root_30();
666
+ var node_6 = _$_.first_child_frag(fragment_10);
241
667
 
242
- button_1.__click = () => {
243
- _$_.set(lazy_1, _$_.with_scope(__block, () => lazy_1.value.slice(0, -1)));
244
- };
668
+ _$_.expression(node_6, () => _$_.tsrx_element((__anchor, __block) => {
669
+ var fragment_11 = root_31();
670
+ var button_6 = _$_.first_child_frag(fragment_11);
245
671
 
246
- var ul_4 = _$_.sibling(button_1);
672
+ button_6.__click = () => {
673
+ showList.value = !showList.value;
674
+ };
247
675
 
248
- {
249
- _$_.for(
250
- ul_4,
251
- () => lazy_1.value,
252
- (__anchor, item) => {
253
- var li_4 = root_11();
676
+ var button_7 = _$_.hydrating ? _$_.hydrate_sibling() : button_6.nextSibling;
254
677
 
255
- {
256
- var expression_4 = _$_.child(li_4);
678
+ button_7.__click = () => {
679
+ items.value = [...items.value, 'W'];
680
+ };
257
681
 
258
- _$_.expression(expression_4, () => item);
259
- _$_.pop(li_4);
260
- }
682
+ var node_5 = _$_.hydrating ? _$_.hydrate_sibling() : button_7.nextSibling;
261
683
 
262
- _$_.append(__anchor, li_4);
263
- },
264
- 4
265
- );
684
+ _$_.if(node_5, if_1, false, { showList, items });
685
+ _$_.append(__anchor, fragment_11);
686
+ }));
266
687
 
267
- _$_.pop(ul_4);
268
- }
688
+ _$_.append(__anchor, fragment_10);
689
+ }
269
690
 
270
- _$_.next();
271
- _$_.append(__anchor, fragment_3, true);
272
- }));
691
+ ForLoopInsideIf[_$_.$r] = ForLoopInsideIf_render;
273
692
 
274
- _$_.append(__anchor, fragment_2);
275
- });
276
- }
693
+ var root_36 = _$_.template(`<li> </li>`, 0);
694
+ var root_35 = _$_.template(`<button class="populate">Populate</button><ul class="list"></ul>`, 1, 2);
695
+ var root_34 = _$_.template(`<!>`, 1, 1);
277
696
 
278
- export function ForLoopInteractive() {
279
- return _$_.tsrx_element((__anchor, __block) => {
280
- let lazy_2 = _$_.track([0, 0, 0], __block, '36f563df');
281
- var div = root_12();
697
+ function ForLoopEmptyToPopulated_render(__anchor, __block) {
698
+ const items = _$_.track([], __block, '525c5dbc');
699
+ var fragment_12 = root_34();
700
+ var node_7 = _$_.first_child_frag(fragment_12);
701
+
702
+ _$_.expression(node_7, () => _$_.tsrx_element((__anchor, __block) => {
703
+ var fragment_13 = root_35();
704
+ var button_8 = _$_.first_child_frag(fragment_13);
705
+
706
+ button_8.__click = () => {
707
+ items.value = ['One', 'Two', 'Three'];
708
+ };
709
+
710
+ var ul_9 = _$_.hydrating ? _$_.hydrate_sibling() : button_8.nextSibling;
282
711
 
283
712
  {
284
713
  _$_.for(
285
- div,
286
- () => lazy_2.value,
287
- (__anchor, count, i) => {
288
- var div_1 = root_13();
714
+ ul_9,
715
+ () => items.value,
716
+ (__anchor, item) => {
717
+ var li_9 = root_36();
289
718
 
290
719
  {
291
- var span = _$_.child(div_1);
720
+ var expression_14 = _$_.hydrating ? _$_.hydrate_child() : li_9.firstChild;
292
721
 
293
- {
294
- var expression_5 = _$_.child(span);
722
+ _$_.expression(expression_14, () => item);
723
+ _$_.hydrating && _$_.pop(li_9);
724
+ }
295
725
 
296
- _$_.expression(expression_5, () => count);
297
- _$_.pop(span);
298
- }
726
+ _$_.append(__anchor, li_9);
727
+ },
728
+ 4
729
+ );
299
730
 
300
- var button_2 = _$_.sibling(span);
731
+ _$_.hydrating && _$_.pop(ul_9);
732
+ }
301
733
 
302
- button_2.__click = () => {
303
- const newCounts = [...lazy_2.value];
734
+ _$_.append(__anchor, fragment_13);
735
+ }));
304
736
 
305
- newCounts[i.value]++;
306
- _$_.set(lazy_2, newCounts);
307
- };
308
- }
737
+ _$_.append(__anchor, fragment_12);
738
+ }
309
739
 
310
- _$_.render(() => {
311
- _$_.set_class(div_1, `item-${i.value}`, void 0, true);
312
- });
740
+ ForLoopEmptyToPopulated[_$_.$r] = ForLoopEmptyToPopulated_render;
741
+
742
+ var root_39 = _$_.template(`<li> </li>`, 0);
743
+ var root_38 = _$_.template(`<button class="clear">Clear</button><ul class="list"></ul>`, 1, 2);
744
+ var root_37 = _$_.template(`<!>`, 1, 1);
745
+
746
+ function ForLoopPopulatedToEmpty_render(__anchor, __block) {
747
+ const items = _$_.track(['One', 'Two', 'Three'], __block, 'ee47f078');
748
+ var fragment_14 = root_37();
749
+ var node_8 = _$_.first_child_frag(fragment_14);
750
+
751
+ _$_.expression(node_8, () => _$_.tsrx_element((__anchor, __block) => {
752
+ var fragment_15 = root_38();
753
+ var button_9 = _$_.first_child_frag(fragment_15);
754
+
755
+ button_9.__click = () => {
756
+ items.value = [];
757
+ };
758
+
759
+ var ul_10 = _$_.hydrating ? _$_.hydrate_sibling() : button_9.nextSibling;
760
+
761
+ {
762
+ _$_.for(
763
+ ul_10,
764
+ () => items.value,
765
+ (__anchor, item) => {
766
+ var li_10 = root_39();
767
+
768
+ {
769
+ var expression_15 = _$_.hydrating ? _$_.hydrate_child() : li_10.firstChild;
770
+
771
+ _$_.expression(expression_15, () => item);
772
+ _$_.hydrating && _$_.pop(li_10);
773
+ }
313
774
 
314
- _$_.append(__anchor, div_1);
775
+ _$_.append(__anchor, li_10);
315
776
  },
316
- 12
777
+ 4
317
778
  );
318
779
 
319
- _$_.pop(div);
780
+ _$_.hydrating && _$_.pop(ul_10);
320
781
  }
321
782
 
322
- _$_.append(__anchor, div);
323
- });
783
+ _$_.append(__anchor, fragment_15);
784
+ }));
785
+
786
+ _$_.append(__anchor, fragment_14);
324
787
  }
325
788
 
326
- export function NestedForLoop() {
327
- return _$_.tsrx_element((__anchor, __block) => {
328
- const grid = [[1, 2], [3, 4]];
329
- var div_2 = root_14();
789
+ ForLoopPopulatedToEmpty[_$_.$r] = ForLoopPopulatedToEmpty_render;
790
+
791
+ var root_42 = _$_.template(`<span> </span>`, 0);
792
+
793
+ function render_7(__prev) {
794
+ var __a = `cell-${__prev._rowIndex.value}-${__prev._colIndex.value}`;
795
+
796
+ if (__prev.a !== __a) {
797
+ _$_.set_class(__prev._span_5, __prev.a = __a, void 0, true);
798
+ }
799
+ }
800
+
801
+ function render_8(__prev) {
802
+ var __a = `row-${__prev._rowIndex.value}`;
803
+
804
+ if (__prev.a !== __a) {
805
+ _$_.set_class(__prev._div_9, __prev.a = __a, void 0, true);
806
+ }
807
+ }
808
+
809
+ var root_41 = _$_.template(`<div></div>`, 0);
810
+ var root_40 = _$_.template(`<div class="nested-for-reactive"><button class="add-row">Add Row</button><button class="update-cell">Update Cell</button><div class="grid"></div></div>`, 0);
811
+
812
+ function NestedForLoopReactive_render(__anchor, __block) {
813
+ const grid = _$_.track([[1, 2], [3, 4]], __block, 'a2f41fb3');
814
+ var div_7 = root_40();
815
+
816
+ {
817
+ var button_10 = _$_.hydrating ? _$_.hydrate_child() : div_7.firstChild;
818
+
819
+ button_10.__click = () => {
820
+ grid.value = [...grid.value, [5, 6]];
821
+ };
822
+
823
+ var button_11 = _$_.hydrating ? _$_.hydrate_sibling() : button_10.nextSibling;
824
+
825
+ button_11.__click = () => {
826
+ const newGrid = _$_.with_scope(__block, () => grid.value.map((row) => [...row]));
827
+
828
+ newGrid[0][0] = 99;
829
+ grid.value = newGrid;
830
+ };
831
+
832
+ var div_8 = _$_.hydrating ? _$_.hydrate_sibling() : button_11.nextSibling;
330
833
 
331
834
  {
332
835
  _$_.for(
333
- div_2,
334
- () => grid,
836
+ div_8,
837
+ () => grid.value,
335
838
  (__anchor, row, rowIndex) => {
336
- var div_3 = root_15();
839
+ var div_9 = root_41();
337
840
 
338
841
  {
339
842
  _$_.for(
340
- div_3,
843
+ div_9,
341
844
  () => row,
342
845
  (__anchor, cell, colIndex) => {
343
- var span_1 = root_16();
846
+ var span_5 = root_42();
344
847
 
345
848
  {
346
- var expression_6 = _$_.child(span_1);
849
+ var expression_16 = _$_.hydrating ? _$_.hydrate_child() : span_5.firstChild;
347
850
 
348
- _$_.expression(expression_6, () => cell);
349
- _$_.pop(span_1);
851
+ _$_.expression(expression_16, () => cell);
852
+ _$_.hydrating && _$_.pop(span_5);
350
853
  }
351
854
 
352
- _$_.render(() => {
353
- _$_.set_class(span_1, `cell-${rowIndex.value}-${colIndex.value}`, void 0, true);
855
+ _$_.render(render_7, {
856
+ a: _$_.UNINITIALIZED,
857
+ _rowIndex: rowIndex,
858
+ _colIndex: colIndex,
859
+ _span_5: span_5
354
860
  });
355
861
 
356
- _$_.append(__anchor, span_1);
862
+ _$_.append(__anchor, span_5);
357
863
  },
358
864
  12
359
865
  );
360
866
 
361
- _$_.pop(div_3);
362
-
363
- _$_.render(() => {
364
- _$_.set_class(div_3, `row-${rowIndex.value}`, void 0, true);
365
- });
867
+ _$_.hydrating && _$_.pop(div_9);
868
+ _$_.render(render_8, { a: _$_.UNINITIALIZED, _rowIndex: rowIndex, _div_9: div_9 });
366
869
  }
367
870
 
368
- _$_.append(__anchor, div_3);
871
+ _$_.append(__anchor, div_9);
369
872
  },
370
873
  12
371
874
  );
372
875
 
373
- _$_.pop(div_2);
876
+ _$_.hydrating && _$_.pop(div_8);
374
877
  }
878
+ }
375
879
 
376
- _$_.append(__anchor, div_2);
377
- });
880
+ _$_.append(__anchor, div_7);
378
881
  }
379
882
 
380
- export function EmptyForLoop() {
381
- return _$_.tsrx_element((__anchor, __block) => {
382
- const items = [];
383
- var div_4 = root_17();
883
+ NestedForLoopReactive[_$_.$r] = NestedForLoopReactive_render;
384
884
 
385
- {
386
- _$_.for(
387
- div_4,
388
- () => items,
389
- (__anchor, item) => {
390
- var span_2 = root_18();
885
+ var root_46 = _$_.template(`<li class="member"> </li>`, 0);
886
+ var root_45 = _$_.template(`<div><h3 class="team-name"> </h3><ul></ul></div>`, 0);
391
887
 
392
- {
393
- var expression_7 = _$_.child(span_2);
888
+ function render_9(__prev) {
889
+ var __a = `team-${_$_.get(__prev._pattern_5).id}`;
394
890
 
395
- _$_.expression(expression_7, () => item);
396
- _$_.pop(span_2);
397
- }
891
+ if (__prev.a !== __a) {
892
+ _$_.set_class(__prev._div_12, __prev.a = __a, void 0, true);
893
+ }
894
+ }
398
895
 
399
- _$_.append(__anchor, span_2);
400
- },
401
- 4
402
- );
896
+ var root_44 = _$_.template(`<div><h2 class="dept-name"> </h2><!></div>`, 0);
403
897
 
404
- _$_.pop(div_4);
405
- }
898
+ function render_10(__prev) {
899
+ var __a = `dept-${_$_.get(__prev._pattern_4).id}`;
406
900
 
407
- _$_.append(__anchor, div_4);
408
- });
901
+ if (__prev.a !== __a) {
902
+ _$_.set_class(__prev._div_11, __prev.a = __a, void 0, true);
903
+ }
409
904
  }
410
905
 
411
- export function ForLoopComplexObjects() {
412
- return _$_.tsrx_element((__anchor, __block) => {
413
- const users = [
414
- { id: 1, name: 'Alice', role: 'Admin' },
415
- { id: 2, name: 'Bob', role: 'User' }
416
- ];
906
+ var root_43 = _$_.template(`<div class="org"></div>`, 0);
417
907
 
418
- var div_5 = root_19();
908
+ function ForLoopDeeplyNested_render(__anchor, __block) {
909
+ const departments = [
910
+ {
911
+ id: 'd1',
912
+ name: 'Engineering',
913
+ teams: [
914
+ { id: 't1', name: 'Frontend', members: ['Alice', 'Bob'] },
915
+ { id: 't2', name: 'Backend', members: ['Charlie'] }
916
+ ]
917
+ },
419
918
 
420
919
  {
421
- _$_.for_keyed(
422
- div_5,
423
- () => users,
424
- (__anchor, pattern_1) => {
425
- var div_6 = root_20();
920
+ id: 'd2',
921
+ name: 'Design',
922
+ teams: [{ id: 't3', name: 'UX', members: ['Diana', 'Eve', 'Frank'] }]
923
+ }
924
+ ];
925
+
926
+ var div_10 = root_43();
927
+
928
+ {
929
+ _$_.for_keyed(
930
+ div_10,
931
+ () => departments,
932
+ (__anchor, pattern_4) => {
933
+ var div_11 = root_44();
934
+
935
+ {
936
+ var h2 = _$_.hydrating ? _$_.hydrate_child() : div_11.firstChild;
426
937
 
427
938
  {
428
- var span_3 = _$_.child(div_6);
939
+ var expression_17 = _$_.hydrating ? _$_.hydrate_child() : h2.firstChild;
429
940
 
430
- {
431
- var expression_8 = _$_.child(span_3);
941
+ _$_.expression(expression_17, () => _$_.get(pattern_4).name);
942
+ _$_.hydrating && _$_.pop(h2);
943
+ }
432
944
 
433
- _$_.expression(expression_8, () => _$_.get(pattern_1).name);
434
- _$_.pop(span_3);
435
- }
945
+ var node_9 = _$_.hydrating ? _$_.hydrate_sibling() : h2.nextSibling;
436
946
 
437
- var span_4 = _$_.sibling(span_3);
947
+ _$_.for_keyed(
948
+ node_9,
949
+ () => _$_.get(pattern_4).teams,
950
+ (__anchor, pattern_5) => {
951
+ var div_12 = root_45();
438
952
 
439
- {
440
- var expression_9 = _$_.child(span_4);
953
+ {
954
+ var h3 = _$_.hydrating ? _$_.hydrate_child() : div_12.firstChild;
441
955
 
442
- _$_.expression(expression_9, () => _$_.get(pattern_1).role);
443
- _$_.pop(span_4);
444
- }
445
- }
956
+ {
957
+ var expression_18 = _$_.hydrating ? _$_.hydrate_child() : h3.firstChild;
446
958
 
447
- _$_.render(() => {
448
- _$_.set_class(div_6, `user-${_$_.get(pattern_1).id}`, void 0, true);
449
- });
959
+ _$_.expression(expression_18, () => _$_.get(pattern_5).name);
960
+ _$_.hydrating && _$_.pop(h3);
961
+ }
450
962
 
451
- _$_.append(__anchor, div_6);
452
- },
453
- 4,
454
- (pattern_1) => _$_.get(pattern_1).id
455
- );
963
+ var ul_11 = _$_.hydrating ? _$_.hydrate_sibling() : h3.nextSibling;
456
964
 
457
- _$_.pop(div_5);
458
- }
965
+ {
966
+ _$_.for(
967
+ ul_11,
968
+ () => _$_.get(pattern_5).members,
969
+ (__anchor, member) => {
970
+ var li_11 = root_46();
459
971
 
460
- _$_.append(__anchor, div_5);
461
- });
462
- }
972
+ {
973
+ var expression_19 = _$_.hydrating ? _$_.hydrate_child() : li_11.firstChild;
463
974
 
464
- export function KeyedForLoopReorder() {
465
- return _$_.tsrx_element((__anchor, __block) => {
466
- let lazy_3 = _$_.track(
467
- [
468
- { id: 1, name: 'First' },
469
- { id: 2, name: 'Second' },
470
- { id: 3, name: 'Third' }
471
- ],
472
- __block,
473
- 'e7abc6a3'
474
- );
975
+ _$_.expression(expression_19, () => member);
976
+ _$_.hydrating && _$_.pop(li_11);
977
+ }
475
978
 
476
- var fragment_4 = root_21();
477
- var node_2 = _$_.first_child_frag(fragment_4);
979
+ _$_.append(__anchor, li_11);
980
+ },
981
+ 4
982
+ );
478
983
 
479
- _$_.expression(node_2, () => _$_.tsrx_element((__anchor, __block) => {
480
- var fragment_5 = root_22();
481
- var button_3 = _$_.first_child_frag(fragment_5);
984
+ _$_.hydrating && _$_.pop(ul_11);
985
+ }
986
+ }
482
987
 
483
- button_3.__click = () => {
484
- _$_.set(lazy_3, [lazy_3.value[2], lazy_3.value[0], lazy_3.value[1]]);
485
- };
988
+ _$_.render(render_9, { a: _$_.UNINITIALIZED, _pattern_5: pattern_5, _div_12: div_12 });
989
+ _$_.append(__anchor, div_12);
990
+ },
991
+ 0,
992
+ (pattern_5) => _$_.get(pattern_5).id
993
+ );
486
994
 
487
- var ul_5 = _$_.sibling(button_3);
995
+ _$_.hydrating && _$_.pop(div_11);
996
+ }
488
997
 
489
- {
490
- _$_.for_keyed(
491
- ul_5,
492
- () => lazy_3.value,
493
- (__anchor, pattern_2) => {
494
- var li_5 = root_23();
495
-
496
- {
497
- var expression_10 = _$_.child(li_5);
498
-
499
- _$_.expression(expression_10, () => _$_.get(pattern_2).name);
500
- _$_.pop(li_5);
501
- }
502
-
503
- _$_.render(() => {
504
- _$_.set_class(li_5, `item-${_$_.get(pattern_2).id}`, void 0, true);
505
- });
506
-
507
- _$_.append(__anchor, li_5);
508
- },
509
- 4,
510
- (pattern_2) => _$_.get(pattern_2).id
511
- );
512
-
513
- _$_.pop(ul_5);
514
- }
998
+ _$_.render(render_10, { a: _$_.UNINITIALIZED, _pattern_4: pattern_4, _div_11: div_11 });
999
+ _$_.append(__anchor, div_11);
1000
+ },
1001
+ 4,
1002
+ (pattern_4) => _$_.get(pattern_4).id
1003
+ );
515
1004
 
516
- _$_.next();
517
- _$_.append(__anchor, fragment_5, true);
518
- }));
1005
+ _$_.hydrating && _$_.pop(div_10);
1006
+ }
519
1007
 
520
- _$_.append(__anchor, fragment_4);
521
- });
1008
+ _$_.append(__anchor, div_10);
522
1009
  }
523
1010
 
524
- export function KeyedForLoopUpdate() {
525
- return _$_.tsrx_element((__anchor, __block) => {
526
- let lazy_4 = _$_.track([{ id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }], __block, '7a2c2ada');
527
- var fragment_6 = root_24();
528
- var node_3 = _$_.first_child_frag(fragment_6);
529
-
530
- _$_.expression(node_3, () => _$_.tsrx_element((__anchor, __block) => {
531
- var fragment_7 = root_25();
532
- var button_4 = _$_.first_child_frag(fragment_7);
1011
+ ForLoopDeeplyNested[_$_.$r] = ForLoopDeeplyNested_render;
533
1012
 
534
- button_4.__click = () => {
535
- _$_.set(lazy_4, _$_.with_scope(__block, () => lazy_4.value.map((item) => item.id === 1 ? { ...item, name: 'Updated' } : item)));
536
- };
1013
+ var root_49 = _$_.template(`<li> </li>`, 0);
537
1014
 
538
- var ul_6 = _$_.sibling(button_4);
1015
+ function render_11(__prev) {
1016
+ var __a = `[${__prev._i.value}] ${__prev._item}`;
539
1017
 
540
- {
541
- _$_.for_keyed(
542
- ul_6,
543
- () => lazy_4.value,
544
- (__anchor, pattern_3) => {
545
- var li_6 = root_26();
546
-
547
- {
548
- var expression_11 = _$_.child(li_6);
549
-
550
- _$_.expression(expression_11, () => _$_.get(pattern_3).name);
551
- _$_.pop(li_6);
552
- }
553
-
554
- _$_.render(() => {
555
- _$_.set_class(li_6, `item-${_$_.get(pattern_3).id}`, void 0, true);
556
- });
557
-
558
- _$_.append(__anchor, li_6);
559
- },
560
- 4,
561
- (pattern_3) => _$_.get(pattern_3).id
562
- );
563
-
564
- _$_.pop(ul_6);
565
- }
1018
+ if (__prev.a !== __a) {
1019
+ _$_.set_text(__prev._expression_20, __prev.a = __a);
1020
+ }
566
1021
 
567
- _$_.next();
568
- _$_.append(__anchor, fragment_7, true);
569
- }));
1022
+ var __b = `item-${__prev._i.value}`;
570
1023
 
571
- _$_.append(__anchor, fragment_6);
572
- });
1024
+ if (__prev.b !== __b) {
1025
+ _$_.set_class(__prev._li_12, __prev.b = __b, void 0, true);
1026
+ }
573
1027
  }
574
1028
 
575
- export function ForLoopMixedOperations() {
576
- return _$_.tsrx_element((__anchor, __block) => {
577
- let lazy_5 = _$_.track(['A', 'B', 'C', 'D'], __block, '3dd7c7b6');
578
- var fragment_8 = root_27();
579
- var node_4 = _$_.first_child_frag(fragment_8);
1029
+ var root_48 = _$_.template(`<button class="prepend">Prepend</button><ul></ul>`, 1, 2);
1030
+ var root_47 = _$_.template(`<!>`, 1, 1);
580
1031
 
581
- _$_.expression(node_4, () => _$_.tsrx_element((__anchor, __block) => {
582
- var fragment_9 = root_28();
583
- var button_5 = _$_.first_child_frag(fragment_9);
1032
+ function ForLoopIndexUpdate_render(__anchor, __block) {
1033
+ const items = _$_.track(['First', 'Second', 'Third'], __block, 'f61e31e6');
1034
+ var fragment_16 = root_47();
1035
+ var node_10 = _$_.first_child_frag(fragment_16);
584
1036
 
585
- button_5.__click = () => {
586
- _$_.set(lazy_5, ['D', 'C', 'A', 'E']);
587
- };
1037
+ _$_.expression(node_10, () => _$_.tsrx_element((__anchor, __block) => {
1038
+ var fragment_17 = root_48();
1039
+ var button_12 = _$_.first_child_frag(fragment_17);
588
1040
 
589
- var ul_7 = _$_.sibling(button_5);
1041
+ button_12.__click = () => {
1042
+ items.value = ['Zeroth', ...items.value];
1043
+ };
590
1044
 
591
- {
592
- _$_.for(
593
- ul_7,
594
- () => lazy_5.value,
595
- (__anchor, item) => {
596
- var li_7 = root_29();
1045
+ var ul_12 = _$_.hydrating ? _$_.hydrate_sibling() : button_12.nextSibling;
597
1046
 
598
- _$_.set_class(li_7, `item-${item}`, void 0, true);
1047
+ {
1048
+ _$_.for(
1049
+ ul_12,
1050
+ () => items.value,
1051
+ (__anchor, item, i) => {
1052
+ var li_12 = root_49();
599
1053
 
600
- {
601
- var expression_12 = _$_.child(li_7);
1054
+ {
1055
+ var expression_20 = _$_.hydrating ? _$_.hydrate_text() : li_12.firstChild;
1056
+ }
602
1057
 
603
- _$_.expression(expression_12, () => item);
604
- _$_.pop(li_7);
605
- }
1058
+ _$_.render(render_11, {
1059
+ a: ' ',
1060
+ b: _$_.UNINITIALIZED,
1061
+ _i: i,
1062
+ _item: item,
1063
+ _expression_20: expression_20,
1064
+ _li_12: li_12
1065
+ });
606
1066
 
607
- _$_.append(__anchor, li_7);
608
- },
609
- 4
610
- );
1067
+ _$_.append(__anchor, li_12);
1068
+ },
1069
+ 12
1070
+ );
611
1071
 
612
- _$_.pop(ul_7);
613
- }
1072
+ _$_.hydrating && _$_.pop(ul_12);
1073
+ }
614
1074
 
615
- _$_.next();
616
- _$_.append(__anchor, fragment_9, true);
617
- }));
1075
+ _$_.append(__anchor, fragment_17);
1076
+ }));
618
1077
 
619
- _$_.append(__anchor, fragment_8);
620
- });
1078
+ _$_.append(__anchor, fragment_16);
621
1079
  }
622
1080
 
623
- export function ForLoopInsideIf() {
624
- return _$_.tsrx_element((__anchor, __block) => {
625
- let lazy_6 = _$_.track(true, __block, '0528df30');
626
- let lazy_7 = _$_.track(['X', 'Y', 'Z'], __block, 'bf375103');
627
- var fragment_10 = root_30();
628
- var node_6 = _$_.first_child_frag(fragment_10);
1081
+ ForLoopIndexUpdate[_$_.$r] = ForLoopIndexUpdate_render;
629
1082
 
630
- _$_.expression(node_6, () => _$_.tsrx_element((__anchor, __block) => {
631
- var fragment_11 = root_31();
632
- var button_6 = _$_.first_child_frag(fragment_11);
1083
+ var root_52 = _$_.template(`<li> </li>`, 0);
633
1084
 
634
- button_6.__click = () => {
635
- _$_.set(lazy_6, !lazy_6.value);
636
- };
1085
+ function render_12(__prev) {
1086
+ var __pattern_6 = _$_.get(__prev._pattern_6);
1087
+ var __a = `[${__prev._i.value}] ${__pattern_6.id}: ${__pattern_6.value}`;
637
1088
 
638
- var button_7 = _$_.sibling(button_6);
1089
+ if (__prev.a !== __a) {
1090
+ _$_.set_text(__prev._expression_21, __prev.a = __a);
1091
+ }
639
1092
 
640
- button_7.__click = () => {
641
- _$_.set(lazy_7, [...lazy_7.value, 'W']);
642
- };
1093
+ var __b = __prev._i.value;
643
1094
 
644
- var node_5 = _$_.sibling(button_7);
1095
+ if (__prev.b !== __b) {
1096
+ _$_.set_attribute(__prev._li_13, 'data-index', __prev.b = __b);
1097
+ }
645
1098
 
646
- {
647
- var consequent = (__anchor) => {
648
- var ul_8 = root_32();
1099
+ var __c = `item-${__pattern_6.id}`;
649
1100
 
650
- {
651
- _$_.for(
652
- ul_8,
653
- () => lazy_7.value,
654
- (__anchor, item) => {
655
- var li_8 = root_33();
1101
+ if (__prev.c !== __c) {
1102
+ _$_.set_class(__prev._li_13, __prev.c = __c, void 0, true);
1103
+ }
1104
+ }
656
1105
 
657
- {
658
- var expression_13 = _$_.child(li_8);
1106
+ var root_51 = _$_.template(`<button class="reorder">Rotate</button><ul></ul>`, 1, 2);
1107
+ var root_50 = _$_.template(`<!>`, 1, 1);
659
1108
 
660
- _$_.expression(expression_13, () => item);
661
- _$_.pop(li_8);
662
- }
1109
+ function KeyedForLoopWithIndex_render(__anchor, __block) {
1110
+ const items = _$_.track(
1111
+ [
1112
+ { id: 'a', value: 'Alpha' },
1113
+ { id: 'b', value: 'Beta' },
1114
+ { id: 'c', value: 'Gamma' }
1115
+ ],
1116
+ __block,
1117
+ '3467975a'
1118
+ );
663
1119
 
664
- _$_.append(__anchor, li_8);
665
- },
666
- 4
667
- );
1120
+ var fragment_18 = root_50();
1121
+ var node_11 = _$_.first_child_frag(fragment_18);
668
1122
 
669
- _$_.pop(ul_8);
670
- }
1123
+ _$_.expression(node_11, () => _$_.tsrx_element((__anchor, __block) => {
1124
+ var fragment_19 = root_51();
1125
+ var button_13 = _$_.first_child_frag(fragment_19);
671
1126
 
672
- _$_.append(__anchor, ul_8);
673
- };
1127
+ button_13.__click = () => {
1128
+ items.value = [items.value[1], items.value[2], items.value[0]];
1129
+ };
674
1130
 
675
- _$_.if(node_5, (__render) => {
676
- if (lazy_6.value) __render(consequent);
677
- });
678
- }
1131
+ var ul_13 = _$_.hydrating ? _$_.hydrate_sibling() : button_13.nextSibling;
679
1132
 
680
- _$_.append(__anchor, fragment_11);
681
- }));
1133
+ {
1134
+ _$_.for_keyed(
1135
+ ul_13,
1136
+ () => items.value,
1137
+ (__anchor, pattern_6, i) => {
1138
+ var li_13 = root_52();
682
1139
 
683
- _$_.append(__anchor, fragment_10);
684
- });
685
- }
1140
+ {
1141
+ var expression_21 = _$_.hydrating ? _$_.hydrate_text() : li_13.firstChild;
1142
+ }
686
1143
 
687
- export function ForLoopEmptyToPopulated() {
688
- return _$_.tsrx_element((__anchor, __block) => {
689
- let lazy_8 = _$_.track([], __block, '525c5dbc');
690
- var fragment_12 = root_34();
691
- var node_7 = _$_.first_child_frag(fragment_12);
1144
+ _$_.render(render_12, {
1145
+ a: ' ',
1146
+ b: void 0,
1147
+ c: _$_.UNINITIALIZED,
1148
+ _pattern_6: pattern_6,
1149
+ _i: i,
1150
+ _expression_21: expression_21,
1151
+ _li_13: li_13
1152
+ });
1153
+
1154
+ _$_.append(__anchor, li_13);
1155
+ },
1156
+ 12,
1157
+ (pattern_6, i) => _$_.get(pattern_6).id
1158
+ );
692
1159
 
693
- _$_.expression(node_7, () => _$_.tsrx_element((__anchor, __block) => {
694
- var fragment_13 = root_35();
695
- var button_8 = _$_.first_child_frag(fragment_13);
1160
+ _$_.hydrating && _$_.pop(ul_13);
1161
+ }
696
1162
 
697
- button_8.__click = () => {
698
- _$_.set(lazy_8, ['One', 'Two', 'Three']);
699
- };
1163
+ _$_.append(__anchor, fragment_19);
1164
+ }));
700
1165
 
701
- var ul_9 = _$_.sibling(button_8);
1166
+ _$_.append(__anchor, fragment_18);
1167
+ }
702
1168
 
703
- {
704
- _$_.for(
705
- ul_9,
706
- () => lazy_8.value,
707
- (__anchor, item) => {
708
- var li_9 = root_36();
1169
+ KeyedForLoopWithIndex[_$_.$r] = KeyedForLoopWithIndex_render;
709
1170
 
710
- {
711
- var expression_14 = _$_.child(li_9);
1171
+ var root_55 = _$_.template(`<div> </div>`, 0);
1172
+ var root_54 = _$_.template(`<div class="wrapper"><header class="before">Before</header><!><footer class="after">After</footer></div><button class="add">Add</button>`, 1, 2);
1173
+ var root_53 = _$_.template(`<!>`, 1, 1);
712
1174
 
713
- _$_.expression(expression_14, () => item);
714
- _$_.pop(li_9);
715
- }
1175
+ function ForLoopWithSiblings_render(__anchor, __block) {
1176
+ const items = _$_.track(['A', 'B'], __block, '3c7e8152');
1177
+ var fragment_20 = root_53();
1178
+ var node_13 = _$_.first_child_frag(fragment_20);
716
1179
 
717
- _$_.append(__anchor, li_9);
718
- },
719
- 4
720
- );
1180
+ _$_.expression(node_13, () => _$_.tsrx_element((__anchor, __block) => {
1181
+ var fragment_21 = root_54();
1182
+ var div_13 = _$_.first_child_frag(fragment_21);
721
1183
 
722
- _$_.pop(ul_9);
723
- }
1184
+ {
1185
+ var header = _$_.hydrating ? _$_.hydrate_child() : div_13.firstChild;
1186
+ var node_12 = _$_.hydrating ? _$_.hydrate_sibling() : header.nextSibling;
724
1187
 
725
- _$_.next();
726
- _$_.append(__anchor, fragment_13, true);
727
- }));
1188
+ _$_.for(
1189
+ node_12,
1190
+ () => items.value,
1191
+ (__anchor, item) => {
1192
+ var div_14 = root_55();
728
1193
 
729
- _$_.append(__anchor, fragment_12);
730
- });
731
- }
1194
+ _$_.set_class(div_14, `item-${item}`, void 0, true);
732
1195
 
733
- export function ForLoopPopulatedToEmpty() {
734
- return _$_.tsrx_element((__anchor, __block) => {
735
- let lazy_9 = _$_.track(['One', 'Two', 'Three'], __block, 'ee47f078');
736
- var fragment_14 = root_37();
737
- var node_8 = _$_.first_child_frag(fragment_14);
1196
+ {
1197
+ var expression_22 = _$_.hydrating ? _$_.hydrate_child() : div_14.firstChild;
1198
+
1199
+ _$_.expression(expression_22, () => item);
1200
+ _$_.hydrating && _$_.pop(div_14);
1201
+ }
738
1202
 
739
- _$_.expression(node_8, () => _$_.tsrx_element((__anchor, __block) => {
740
- var fragment_15 = root_38();
741
- var button_9 = _$_.first_child_frag(fragment_15);
1203
+ _$_.append(__anchor, div_14);
1204
+ },
1205
+ 0
1206
+ );
742
1207
 
743
- button_9.__click = () => {
744
- _$_.set(lazy_9, []);
745
- };
1208
+ _$_.hydrating && _$_.pop(div_13);
1209
+ }
746
1210
 
747
- var ul_10 = _$_.sibling(button_9);
1211
+ var button_14 = _$_.hydrating ? _$_.hydrate_sibling() : div_13.nextSibling;
748
1212
 
749
- {
750
- _$_.for(
751
- ul_10,
752
- () => lazy_9.value,
753
- (__anchor, item) => {
754
- var li_10 = root_39();
1213
+ button_14.__click = () => {
1214
+ items.value = [...items.value, 'C'];
1215
+ };
755
1216
 
756
- {
757
- var expression_15 = _$_.child(li_10);
1217
+ _$_.append(__anchor, fragment_21);
1218
+ }));
758
1219
 
759
- _$_.expression(expression_15, () => item);
760
- _$_.pop(li_10);
761
- }
1220
+ _$_.append(__anchor, fragment_20);
1221
+ }
762
1222
 
763
- _$_.append(__anchor, li_10);
764
- },
765
- 4
766
- );
1223
+ ForLoopWithSiblings[_$_.$r] = ForLoopWithSiblings_render;
767
1224
 
768
- _$_.pop(ul_10);
769
- }
1225
+ var root_56 = _$_.template(`<div></div>`, 0);
770
1226
 
771
- _$_.next();
772
- _$_.append(__anchor, fragment_15, true);
773
- }));
1227
+ function ForLoopItemState_render(__anchor, __block) {
1228
+ const initialItems = [
1229
+ { id: 1, text: 'Todo 1' },
1230
+ { id: 2, text: 'Todo 2' },
1231
+ { id: 3, text: 'Todo 3' }
1232
+ ];
1233
+
1234
+ var div_15 = root_56();
1235
+
1236
+ {
1237
+ _$_.for_keyed(
1238
+ div_15,
1239
+ () => initialItems,
1240
+ (__anchor, pattern_7) => {
1241
+ _$_.render_component(TodoItem, __anchor, { id: _$_.get(pattern_7).id, text: _$_.get(pattern_7).text });
1242
+ },
1243
+ 4,
1244
+ (pattern_7) => _$_.get(pattern_7).id
1245
+ );
774
1246
 
775
- _$_.append(__anchor, fragment_14);
776
- });
777
- }
1247
+ _$_.hydrating && _$_.pop(div_15);
1248
+ }
778
1249
 
779
- export function NestedForLoopReactive() {
780
- return _$_.tsrx_element((__anchor, __block) => {
781
- let lazy_10 = _$_.track([[1, 2], [3, 4]], __block, 'a2f41fb3');
782
- var div_7 = root_40();
1250
+ _$_.append(__anchor, div_15);
1251
+ }
783
1252
 
784
- {
785
- var button_10 = _$_.child(div_7);
1253
+ ForLoopItemState[_$_.$r] = ForLoopItemState_render;
786
1254
 
787
- button_10.__click = () => {
788
- _$_.set(lazy_10, [...lazy_10.value, [5, 6]]);
789
- };
1255
+ var root_57 = _$_.template(`<div><input type="checkbox" class="checkbox"><span> </span></div>`, 0);
790
1256
 
791
- var button_11 = _$_.sibling(button_10);
1257
+ function render_13(__prev) {
1258
+ var __a = __prev._done.value;
792
1259
 
793
- button_11.__click = () => {
794
- const newGrid = _$_.with_scope(__block, () => lazy_10.value.map((row) => [...row]));
1260
+ if (__prev.a !== __a) {
1261
+ _$_.set_checked(__prev._input, __prev.a = __a);
1262
+ }
795
1263
 
796
- newGrid[0][0] = 99;
797
- _$_.set(lazy_10, newGrid);
798
- };
1264
+ var __b = __prev._props.text;
799
1265
 
800
- var div_8 = _$_.sibling(button_11);
1266
+ if (__prev.b !== __b) {
1267
+ _$_.set_text(__prev._expression_23, __prev.b = __b);
1268
+ }
801
1269
 
802
- {
803
- _$_.for(
804
- div_8,
805
- () => lazy_10.value,
806
- (__anchor, row, rowIndex) => {
807
- var div_9 = root_41();
808
-
809
- {
810
- _$_.for(
811
- div_9,
812
- () => row,
813
- (__anchor, cell, colIndex) => {
814
- var span_5 = root_42();
815
-
816
- {
817
- var expression_16 = _$_.child(span_5);
818
-
819
- _$_.expression(expression_16, () => cell);
820
- _$_.pop(span_5);
821
- }
822
-
823
- _$_.render(() => {
824
- _$_.set_class(span_5, `cell-${rowIndex.value}-${colIndex.value}`, void 0, true);
825
- });
826
-
827
- _$_.append(__anchor, span_5);
828
- },
829
- 12
830
- );
831
-
832
- _$_.pop(div_9);
833
-
834
- _$_.render(() => {
835
- _$_.set_class(div_9, `row-${rowIndex.value}`, void 0, true);
836
- });
837
- }
1270
+ var __c = __prev._done.value ? 'completed' : 'pending';
838
1271
 
839
- _$_.append(__anchor, div_9);
840
- },
841
- 12
842
- );
1272
+ if (__prev.c !== __c) {
1273
+ _$_.set_class(__prev._span_6, __prev.c = __c, void 0, true);
1274
+ }
843
1275
 
844
- _$_.pop(div_8);
845
- }
846
- }
1276
+ var __d = `todo-${__prev._props.id}`;
847
1277
 
848
- _$_.append(__anchor, div_7);
849
- });
1278
+ if (__prev.d !== __d) {
1279
+ _$_.set_class(__prev._div_16, __prev.d = __d, void 0, true);
1280
+ }
850
1281
  }
851
1282
 
852
- export function ForLoopDeeplyNested() {
853
- return _$_.tsrx_element((__anchor, __block) => {
854
- const departments = [
855
- {
856
- id: 'd1',
857
- name: 'Engineering',
858
- teams: [
859
- { id: 't1', name: 'Frontend', members: ['Alice', 'Bob'] },
860
- { id: 't2', name: 'Backend', members: ['Charlie'] }
861
- ]
862
- },
1283
+ function TodoItem_render(__anchor, __block, props) {
1284
+ const done = _$_.track(false, __block, '4f2402a4');
1285
+ var div_16 = root_57();
863
1286
 
864
- {
865
- id: 'd2',
866
- name: 'Design',
867
- teams: [{ id: 't3', name: 'UX', members: ['Diana', 'Eve', 'Frank'] }]
868
- }
869
- ];
1287
+ {
1288
+ var input = _$_.hydrating ? _$_.hydrate_child() : div_16.firstChild;
870
1289
 
871
- var div_10 = root_43();
1290
+ input.__change = (e) => {
1291
+ done.value = e.target.checked;
1292
+ };
1293
+
1294
+ var span_6 = _$_.hydrating ? _$_.hydrate_sibling() : input.nextSibling;
872
1295
 
873
1296
  {
874
- _$_.for_keyed(
875
- div_10,
876
- () => departments,
877
- (__anchor, pattern_4) => {
878
- var div_11 = root_44();
1297
+ var expression_23 = _$_.hydrating ? _$_.hydrate_text() : span_6.firstChild;
1298
+ }
1299
+ }
1300
+
1301
+ _$_.render(render_13, {
1302
+ a: void 0,
1303
+ b: ' ',
1304
+ c: _$_.UNINITIALIZED,
1305
+ d: _$_.UNINITIALIZED,
1306
+ _done: done,
1307
+ _input: input,
1308
+ _props: props,
1309
+ _expression_23: expression_23,
1310
+ _span_6: span_6,
1311
+ _div_16: div_16
1312
+ });
879
1313
 
880
- {
881
- var h2 = _$_.child(div_11);
1314
+ _$_.append(__anchor, div_16);
1315
+ }
882
1316
 
883
- {
884
- var expression_17 = _$_.child(h2);
1317
+ TodoItem[_$_.$r] = TodoItem_render;
885
1318
 
886
- _$_.expression(expression_17, () => _$_.get(pattern_4).name);
887
- _$_.pop(h2);
888
- }
1319
+ var root_59 = _$_.template(`<li class="single"> </li>`, 0);
1320
+ var root_58 = _$_.template(`<ul></ul>`, 0);
889
1321
 
890
- var node_9 = _$_.sibling(h2);
1322
+ function ForLoopSingleItem_render(__anchor, __block) {
1323
+ const items = ['Only'];
1324
+ var ul_14 = root_58();
891
1325
 
892
- _$_.for_keyed(
893
- node_9,
894
- () => _$_.get(pattern_4).teams,
895
- (__anchor, pattern_5) => {
896
- var div_12 = root_45();
1326
+ {
1327
+ _$_.for(
1328
+ ul_14,
1329
+ () => items,
1330
+ (__anchor, item) => {
1331
+ var li_14 = root_59();
897
1332
 
898
- {
899
- var h3 = _$_.child(div_12);
1333
+ {
1334
+ var expression_24 = _$_.hydrating ? _$_.hydrate_child() : li_14.firstChild;
900
1335
 
901
- {
902
- var expression_18 = _$_.child(h3);
1336
+ _$_.expression(expression_24, () => item);
1337
+ _$_.hydrating && _$_.pop(li_14);
1338
+ }
903
1339
 
904
- _$_.expression(expression_18, () => _$_.get(pattern_5).name);
905
- _$_.pop(h3);
906
- }
1340
+ _$_.append(__anchor, li_14);
1341
+ },
1342
+ 4
1343
+ );
907
1344
 
908
- var ul_11 = _$_.sibling(h3);
1345
+ _$_.hydrating && _$_.pop(ul_14);
1346
+ }
909
1347
 
910
- {
911
- _$_.for(
912
- ul_11,
913
- () => _$_.get(pattern_5).members,
914
- (__anchor, member) => {
915
- var li_11 = root_46();
1348
+ _$_.append(__anchor, ul_14);
1349
+ }
916
1350
 
917
- {
918
- var expression_19 = _$_.child(li_11);
1351
+ ForLoopSingleItem[_$_.$r] = ForLoopSingleItem_render;
919
1352
 
920
- _$_.expression(expression_19, () => member);
921
- _$_.pop(li_11);
922
- }
1353
+ var root_62 = _$_.template(`<li> </li>`, 0);
1354
+ var root_61 = _$_.template(`<button class="prepend">Prepend A</button><ul></ul>`, 1, 2);
1355
+ var root_60 = _$_.template(`<!>`, 1, 1);
923
1356
 
924
- _$_.append(__anchor, li_11);
925
- },
926
- 4
927
- );
1357
+ function ForLoopAddAtBeginning_render(__anchor, __block) {
1358
+ const items = _$_.track(['B', 'C'], __block, '1561403a');
1359
+ var fragment_22 = root_60();
1360
+ var node_14 = _$_.first_child_frag(fragment_22);
928
1361
 
929
- _$_.pop(ul_11);
930
- }
931
- }
1362
+ _$_.expression(node_14, () => _$_.tsrx_element((__anchor, __block) => {
1363
+ var fragment_23 = root_61();
1364
+ var button_15 = _$_.first_child_frag(fragment_23);
932
1365
 
933
- _$_.render(() => {
934
- _$_.set_class(div_12, `team-${_$_.get(pattern_5).id}`, void 0, true);
935
- });
1366
+ button_15.__click = () => {
1367
+ items.value = ['A', ...items.value];
1368
+ };
936
1369
 
937
- _$_.append(__anchor, div_12);
938
- },
939
- 0,
940
- (pattern_5) => _$_.get(pattern_5).id
941
- );
1370
+ var ul_15 = _$_.hydrating ? _$_.hydrate_sibling() : button_15.nextSibling;
942
1371
 
943
- _$_.pop(div_11);
944
- }
1372
+ {
1373
+ _$_.for(
1374
+ ul_15,
1375
+ () => items.value,
1376
+ (__anchor, item) => {
1377
+ var li_15 = root_62();
945
1378
 
946
- _$_.render(() => {
947
- _$_.set_class(div_11, `dept-${_$_.get(pattern_4).id}`, void 0, true);
948
- });
1379
+ _$_.set_class(li_15, `item-${item}`, void 0, true);
1380
+
1381
+ {
1382
+ var expression_25 = _$_.hydrating ? _$_.hydrate_child() : li_15.firstChild;
1383
+
1384
+ _$_.expression(expression_25, () => item);
1385
+ _$_.hydrating && _$_.pop(li_15);
1386
+ }
949
1387
 
950
- _$_.append(__anchor, div_11);
1388
+ _$_.append(__anchor, li_15);
951
1389
  },
952
- 4,
953
- (pattern_4) => _$_.get(pattern_4).id
1390
+ 4
954
1391
  );
955
1392
 
956
- _$_.pop(div_10);
1393
+ _$_.hydrating && _$_.pop(ul_15);
957
1394
  }
958
1395
 
959
- _$_.append(__anchor, div_10);
960
- });
1396
+ _$_.append(__anchor, fragment_23);
1397
+ }));
1398
+
1399
+ _$_.append(__anchor, fragment_22);
961
1400
  }
962
1401
 
963
- export function ForLoopIndexUpdate() {
964
- return _$_.tsrx_element((__anchor, __block) => {
965
- let lazy_11 = _$_.track(['First', 'Second', 'Third'], __block, 'f61e31e6');
966
- var fragment_16 = root_47();
967
- var node_10 = _$_.first_child_frag(fragment_16);
1402
+ ForLoopAddAtBeginning[_$_.$r] = ForLoopAddAtBeginning_render;
968
1403
 
969
- _$_.expression(node_10, () => _$_.tsrx_element((__anchor, __block) => {
970
- var fragment_17 = root_48();
971
- var button_12 = _$_.first_child_frag(fragment_17);
1404
+ var root_65 = _$_.template(`<li> </li>`, 0);
1405
+ var root_64 = _$_.template(`<button class="insert">Insert B</button><ul></ul>`, 1, 2);
1406
+ var root_63 = _$_.template(`<!>`, 1, 1);
972
1407
 
973
- button_12.__click = () => {
974
- _$_.set(lazy_11, ['Zeroth', ...lazy_11.value]);
975
- };
1408
+ function ForLoopAddInMiddle_render(__anchor, __block) {
1409
+ const items = _$_.track(['A', 'C'], __block, '1bc60b46');
1410
+ var fragment_24 = root_63();
1411
+ var node_15 = _$_.first_child_frag(fragment_24);
976
1412
 
977
- var ul_12 = _$_.sibling(button_12);
1413
+ _$_.expression(node_15, () => _$_.tsrx_element((__anchor, __block) => {
1414
+ var fragment_25 = root_64();
1415
+ var button_16 = _$_.first_child_frag(fragment_25);
978
1416
 
979
- {
980
- _$_.for(
981
- ul_12,
982
- () => lazy_11.value,
983
- (__anchor, item, i) => {
984
- var li_12 = root_49();
1417
+ button_16.__click = () => {
1418
+ const copy = [...items.value];
985
1419
 
986
- {
987
- var expression_20 = _$_.child(li_12, true);
1420
+ _$_.with_scope(__block, () => copy.splice(1, 0, 'B'));
1421
+ items.value = copy;
1422
+ };
988
1423
 
989
- _$_.pop(li_12);
990
- }
1424
+ var ul_16 = _$_.hydrating ? _$_.hydrate_sibling() : button_16.nextSibling;
991
1425
 
992
- _$_.render(
993
- (__prev) => {
994
- var __a = `[${i.value}] ${item}`;
1426
+ {
1427
+ _$_.for(
1428
+ ul_16,
1429
+ () => items.value,
1430
+ (__anchor, item) => {
1431
+ var li_16 = root_65();
995
1432
 
996
- if (__prev.a !== __a) {
997
- _$_.set_text(expression_20, __prev.a = __a);
998
- }
1433
+ _$_.set_class(li_16, `item-${item}`, void 0, true);
999
1434
 
1000
- var __b = `item-${i.value}`;
1435
+ {
1436
+ var expression_26 = _$_.hydrating ? _$_.hydrate_child() : li_16.firstChild;
1001
1437
 
1002
- if (__prev.b !== __b) {
1003
- _$_.set_class(li_12, __prev.b = __b, void 0, true);
1004
- }
1005
- },
1006
- { a: ' ', b: Symbol() }
1007
- );
1438
+ _$_.expression(expression_26, () => item);
1439
+ _$_.hydrating && _$_.pop(li_16);
1440
+ }
1008
1441
 
1009
- _$_.append(__anchor, li_12);
1010
- },
1011
- 12
1012
- );
1442
+ _$_.append(__anchor, li_16);
1443
+ },
1444
+ 4
1445
+ );
1013
1446
 
1014
- _$_.pop(ul_12);
1015
- }
1447
+ _$_.hydrating && _$_.pop(ul_16);
1448
+ }
1016
1449
 
1017
- _$_.next();
1018
- _$_.append(__anchor, fragment_17, true);
1019
- }));
1450
+ _$_.append(__anchor, fragment_25);
1451
+ }));
1020
1452
 
1021
- _$_.append(__anchor, fragment_16);
1022
- });
1453
+ _$_.append(__anchor, fragment_24);
1023
1454
  }
1024
1455
 
1025
- export function KeyedForLoopWithIndex() {
1026
- return _$_.tsrx_element((__anchor, __block) => {
1027
- let lazy_12 = _$_.track(
1028
- [
1029
- { id: 'a', value: 'Alpha' },
1030
- { id: 'b', value: 'Beta' },
1031
- { id: 'c', value: 'Gamma' }
1032
- ],
1033
- __block,
1034
- '3467975a'
1035
- );
1036
-
1037
- var fragment_18 = root_50();
1038
- var node_11 = _$_.first_child_frag(fragment_18);
1456
+ ForLoopAddInMiddle[_$_.$r] = ForLoopAddInMiddle_render;
1039
1457
 
1040
- _$_.expression(node_11, () => _$_.tsrx_element((__anchor, __block) => {
1041
- var fragment_19 = root_51();
1042
- var button_13 = _$_.first_child_frag(fragment_19);
1043
-
1044
- button_13.__click = () => {
1045
- _$_.set(lazy_12, [lazy_12.value[1], lazy_12.value[2], lazy_12.value[0]]);
1046
- };
1047
-
1048
- var ul_13 = _$_.sibling(button_13);
1049
-
1050
- {
1051
- _$_.for_keyed(
1052
- ul_13,
1053
- () => lazy_12.value,
1054
- (__anchor, pattern_6, i) => {
1055
- var li_13 = root_52();
1458
+ var root_68 = _$_.template(`<li> </li>`, 0);
1459
+ var root_67 = _$_.template(`<button class="remove-middle">Remove B</button><ul></ul>`, 1, 2);
1460
+ var root_66 = _$_.template(`<!>`, 1, 1);
1056
1461
 
1057
- {
1058
- var expression_21 = _$_.child(li_13, true);
1462
+ function ForLoopRemoveFromMiddle_render(__anchor, __block) {
1463
+ const items = _$_.track(['A', 'B', 'C'], __block, '1c87f95f');
1464
+ var fragment_26 = root_66();
1465
+ var node_16 = _$_.first_child_frag(fragment_26);
1059
1466
 
1060
- _$_.pop(li_13);
1061
- }
1467
+ _$_.expression(node_16, () => _$_.tsrx_element((__anchor, __block) => {
1468
+ var fragment_27 = root_67();
1469
+ var button_17 = _$_.first_child_frag(fragment_27);
1062
1470
 
1063
- _$_.render(
1064
- (__prev) => {
1065
- var __a = `[${i.value}] ${_$_.get(pattern_6).id}: ${_$_.get(pattern_6).value}`;
1471
+ button_17.__click = () => {
1472
+ items.value = _$_.with_scope(__block, () => items.value.filter((item) => item !== 'B'));
1473
+ };
1066
1474
 
1067
- if (__prev.a !== __a) {
1068
- _$_.set_text(expression_21, __prev.a = __a);
1069
- }
1475
+ var ul_17 = _$_.hydrating ? _$_.hydrate_sibling() : button_17.nextSibling;
1070
1476
 
1071
- var __b = i.value;
1477
+ {
1478
+ _$_.for(
1479
+ ul_17,
1480
+ () => items.value,
1481
+ (__anchor, item) => {
1482
+ var li_17 = root_68();
1072
1483
 
1073
- if (__prev.b !== __b) {
1074
- _$_.set_attribute(li_13, 'data-index', __prev.b = __b);
1075
- }
1484
+ _$_.set_class(li_17, `item-${item}`, void 0, true);
1076
1485
 
1077
- var __c = `item-${_$_.get(pattern_6).id}`;
1486
+ {
1487
+ var expression_27 = _$_.hydrating ? _$_.hydrate_child() : li_17.firstChild;
1078
1488
 
1079
- if (__prev.c !== __c) {
1080
- _$_.set_class(li_13, __prev.c = __c, void 0, true);
1081
- }
1082
- },
1083
- { a: ' ', b: void 0, c: Symbol() }
1084
- );
1489
+ _$_.expression(expression_27, () => item);
1490
+ _$_.hydrating && _$_.pop(li_17);
1491
+ }
1085
1492
 
1086
- _$_.append(__anchor, li_13);
1087
- },
1088
- 12,
1089
- (pattern_6, i) => _$_.get(pattern_6).id
1090
- );
1493
+ _$_.append(__anchor, li_17);
1494
+ },
1495
+ 4
1496
+ );
1091
1497
 
1092
- _$_.pop(ul_13);
1093
- }
1498
+ _$_.hydrating && _$_.pop(ul_17);
1499
+ }
1094
1500
 
1095
- _$_.next();
1096
- _$_.append(__anchor, fragment_19, true);
1097
- }));
1501
+ _$_.append(__anchor, fragment_27);
1502
+ }));
1098
1503
 
1099
- _$_.append(__anchor, fragment_18);
1100
- });
1504
+ _$_.append(__anchor, fragment_26);
1101
1505
  }
1102
1506
 
1103
- export function ForLoopWithSiblings() {
1104
- return _$_.tsrx_element((__anchor, __block) => {
1105
- let lazy_13 = _$_.track(['A', 'B'], __block, '3c7e8152');
1106
- var fragment_20 = root_53();
1107
- var node_13 = _$_.first_child_frag(fragment_20);
1108
-
1109
- _$_.expression(node_13, () => _$_.tsrx_element((__anchor, __block) => {
1110
- var fragment_21 = root_54();
1111
- var div_13 = _$_.first_child_frag(fragment_21);
1507
+ ForLoopRemoveFromMiddle[_$_.$r] = ForLoopRemoveFromMiddle_render;
1112
1508
 
1113
- {
1114
- var header = _$_.child(div_13);
1115
- var node_12 = _$_.sibling(header);
1509
+ var root_70 = _$_.template(`<li> </li>`, 0);
1116
1510
 
1117
- _$_.for(
1118
- node_12,
1119
- () => lazy_13.value,
1120
- (__anchor, item) => {
1121
- var div_14 = root_55();
1511
+ function render_14(__prev) {
1512
+ var __a = `item-${__prev._i.value}`;
1122
1513
 
1123
- _$_.set_class(div_14, `item-${item}`, void 0, true);
1514
+ if (__prev.a !== __a) {
1515
+ _$_.set_class(__prev._li_18, __prev.a = __a, void 0, true);
1516
+ }
1517
+ }
1124
1518
 
1125
- {
1126
- var expression_22 = _$_.child(div_14);
1519
+ var root_69 = _$_.template(`<ul class="large-list"></ul>`, 0);
1127
1520
 
1128
- _$_.expression(expression_22, () => item);
1129
- _$_.pop(div_14);
1130
- }
1521
+ function ForLoopLargeList_render(__anchor, __block) {
1522
+ const items = _$_.with_scope(__block, () => Array.from({ length: 50 }, (_, i) => `Item ${i + 1}`));
1523
+ var ul_18 = root_69();
1131
1524
 
1132
- _$_.append(__anchor, div_14);
1133
- },
1134
- 0
1135
- );
1525
+ {
1526
+ _$_.for(
1527
+ ul_18,
1528
+ () => items,
1529
+ (__anchor, item, i) => {
1530
+ var li_18 = root_70();
1136
1531
 
1137
- _$_.pop(div_13);
1138
- }
1532
+ {
1533
+ var expression_28 = _$_.hydrating ? _$_.hydrate_child() : li_18.firstChild;
1139
1534
 
1140
- var button_14 = _$_.sibling(div_13);
1535
+ _$_.expression(expression_28, () => item);
1536
+ _$_.hydrating && _$_.pop(li_18);
1537
+ }
1141
1538
 
1142
- button_14.__click = () => {
1143
- _$_.set(lazy_13, [...lazy_13.value, 'C']);
1144
- };
1539
+ _$_.render(render_14, { a: _$_.UNINITIALIZED, _i: i, _li_18: li_18 });
1540
+ _$_.append(__anchor, li_18);
1541
+ },
1542
+ 12
1543
+ );
1145
1544
 
1146
- _$_.next();
1147
- _$_.append(__anchor, fragment_21, true);
1148
- }));
1545
+ _$_.hydrating && _$_.pop(ul_18);
1546
+ }
1149
1547
 
1150
- _$_.append(__anchor, fragment_20);
1151
- });
1548
+ _$_.append(__anchor, ul_18);
1152
1549
  }
1153
1550
 
1154
- export function ForLoopItemState() {
1155
- return _$_.tsrx_element((__anchor, __block) => {
1156
- const initialItems = [
1157
- { id: 1, text: 'Todo 1' },
1158
- { id: 2, text: 'Todo 2' },
1159
- { id: 3, text: 'Todo 3' }
1160
- ];
1551
+ ForLoopLargeList[_$_.$r] = ForLoopLargeList_render;
1161
1552
 
1162
- var div_15 = root_56();
1553
+ var root_73 = _$_.template(`<li> </li>`, 0);
1554
+ var root_72 = _$_.template(`<button class="swap">Swap First and Last</button><ul></ul>`, 1, 2);
1555
+ var root_71 = _$_.template(`<!>`, 1, 1);
1163
1556
 
1164
- {
1165
- _$_.for_keyed(
1166
- div_15,
1167
- () => initialItems,
1168
- (__anchor, pattern_7) => {
1169
- _$_.render_component(TodoItem, __anchor, {
1170
- get id() {
1171
- return _$_.get(pattern_7).id;
1172
- },
1557
+ function ForLoopSwap_render(__anchor, __block) {
1558
+ const items = _$_.track(['A', 'B', 'C', 'D'], __block, '5f8d152f');
1559
+ var fragment_28 = root_71();
1560
+ var node_17 = _$_.first_child_frag(fragment_28);
1173
1561
 
1174
- get text() {
1175
- return _$_.get(pattern_7).text;
1176
- }
1177
- });
1178
- },
1179
- 4,
1180
- (pattern_7) => _$_.get(pattern_7).id
1181
- );
1562
+ _$_.expression(node_17, () => _$_.tsrx_element((__anchor, __block) => {
1563
+ var fragment_29 = root_72();
1564
+ var button_18 = _$_.first_child_frag(fragment_29);
1182
1565
 
1183
- _$_.pop(div_15);
1184
- }
1566
+ button_18.__click = () => {
1567
+ const copy = [...items.value];
1185
1568
 
1186
- _$_.append(__anchor, div_15);
1187
- });
1188
- }
1569
+ [copy[0], copy[3]] = [copy[3], copy[0]];
1570
+ items.value = copy;
1571
+ };
1189
1572
 
1190
- function TodoItem(props) {
1191
- return _$_.tsrx_element((__anchor, __block) => {
1192
- let lazy_14 = _$_.track(false, __block, '4f2402a4');
1193
- var div_16 = root_57();
1573
+ var ul_19 = _$_.hydrating ? _$_.hydrate_sibling() : button_18.nextSibling;
1194
1574
 
1195
1575
  {
1196
- var input = _$_.child(div_16);
1197
-
1198
- input.__change = (e) => {
1199
- _$_.set(lazy_14, e.target.checked);
1200
- };
1576
+ _$_.for(
1577
+ ul_19,
1578
+ () => items.value,
1579
+ (__anchor, item) => {
1580
+ var li_19 = root_73();
1201
1581
 
1202
- var span_6 = _$_.sibling(input);
1582
+ _$_.set_class(li_19, `item-${item}`, void 0, true);
1203
1583
 
1204
- {
1205
- var expression_23 = _$_.child(span_6, true);
1584
+ {
1585
+ var expression_29 = _$_.hydrating ? _$_.hydrate_child() : li_19.firstChild;
1206
1586
 
1207
- _$_.pop(span_6);
1208
- }
1209
- }
1587
+ _$_.expression(expression_29, () => item);
1588
+ _$_.hydrating && _$_.pop(li_19);
1589
+ }
1210
1590
 
1211
- _$_.render(
1212
- (__prev) => {
1213
- var __a = lazy_14.value;
1591
+ _$_.append(__anchor, li_19);
1592
+ },
1593
+ 4
1594
+ );
1214
1595
 
1215
- if (__prev.a !== __a) {
1216
- _$_.set_checked(input, __prev.a = __a);
1217
- }
1596
+ _$_.hydrating && _$_.pop(ul_19);
1597
+ }
1218
1598
 
1219
- var __b = props.text;
1599
+ _$_.append(__anchor, fragment_29);
1600
+ }));
1220
1601
 
1221
- if (__prev.b !== __b) {
1222
- _$_.set_text(expression_23, __prev.b = __b);
1223
- }
1602
+ _$_.append(__anchor, fragment_28);
1603
+ }
1224
1604
 
1225
- var __c = lazy_14.value ? 'completed' : 'pending';
1605
+ ForLoopSwap[_$_.$r] = ForLoopSwap_render;
1226
1606
 
1227
- if (__prev.c !== __c) {
1228
- _$_.set_class(span_6, __prev.c = __c, void 0, true);
1229
- }
1607
+ var root_76 = _$_.template(`<li> </li>`, 0);
1608
+ var root_75 = _$_.template(`<button class="reverse">Reverse</button><ul></ul>`, 1, 2);
1609
+ var root_74 = _$_.template(`<!>`, 1, 1);
1230
1610
 
1231
- var __d = `todo-${props.id}`;
1611
+ function ForLoopReverse_render(__anchor, __block) {
1612
+ const items = _$_.track(['A', 'B', 'C', 'D'], __block, '24602e64');
1613
+ var fragment_30 = root_74();
1614
+ var node_18 = _$_.first_child_frag(fragment_30);
1232
1615
 
1233
- if (__prev.d !== __d) {
1234
- _$_.set_class(div_16, __prev.d = __d, void 0, true);
1235
- }
1236
- },
1237
- { a: void 0, b: ' ', c: Symbol(), d: Symbol() }
1238
- );
1616
+ _$_.expression(node_18, () => _$_.tsrx_element((__anchor, __block) => {
1617
+ var fragment_31 = root_75();
1618
+ var button_19 = _$_.first_child_frag(fragment_31);
1239
1619
 
1240
- _$_.append(__anchor, div_16);
1241
- });
1242
- }
1620
+ button_19.__click = () => {
1621
+ items.value = _$_.with_scope(__block, () => [...items.value].reverse());
1622
+ };
1243
1623
 
1244
- export function ForLoopSingleItem() {
1245
- return _$_.tsrx_element((__anchor, __block) => {
1246
- const items = ['Only'];
1247
- var ul_14 = root_58();
1624
+ var ul_20 = _$_.hydrating ? _$_.hydrate_sibling() : button_19.nextSibling;
1248
1625
 
1249
1626
  {
1250
1627
  _$_.for(
1251
- ul_14,
1252
- () => items,
1628
+ ul_20,
1629
+ () => items.value,
1253
1630
  (__anchor, item) => {
1254
- var li_14 = root_59();
1631
+ var li_20 = root_76();
1632
+
1633
+ _$_.set_class(li_20, `item-${item}`, void 0, true);
1255
1634
 
1256
1635
  {
1257
- var expression_24 = _$_.child(li_14);
1636
+ var expression_30 = _$_.hydrating ? _$_.hydrate_child() : li_20.firstChild;
1258
1637
 
1259
- _$_.expression(expression_24, () => item);
1260
- _$_.pop(li_14);
1638
+ _$_.expression(expression_30, () => item);
1639
+ _$_.hydrating && _$_.pop(li_20);
1261
1640
  }
1262
1641
 
1263
- _$_.append(__anchor, li_14);
1642
+ _$_.append(__anchor, li_20);
1264
1643
  },
1265
1644
  4
1266
1645
  );
1267
1646
 
1268
- _$_.pop(ul_14);
1647
+ _$_.hydrating && _$_.pop(ul_20);
1269
1648
  }
1270
1649
 
1271
- _$_.append(__anchor, ul_14);
1272
- });
1273
- }
1274
-
1275
- export function ForLoopAddAtBeginning() {
1276
- return _$_.tsrx_element((__anchor, __block) => {
1277
- let lazy_15 = _$_.track(['B', 'C'], __block, '1561403a');
1278
- var fragment_22 = root_60();
1279
- var node_14 = _$_.first_child_frag(fragment_22);
1650
+ _$_.append(__anchor, fragment_31);
1651
+ }));
1280
1652
 
1281
- _$_.expression(node_14, () => _$_.tsrx_element((__anchor, __block) => {
1282
- var fragment_23 = root_61();
1283
- var button_15 = _$_.first_child_frag(fragment_23);
1653
+ _$_.append(__anchor, fragment_30);
1654
+ }
1284
1655
 
1285
- button_15.__click = () => {
1286
- _$_.set(lazy_15, ['A', ...lazy_15.value]);
1287
- };
1656
+ ForLoopReverse[_$_.$r] = ForLoopReverse_render;
1288
1657
 
1289
- var ul_15 = _$_.sibling(button_15);
1658
+ var root_78 = _$_.template(`<span class="item"> </span>`, 0);
1659
+ var root_77 = _$_.template(`<div class="wrapper"><div class="host"><!><p class="tail">p</p></div><button class="push">Push</button><button class="rotate">Rotate</button></div>`, 0);
1290
1660
 
1291
- {
1292
- _$_.for(
1293
- ul_15,
1294
- () => lazy_15.value,
1295
- (__anchor, item) => {
1296
- var li_15 = root_62();
1661
+ function KeyedForLoopAppendAndRotate_render(__anchor, __block) {
1662
+ const items = _$_.track([1, 2, 3], __block, 'a8b41504');
1663
+ var div_17 = root_77();
1297
1664
 
1298
- _$_.set_class(li_15, `item-${item}`, void 0, true);
1665
+ {
1666
+ var div_18 = _$_.hydrating ? _$_.hydrate_child() : div_17.firstChild;
1299
1667
 
1300
- {
1301
- var expression_25 = _$_.child(li_15);
1668
+ {
1669
+ var node_19 = _$_.hydrating ? _$_.hydrate_child() : div_18.firstChild;
1302
1670
 
1303
- _$_.expression(expression_25, () => item);
1304
- _$_.pop(li_15);
1305
- }
1671
+ _$_.for_keyed(
1672
+ node_19,
1673
+ () => items.value,
1674
+ (__anchor, pattern_8) => {
1675
+ var span_7 = root_78();
1306
1676
 
1307
- _$_.append(__anchor, li_15);
1308
- },
1309
- 4
1310
- );
1677
+ {
1678
+ var expression_31 = _$_.hydrating ? _$_.hydrate_child() : span_7.firstChild;
1311
1679
 
1312
- _$_.pop(ul_15);
1313
- }
1680
+ _$_.expression(expression_31, () => _$_.get(pattern_8));
1681
+ _$_.hydrating && _$_.pop(span_7);
1682
+ }
1314
1683
 
1315
- _$_.next();
1316
- _$_.append(__anchor, fragment_23, true);
1317
- }));
1684
+ _$_.append(__anchor, span_7);
1685
+ },
1686
+ 0
1687
+ );
1318
1688
 
1319
- _$_.append(__anchor, fragment_22);
1320
- });
1321
- }
1689
+ _$_.hydrating && _$_.pop(div_18);
1690
+ }
1322
1691
 
1323
- export function ForLoopAddInMiddle() {
1324
- return _$_.tsrx_element((__anchor, __block) => {
1325
- let lazy_16 = _$_.track(['A', 'C'], __block, '1bc60b46');
1326
- var fragment_24 = root_63();
1327
- var node_15 = _$_.first_child_frag(fragment_24);
1692
+ var button_20 = _$_.hydrating ? _$_.hydrate_sibling() : div_18.nextSibling;
1328
1693
 
1329
- _$_.expression(node_15, () => _$_.tsrx_element((__anchor, __block) => {
1330
- var fragment_25 = root_64();
1331
- var button_16 = _$_.first_child_frag(fragment_25);
1694
+ button_20.__click = () => items.value = [...items.value, items.value.length + 1];
1332
1695
 
1333
- button_16.__click = () => {
1334
- const copy = [...lazy_16.value];
1696
+ var button_21 = _$_.hydrating ? _$_.hydrate_sibling() : button_20.nextSibling;
1335
1697
 
1336
- _$_.with_scope(__block, () => copy.splice(1, 0, 'B'));
1337
- _$_.set(lazy_16, copy);
1338
- };
1698
+ button_21.__click = () => items.value = [
1699
+ ..._$_.with_scope(__block, () => items.value.slice(1)),
1700
+ items.value[0]
1701
+ ];
1702
+ }
1339
1703
 
1340
- var ul_16 = _$_.sibling(button_16);
1704
+ _$_.append(__anchor, div_17);
1705
+ }
1341
1706
 
1342
- {
1343
- _$_.for(
1344
- ul_16,
1345
- () => lazy_16.value,
1346
- (__anchor, item) => {
1347
- var li_16 = root_65();
1707
+ KeyedForLoopAppendAndRotate[_$_.$r] = KeyedForLoopAppendAndRotate_render;
1348
1708
 
1349
- _$_.set_class(li_16, `item-${item}`, void 0, true);
1709
+ var root_79 = _$_.template(`<span class="item"> </span>`, 0);
1350
1710
 
1351
- {
1352
- var expression_26 = _$_.child(li_16);
1711
+ function render_15(__prev) {
1712
+ var __a = _$_.get(__prev._pattern_9);
1353
1713
 
1354
- _$_.expression(expression_26, () => item);
1355
- _$_.pop(li_16);
1356
- }
1714
+ if (__prev.a !== __a) {
1715
+ _$_.set_text(__prev._expression_32, __prev.a = __a);
1716
+ }
1717
+ }
1357
1718
 
1358
- _$_.append(__anchor, li_16);
1359
- },
1360
- 4
1361
- );
1719
+ function RootKeyedList_render(__anchor, __block, props) {
1720
+ _$_.for_keyed(
1721
+ __anchor,
1722
+ () => props.items.value,
1723
+ (__anchor, pattern_9) => {
1724
+ var span_8 = root_79();
1362
1725
 
1363
- _$_.pop(ul_16);
1726
+ {
1727
+ var expression_32 = _$_.hydrating ? _$_.hydrate_text() : span_8.firstChild;
1364
1728
  }
1365
1729
 
1366
- _$_.next();
1367
- _$_.append(__anchor, fragment_25, true);
1368
- }));
1369
-
1370
- _$_.append(__anchor, fragment_24);
1371
- });
1730
+ _$_.render(render_15, { a: ' ', _pattern_9: pattern_9, _expression_32: expression_32 });
1731
+ _$_.append(__anchor, span_8);
1732
+ },
1733
+ 16
1734
+ );
1372
1735
  }
1373
1736
 
1374
- export function ForLoopRemoveFromMiddle() {
1375
- return _$_.tsrx_element((__anchor, __block) => {
1376
- let lazy_17 = _$_.track(['A', 'B', 'C'], __block, '1c87f95f');
1377
- var fragment_26 = root_66();
1378
- var node_16 = _$_.first_child_frag(fragment_26);
1379
-
1380
- _$_.expression(node_16, () => _$_.tsrx_element((__anchor, __block) => {
1381
- var fragment_27 = root_67();
1382
- var button_17 = _$_.first_child_frag(fragment_27);
1737
+ RootKeyedList[_$_.$r] = RootKeyedList_render;
1383
1738
 
1384
- button_17.__click = () => {
1385
- _$_.set(lazy_17, _$_.with_scope(__block, () => lazy_17.value.filter((item) => item !== 'B')));
1386
- };
1739
+ var root_80 = _$_.template(`<div class="wrapper"><div class="host"><!><p class="tail">p</p></div><button class="push">Push</button><button class="rotate">Rotate</button></div>`, 0);
1387
1740
 
1388
- var ul_17 = _$_.sibling(button_17);
1741
+ function RootKeyedForLoopAppendAndRotate_render(__anchor, __block) {
1742
+ const items = _$_.track([1, 2, 3], __block, '50a91d60');
1743
+ var div_19 = root_80();
1389
1744
 
1390
- {
1391
- _$_.for(
1392
- ul_17,
1393
- () => lazy_17.value,
1394
- (__anchor, item) => {
1395
- var li_17 = root_68();
1745
+ {
1746
+ var div_20 = _$_.hydrating ? _$_.hydrate_child() : div_19.firstChild;
1396
1747
 
1397
- _$_.set_class(li_17, `item-${item}`, void 0, true);
1748
+ {
1749
+ var node_20 = _$_.hydrating ? _$_.hydrate_child() : div_20.firstChild;
1398
1750
 
1399
- {
1400
- var expression_27 = _$_.child(li_17);
1751
+ _$_.render_component(RootKeyedList, node_20, { items });
1752
+ _$_.hydrating && _$_.pop(div_20);
1753
+ }
1401
1754
 
1402
- _$_.expression(expression_27, () => item);
1403
- _$_.pop(li_17);
1404
- }
1755
+ var button_22 = _$_.hydrating ? _$_.hydrate_sibling() : div_20.nextSibling;
1405
1756
 
1406
- _$_.append(__anchor, li_17);
1407
- },
1408
- 4
1409
- );
1757
+ button_22.__click = () => items.value = [...items.value, items.value.length + 1];
1410
1758
 
1411
- _$_.pop(ul_17);
1412
- }
1759
+ var button_23 = _$_.hydrating ? _$_.hydrate_sibling() : button_22.nextSibling;
1413
1760
 
1414
- _$_.next();
1415
- _$_.append(__anchor, fragment_27, true);
1416
- }));
1761
+ button_23.__click = () => items.value = [
1762
+ ..._$_.with_scope(__block, () => items.value.slice(1)),
1763
+ items.value[0]
1764
+ ];
1765
+ }
1417
1766
 
1418
- _$_.append(__anchor, fragment_26);
1419
- });
1767
+ _$_.append(__anchor, div_19);
1420
1768
  }
1421
1769
 
1422
- export function ForLoopLargeList() {
1423
- return _$_.tsrx_element((__anchor, __block) => {
1424
- const items = _$_.with_scope(__block, () => Array.from({ length: 50 }, (_, i) => `Item ${i + 1}`));
1425
- var ul_18 = root_69();
1770
+ RootKeyedForLoopAppendAndRotate[_$_.$r] = RootKeyedForLoopAppendAndRotate_render;
1426
1771
 
1427
- {
1428
- _$_.for(
1429
- ul_18,
1430
- () => items,
1431
- (__anchor, item, i) => {
1432
- var li_18 = root_70();
1772
+ import { track } from 'ripple';
1433
1773
 
1434
- {
1435
- var expression_28 = _$_.child(li_18);
1774
+ export function StaticForLoop() {
1775
+ return _$_.tsrx_element(StaticForLoop_render);
1776
+ }
1436
1777
 
1437
- _$_.expression(expression_28, () => item);
1438
- _$_.pop(li_18);
1439
- }
1778
+ export function ForLoopWithIndex() {
1779
+ return _$_.tsrx_element(ForLoopWithIndex_render);
1780
+ }
1440
1781
 
1441
- _$_.render(() => {
1442
- _$_.set_class(li_18, `item-${i.value}`, void 0, true);
1443
- });
1782
+ export function KeyedForLoop() {
1783
+ return _$_.tsrx_element(KeyedForLoop_render);
1784
+ }
1444
1785
 
1445
- _$_.append(__anchor, li_18);
1446
- },
1447
- 12
1448
- );
1786
+ export function ReactiveForLoopAdd() {
1787
+ return _$_.tsrx_element(ReactiveForLoopAdd_render);
1788
+ }
1449
1789
 
1450
- _$_.pop(ul_18);
1451
- }
1790
+ export function ReactiveForLoopRemove() {
1791
+ return _$_.tsrx_element(ReactiveForLoopRemove_render);
1792
+ }
1452
1793
 
1453
- _$_.append(__anchor, ul_18);
1454
- });
1794
+ export function ForLoopInteractive() {
1795
+ return _$_.tsrx_element(ForLoopInteractive_render);
1455
1796
  }
1456
1797
 
1457
- export function ForLoopSwap() {
1458
- return _$_.tsrx_element((__anchor, __block) => {
1459
- let lazy_18 = _$_.track(['A', 'B', 'C', 'D'], __block, '5f8d152f');
1460
- var fragment_28 = root_71();
1461
- var node_17 = _$_.first_child_frag(fragment_28);
1798
+ export function NestedForLoop() {
1799
+ return _$_.tsrx_element(NestedForLoop_render);
1800
+ }
1462
1801
 
1463
- _$_.expression(node_17, () => _$_.tsrx_element((__anchor, __block) => {
1464
- var fragment_29 = root_72();
1465
- var button_18 = _$_.first_child_frag(fragment_29);
1802
+ export function EmptyForLoop() {
1803
+ return _$_.tsrx_element(EmptyForLoop_render);
1804
+ }
1466
1805
 
1467
- button_18.__click = () => {
1468
- const copy = [...lazy_18.value];
1806
+ export function ForLoopComplexObjects() {
1807
+ return _$_.tsrx_element(ForLoopComplexObjects_render);
1808
+ }
1469
1809
 
1470
- [copy[0], copy[3]] = [copy[3], copy[0]];
1471
- _$_.set(lazy_18, copy);
1472
- };
1810
+ export function KeyedForLoopReorder() {
1811
+ return _$_.tsrx_element(KeyedForLoopReorder_render);
1812
+ }
1473
1813
 
1474
- var ul_19 = _$_.sibling(button_18);
1814
+ export function KeyedForLoopUpdate() {
1815
+ return _$_.tsrx_element(KeyedForLoopUpdate_render);
1816
+ }
1475
1817
 
1476
- {
1477
- _$_.for(
1478
- ul_19,
1479
- () => lazy_18.value,
1480
- (__anchor, item) => {
1481
- var li_19 = root_73();
1818
+ export function ForLoopMixedOperations() {
1819
+ return _$_.tsrx_element(ForLoopMixedOperations_render);
1820
+ }
1482
1821
 
1483
- _$_.set_class(li_19, `item-${item}`, void 0, true);
1822
+ export function ForLoopInsideIf() {
1823
+ return _$_.tsrx_element(ForLoopInsideIf_render);
1824
+ }
1484
1825
 
1485
- {
1486
- var expression_29 = _$_.child(li_19);
1826
+ export function ForLoopEmptyToPopulated() {
1827
+ return _$_.tsrx_element(ForLoopEmptyToPopulated_render);
1828
+ }
1487
1829
 
1488
- _$_.expression(expression_29, () => item);
1489
- _$_.pop(li_19);
1490
- }
1830
+ export function ForLoopPopulatedToEmpty() {
1831
+ return _$_.tsrx_element(ForLoopPopulatedToEmpty_render);
1832
+ }
1491
1833
 
1492
- _$_.append(__anchor, li_19);
1493
- },
1494
- 4
1495
- );
1834
+ export function NestedForLoopReactive() {
1835
+ return _$_.tsrx_element(NestedForLoopReactive_render);
1836
+ }
1496
1837
 
1497
- _$_.pop(ul_19);
1498
- }
1838
+ export function ForLoopDeeplyNested() {
1839
+ return _$_.tsrx_element(ForLoopDeeplyNested_render);
1840
+ }
1499
1841
 
1500
- _$_.next();
1501
- _$_.append(__anchor, fragment_29, true);
1502
- }));
1842
+ export function ForLoopIndexUpdate() {
1843
+ return _$_.tsrx_element(ForLoopIndexUpdate_render);
1844
+ }
1503
1845
 
1504
- _$_.append(__anchor, fragment_28);
1505
- });
1846
+ export function KeyedForLoopWithIndex() {
1847
+ return _$_.tsrx_element(KeyedForLoopWithIndex_render);
1506
1848
  }
1507
1849
 
1508
- export function ForLoopReverse() {
1509
- return _$_.tsrx_element((__anchor, __block) => {
1510
- let lazy_19 = _$_.track(['A', 'B', 'C', 'D'], __block, '24602e64');
1511
- var fragment_30 = root_74();
1512
- var node_18 = _$_.first_child_frag(fragment_30);
1850
+ export function ForLoopWithSiblings() {
1851
+ return _$_.tsrx_element(ForLoopWithSiblings_render);
1852
+ }
1513
1853
 
1514
- _$_.expression(node_18, () => _$_.tsrx_element((__anchor, __block) => {
1515
- var fragment_31 = root_75();
1516
- var button_19 = _$_.first_child_frag(fragment_31);
1854
+ export function ForLoopItemState() {
1855
+ return _$_.tsrx_element(ForLoopItemState_render);
1856
+ }
1517
1857
 
1518
- button_19.__click = () => {
1519
- _$_.set(lazy_19, _$_.with_scope(__block, () => [...lazy_19.value].reverse()));
1520
- };
1858
+ function TodoItem(props) {
1859
+ return _$_.tsrx_element(TodoItem_render, props);
1860
+ }
1521
1861
 
1522
- var ul_20 = _$_.sibling(button_19);
1862
+ export function ForLoopSingleItem() {
1863
+ return _$_.tsrx_element(ForLoopSingleItem_render);
1864
+ }
1523
1865
 
1524
- {
1525
- _$_.for(
1526
- ul_20,
1527
- () => lazy_19.value,
1528
- (__anchor, item) => {
1529
- var li_20 = root_76();
1866
+ export function ForLoopAddAtBeginning() {
1867
+ return _$_.tsrx_element(ForLoopAddAtBeginning_render);
1868
+ }
1869
+
1870
+ export function ForLoopAddInMiddle() {
1871
+ return _$_.tsrx_element(ForLoopAddInMiddle_render);
1872
+ }
1530
1873
 
1531
- _$_.set_class(li_20, `item-${item}`, void 0, true);
1874
+ export function ForLoopRemoveFromMiddle() {
1875
+ return _$_.tsrx_element(ForLoopRemoveFromMiddle_render);
1876
+ }
1532
1877
 
1533
- {
1534
- var expression_30 = _$_.child(li_20);
1878
+ export function ForLoopLargeList() {
1879
+ return _$_.tsrx_element(ForLoopLargeList_render);
1880
+ }
1535
1881
 
1536
- _$_.expression(expression_30, () => item);
1537
- _$_.pop(li_20);
1538
- }
1882
+ export function ForLoopSwap() {
1883
+ return _$_.tsrx_element(ForLoopSwap_render);
1884
+ }
1539
1885
 
1540
- _$_.append(__anchor, li_20);
1541
- },
1542
- 4
1543
- );
1886
+ export function ForLoopReverse() {
1887
+ return _$_.tsrx_element(ForLoopReverse_render);
1888
+ }
1544
1889
 
1545
- _$_.pop(ul_20);
1546
- }
1890
+ export function KeyedForLoopAppendAndRotate() {
1891
+ return _$_.tsrx_element(KeyedForLoopAppendAndRotate_render);
1892
+ }
1547
1893
 
1548
- _$_.next();
1549
- _$_.append(__anchor, fragment_31, true);
1550
- }));
1894
+ function RootKeyedList(props) {
1895
+ return _$_.tsrx_element(RootKeyedList_render, props);
1896
+ }
1551
1897
 
1552
- _$_.append(__anchor, fragment_30);
1553
- });
1898
+ export function RootKeyedForLoopAppendAndRotate() {
1899
+ return _$_.tsrx_element(RootKeyedForLoopAppendAndRotate_render);
1554
1900
  }
1555
1901
 
1556
1902
  _$_.delegate(['click', 'change']);