ripple 0.3.127 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/CHANGELOG.md +293 -0
  2. package/package.json +10 -4
  3. package/src/runtime/element.js +23 -6
  4. package/src/runtime/index-client.js +81 -41
  5. package/src/runtime/index-server.js +1 -0
  6. package/src/runtime/internal/client/blocks.js +192 -114
  7. package/src/runtime/internal/client/component.js +4 -30
  8. package/src/runtime/internal/client/composite.js +12 -13
  9. package/src/runtime/internal/client/constants.js +14 -5
  10. package/src/runtime/internal/client/context.js +12 -19
  11. package/src/runtime/internal/client/css.js +7 -9
  12. package/src/runtime/internal/client/events.js +178 -90
  13. package/src/runtime/internal/client/expression.js +185 -124
  14. package/src/runtime/internal/client/for.js +616 -264
  15. package/src/runtime/internal/client/head.js +10 -5
  16. package/src/runtime/internal/client/html.js +1 -0
  17. package/src/runtime/internal/client/hydration.js +152 -10
  18. package/src/runtime/internal/client/if.js +239 -50
  19. package/src/runtime/internal/client/index.js +9 -13
  20. package/src/runtime/internal/client/operations.js +44 -51
  21. package/src/runtime/internal/client/portal.js +163 -85
  22. package/src/runtime/internal/client/render.js +44 -25
  23. package/src/runtime/internal/client/rpc.js +3 -3
  24. package/src/runtime/internal/client/runtime.js +799 -576
  25. package/src/runtime/internal/client/selector.js +77 -0
  26. package/src/runtime/internal/client/template.js +133 -158
  27. package/src/runtime/internal/client/transport.js +38 -0
  28. package/src/runtime/internal/client/try.js +465 -426
  29. package/src/runtime/internal/client/types.d.ts +65 -21
  30. package/src/runtime/internal/client/utils.js +1 -3
  31. package/src/runtime/internal/server/dynamic.js +20 -21
  32. package/src/runtime/internal/server/index.js +327 -275
  33. package/src/runtime/internal/server/rpc.js +3 -2
  34. package/src/runtime/internal/server/transport.js +16 -0
  35. package/src/runtime/transport.js +21 -0
  36. package/tests/client/__snapshots__/for.test.tsrx.snap +0 -5
  37. package/tests/client/array/array.copy-within.test.tsrx +12 -12
  38. package/tests/client/array/array.derived.test.tsrx +46 -46
  39. package/tests/client/array/array.iteration.test.tsrx +10 -10
  40. package/tests/client/array/array.mutations.test.tsrx +20 -20
  41. package/tests/client/array/array.static.test.tsrx +11 -11
  42. package/tests/client/array/array.to-methods.test.tsrx +6 -6
  43. package/tests/client/async-suspend.test.tsrx +74 -75
  44. package/tests/client/basic/basic.attributes.test.tsrx +86 -83
  45. package/tests/client/basic/basic.collections.test.tsrx +12 -12
  46. package/tests/client/basic/basic.components.test.tsrx +99 -25
  47. package/tests/client/basic/basic.errors.test.tsrx +18 -18
  48. package/tests/client/basic/basic.events.test.tsrx +42 -42
  49. package/tests/client/basic/basic.get-set.test.tsrx +8 -8
  50. package/tests/client/basic/basic.reactivity.test.tsrx +97 -29
  51. package/tests/client/basic/basic.rendering.test.tsrx +25 -25
  52. package/tests/client/basic/basic.utilities.test.tsrx +3 -3
  53. package/tests/client/boundaries.test.tsrx +8 -8
  54. package/tests/client/boxed-locals.test.tsrx +452 -0
  55. package/tests/client/compiler/__snapshots__/compiler.assignments.test.tsrx.snap +6 -6
  56. package/tests/client/compiler/compiler.assignments.test.tsrx +9 -73
  57. package/tests/client/compiler/compiler.attributes.test.tsrx +23 -23
  58. package/tests/client/compiler/compiler.basic.test.tsrx +15 -60
  59. package/tests/client/compiler/compiler.tracked-access.test.tsrx +18 -43
  60. package/tests/client/compiler/compiler.try-in-function.test.tsrx +2 -2
  61. package/tests/client/composite/__snapshots__/composite.render.test.tsrx.snap +0 -1
  62. package/tests/client/composite/composite.dynamic-components.test.tsrx +77 -6
  63. package/tests/client/composite/composite.props.test.tsrx +149 -12
  64. package/tests/client/composite/composite.reactivity.test.tsrx +51 -52
  65. package/tests/client/composite/composite.render.test.tsrx +26 -9
  66. package/tests/client/css/scoped-styles.test.tsrx +8 -8
  67. package/tests/client/date.test.tsrx +42 -42
  68. package/tests/client/derived-release.test.tsrx +370 -0
  69. package/tests/client/dynamic-elements.test.tsrx +45 -45
  70. package/tests/client/events.test.tsrx +97 -71
  71. package/tests/client/for-selector.test.tsrx +221 -0
  72. package/tests/client/for-single-root-items.test.tsrx +118 -3
  73. package/tests/client/for.test.tsrx +332 -31
  74. package/tests/client/head.test.tsrx +19 -19
  75. package/tests/client/html.test.tsrx +11 -9
  76. package/tests/client/if-block.test.tsrx +80 -0
  77. package/tests/client/map.test.tsrx +16 -16
  78. package/tests/client/media-query.test.tsrx +7 -7
  79. package/tests/client/portal.test.tsrx +224 -26
  80. package/tests/client/primitive-text.test.tsrx +50 -0
  81. package/tests/client/prop-kind-switch.test.tsrx +141 -0
  82. package/tests/client/ref.test.tsrx +17 -17
  83. package/tests/client/return.test.tsrx +26 -3
  84. package/tests/client/root-boundary.test.tsrx +42 -0
  85. package/tests/client/scoped-flush.test.tsrx +8 -8
  86. package/tests/client/set.test.tsrx +6 -6
  87. package/tests/client/svg.test.tsrx +11 -11
  88. package/tests/client/switch.test.tsrx +44 -44
  89. package/tests/client/track-async-hydration.test.tsrx +4 -4
  90. package/tests/client/try.test.tsrx +151 -83
  91. package/tests/client/tsx.test.tsrx +43 -40
  92. package/tests/client/url/url.derived.test.tsrx +6 -6
  93. package/tests/client/url-search-params/url-search-params.derived.test.tsrx +8 -8
  94. package/tests/client/url-search-params/url-search-params.iteration.test.tsrx +10 -10
  95. package/tests/client/url-search-params/url-search-params.mutation.test.tsrx +10 -10
  96. package/tests/client/url-search-params/url-search-params.retrieval.test.tsrx +18 -18
  97. package/tests/client/url-search-params/url-search-params.serialization.test.tsrx +2 -2
  98. package/tests/hydration/basic.test.js +74 -1
  99. package/tests/hydration/build-components.js +22 -1
  100. package/tests/hydration/compiled/client/basic.js +1142 -713
  101. package/tests/hydration/compiled/client/composite.js +151 -100
  102. package/tests/hydration/compiled/client/events.js +190 -150
  103. package/tests/hydration/compiled/client/for.js +1472 -1126
  104. package/tests/hydration/compiled/client/fragment-cursor.js +2341 -0
  105. package/tests/hydration/compiled/client/head.js +255 -199
  106. package/tests/hydration/compiled/client/hmr.js +54 -41
  107. package/tests/hydration/compiled/client/html-in-template.js +54 -39
  108. package/tests/hydration/compiled/client/html.js +1633 -1263
  109. package/tests/hydration/compiled/client/if-children.js +420 -270
  110. package/tests/hydration/compiled/client/if-fragment-controlflow.js +363 -317
  111. package/tests/hydration/compiled/client/if.js +229 -219
  112. package/tests/hydration/compiled/client/mixed-control-flow.js +420 -400
  113. package/tests/hydration/compiled/client/nested-control-flow.js +1326 -1255
  114. package/tests/hydration/compiled/client/portal.js +87 -95
  115. package/tests/hydration/compiled/client/reactivity.js +140 -83
  116. package/tests/hydration/compiled/client/return.js +28 -19
  117. package/tests/hydration/compiled/client/streaming.js +390 -306
  118. package/tests/hydration/compiled/client/switch.js +258 -266
  119. package/tests/hydration/compiled/client/track-async-serialization.js +448 -280
  120. package/tests/hydration/compiled/client/try.js +173 -129
  121. package/tests/hydration/compiled/client/typed-text.js +71 -0
  122. package/tests/hydration/compiled/fixtures/money.js +10 -0
  123. package/tests/hydration/compiled/server/basic.js +123 -6
  124. package/tests/hydration/compiled/server/composite.js +16 -30
  125. package/tests/hydration/compiled/server/events.js +19 -19
  126. package/tests/hydration/compiled/server/for.js +109 -49
  127. package/tests/hydration/compiled/server/fragment-cursor.js +1687 -0
  128. package/tests/hydration/compiled/server/head.js +20 -28
  129. package/tests/hydration/compiled/server/hmr.js +2 -2
  130. package/tests/hydration/compiled/server/html.js +71 -247
  131. package/tests/hydration/compiled/server/if-children.js +107 -15
  132. package/tests/hydration/compiled/server/if.js +11 -15
  133. package/tests/hydration/compiled/server/mixed-control-flow.js +8 -8
  134. package/tests/hydration/compiled/server/portal.js +14 -22
  135. package/tests/hydration/compiled/server/reactivity.js +14 -46
  136. package/tests/hydration/compiled/server/streaming.js +19 -19
  137. package/tests/hydration/compiled/server/switch.js +8 -8
  138. package/tests/hydration/compiled/server/track-async-serialization.js +150 -23
  139. package/tests/hydration/compiled/server/try.js +8 -8
  140. package/tests/hydration/compiled/server/typed-text.js +17 -0
  141. package/tests/hydration/components/basic.tsrx +44 -8
  142. package/tests/hydration/components/composite.tsrx +2 -2
  143. package/tests/hydration/components/events.tsrx +25 -25
  144. package/tests/hydration/components/for.tsrx +115 -67
  145. package/tests/hydration/components/fragment-cursor.tsrx +650 -0
  146. package/tests/hydration/components/head.tsrx +16 -16
  147. package/tests/hydration/components/hmr.tsrx +2 -2
  148. package/tests/hydration/components/html.tsrx +7 -7
  149. package/tests/hydration/components/if-children.tsrx +72 -25
  150. package/tests/hydration/components/if.tsrx +18 -18
  151. package/tests/hydration/components/mixed-control-flow.tsrx +11 -11
  152. package/tests/hydration/components/portal.tsrx +3 -3
  153. package/tests/hydration/components/reactivity.tsrx +16 -16
  154. package/tests/hydration/components/streaming.tsrx +20 -20
  155. package/tests/hydration/components/switch.tsrx +20 -20
  156. package/tests/hydration/components/text-types.ts +4 -0
  157. package/tests/hydration/components/track-async-serialization.tsrx +80 -26
  158. package/tests/hydration/components/try.tsrx +8 -8
  159. package/tests/hydration/components/typed-text.tsrx +22 -0
  160. package/tests/hydration/fixtures/money.js +10 -0
  161. package/tests/hydration/for.test.js +36 -0
  162. package/tests/hydration/fragment-cursor.test.js +111 -0
  163. package/tests/hydration/if-children.test.js +24 -0
  164. package/tests/hydration/streaming.test.js +19 -0
  165. package/tests/hydration/track-async-serialization.test.js +87 -2
  166. package/tests/hydration/tsconfig.text-types.json +10 -0
  167. package/tests/hydration/typed-text.test.js +34 -0
  168. package/tests/server/await.test.tsrx +3 -3
  169. package/tests/server/basic.attributes.test.tsrx +42 -42
  170. package/tests/server/basic.components.test.tsrx +64 -8
  171. package/tests/server/basic.test.tsrx +34 -32
  172. package/tests/server/compiler.test.tsrx +1 -70
  173. package/tests/server/composite.props.test.tsrx +6 -6
  174. package/tests/server/dynamic-elements.test.tsrx +31 -8
  175. package/tests/server/for.test.tsrx +94 -0
  176. package/tests/server/head.test.tsrx +11 -11
  177. package/tests/server/scoped-styles.test.tsrx +2 -2
  178. package/tests/server/streaming-ssr.test.tsrx +48 -43
  179. package/tests/server/track-async-serialization.test.tsrx +204 -21
  180. package/tests/server/try.test.tsrx +48 -48
  181. package/tests/types/transport.ts +40 -0
  182. package/tests/utils/vite-plugin-config.test.js +23 -0
  183. package/types/index.d.ts +48 -7
  184. package/types/server.d.ts +3 -0
  185. package/types/transport.d.ts +15 -0
  186. package/src/runtime/internal/client/switch.js +0 -113
  187. package/src/utils/errors.js +0 -13
  188. package/tests/client/lazy-array.test.tsrx +0 -31
  189. package/tests/client/lazy-destructuring.test.tsrx +0 -438
  190. package/tests/client/tracked-index-access.test.tsrx +0 -113
  191. package/tests/server/lazy-destructuring.test.tsrx +0 -595
  192. package/tests/server/tracked-index-access.test.tsrx +0 -76
