ripple 0.3.128 → 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 +267 -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 +173 -91
  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 +9 -0
  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 +45 -25
  14. package/src/runtime/internal/client/for.js +409 -129
  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 +4 -12
  20. package/src/runtime/internal/client/operations.js +40 -61
  21. package/src/runtime/internal/client/portal.js +163 -85
  22. package/src/runtime/internal/client/render.js +39 -39
  23. package/src/runtime/internal/client/rpc.js +3 -3
  24. package/src/runtime/internal/client/runtime.js +592 -433
  25. package/src/runtime/internal/client/selector.js +5 -2
  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 +56 -23
  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 +325 -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 +73 -38
  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 +14 -14
  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 +184 -171
  103. package/tests/hydration/compiled/client/for.js +1472 -1132
  104. package/tests/hydration/compiled/client/fragment-cursor.js +2341 -0
  105. package/tests/hydration/compiled/client/head.js +254 -201
  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 -404
  113. package/tests/hydration/compiled/client/nested-control-flow.js +1326 -1277
  114. package/tests/hydration/compiled/client/portal.js +87 -95
  115. package/tests/hydration/compiled/client/reactivity.js +135 -101
  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 +66 -18
  126. package/tests/hydration/compiled/server/for.js +117 -41
  127. package/tests/hydration/compiled/server/fragment-cursor.js +1687 -0
  128. package/tests/hydration/compiled/server/head.js +20 -20
  129. package/tests/hydration/compiled/server/hmr.js +2 -2
  130. package/tests/hydration/compiled/server/html.js +70 -238
  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 -14
  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,1560 +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 = _$_.hydrating ? _$_.hydrate_child() : li.firstChild;
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 = _$_.hydrating ? _$_.hydrate_child(true) : li_1.firstChild;
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;
572
+
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);
156
576
 
157
- var ul_2 = root_4();
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 = _$_.hydrating ? _$_.hydrate_child() : li_2.firstChild;
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 = _$_.hydrating ? _$_.hydrate_sibling() : button.nextSibling;
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 = _$_.hydrating ? _$_.hydrate_child() : li_3.firstChild;
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 = _$_.hydrating ? _$_.hydrate_sibling() : button_1.nextSibling;
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 = _$_.hydrating ? _$_.hydrate_child() : li_4.firstChild;
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 = _$_.hydrating ? _$_.hydrate_child() : div_1.firstChild;
720
+ var expression_14 = _$_.hydrating ? _$_.hydrate_child() : li_9.firstChild;
292
721
 
293
- {
294
- var expression_5 = _$_.hydrating ? _$_.hydrate_child() : span.firstChild;
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 = _$_.hydrating ? _$_.hydrate_sibling() : span.nextSibling;
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;
313
741
 
314
- _$_.append(__anchor, div_1);
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
+ }
774
+
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 = _$_.hydrating ? _$_.hydrate_child() : span_1.firstChild;
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 = _$_.hydrating ? _$_.hydrate_child(true) : span_2.firstChild;
888
+ function render_9(__prev) {
889
+ var __a = `team-${_$_.get(__prev._pattern_5).id}`;
394
890
 
395
- expression_7.nodeValue = 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 = _$_.hydrating ? _$_.hydrate_child() : div_6.firstChild;
939
+ var expression_17 = _$_.hydrating ? _$_.hydrate_child() : h2.firstChild;
429
940
 
430
- {
431
- var expression_8 = _$_.hydrating ? _$_.hydrate_child() : span_3.firstChild;
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 = _$_.hydrating ? _$_.hydrate_sibling() : span_3.nextSibling;
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 = _$_.hydrating ? _$_.hydrate_child() : span_4.firstChild;
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 = _$_.hydrating ? _$_.hydrate_sibling() : button_3.nextSibling;
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 = _$_.hydrating ? _$_.hydrate_child() : li_5.firstChild;
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);
1011
+ ForLoopDeeplyNested[_$_.$r] = ForLoopDeeplyNested_render;
529
1012
 
530
- _$_.expression(node_3, () => _$_.tsrx_element((__anchor, __block) => {
531
- var fragment_7 = root_25();
532
- var button_4 = _$_.first_child_frag(fragment_7);
533
-
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 = _$_.hydrating ? _$_.hydrate_sibling() : button_4.nextSibling;
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 = _$_.hydrating ? _$_.hydrate_child() : li_6.firstChild;
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 = _$_.hydrating ? _$_.hydrate_sibling() : button_5.nextSibling;
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 = _$_.hydrating ? _$_.hydrate_child() : li_7.firstChild;
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 = _$_.hydrating ? _$_.hydrate_sibling() : button_6.nextSibling;
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 = _$_.hydrating ? _$_.hydrate_sibling() : button_7.nextSibling;
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 = _$_.hydrating ? _$_.hydrate_child() : li_8.firstChild;
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);
1123
+ _$_.expression(node_11, () => _$_.tsrx_element((__anchor, __block) => {
1124
+ var fragment_19 = root_51();
1125
+ var button_13 = _$_.first_child_frag(fragment_19);
1126
+
1127
+ button_13.__click = () => {
1128
+ items.value = [items.value[1], items.value[2], items.value[0]];
1129
+ };
1130
+
1131
+ var ul_13 = _$_.hydrating ? _$_.hydrate_sibling() : button_13.nextSibling;
1132
+
1133
+ {
1134
+ _$_.for_keyed(
1135
+ ul_13,
1136
+ () => items.value,
1137
+ (__anchor, pattern_6, i) => {
1138
+ var li_13 = root_52();
1139
+
1140
+ {
1141
+ var expression_21 = _$_.hydrating ? _$_.hydrate_text() : li_13.firstChild;
670
1142
  }
671
1143
 
672
- _$_.append(__anchor, ul_8);
673
- };
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
+ });
674
1153
 
675
- _$_.if(node_5, (__render) => {
676
- if (lazy_6.value) __render(consequent);
677
- });
678
- }
1154
+ _$_.append(__anchor, li_13);
1155
+ },
1156
+ 12,
1157
+ (pattern_6, i) => _$_.get(pattern_6).id
1158
+ );
679
1159
 
680
- _$_.append(__anchor, fragment_11);
681
- }));
1160
+ _$_.hydrating && _$_.pop(ul_13);
1161
+ }
682
1162
 
683
- _$_.append(__anchor, fragment_10);
684
- });
1163
+ _$_.append(__anchor, fragment_19);
1164
+ }));
1165
+
1166
+ _$_.append(__anchor, fragment_18);
685
1167
  }
