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
@@ -2,256 +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 = _$_.hydrating ? _$_.hydrate_child() : div.firstChild;
21
-
22
- button.__click = () => {
23
- _$_.update(lazy);
24
- };
13
+ button.__click = () => {
14
+ count.value++;
15
+ };
25
16
 
26
- var span = _$_.hydrating ? _$_.hydrate_sibling() : button.nextSibling;
17
+ var span = _$_.hydrating ? _$_.hydrate_sibling() : button.nextSibling;
27
18
 
28
- {
29
- var expression = _$_.hydrating ? _$_.hydrate_child(true) : span.firstChild;
19
+ {
20
+ var expression = _$_.hydrating ? _$_.hydrate_child() : span.firstChild;
30
21
 
31
- _$_.pop(span);
32
- }
22
+ _$_.expression(expression, () => count.value);
23
+ _$_.hydrating && _$_.pop(span);
33
24
  }
25
+ }
34
26
 
35
- _$_.render(() => {
36
- _$_.set_text(expression, lazy.value);
37
- });
38
-
39
- _$_.append(__anchor, div);
40
- });
27
+ _$_.append(__anchor, div);
41
28
  }
42
29
 
43
- export function IncrementDecrement() {
44
- return _$_.tsrx_element((__anchor, __block) => {
45
- let lazy_1 = _$_.track(0, __block, '87fcabdd');
46
- var div_1 = root_1();
30
+ ClickCounter[_$_.$r] = ClickCounter_render;
47
31
 
48
- {
49
- var button_1 = _$_.hydrating ? _$_.hydrate_child() : div_1.firstChild;
32
+ var root_1 = _$_.template(`<div><button class="decrement">-</button><span class="count"> </span><button class="increment">+</button></div>`, 0);
50
33
 
51
- button_1.__click = () => {
52
- _$_.update(lazy_1, -1);
53
- };
34
+ function IncrementDecrement_render(__anchor, __block) {
35
+ const count = _$_.track(0, __block, '87fcabdd');
36
+ var div_1 = root_1();
54
37
 
55
- var span_1 = _$_.hydrating ? _$_.hydrate_sibling() : button_1.nextSibling;
38
+ {
39
+ var button_1 = _$_.hydrating ? _$_.hydrate_child() : div_1.firstChild;
56
40
 
57
- {
58
- var expression_1 = _$_.hydrating ? _$_.hydrate_child(true) : span_1.firstChild;
41
+ button_1.__click = () => {
42
+ count.value--;
43
+ };
59
44
 
60
- _$_.pop(span_1);
61
- }
45
+ var span_1 = _$_.hydrating ? _$_.hydrate_sibling() : button_1.nextSibling;
62
46
 
63
- var button_2 = _$_.hydrating ? _$_.hydrate_sibling() : span_1.nextSibling;
47
+ {
48
+ var expression_1 = _$_.hydrating ? _$_.hydrate_child() : span_1.firstChild;
64
49
 
65
- button_2.__click = () => {
66
- _$_.update(lazy_1);
67
- };
50
+ _$_.expression(expression_1, () => count.value);
51
+ _$_.hydrating && _$_.pop(span_1);
68
52
  }
69
53
 
70
- _$_.render(() => {
71
- _$_.set_text(expression_1, lazy_1.value);
72
- });
54
+ var button_2 = _$_.hydrating ? _$_.hydrate_sibling() : span_1.nextSibling;
55
+
56
+ button_2.__click = () => {
57
+ count.value++;
58
+ };
59
+ }
73
60
 
74
- _$_.append(__anchor, div_1);
75
- });
61
+ _$_.append(__anchor, div_1);
76
62
  }
77
63
 
78
- export function MultipleEvents() {
79
- return _$_.tsrx_element((__anchor, __block) => {
80
- let lazy_2 = _$_.track(0, __block, '41b9f0b0');
81
- let lazy_3 = _$_.track(0, __block, '72789f75');
82
- var div_2 = root_2();
64
+ IncrementDecrement[_$_.$r] = IncrementDecrement_render;
83
65
 
84
- {
85
- var button_3 = _$_.hydrating ? _$_.hydrate_child() : div_2.firstChild;
66
+ var root_2 = _$_.template(`<div><button class="target">Target</button><span class="clicks"> </span><span class="hovers"> </span></div>`, 0);
86
67
 
87
- button_3.__click = () => {
88
- _$_.update(lazy_2);
89
- };
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();
90
72
 
91
- _$_.event('MouseEnter', button_3, () => {
92
- _$_.update(lazy_3);
93
- });
73
+ {
74
+ var button_3 = _$_.hydrating ? _$_.hydrate_child() : div_2.firstChild;
94
75
 
95
- var span_2 = _$_.hydrating ? _$_.hydrate_sibling() : button_3.nextSibling;
76
+ button_3.__click = () => {
77
+ clicks.value++;
78
+ };
96
79
 
97
- {
98
- var expression_2 = _$_.hydrating ? _$_.hydrate_child(true) : span_2.firstChild;
80
+ _$_.event('MouseEnter', button_3, () => {
81
+ hovers.value++;
82
+ });
99
83
 
100
- _$_.pop(span_2);
101
- }
84
+ var span_2 = _$_.hydrating ? _$_.hydrate_sibling() : button_3.nextSibling;
102
85
 
103
- var span_3 = _$_.hydrating ? _$_.hydrate_sibling() : span_2.nextSibling;
86
+ {
87
+ var expression_2 = _$_.hydrating ? _$_.hydrate_child() : span_2.firstChild;
104
88
 
105
- {
106
- var expression_3 = _$_.hydrating ? _$_.hydrate_child(true) : span_3.firstChild;
89
+ _$_.expression(expression_2, () => clicks.value);
90
+ _$_.hydrating && _$_.pop(span_2);
91
+ }
92
+
93
+ var span_3 = _$_.hydrating ? _$_.hydrate_sibling() : span_2.nextSibling;
107
94
 
108
- _$_.pop(span_3);
109
- }
95
+ {
96
+ var expression_3 = _$_.hydrating ? _$_.hydrate_child() : span_3.firstChild;
97
+
98
+ _$_.expression(expression_3, () => hovers.value);
99
+ _$_.hydrating && _$_.pop(span_3);
110
100
  }
101
+ }
102
+
103
+ _$_.append(__anchor, div_2);
104
+ }
111
105
 
112
- _$_.render(
113
- (__prev) => {
114
- var __a = lazy_2.value;
106
+ MultipleEvents[_$_.$r] = MultipleEvents_render;
115
107
 
116
- if (__prev.a !== __a) {
117
- _$_.set_text(expression_2, __prev.a = __a);
118
- }
108
+ var root_3 = _$_.template(`<div><button class="btn">Click</button><span class="count"> </span><span class="action"> </span></div>`, 0);
119
109
 
120
- var __b = lazy_3.value;
110
+ function MultiStateUpdate_render(__anchor, __block) {
111
+ const count = _$_.track(0, __block, '5a375160');
112
+ const lastAction = _$_.track('none', __block, '3ceeb88c');
121
113
 
122
- if (__prev.b !== __b) {
123
- _$_.set_text(expression_3, __prev.b = __b);
124
- }
125
- },
126
- { a: ' ', b: ' ' }
127
- );
114
+ const handleClick = () => {
115
+ count.value++;
116
+ lastAction.value = 'increment';
117
+ };
128
118
 
129
- _$_.append(__anchor, div_2);
130
- });
131
- }
119
+ var div_3 = root_3();
132
120
 
133
- export function MultiStateUpdate() {
134
- return _$_.tsrx_element((__anchor, __block) => {
135
- let lazy_4 = _$_.track(0, __block, '5a375160');
136
- let lazy_5 = _$_.track('none', __block, '3ceeb88c');
121
+ {
122
+ var button_4 = _$_.hydrating ? _$_.hydrate_child() : div_3.firstChild;
137
123
 
138
- const handleClick = () => {
139
- _$_.update(lazy_4);
140
- _$_.set(lazy_5, 'increment');
141
- };
124
+ button_4.__click = handleClick;
142
125
 
143
- var div_3 = root_3();
126
+ var span_4 = _$_.hydrating ? _$_.hydrate_sibling() : button_4.nextSibling;
144
127
 
145
128
  {
146
- var button_4 = _$_.hydrating ? _$_.hydrate_child() : div_3.firstChild;
129
+ var expression_4 = _$_.hydrating ? _$_.hydrate_child() : span_4.firstChild;
147
130
 
148
- button_4.__click = handleClick;
131
+ _$_.expression(expression_4, () => count.value);
132
+ _$_.hydrating && _$_.pop(span_4);
133
+ }
149
134
 
150
- var span_4 = _$_.hydrating ? _$_.hydrate_sibling() : button_4.nextSibling;
135
+ var span_5 = _$_.hydrating ? _$_.hydrate_sibling() : span_4.nextSibling;
151
136
 
152
- {
153
- var expression_4 = _$_.hydrating ? _$_.hydrate_child(true) : span_4.firstChild;
137
+ {
138
+ var expression_5 = _$_.hydrating ? _$_.hydrate_child() : span_5.firstChild;
154
139
 
155
- _$_.pop(span_4);
156
- }
140
+ _$_.expression(expression_5, () => lastAction.value);
141
+ _$_.hydrating && _$_.pop(span_5);
142
+ }
143
+ }
157
144
 
158
- var span_5 = _$_.hydrating ? _$_.hydrate_sibling() : span_4.nextSibling;
145
+ _$_.append(__anchor, div_3);
146
+ }
159
147
 
160
- {
161
- var expression_5 = _$_.hydrating ? _$_.hydrate_child() : span_5.firstChild;
148
+ MultiStateUpdate[_$_.$r] = MultiStateUpdate_render;
162
149
 
163
- _$_.expression(expression_5, () => lazy_5.value);
164
- _$_.pop(span_5);
165
- }
166
- }
150
+ var root_4 = _$_.template(`<div><button class="toggle"> </button></div>`, 0);
167
151
 
168
- _$_.render(() => {
169
- _$_.set_text(expression_4, lazy_4.value);
170
- });
152
+ function render(__prev) {
153
+ var __a = __prev._isOn.value ? 'ON' : 'OFF';
171
154
 
172
- _$_.append(__anchor, div_3);
173
- });
155
+ if (__prev.a !== __a) {
156
+ _$_.set_text(__prev._expression_6, __prev.a = __a);
157
+ }
174
158
  }
175
159
 
176
- export function ToggleButton() {
177
- return _$_.tsrx_element((__anchor, __block) => {
178
- let lazy_6 = _$_.track(false, __block, 'be823ec7');
179
- var div_4 = root_4();
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
+ };
180
170
 
181
171
  {
182
- var button_5 = _$_.hydrating ? _$_.hydrate_child() : div_4.firstChild;
172
+ var expression_6 = _$_.hydrating ? _$_.hydrate_text() : button_5.firstChild;
173
+ }
174
+ }
183
175
 
184
- button_5.__click = () => {
185
- _$_.set(lazy_6, !lazy_6.value);
186
- };
176
+ _$_.render(render, { a: ' ', _isOn: isOn, _expression_6: expression_6 });
177
+ _$_.append(__anchor, div_4);
178
+ }
187
179
 
188
- {
189
- var expression_6 = _$_.hydrating ? _$_.hydrate_child(true) : button_5.firstChild;
180
+ ToggleButton[_$_.$r] = ToggleButton_render;
190
181
 
191
- _$_.pop(button_5);
192
- }
193
- }
182
+ var root_5 = _$_.template(`<button class="child-btn"> </button>`, 0);
194
183
 
195
- _$_.render(() => {
196
- _$_.set_text(expression_6, lazy_6.value ? 'ON' : 'OFF');
197
- });
184
+ function render_1(__prev) {
185
+ var __a = __prev._props.label;
198
186
 
199
- _$_.append(__anchor, div_4);
200
- });
187
+ if (__prev.a !== __a) {
188
+ _$_.set_text(__prev._expression_7, __prev.a = __a);
189
+ }
201
190
  }