@@ -2,229 +2,269 @@
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
4
  var root = _$_.template(`<div><button class="increment">Increment</button><span class="count"> </span></div>`, 0);
5
- var root_1 = _$_.template(`<div><button class="decrement">-</button><span class="count"> </span><button class="increment">+</button></div>`, 0);
6
- var root_2 = _$_.template(`<div><button class="target">Target</button><span class="clicks"> </span><span class="hovers"> </span></div>`, 0);
7
- var root_3 = _$_.template(`<div><button class="btn">Click</button><span class="count"> </span><span class="action"> </span></div>`, 0);
8
- var root_4 = _$_.template(`<div><button class="toggle"> </button></div>`, 0);
9
- var root_5 = _$_.template(`<button class="child-btn"> </button>`, 0);
10
- var root_6 = _$_.template(`<div><!><span class="count"> </span></div>`, 0);
11
5
 
12
- import { track } from 'ripple';
6
+ function ClickCounter_render(__anchor, __block) {
7
+ const count = _$_.track(0, __block, 'a070e3a7');
8
+ var div = root();
13
9
 
14
- export function ClickCounter() {
15
- return _$_.tsrx_element((__anchor, __block) => {
16
- let lazy = _$_.track(0, __block, 'a070e3a7');
17
- var div = root();
10
+ {
11
+ var button = _$_.hydrating ? _$_.hydrate_child() : div.firstChild;
18
12
 
19
- {
20
- var button = _$_.child(div);
21
-
22
- button.__click = () => {
23
- _$_.update(lazy);
24
- };
13
+ button.__click = () => {
14
+ count.value++;
15
+ };
25
16
 
26
- var span = _$_.sibling(button);
17
+ var span = _$_.hydrating ? _$_.hydrate_sibling() : button.nextSibling;
27
18
 
28
- {
29
- var expression = _$_.child(span);
19
+ {
20
+ var expression = _$_.hydrating ? _$_.hydrate_child() : span.firstChild;
30
21
 
31
- _$_.expression(expression, () => lazy.value);
32
- _$_.pop(span);
33
- }
22
+ _$_.expression(expression, () => count.value);
23
+ _$_.hydrating && _$_.pop(span);
34
24
  }
25
+ }
35
26
 
36
- _$_.append(__anchor, div);
37
- });
27
+ _$_.append(__anchor, div);
38
28
  }
39
29
 
40
- export function IncrementDecrement() {
41
- return _$_.tsrx_element((__anchor, __block) => {
42
- let lazy_1 = _$_.track(0, __block, '87fcabdd');
43
- var div_1 = root_1();
30
+ ClickCounter[_$_.$r] = ClickCounter_render;
44
31
 
45
- {
46
- var button_1 = _$_.child(div_1);
32
+ var root_1 = _$_.template(`<div><button class="decrement">-</button><span class="count"> </span><button class="increment">+</button></div>`, 0);
47
33
 
48
- button_1.__click = () => {
49
- _$_.update(lazy_1, -1);
50
- };
34
+ function IncrementDecrement_render(__anchor, __block) {
35
+ const count = _$_.track(0, __block, '87fcabdd');
36
+ var div_1 = root_1();
51
37
 
52
- var span_1 = _$_.sibling(button_1);
38
+ {
39
+ var button_1 = _$_.hydrating ? _$_.hydrate_child() : div_1.firstChild;
53
40
 
54
- {
55
- var expression_1 = _$_.child(span_1);
41
+ button_1.__click = () => {
42
+ count.value--;
43
+ };
56
44
 
57
- _$_.expression(expression_1, () => lazy_1.value);
58
- _$_.pop(span_1);
59
- }
45
+ var span_1 = _$_.hydrating ? _$_.hydrate_sibling() : button_1.nextSibling;
60
46
 
61
- var button_2 = _$_.sibling(span_1);
47
+ {
48
+ var expression_1 = _$_.hydrating ? _$_.hydrate_child() : span_1.firstChild;
62
49
 
63
- button_2.__click = () => {
64
- _$_.update(lazy_1);
65
- };
50
+ _$_.expression(expression_1, () => count.value);
51
+ _$_.hydrating && _$_.pop(span_1);
66
52
  }
67
53
 
68
- _$_.append(__anchor, div_1);
69
- });
54
+ var button_2 = _$_.hydrating ? _$_.hydrate_sibling() : span_1.nextSibling;
55
+
56
+ button_2.__click = () => {
57
+ count.value++;
58
+ };
59
+ }
60
+
61
+ _$_.append(__anchor, div_1);
70
62
  }
71
63
 
72
- export function MultipleEvents() {
73
- return _$_.tsrx_element((__anchor, __block) => {
74
- let lazy_2 = _$_.track(0, __block, '41b9f0b0');
75
- let lazy_3 = _$_.track(0, __block, '72789f75');
76
- var div_2 = root_2();
64
+ IncrementDecrement[_$_.$r] = IncrementDecrement_render;
77
65
 
78
- {
79
- var button_3 = _$_.child(div_2);
66
+ var root_2 = _$_.template(`<div><button class="target">Target</button><span class="clicks"> </span><span class="hovers"> </span></div>`, 0);
67
+
68
+ function MultipleEvents_render(__anchor, __block) {
69
+ const clicks = _$_.track(0, __block, '41b9f0b0');
70
+ const hovers = _$_.track(0, __block, '72789f75');
71
+ var div_2 = root_2();
80
72
 
81
- button_3.__click = () => {
82
- _$_.update(lazy_2);
83
- };
73
+ {
74
+ var button_3 = _$_.hydrating ? _$_.hydrate_child() : div_2.firstChild;
84
75
 
85
- _$_.event('MouseEnter', button_3, () => {
86
- _$_.update(lazy_3);
87
- });
76
+ button_3.__click = () => {
77
+ clicks.value++;
78
+ };
88
79
 
89
- var span_2 = _$_.sibling(button_3);
80
+ _$_.event('MouseEnter', button_3, () => {
81
+ hovers.value++;
82
+ });
90
83
 
91
- {
92
- var expression_2 = _$_.child(span_2);
84
+ var span_2 = _$_.hydrating ? _$_.hydrate_sibling() : button_3.nextSibling;
93
85
 
94
- _$_.expression(expression_2, () => lazy_2.value);
95
- _$_.pop(span_2);
96
- }
86
+ {
87
+ var expression_2 = _$_.hydrating ? _$_.hydrate_child() : span_2.firstChild;
97
88
 
98
- var span_3 = _$_.sibling(span_2);
89
+ _$_.expression(expression_2, () => clicks.value);
90
+ _$_.hydrating && _$_.pop(span_2);
91
+ }
99
92
 
100
- {
101
- var expression_3 = _$_.child(span_3);
93
+ var span_3 = _$_.hydrating ? _$_.hydrate_sibling() : span_2.nextSibling;
102
94
 
103
- _$_.expression(expression_3, () => lazy_3.value);
104
- _$_.pop(span_3);
105
- }
95
+ {
96
+ var expression_3 = _$_.hydrating ? _$_.hydrate_child() : span_3.firstChild;
97
+
98
+ _$_.expression(expression_3, () => hovers.value);
99
+ _$_.hydrating && _$_.pop(span_3);
106
100
  }
101
+ }
107
102
 
108
- _$_.append(__anchor, div_2);
109
- });
103
+ _$_.append(__anchor, div_2);
110
104
  }
111
105
 
112
- export function MultiStateUpdate() {
113
- return _$_.tsrx_element((__anchor, __block) => {
114
- let lazy_4 = _$_.track(0, __block, '5a375160');
115
- let lazy_5 = _$_.track('none', __block, '3ceeb88c');
106
+ MultipleEvents[_$_.$r] = MultipleEvents_render;
116
107
 
117
- const handleClick = () => {
118
- _$_.update(lazy_4);
119
- _$_.set(lazy_5, 'increment');
120
- };
108
+ var root_3 = _$_.template(`<div><button class="btn">Click</button><span class="count"> </span><span class="action"> </span></div>`, 0);
121
109
 
122
- var div_3 = root_3();
110
+ function MultiStateUpdate_render(__anchor, __block) {
111
+ const count = _$_.track(0, __block, '5a375160');
112
+ const lastAction = _$_.track('none', __block, '3ceeb88c');
123
113
 
124
- {
125
- var button_4 = _$_.child(div_3);
114
+ const handleClick = () => {
115
+ count.value++;
116
+ lastAction.value = 'increment';
117
+ };
118
+
119
+ var div_3 = root_3();
126
120
 
127
- button_4.__click = handleClick;
121
+ {
122
+ var button_4 = _$_.hydrating ? _$_.hydrate_child() : div_3.firstChild;
128
123
 
129
- var span_4 = _$_.sibling(button_4);
124
+ button_4.__click = handleClick;
130
125
 
131
- {
132
- var expression_4 = _$_.child(span_4);
126
+ var span_4 = _$_.hydrating ? _$_.hydrate_sibling() : button_4.nextSibling;
133
127
 
134
- _$_.expression(expression_4, () => lazy_4.value);
135
- _$_.pop(span_4);
136
- }
128
+ {
129
+ var expression_4 = _$_.hydrating ? _$_.hydrate_child() : span_4.firstChild;
130
+
131
+ _$_.expression(expression_4, () => count.value);
132
+ _$_.hydrating && _$_.pop(span_4);
133
+ }
137
134
 
138
- var span_5 = _$_.sibling(span_4);
135
+ var span_5 = _$_.hydrating ? _$_.hydrate_sibling() : span_4.nextSibling;
139
136
 
140
- {
141
- var expression_5 = _$_.child(span_5);
137
+ {
138
+ var expression_5 = _$_.hydrating ? _$_.hydrate_child() : span_5.firstChild;
142
139
 
143
- _$_.expression(expression_5, () => lazy_5.value);
144
- _$_.pop(span_5);
145
- }
140
+ _$_.expression(expression_5, () => lastAction.value);
141
+ _$_.hydrating && _$_.pop(span_5);
146
142
  }
143
+ }
147
144
 
148
- _$_.append(__anchor, div_3);
149
- });
145
+ _$_.append(__anchor, div_3);
150
146
  }
151
147
 
152
- export function ToggleButton() {
153
- return _$_.tsrx_element((__anchor, __block) => {
154
- let lazy_6 = _$_.track(false, __block, 'be823ec7');
155
- var div_4 = root_4();
148
+ MultiStateUpdate[_$_.$r] = MultiStateUpdate_render;
156
149
 
157
- {
158
- var button_5 = _$_.child(div_4);
150
+ var root_4 = _$_.template(`<div><button class="toggle"> </button></div>`, 0);
159
151
 
160
- button_5.__click = () => {
161
- _$_.set(lazy_6, !lazy_6.value);
162
- };
152
+ function render(__prev) {
153
+ var __a = __prev._isOn.value ? 'ON' : 'OFF';
163
154
 
164
- {
165
- var expression_6 = _$_.child(button_5, true);
155
+ if (__prev.a !== __a) {
156
+ _$_.set_text(__prev._expression_6, __prev.a = __a);
157
+ }
158
+ }
166
159
 
167
- _$_.pop(button_5);
168
- }
160
+ function ToggleButton_render(__anchor, __block) {
161
+ const isOn = _$_.track(false, __block, 'be823ec7');
162
+ var div_4 = root_4();
163
+
164
+ {
165
+ var button_5 = _$_.hydrating ? _$_.hydrate_child() : div_4.firstChild;
166
+
167
+ button_5.__click = () => {
168
+ isOn.value = !isOn.value;
169
+ };
170
+
171
+ {
172
+ var expression_6 = _$_.hydrating ? _$_.hydrate_text() : button_5.firstChild;
169
173
  }
174
+ }
170
175
 
171
- _$_.render(() => {
172
- _$_.set_text(expression_6, lazy_6.value ? 'ON' : 'OFF');
173
- });
176
+ _$_.render(render, { a: ' ', _isOn: isOn, _expression_6: expression_6 });
177
+ _$_.append(__anchor, div_4);
178
+ }
179
+
180
+ ToggleButton[_$_.$r] = ToggleButton_render;
181
+
182
+ var root_5 = _$_.template(`<button class="child-btn"> </button>`, 0);
183
+
184
+ function render_1(__prev) {
185
+ var __a = __prev._props.label;
174
186
 
175
- _$_.append(__anchor, div_4);
176
- });
187
+ if (__prev.a !== __a) {
188
+ _$_.set_text(__prev._expression_7, __prev.a = __a);
189
+ }
177
190
  }
178
191
 
179
- export function ChildButton(props) {
180
- return _$_.tsrx_element((__anchor, __block) => {
181
- var button_6 = root_5();
192
+ function ChildButton_render(__anchor, __block, props) {
193
+ var button_6 = root_5();
194
+
195
+ _$_.render_event('Click', button_6, () => props.onClick);
196
+
197
+ {
198
+ var expression_7 = _$_.hydrating ? _$_.hydrate_text() : button_6.firstChild;
199
+ }
200
+
201
+ _$_.render(render_1, { a: ' ', _props: props, _expression_7: expression_7 });
202
+ _$_.append(__anchor, button_6);
203
+ }
204
+
205
+ ChildButton[_$_.$r] = ChildButton_render;
206
+
207
+ var root_6 = _$_.template(`<div><!><span class="count"> </span></div>`, 0);
208
+
209
+ function ParentWithChildButton_render(__anchor, __block) {
210
+ const count = _$_.track(0, __block, 'dcc2e0f9');
211
+ var div_5 = root_6();
212
+
213
+ {
214
+ var node = _$_.hydrating ? _$_.hydrate_child() : div_5.firstChild;
182
215
 
183
- _$_.render_event('Click', button_6, () => props.onClick);
216
+ _$_.render_component(ChildButton, node, {
217
+ onClick: () => {
218
+ count.value++;
219
+ },
220
+ label: "Click me"
221
+ });
222
+
223
+ var span_6 = _$_.hydrating ? _$_.hydrate_sibling() : node.nextSibling;
184
224
 
185
225
  {
186
- var expression_7 = _$_.child(button_6, true);
226
+ var expression_8 = _$_.hydrating ? _$_.hydrate_child() : span_6.firstChild;
187
227
 
188
- _$_.pop(button_6);
228
+ _$_.expression(expression_8, () => count.value);
229
+ _$_.hydrating && _$_.pop(span_6);
189
230
  }
190
231
 
191
- _$_.render(() => {
192
- _$_.set_text(expression_7, props.label);
193
- });
232
+ _$_.hydrating && _$_.pop(div_5);
233
+ }
194
234
 
195
- _$_.append(__anchor, button_6);
196
- });
235
+ _$_.append(__anchor, div_5);
197
236
  }
198
237
 
199
- export function ParentWithChildButton() {
200
- return _$_.tsrx_element((__anchor, __block) => {
201
- let lazy_7 = _$_.track(0, __block, 'dcc2e0f9');
202
- var div_5 = root_6();
238
+ ParentWithChildButton[_$_.$r] = ParentWithChildButton_render;
203
239
 
204
- {
205
- var node = _$_.child(div_5);
240
+ import { track } from 'ripple';
206
241
 
207
- _$_.render_component(ChildButton, node, {
208
- onClick: () => {
209
- _$_.update(lazy_7);
210
- },
211
- label: "Click me"
212
- });
242
+ export function ClickCounter() {
243
+ return _$_.tsrx_element(ClickCounter_render);
244
+ }
213
245
 
214
- var span_6 = _$_.sibling(node);
246
+ export function IncrementDecrement() {
247
+ return _$_.tsrx_element(IncrementDecrement_render);
248
+ }
215
249
 
216
- {
217
- var expression_8 = _$_.child(span_6);
250
+ export function MultipleEvents() {
251
+ return _$_.tsrx_element(MultipleEvents_render);
252
+ }
218
253
 
219
- _$_.expression(expression_8, () => lazy_7.value);
220
- _$_.pop(span_6);
221
- }
254
+ export function MultiStateUpdate() {
255
+ return _$_.tsrx_element(MultiStateUpdate_render);
256
+ }
222
257
 
223
- _$_.pop(div_5);
224
- }
258
+ export function ToggleButton() {
259
+ return _$_.tsrx_element(ToggleButton_render);
260
+ }
225
261
 
226
- _$_.append(__anchor, div_5);
227
- });
262
+ export function ChildButton(props) {
263
+ return _$_.tsrx_element(ChildButton_render, props);
264
+ }
265
+
266
+ export function ParentWithChildButton() {
267
+ return _$_.tsrx_element(ParentWithChildButton_render);
228
268
  }
229
269
 
230
270
  _$_.delegate(['click']);