686
1168
 
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);
1169
+ KeyedForLoopWithIndex[_$_.$r] = KeyedForLoopWithIndex_render;
692
1170
 
693
- _$_.expression(node_7, () => _$_.tsrx_element((__anchor, __block) => {
694
- var fragment_13 = root_35();
695
- var button_8 = _$_.first_child_frag(fragment_13);
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);
696
1174
 
697
- button_8.__click = () => {
698
- _$_.set(lazy_8, ['One', 'Two', 'Three']);
699
- };
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);
700
1179
 
701
- var ul_9 = _$_.hydrating ? _$_.hydrate_sibling() : button_8.nextSibling;
1180
+ _$_.expression(node_13, () => _$_.tsrx_element((__anchor, __block) => {
1181
+ var fragment_21 = root_54();
1182
+ var div_13 = _$_.first_child_frag(fragment_21);
702
1183
 
703
- {
704
- _$_.for(
705
- ul_9,
706
- () => lazy_8.value,
707
- (__anchor, item) => {
708
- var li_9 = root_36();
1184
+ {
1185
+ var header = _$_.hydrating ? _$_.hydrate_child() : div_13.firstChild;
1186
+ var node_12 = _$_.hydrating ? _$_.hydrate_sibling() : header.nextSibling;
709
1187
 
710
- {
711
- var expression_14 = _$_.hydrating ? _$_.hydrate_child(true) : li_9.firstChild;
1188
+ _$_.for(
1189
+ node_12,
1190
+ () => items.value,
1191
+ (__anchor, item) => {
1192
+ var div_14 = root_55();
712
1193
 
713
- expression_14.nodeValue = item;
714
- _$_.pop(li_9);
715
- }
1194
+ _$_.set_class(div_14, `item-${item}`, void 0, true);
716
1195
 
717
- _$_.append(__anchor, li_9);
718
- },
719
- 4
720
- );
1196
+ {
1197
+ var expression_22 = _$_.hydrating ? _$_.hydrate_child() : div_14.firstChild;
721
1198
 
722
- _$_.pop(ul_9);
723
- }
1199
+ _$_.expression(expression_22, () => item);
1200
+ _$_.hydrating && _$_.pop(div_14);
1201
+ }
724
1202
 
725
- _$_.next();
726
- _$_.append(__anchor, fragment_13, true);
727
- }));
1203
+ _$_.append(__anchor, div_14);
1204
+ },
1205
+ 0
1206
+ );
728
1207
 
729
- _$_.append(__anchor, fragment_12);
730
- });
731
- }
1208
+ _$_.hydrating && _$_.pop(div_13);
1209
+ }
732
1210
 
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);
1211
+ var button_14 = _$_.hydrating ? _$_.hydrate_sibling() : div_13.nextSibling;
738
1212
 
739
- _$_.expression(node_8, () => _$_.tsrx_element((__anchor, __block) => {
740
- var fragment_15 = root_38();
741
- var button_9 = _$_.first_child_frag(fragment_15);
1213
+ button_14.__click = () => {
1214
+ items.value = [...items.value, 'C'];
1215
+ };
742
1216
 
743
- button_9.__click = () => {
744
- _$_.set(lazy_9, []);
745
- };
1217
+ _$_.append(__anchor, fragment_21);
1218
+ }));
746
1219
 
747
- var ul_10 = _$_.hydrating ? _$_.hydrate_sibling() : button_9.nextSibling;
1220
+ _$_.append(__anchor, fragment_20);
1221
+ }
748
1222
 
749
- {
750
- _$_.for(
751
- ul_10,
752
- () => lazy_9.value,
753
- (__anchor, item) => {
754
- var li_10 = root_39();
1223
+ ForLoopWithSiblings[_$_.$r] = ForLoopWithSiblings_render;
755
1224
 
756
- {
757
- var expression_15 = _$_.hydrating ? _$_.hydrate_child() : li_10.firstChild;
1225
+ var root_56 = _$_.template(`<div></div>`, 0);
758
1226
 
759
- _$_.expression(expression_15, () => item);
760
- _$_.pop(li_10);
761
- }
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
+ );
762
1246
 
763
- _$_.append(__anchor, li_10);
764
- },
765
- 4
766
- );
1247
+ _$_.hydrating && _$_.pop(div_15);
1248
+ }
767
1249
 
768
- _$_.pop(ul_10);
769
- }
1250
+ _$_.append(__anchor, div_15);
1251
+ }
770
1252
 
771
- _$_.next();
772
- _$_.append(__anchor, fragment_15, true);
773
- }));
1253
+ ForLoopItemState[_$_.$r] = ForLoopItemState_render;
774
1254
 
775
- _$_.append(__anchor, fragment_14);
776
- });
777
- }
1255
+ var root_57 = _$_.template(`<div><input type="checkbox" class="checkbox"><span> </span></div>`, 0);
778
1256
 
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();
1257
+ function render_13(__prev) {
1258
+ var __a = __prev._done.value;
1259
+
1260
+ if (__prev.a !== __a) {
1261
+ _$_.set_checked(__prev._input, __prev.a = __a);
1262
+ }
1263
+
1264
+ var __b = __prev._props.text;
1265
+
1266
+ if (__prev.b !== __b) {
1267
+ _$_.set_text(__prev._expression_23, __prev.b = __b);
1268
+ }
783
1269
 
784
- {
785
- var button_10 = _$_.hydrating ? _$_.hydrate_child() : div_7.firstChild;
1270
+ var __c = __prev._done.value ? 'completed' : 'pending';
786
1271
 
787
- button_10.__click = () => {
788
- _$_.set(lazy_10, [...lazy_10.value, [5, 6]]);
789
- };
1272
+ if (__prev.c !== __c) {
1273
+ _$_.set_class(__prev._span_6, __prev.c = __c, void 0, true);
1274
+ }
790
1275
 
791
- var button_11 = _$_.hydrating ? _$_.hydrate_sibling() : button_10.nextSibling;
1276
+ var __d = `todo-${__prev._props.id}`;
792
1277
 
793
- button_11.__click = () => {
794
- const newGrid = _$_.with_scope(__block, () => lazy_10.value.map((row) => [...row]));
1278
+ if (__prev.d !== __d) {
1279
+ _$_.set_class(__prev._div_16, __prev.d = __d, void 0, true);
1280
+ }
1281
+ }
795
1282
 
796
- newGrid[0][0] = 99;
797
- _$_.set(lazy_10, newGrid);
798
- };
1283
+ function TodoItem_render(__anchor, __block, props) {
1284
+ const done = _$_.track(false, __block, '4f2402a4');
1285
+ var div_16 = root_57();
799
1286
 
800
- var div_8 = _$_.hydrating ? _$_.hydrate_sibling() : button_11.nextSibling;
1287
+ {
1288
+ var input = _$_.hydrating ? _$_.hydrate_child() : div_16.firstChild;
801
1289
 
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 = _$_.hydrating ? _$_.hydrate_child() : span_5.firstChild;
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
- }
1290
+ input.__change = (e) => {
1291
+ done.value = e.target.checked;
1292
+ };
838
1293
 
839
- _$_.append(__anchor, div_9);
840
- },
841
- 12
842
- );
1294
+ var span_6 = _$_.hydrating ? _$_.hydrate_sibling() : input.nextSibling;
843
1295
 