202
191
 
203
- export function ChildButton(props) {
204
- return _$_.tsrx_element((__anchor, __block) => {
205
- 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
+ }
206
200
 
207
- _$_.render_event('Click', button_6, () => props.onClick);
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;
215
+
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;
208
224
 
209
225
  {
210
- var expression_7 = _$_.hydrating ? _$_.hydrate_child(true) : button_6.firstChild;
226
+ var expression_8 = _$_.hydrating ? _$_.hydrate_child() : span_6.firstChild;
211
227
 
212
- _$_.pop(button_6);
228
+ _$_.expression(expression_8, () => count.value);
229
+ _$_.hydrating && _$_.pop(span_6);
213
230
  }
214
231
 
215
- _$_.render(() => {
216
- _$_.set_text(expression_7, props.label);
217
- });
232
+ _$_.hydrating && _$_.pop(div_5);
233
+ }
218
234
 
219
- _$_.append(__anchor, button_6);
220
- });
235
+ _$_.append(__anchor, div_5);
221
236
  }
222
237
 
223
- export function ParentWithChildButton() {
224
- return _$_.tsrx_element((__anchor, __block) => {
225
- let lazy_7 = _$_.track(0, __block, 'dcc2e0f9');
226
- var div_5 = root_6();
238
+ ParentWithChildButton[_$_.$r] = ParentWithChildButton_render;
227
239
 
228
- {
229
- var node = _$_.hydrating ? _$_.hydrate_child() : div_5.firstChild;
240
+ import { track } from 'ripple';
230
241
 
231
- _$_.render_component(ChildButton, node, {
232
- onClick: () => {
233
- _$_.update(lazy_7);
234
- },
235
- label: "Click me"
236
- });
242
+ export function ClickCounter() {
243
+ return _$_.tsrx_element(ClickCounter_render);
244
+ }
237
245
 
238
- var span_6 = _$_.hydrating ? _$_.hydrate_sibling() : node.nextSibling;
246
+ export function IncrementDecrement() {
247
+ return _$_.tsrx_element(IncrementDecrement_render);
248
+ }
239
249
 
240
- {
241
- var expression_8 = _$_.hydrating ? _$_.hydrate_child(true) : span_6.firstChild;
250
+ export function MultipleEvents() {
251
+ return _$_.tsrx_element(MultipleEvents_render);
252
+ }
242
253
 
243
- _$_.pop(span_6);
244
- }
254
+ export function MultiStateUpdate() {
255
+ return _$_.tsrx_element(MultiStateUpdate_render);
256
+ }
245
257
 
246
- _$_.pop(div_5);
247
- }
258
+ export function ToggleButton() {
259
+ return _$_.tsrx_element(ToggleButton_render);
260
+ }
248
261
 
249
- _$_.render(() => {
250
- _$_.set_text(expression_8, lazy_7.value);
251
- });
262
+ export function ChildButton(props) {
263
+ return _$_.tsrx_element(ChildButton_render, props);
264
+ }
252
265
 
253
- _$_.append(__anchor, div_5);
254
- });
266
+ export function ParentWithChildButton() {
267
+ return _$_.tsrx_element(ParentWithChildButton_render);
255
268
  }
256
269
 
257
270
  _$_.delegate(['click']);