844
- _$_.pop(div_8);
845
- }
1296
+ {
1297
+ var expression_23 = _$_.hydrating ? _$_.hydrate_text() : span_6.firstChild;
846
1298
  }
847
-
848
- _$_.append(__anchor, div_7);
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
849
1312
  });
850
- }
851
1313
 
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
- },
863
-
864
- {
865
- id: 'd2',
866
- name: 'Design',
867
- teams: [{ id: 't3', name: 'UX', members: ['Diana', 'Eve', 'Frank'] }]
868
- }
869
- ];
1314
+ _$_.append(__anchor, div_16);
1315
+ }
870
1316
 
871
- var div_10 = root_43();
1317
+ TodoItem[_$_.$r] = TodoItem_render;
872
1318
 
873
- {
874
- _$_.for_keyed(
875
- div_10,
876
- () => departments,
877
- (__anchor, pattern_4) => {
878
- var div_11 = root_44();
1319
+ var root_59 = _$_.template(`<li class="single"> </li>`, 0);
1320
+ var root_58 = _$_.template(`<ul></ul>`, 0);
879
1321
 
880
- {
881
- var h2 = _$_.hydrating ? _$_.hydrate_child() : div_11.firstChild;
1322
+ function ForLoopSingleItem_render(__anchor, __block) {
1323
+ const items = ['Only'];
1324
+ var ul_14 = root_58();
882
1325
 
883
- {
884
- var expression_17 = _$_.hydrating ? _$_.hydrate_child() : h2.firstChild;
1326
+ {
1327
+ _$_.for(
1328
+ ul_14,
1329
+ () => items,
1330
+ (__anchor, item) => {
1331
+ var li_14 = root_59();
885
1332
 
886
- _$_.expression(expression_17, () => _$_.get(pattern_4).name);
887
- _$_.pop(h2);
888
- }
1333
+ {
1334
+ var expression_24 = _$_.hydrating ? _$_.hydrate_child() : li_14.firstChild;
889
1335
 
890
- var node_9 = _$_.hydrating ? _$_.hydrate_sibling() : h2.nextSibling;
1336
+ _$_.expression(expression_24, () => item);
1337
+ _$_.hydrating && _$_.pop(li_14);
1338
+ }
891
1339
 
892
- _$_.for_keyed(
893
- node_9,
894
- () => _$_.get(pattern_4).teams,
895
- (__anchor, pattern_5) => {
896
- var div_12 = root_45();
1340
+ _$_.append(__anchor, li_14);
1341
+ },
1342
+ 4
1343
+ );
897
1344
 
898
- {
899
- var h3 = _$_.hydrating ? _$_.hydrate_child() : div_12.firstChild;
1345
+ _$_.hydrating && _$_.pop(ul_14);
1346
+ }
900
1347
 
901
- {
902
- var expression_18 = _$_.hydrating ? _$_.hydrate_child() : h3.firstChild;
1348
+ _$_.append(__anchor, ul_14);
1349
+ }
903
1350
 
904
- _$_.expression(expression_18, () => _$_.get(pattern_5).name);
905
- _$_.pop(h3);
906
- }
1351
+ ForLoopSingleItem[_$_.$r] = ForLoopSingleItem_render;
907
1352
 
908
- var ul_11 = _$_.hydrating ? _$_.hydrate_sibling() : h3.nextSibling;
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);
909
1356
 
910
- {
911
- _$_.for(
912
- ul_11,
913
- () => _$_.get(pattern_5).members,
914
- (__anchor, member) => {
915
- var li_11 = root_46();
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);
916
1361
 
917
- {
918
- var expression_19 = _$_.hydrating ? _$_.hydrate_child() : li_11.firstChild;
1362
+ _$_.expression(node_14, () => _$_.tsrx_element((__anchor, __block) => {
1363
+ var fragment_23 = root_61();
1364
+ var button_15 = _$_.first_child_frag(fragment_23);
919
1365
 
920
- _$_.expression(expression_19, () => member);
921
- _$_.pop(li_11);
922
- }
1366
+ button_15.__click = () => {
1367
+ items.value = ['A', ...items.value];
1368
+ };
923
1369
 
924
- _$_.append(__anchor, li_11);
925
- },
926
- 4
927
- );
1370
+ var ul_15 = _$_.hydrating ? _$_.hydrate_sibling() : button_15.nextSibling;
928
1371
 
929
- _$_.pop(ul_11);
930
- }
931
- }
1372
+ {
1373
+ _$_.for(
1374
+ ul_15,
1375
+ () => items.value,
1376
+ (__anchor, item) => {
1377
+ var li_15 = root_62();
932
1378
 
933
- _$_.render(() => {
934
- _$_.set_class(div_12, `team-${_$_.get(pattern_5).id}`, void 0, true);
935
- });
1379
+ _$_.set_class(li_15, `item-${item}`, void 0, true);
936
1380
 
937
- _$_.append(__anchor, div_12);
938
- },
939
- 0,
940
- (pattern_5) => _$_.get(pattern_5).id
941
- );
1381
+ {
1382
+ var expression_25 = _$_.hydrating ? _$_.hydrate_child() : li_15.firstChild;
942
1383
 
943
- _$_.pop(div_11);
1384
+ _$_.expression(expression_25, () => item);
1385
+ _$_.hydrating && _$_.pop(li_15);
944
1386
  }
945
1387
 
946
- _$_.render(() => {
947
- _$_.set_class(div_11, `dept-${_$_.get(pattern_4).id}`, void 0, true);
948
- });
949
-
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 = _$_.hydrating ? _$_.hydrate_sibling() : button_12.nextSibling;
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 = _$_.hydrating ? _$_.hydrate_child(true) : li_12.firstChild;
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: _$_.UNINITIALIZED }
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);
1039
-
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
- };
1456
+ ForLoopAddInMiddle[_$_.$r] = ForLoopAddInMiddle_render;
1047
1457
 
1048
- var ul_13 = _$_.hydrating ? _$_.hydrate_sibling() : button_13.nextSibling;
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 = _$_.hydrating ? _$_.hydrate_child(true) : li_13.firstChild;
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 __pattern_6 = _$_.get(pattern_6);
1066
- var __a = `[${i.value}] ${__pattern_6.id}: ${__pattern_6.value}`;
1471
+ button_17.__click = () => {
1472
+ items.value = _$_.with_scope(__block, () => items.value.filter((item) => item !== 'B'));
1473
+ };
1067
1474
 
1068
- if (__prev.a !== __a) {
1069
- _$_.set_text(expression_21, __prev.a = __a);
1070
- }
1475
+ var ul_17 = _$_.hydrating ? _$_.hydrate_sibling() : button_17.nextSibling;
1071
1476
 
1072
- var __b = i.value;
1477
+ {
1478
+ _$_.for(
1479
+ ul_17,
1480
+ () => items.value,
1481
+ (__anchor, item) => {
1482
+ var li_17 = root_68();
1073
1483
 
1074
- if (__prev.b !== __b) {
1075
- _$_.set_attribute(li_13, 'data-index', __prev.b = __b);
1076
- }
1484
+ _$_.set_class(li_17, `item-${item}`, void 0, true);
1077
1485
 
1078
- var __c = `item-${__pattern_6.id}`;
1486
+ {
1487
+ var expression_27 = _$_.hydrating ? _$_.hydrate_child() : li_17.firstChild;
1079
1488
 
1080
- if (__prev.c !== __c) {
1081
- _$_.set_class(li_13, __prev.c = __c, void 0, true);
1082
- }
1083
- },
1084
- { a: ' ', b: void 0, c: _$_.UNINITIALIZED }
1085
- );
1489
+ _$_.expression(expression_27, () => item);
1490
+ _$_.hydrating && _$_.pop(li_17);
1491
+ }
1086
1492
 
1087
- _$_.append(__anchor, li_13);
1088
- },
1089
- 12,
1090
- (pattern_6, i) => _$_.get(pattern_6).id
1091
- );
1493
+ _$_.append(__anchor, li_17);
1494
+ },
1495
+ 4
1496
+ );
1092
1497
 
1093
- _$_.pop(ul_13);
1094
- }
1498
+ _$_.hydrating && _$_.pop(ul_17);
1499
+ }
1095
1500
 
1096
- _$_.next();
1097
- _$_.append(__anchor, fragment_19, true);
1098
- }));
1501
+ _$_.append(__anchor, fragment_27);
1502
+ }));
1099
1503
 
1100
- _$_.append(__anchor, fragment_18);
1101
- });
1504
+ _$_.append(__anchor, fragment_26);
1102
1505
  }
1103
1506
 
1104
- export function ForLoopWithSiblings() {
1105
- return _$_.tsrx_element((__anchor, __block) => {
1106
- let lazy_13 = _$_.track(['A', 'B'], __block, '3c7e8152');
1107
- var fragment_20 = root_53();
1108
- var node_13 = _$_.first_child_frag(fragment_20);
1109
-
1110
- _$_.expression(node_13, () => _$_.tsrx_element((__anchor, __block) => {
1111
- var fragment_21 = root_54();
1112
- var div_13 = _$_.first_child_frag(fragment_21);
1507
+ ForLoopRemoveFromMiddle[_$_.$r] = ForLoopRemoveFromMiddle_render;
1113
1508
 
1114
- {
1115
- var header = _$_.hydrating ? _$_.hydrate_child() : div_13.firstChild;
1116
- var node_12 = _$_.hydrating ? _$_.hydrate_sibling() : header.nextSibling;
1509
+ var root_70 = _$_.template(`<li> </li>`, 0);
1117
1510
 
1118
- _$_.for(
1119
- node_12,
1120
- () => lazy_13.value,
1121
- (__anchor, item) => {
1122
- var div_14 = root_55();
1511
+ function render_14(__prev) {
1512
+ var __a = `item-${__prev._i.value}`;
1123
1513
 
1124
- _$_.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
+ }
1125
1518
 
1126
- {
1127
- var expression_22 = _$_.hydrating ? _$_.hydrate_child() : div_14.firstChild;
1519
+ var root_69 = _$_.template(`<ul class="large-list"></ul>`, 0);
1128
1520
 
1129
- _$_.expression(expression_22, () => item);
1130
- _$_.pop(div_14);
1131
- }
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();
1132
1524
 
1133
- _$_.append(__anchor, div_14);
1134
- },
1135
- 0
1136
- );
1525
+ {
1526
+ _$_.for(
1527
+ ul_18,
1528
+ () => items,
1529
+ (__anchor, item, i) => {
1530
+ var li_18 = root_70();
1137
1531
 
1138
- _$_.pop(div_13);
1139
- }
1532
+ {
1533
+ var expression_28 = _$_.hydrating ? _$_.hydrate_child() : li_18.firstChild;
1140
1534
 
1141
- var button_14 = _$_.hydrating ? _$_.hydrate_sibling() : div_13.nextSibling;
1535
+ _$_.expression(expression_28, () => item);
1536
+ _$_.hydrating && _$_.pop(li_18);
1537
+ }
1142
1538
 
1143
- button_14.__click = () => {
1144
- _$_.set(lazy_13, [...lazy_13.value, 'C']);
1145
- };
1539
+ _$_.render(render_14, { a: _$_.UNINITIALIZED, _i: i, _li_18: li_18 });
1540
+ _$_.append(__anchor, li_18);
1541
+ },
1542
+ 12
1543
+ );
1146
1544
 
1147
- _$_.next();
1148
- _$_.append(__anchor, fragment_21, true);
1149
- }));
1545
+ _$_.hydrating && _$_.pop(ul_18);
1546
+ }
1150
1547
 
1151
- _$_.append(__anchor, fragment_20);
1152
- });
1548
+ _$_.append(__anchor, ul_18);
1153
1549
  }
1154
1550
 
1155
- export function ForLoopItemState() {
1156
- return _$_.tsrx_element((__anchor, __block) => {
1157
- const initialItems = [
1158
- { id: 1, text: 'Todo 1' },
1159
- { id: 2, text: 'Todo 2' },
1160
- { id: 3, text: 'Todo 3' }
1161
- ];
1551
+ ForLoopLargeList[_$_.$r] = ForLoopLargeList_render;
1162
1552
 
1163
- 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);
1164
1556
 
1165
- {
1166
- _$_.for_keyed(
1167
- div_15,
1168
- () => initialItems,
1169
- (__anchor, pattern_7) => {
1170
- _$_.render_component(TodoItem, __anchor, {
1171
- get id() {
1172
- return _$_.get(pattern_7).id;
1173
- },
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);
1174
1561
 
1175
- get text() {
1176
- return _$_.get(pattern_7).text;
1177
- }
1178
- });
1179
- },
1180
- 4,
1181
- (pattern_7) => _$_.get(pattern_7).id
1182
- );
1562
+ _$_.expression(node_17, () => _$_.tsrx_element((__anchor, __block) => {
1563
+ var fragment_29 = root_72();
1564
+ var button_18 = _$_.first_child_frag(fragment_29);
1183
1565
 
1184
- _$_.pop(div_15);
1185
- }
1566
+ button_18.__click = () => {
1567
+ const copy = [...items.value];
1186
1568
 
1187
- _$_.append(__anchor, div_15);
1188
- });
1189
- }
1569
+ [copy[0], copy[3]] = [copy[3], copy[0]];
1570
+ items.value = copy;
1571
+ };
1190
1572
 
1191
- function TodoItem(props) {
1192
- return _$_.tsrx_element((__anchor, __block) => {
1193
- let lazy_14 = _$_.track(false, __block, '4f2402a4');
1194
- var div_16 = root_57();
1573
+ var ul_19 = _$_.hydrating ? _$_.hydrate_sibling() : button_18.nextSibling;
1195
1574
 
1196
1575
  {
1197
- var input = _$_.hydrating ? _$_.hydrate_child() : div_16.firstChild;
1198
-
1199
- input.__change = (e) => {
1200
- _$_.set(lazy_14, e.target.checked);
1201
- };
1576
+ _$_.for(
1577
+ ul_19,
1578
+ () => items.value,
1579
+ (__anchor, item) => {
1580
+ var li_19 = root_73();
1202
1581
 
1203
- var span_6 = _$_.hydrating ? _$_.hydrate_sibling() : input.nextSibling;
1582
+ _$_.set_class(li_19, `item-${item}`, void 0, true);
1204
1583
 
1205
- {
1206
- var expression_23 = _$_.hydrating ? _$_.hydrate_child(true) : span_6.firstChild;
1584
+ {
1585
+ var expression_29 = _$_.hydrating ? _$_.hydrate_child() : li_19.firstChild;
1207
1586
 
1208
- _$_.pop(span_6);
1209
- }
1210
- }
1587
+ _$_.expression(expression_29, () => item);
1588
+ _$_.hydrating && _$_.pop(li_19);
1589
+ }
1211
1590
 
1212
- _$_.render(
1213
- (__prev) => {
1214
- var __a = lazy_14.value;
1591
+ _$_.append(__anchor, li_19);
1592
+ },
1593
+ 4
1594
+ );
1215
1595
 
1216
- if (__prev.a !== __a) {
1217
- _$_.set_checked(input, __prev.a = __a);
1218
- }
1596
+ _$_.hydrating && _$_.pop(ul_19);
1597
+ }
1219
1598
 
1220
- var __b = props.text;
1599
+ _$_.append(__anchor, fragment_29);
1600
+ }));
1221
1601
 
1222
- if (__prev.b !== __b) {
1223
- _$_.set_text(expression_23, __prev.b = __b);
1224
- }
1602
+ _$_.append(__anchor, fragment_28);
1603
+ }
1225
1604
 
1226
- var __c = lazy_14.value ? 'completed' : 'pending';
1605
+ ForLoopSwap[_$_.$r] = ForLoopSwap_render;
1227
1606
 
1228
- if (__prev.c !== __c) {
1229
- _$_.set_class(span_6, __prev.c = __c, void 0, true);
1230
- }
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);
1231
1610
 
1232
- 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);
1233
1615
 
1234
- if (__prev.d !== __d) {
1235
- _$_.set_class(div_16, __prev.d = __d, void 0, true);
1236
- }
1237
- },
1238
- {
1239
- a: void 0,
1240
- b: ' ',
1241
- c: _$_.UNINITIALIZED,
1242
- d: _$_.UNINITIALIZED
1243
- }
1244
- );
1616
+ _$_.expression(node_18, () => _$_.tsrx_element((__anchor, __block) => {
1617
+ var fragment_31 = root_75();
1618
+ var button_19 = _$_.first_child_frag(fragment_31);
1245
1619
 
1246
- _$_.append(__anchor, div_16);
1247
- });
1248
- }
1620
+ button_19.__click = () => {
1621
+ items.value = _$_.with_scope(__block, () => [...items.value].reverse());
1622
+ };
1249
1623
 
1250
- export function ForLoopSingleItem() {
1251
- return _$_.tsrx_element((__anchor, __block) => {
1252
- const items = ['Only'];
1253
- var ul_14 = root_58();
1624
+ var ul_20 = _$_.hydrating ? _$_.hydrate_sibling() : button_19.nextSibling;
1254
1625
 
1255
1626
  {
1256
1627
  _$_.for(
1257
- ul_14,
1258
- () => items,
1628
+ ul_20,
1629
+ () => items.value,
1259
1630
  (__anchor, item) => {
1260
- var li_14 = root_59();
1631
+ var li_20 = root_76();
1632
+
1633
+ _$_.set_class(li_20, `item-${item}`, void 0, true);
1261
1634
 
1262
1635
  {
1263
- var expression_24 = _$_.hydrating ? _$_.hydrate_child() : li_14.firstChild;
1636
+ var expression_30 = _$_.hydrating ? _$_.hydrate_child() : li_20.firstChild;
1264
1637
 
1265
- _$_.expression(expression_24, () => item);
1266
- _$_.pop(li_14);
1638
+ _$_.expression(expression_30, () => item);
1639
+ _$_.hydrating && _$_.pop(li_20);
1267
1640
  }
1268
1641
 
1269
- _$_.append(__anchor, li_14);
1642
+ _$_.append(__anchor, li_20);
1270
1643
  },
1271
1644
  4
1272
1645
  );
1273
1646
 
1274
- _$_.pop(ul_14);
1647
+ _$_.hydrating && _$_.pop(ul_20);
1275
1648
  }
1276
1649
 
1277
- _$_.append(__anchor, ul_14);
1278
- });
1279
- }
1280
-
1281
- export function ForLoopAddAtBeginning() {
1282
- return _$_.tsrx_element((__anchor, __block) => {
1283
- let lazy_15 = _$_.track(['B', 'C'], __block, '1561403a');
1284
- var fragment_22 = root_60();
1285
- var node_14 = _$_.first_child_frag(fragment_22);
1650
+ _$_.append(__anchor, fragment_31);
1651
+ }));
1286
1652
 
1287
- _$_.expression(node_14, () => _$_.tsrx_element((__anchor, __block) => {
1288
- var fragment_23 = root_61();
1289
- var button_15 = _$_.first_child_frag(fragment_23);
1653
+ _$_.append(__anchor, fragment_30);
1654
+ }
1290
1655
 
1291
- button_15.__click = () => {
1292
- _$_.set(lazy_15, ['A', ...lazy_15.value]);
1293
- };
1656
+ ForLoopReverse[_$_.$r] = ForLoopReverse_render;
1294
1657
 
1295
- var ul_15 = _$_.hydrating ? _$_.hydrate_sibling() : button_15.nextSibling;
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);
1296
1660
 
1297
- {
1298
- _$_.for(
1299
- ul_15,
1300
- () => lazy_15.value,
1301
- (__anchor, item) => {
1302
- 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();
1303
1664
 
1304
- _$_.set_class(li_15, `item-${item}`, void 0, true);
1665
+ {
1666
+ var div_18 = _$_.hydrating ? _$_.hydrate_child() : div_17.firstChild;
1305
1667
 
1306
- {
1307
- var expression_25 = _$_.hydrating ? _$_.hydrate_child() : li_15.firstChild;
1668
+ {
1669
+ var node_19 = _$_.hydrating ? _$_.hydrate_child() : div_18.firstChild;
1308
1670
 
1309
- _$_.expression(expression_25, () => item);
1310
- _$_.pop(li_15);
1311
- }
1671
+ _$_.for_keyed(
1672
+ node_19,
1673
+ () => items.value,
1674
+ (__anchor, pattern_8) => {
1675
+ var span_7 = root_78();
1312
1676
 
1313
- _$_.append(__anchor, li_15);
1314
- },
1315
- 4
1316
- );
1677
+ {
1678
+ var expression_31 = _$_.hydrating ? _$_.hydrate_child() : span_7.firstChild;
1317
1679
 
1318
- _$_.pop(ul_15);
1319
- }
1680
+ _$_.expression(expression_31, () => _$_.get(pattern_8));
1681
+ _$_.hydrating && _$_.pop(span_7);
1682
+ }
1320
1683
 
1321
- _$_.next();
1322
- _$_.append(__anchor, fragment_23, true);
1323
- }));
1684
+ _$_.append(__anchor, span_7);
1685
+ },
1686
+ 0
1687
+ );
1324
1688
 
1325
- _$_.append(__anchor, fragment_22);
1326
- });
1327
- }
1689
+ _$_.hydrating && _$_.pop(div_18);
1690
+ }
1328
1691
 
1329
- export function ForLoopAddInMiddle() {
1330
- return _$_.tsrx_element((__anchor, __block) => {
1331
- let lazy_16 = _$_.track(['A', 'C'], __block, '1bc60b46');
1332
- var fragment_24 = root_63();
1333
- var node_15 = _$_.first_child_frag(fragment_24);
1692
+ var button_20 = _$_.hydrating ? _$_.hydrate_sibling() : div_18.nextSibling;
1334
1693
 
1335
- _$_.expression(node_15, () => _$_.tsrx_element((__anchor, __block) => {
1336
- var fragment_25 = root_64();
1337
- var button_16 = _$_.first_child_frag(fragment_25);
1694
+ button_20.__click = () => items.value = [...items.value, items.value.length + 1];
1338
1695
 
1339
- button_16.__click = () => {
1340
- const copy = [...lazy_16.value];
1696
+ var button_21 = _$_.hydrating ? _$_.hydrate_sibling() : button_20.nextSibling;
1341
1697
 
1342
- _$_.with_scope(__block, () => copy.splice(1, 0, 'B'));
1343
- _$_.set(lazy_16, copy);
1344
- };
1698
+ button_21.__click = () => items.value = [
1699
+ ..._$_.with_scope(__block, () => items.value.slice(1)),
1700
+ items.value[0]
1701
+ ];
1702
+ }
1345
1703
 
1346
- var ul_16 = _$_.hydrating ? _$_.hydrate_sibling() : button_16.nextSibling;
1704
+ _$_.append(__anchor, div_17);
1705
+ }
1347
1706
 
1348
- {
1349
- _$_.for(
1350
- ul_16,
1351
- () => lazy_16.value,
1352
- (__anchor, item) => {
1353
- var li_16 = root_65();
1707
+ KeyedForLoopAppendAndRotate[_$_.$r] = KeyedForLoopAppendAndRotate_render;
1354
1708
 
1355
- _$_.set_class(li_16, `item-${item}`, void 0, true);
1709
+ var root_79 = _$_.template(`<span class="item"> </span>`, 0);
1356
1710
 
1357
- {
1358
- var expression_26 = _$_.hydrating ? _$_.hydrate_child() : li_16.firstChild;
1711
+ function render_15(__prev) {
1712
+ var __a = _$_.get(__prev._pattern_9);
1359
1713
 
1360
- _$_.expression(expression_26, () => item);
1361
- _$_.pop(li_16);
1362
- }
1714
+ if (__prev.a !== __a) {
1715
+ _$_.set_text(__prev._expression_32, __prev.a = __a);
1716
+ }
1717
+ }
1363
1718
 
1364
- _$_.append(__anchor, li_16);
1365
- },
1366
- 4
1367
- );
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();
1368
1725
 
1369
- _$_.pop(ul_16);
1726
+ {
1727
+ var expression_32 = _$_.hydrating ? _$_.hydrate_text() : span_8.firstChild;
1370
1728
  }
1371
1729
 
1372
- _$_.next();
1373
- _$_.append(__anchor, fragment_25, true);
1374
- }));
1375
-
1376
- _$_.append(__anchor, fragment_24);
1377
- });
1730
+ _$_.render(render_15, { a: ' ', _pattern_9: pattern_9, _expression_32: expression_32 });
1731
+ _$_.append(__anchor, span_8);
1732
+ },
1733
+ 16
1734
+ );
1378
1735
  }
1379
1736
 
1380
- export function ForLoopRemoveFromMiddle() {
1381
- return _$_.tsrx_element((__anchor, __block) => {
1382
- let lazy_17 = _$_.track(['A', 'B', 'C'], __block, '1c87f95f');
1383
- var fragment_26 = root_66();
1384
- var node_16 = _$_.first_child_frag(fragment_26);
1385
-
1386
- _$_.expression(node_16, () => _$_.tsrx_element((__anchor, __block) => {
1387
- var fragment_27 = root_67();
1388
- var button_17 = _$_.first_child_frag(fragment_27);
1737
+ RootKeyedList[_$_.$r] = RootKeyedList_render;
1389
1738
 
1390
- button_17.__click = () => {
1391
- _$_.set(lazy_17, _$_.with_scope(__block, () => lazy_17.value.filter((item) => item !== 'B')));
1392
- };
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);
1393
1740
 
1394
- var ul_17 = _$_.hydrating ? _$_.hydrate_sibling() : button_17.nextSibling;
1741
+ function RootKeyedForLoopAppendAndRotate_render(__anchor, __block) {
1742
+ const items = _$_.track([1, 2, 3], __block, '50a91d60');
1743
+ var div_19 = root_80();
1395
1744
 
1396
- {
1397
- _$_.for(
1398
- ul_17,
1399
- () => lazy_17.value,
1400
- (__anchor, item) => {
1401
- var li_17 = root_68();
1745
+ {
1746
+ var div_20 = _$_.hydrating ? _$_.hydrate_child() : div_19.firstChild;
1402
1747
 
1403
- _$_.set_class(li_17, `item-${item}`, void 0, true);
1748
+ {
1749
+ var node_20 = _$_.hydrating ? _$_.hydrate_child() : div_20.firstChild;
1404
1750
 
1405
- {
1406
- var expression_27 = _$_.hydrating ? _$_.hydrate_child() : li_17.firstChild;
1751
+ _$_.render_component(RootKeyedList, node_20, { items });
1752
+ _$_.hydrating && _$_.pop(div_20);
1753
+ }
1407
1754
 
1408
- _$_.expression(expression_27, () => item);
1409
- _$_.pop(li_17);
1410
- }
1755
+ var button_22 = _$_.hydrating ? _$_.hydrate_sibling() : div_20.nextSibling;
1411
1756
 
1412
- _$_.append(__anchor, li_17);
1413
- },
1414
- 4
1415
- );
1757
+ button_22.__click = () => items.value = [...items.value, items.value.length + 1];
1416
1758
 
1417
- _$_.pop(ul_17);
1418
- }
1759
+ var button_23 = _$_.hydrating ? _$_.hydrate_sibling() : button_22.nextSibling;
1419
1760
 
1420
- _$_.next();
1421
- _$_.append(__anchor, fragment_27, true);
1422
- }));
1761
+ button_23.__click = () => items.value = [
1762
+ ..._$_.with_scope(__block, () => items.value.slice(1)),
1763
+ items.value[0]
1764
+ ];
1765
+ }
1423
1766
 
1424
- _$_.append(__anchor, fragment_26);
1425
- });
1767
+ _$_.append(__anchor, div_19);
1426
1768
  }
1427
1769
 
1428
- export function ForLoopLargeList() {
1429
- return _$_.tsrx_element((__anchor, __block) => {
1430
- const items = _$_.with_scope(__block, () => Array.from({ length: 50 }, (_, i) => `Item ${i + 1}`));
1431
- var ul_18 = root_69();
1770
+ RootKeyedForLoopAppendAndRotate[_$_.$r] = RootKeyedForLoopAppendAndRotate_render;
1432
1771
 
1433
- {
1434
- _$_.for(
1435
- ul_18,
1436
- () => items,
1437
- (__anchor, item, i) => {
1438
- var li_18 = root_70();
1772
+ import { track } from 'ripple';
1439
1773
 
1440
- {
1441
- var expression_28 = _$_.hydrating ? _$_.hydrate_child() : li_18.firstChild;
1774
+ export function StaticForLoop() {
1775
+ return _$_.tsrx_element(StaticForLoop_render);
1776
+ }
1442
1777
 
1443
- _$_.expression(expression_28, () => item);
1444
- _$_.pop(li_18);
1445
- }
1778
+ export function ForLoopWithIndex() {
1779
+ return _$_.tsrx_element(ForLoopWithIndex_render);
1780
+ }
1446
1781
 
1447
- _$_.render(() => {
1448
- _$_.set_class(li_18, `item-${i.value}`, void 0, true);
1449
- });
1782
+ export function KeyedForLoop() {
1783
+ return _$_.tsrx_element(KeyedForLoop_render);
1784
+ }
1450
1785
 
1451
- _$_.append(__anchor, li_18);
1452
- },
1453
- 12
1454
- );
1786
+ export function ReactiveForLoopAdd() {
1787
+ return _$_.tsrx_element(ReactiveForLoopAdd_render);
1788
+ }
1455
1789
 
1456
- _$_.pop(ul_18);
1457
- }
1790
+ export function ReactiveForLoopRemove() {
1791
+ return _$_.tsrx_element(ReactiveForLoopRemove_render);
1792
+ }
1458
1793
 
1459
- _$_.append(__anchor, ul_18);
1460
- });
1794
+ export function ForLoopInteractive() {
1795
+ return _$_.tsrx_element(ForLoopInteractive_render);
1461
1796
  }
1462
1797
 
1463
- export function ForLoopSwap() {
1464
- return _$_.tsrx_element((__anchor, __block) => {
1465
- let lazy_18 = _$_.track(['A', 'B', 'C', 'D'], __block, '5f8d152f');
1466
- var fragment_28 = root_71();
1467
- var node_17 = _$_.first_child_frag(fragment_28);
1798
+ export function NestedForLoop() {
1799
+ return _$_.tsrx_element(NestedForLoop_render);
1800
+ }
1468
1801
 
1469
- _$_.expression(node_17, () => _$_.tsrx_element((__anchor, __block) => {
1470
- var fragment_29 = root_72();
1471
- var button_18 = _$_.first_child_frag(fragment_29);
1802
+ export function EmptyForLoop() {
1803
+ return _$_.tsrx_element(EmptyForLoop_render);
1804
+ }
1472
1805
 
1473
- button_18.__click = () => {
1474
- const copy = [...lazy_18.value];
1806
+ export function ForLoopComplexObjects() {
1807
+ return _$_.tsrx_element(ForLoopComplexObjects_render);
1808
+ }
1475
1809
 
1476
- [copy[0], copy[3]] = [copy[3], copy[0]];
1477
- _$_.set(lazy_18, copy);
1478
- };
1810
+ export function KeyedForLoopReorder() {
1811
+ return _$_.tsrx_element(KeyedForLoopReorder_render);
1812
+ }
1479
1813
 
1480
- var ul_19 = _$_.hydrating ? _$_.hydrate_sibling() : button_18.nextSibling;
1814
+ export function KeyedForLoopUpdate() {
1815
+ return _$_.tsrx_element(KeyedForLoopUpdate_render);
1816
+ }
1481
1817
 
1482
- {
1483
- _$_.for(
1484
- ul_19,
1485
- () => lazy_18.value,
1486
- (__anchor, item) => {
1487
- var li_19 = root_73();
1818
+ export function ForLoopMixedOperations() {
1819
+ return _$_.tsrx_element(ForLoopMixedOperations_render);
1820
+ }
1488
1821
 
1489
- _$_.set_class(li_19, `item-${item}`, void 0, true);
1822
+ export function ForLoopInsideIf() {
1823
+ return _$_.tsrx_element(ForLoopInsideIf_render);
1824
+ }
1490
1825
 
1491
- {
1492
- var expression_29 = _$_.hydrating ? _$_.hydrate_child() : li_19.firstChild;
1826
+ export function ForLoopEmptyToPopulated() {
1827
+ return _$_.tsrx_element(ForLoopEmptyToPopulated_render);
1828
+ }
1493
1829
 
1494
- _$_.expression(expression_29, () => item);
1495
- _$_.pop(li_19);
1496
- }
1830
+ export function ForLoopPopulatedToEmpty() {
1831
+ return _$_.tsrx_element(ForLoopPopulatedToEmpty_render);
1832
+ }
1497
1833
 
1498
- _$_.append(__anchor, li_19);
1499
- },
1500
- 4
1501
- );
1834
+ export function NestedForLoopReactive() {
1835
+ return _$_.tsrx_element(NestedForLoopReactive_render);
1836
+ }
1502
1837
 
1503
- _$_.pop(ul_19);
1504
- }
1838
+ export function ForLoopDeeplyNested() {
1839
+ return _$_.tsrx_element(ForLoopDeeplyNested_render);
1840
+ }
1505
1841
 
1506
- _$_.next();
1507
- _$_.append(__anchor, fragment_29, true);
1508
- }));
1842
+ export function ForLoopIndexUpdate() {
1843
+ return _$_.tsrx_element(ForLoopIndexUpdate_render);
1844
+ }
1509
1845
 
1510
- _$_.append(__anchor, fragment_28);
1511
- });
1846
+ export function KeyedForLoopWithIndex() {
1847
+ return _$_.tsrx_element(KeyedForLoopWithIndex_render);
1512
1848
  }
1513
1849
 
1514
- export function ForLoopReverse() {
1515
- return _$_.tsrx_element((__anchor, __block) => {
1516
- let lazy_19 = _$_.track(['A', 'B', 'C', 'D'], __block, '24602e64');
1517
- var fragment_30 = root_74();
1518
- var node_18 = _$_.first_child_frag(fragment_30);
1850
+ export function ForLoopWithSiblings() {
1851
+ return _$_.tsrx_element(ForLoopWithSiblings_render);
1852
+ }
1519
1853
 
1520
- _$_.expression(node_18, () => _$_.tsrx_element((__anchor, __block) => {
1521
- var fragment_31 = root_75();
1522
- var button_19 = _$_.first_child_frag(fragment_31);
1854
+ export function ForLoopItemState() {
1855
+ return _$_.tsrx_element(ForLoopItemState_render);
1856
+ }
1523
1857
 
1524
- button_19.__click = () => {
1525
- _$_.set(lazy_19, _$_.with_scope(__block, () => [...lazy_19.value].reverse()));
1526
- };
1858
+ function TodoItem(props) {
1859
+ return _$_.tsrx_element(TodoItem_render, props);
1860
+ }
1527
1861
 
1528
- var ul_20 = _$_.hydrating ? _$_.hydrate_sibling() : button_19.nextSibling;
1862
+ export function ForLoopSingleItem() {
1863
+ return _$_.tsrx_element(ForLoopSingleItem_render);
1864
+ }
1529
1865
 
1530
- {
1531
- _$_.for(
1532
- ul_20,
1533
- () => lazy_19.value,
1534
- (__anchor, item) => {
1535
- 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
+ }
1536
1873
 
1537
- _$_.set_class(li_20, `item-${item}`, void 0, true);
1874
+ export function ForLoopRemoveFromMiddle() {
1875
+ return _$_.tsrx_element(ForLoopRemoveFromMiddle_render);
1876
+ }
1538
1877
 
1539
- {
1540
- var expression_30 = _$_.hydrating ? _$_.hydrate_child() : li_20.firstChild;
1878
+ export function ForLoopLargeList() {
1879
+ return _$_.tsrx_element(ForLoopLargeList_render);
1880
+ }
1541
1881
 
1542
- _$_.expression(expression_30, () => item);
1543
- _$_.pop(li_20);
1544
- }
1882
+ export function ForLoopSwap() {
1883
+ return _$_.tsrx_element(ForLoopSwap_render);
1884
+ }
1545
1885
 
1546
- _$_.append(__anchor, li_20);
1547
- },
1548
- 4
1549
- );
1886
+ export function ForLoopReverse() {
1887
+ return _$_.tsrx_element(ForLoopReverse_render);
1888
+ }
1550
1889
 
1551
- _$_.pop(ul_20);
1552
- }
1890
+ export function KeyedForLoopAppendAndRotate() {
1891
+ return _$_.tsrx_element(KeyedForLoopAppendAndRotate_render);
1892
+ }
1553
1893
 
1554
- _$_.next();
1555
- _$_.append(__anchor, fragment_31, true);
1556
- }));
1894
+ function RootKeyedList(props) {
1895
+ return _$_.tsrx_element(RootKeyedList_render, props);
1896
+ }
1557
1897
 
1558
- _$_.append(__anchor, fragment_30);
1559
- });
1898
+ export function RootKeyedForLoopAppendAndRotate() {
1899
+ return _$_.tsrx_element(RootKeyedForLoopAppendAndRotate_render);
1560
1900
  }
1561
1901
 
1562
1902
  _$_.delegate(['click', 'change']);