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,137 +2,129 @@
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
4
  var root_1 = _$_.template(`<div class="portal-content">Portal content</div>`, 0);
5
- var root = _$_.template(`<div class="container"><h1>Main Content</h1><!></div>`, 0);
6
- var root_3 = _$_.template(`<div class="portal-content">Portal is visible</div>`, 0);
7
- var root_2 = _$_.template(`<div class="container"><button class="toggle">Toggle</button><!></div>`, 0);
8
- var root_5 = _$_.template(`<div class="portal-content">Modal content</div>`, 0);
9
- var root_4 = _$_.template(`<div><div class="main-content">Main page content</div><!><div class="footer">Footer</div></div>`, 0);
10
- var root_7 = _$_.template(`<div class="portal-content">Portal content</div>`, 0);
11
- var root_6 = _$_.template(`<div class="outer"><div class="inner"><span>Nested content</span></div><!></div>`, 0);
5
+ var root = _$_.template(`<div class="container"><h1>Main Content</h1></div>`, 0);
12
6
 
13
- import { Portal, track } from 'ripple';
7
+ function SimplePortal_render(__anchor, __block) {
8
+ var div = root();
14
9
 
15
- export function SimplePortal() {
16
- return _$_.tsrx_element((__anchor, __block) => {
17
- var div = root();
10
+ {
11
+ var h1 = _$_.hydrating ? _$_.hydrate_child() : div.firstChild;
12
+ var node = _$_.hydrating ? _$_.hydrate_sibling() : _$_.append_into(div);
18
13
 
19
- {
20
- var h1 = _$_.child(div);
21
- var node = _$_.sibling(h1);
14
+ _$_.portal(node, () => typeof document !== 'undefined' ? document.body : null, (__anchor, __block) => {
15
+ var div_1 = root_1();
22
16
 
23
- _$_.render_component(Portal, node, {
24
- get target() {
25
- return typeof document !== 'undefined' ? document.body : null;
26
- },
17
+ _$_.append(__anchor, div_1);
18
+ });
27
19
 
28
- children: _$_.tsrx_element((__anchor, __block) => {
29
- var div_1 = root_1();
20
+ _$_.hydrating && _$_.pop(div);
21
+ }
30
22
 
31
- _$_.append(__anchor, div_1);
32
- })
33
- });
23
+ _$_.append(__anchor, div);
24
+ }
34
25
 
35
- _$_.pop(div);
36
- }
26
+ SimplePortal[_$_.$r] = SimplePortal_render;
37
27
 
38
- _$_.append(__anchor, div);
39
- });
40
- }
28
+ var root_3 = _$_.template(`<div class="portal-content">Portal is visible</div>`, 0);
41
29
 
42
- export function ConditionalPortal() {
43
- return _$_.tsrx_element((__anchor, __block) => {
44
- let lazy = _$_.track(true, __block, '4f6df174');
45
- var div_2 = root_2();
30
+ function consequent(__anchor, show) {
31
+ _$_.portal(__anchor, () => typeof document !== 'undefined' ? document.body : null, (__anchor, __block) => {
32
+ var div_3 = root_3();
46
33
 
47
- {
48
- var button = _$_.child(div_2);
34
+ _$_.append(__anchor, div_3);
35
+ });
36
+ }
49
37
 
50
- button.__click = () => _$_.set(lazy, !lazy.value);
38
+ function if_1(show) {
39
+ if (show.value) return consequent;
40
+ }
51
41
 
52
- var node_1 = _$_.sibling(button);
42
+ var root_2 = _$_.template(`<div class="container"><button class="toggle">Toggle</button><!></div>`, 0);
53
43
 
54
- {
55
- var consequent = (__anchor) => {
56
- _$_.render_component(Portal, __anchor, {
57
- get target() {
58
- return typeof document !== 'undefined' ? document.body : null;
59
- },
44
+ function ConditionalPortal_render(__anchor, __block) {
45
+ const show = _$_.track(true, __block, '4f6df174');
46
+ var div_2 = root_2();
60
47
 
61
- children: _$_.tsrx_element((__anchor, __block) => {
62
- var div_3 = root_3();
48
+ {
49
+ var button = _$_.hydrating ? _$_.hydrate_child() : div_2.firstChild;
63
50
 
64
- _$_.append(__anchor, div_3);
65
- })
66
- });
67
- };
51
+ button.__click = () => show.value = !show.value;
68
52
 
69
- _$_.if(node_1, (__render) => {
70
- if (lazy.value) __render(consequent);
71
- });
72
- }
53
+ var node_1 = _$_.hydrating ? _$_.hydrate_sibling() : button.nextSibling;
73
54
 
74
- _$_.pop(div_2);
75
- }
55
+ _$_.if(node_1, if_1, false, show);
56
+ _$_.hydrating && _$_.pop(div_2);
57
+ }
76
58
 
77
- _$_.append(__anchor, div_2);
78
- });
59
+ _$_.append(__anchor, div_2);
79
60
  }
80
61
 
81
- export function PortalWithMainContent() {
82
- return _$_.tsrx_element((__anchor, __block) => {
83
- var div_4 = root_4();
62
+ ConditionalPortal[_$_.$r] = ConditionalPortal_render;
84
63
 
85
- {
86
- var div_5 = _$_.child(div_4);
87
- var node_2 = _$_.sibling(div_5);
64
+ var root_5 = _$_.template(`<div class="portal-content">Modal content</div>`, 0);
65
+ var root_4 = _$_.template(`<div><div class="main-content">Main page content</div><!><div class="footer">Footer</div></div>`, 0);
88
66
 
89
- _$_.render_component(Portal, node_2, {
90
- get target() {
91
- return typeof document !== 'undefined' ? document.body : null;
92
- },
67
+ function PortalWithMainContent_render(__anchor, __block) {
68
+ var div_4 = root_4();
93
69
 
94
- children: _$_.tsrx_element((__anchor, __block) => {
95
- var div_6 = root_5();
70
+ {
71
+ var div_5 = _$_.hydrating ? _$_.hydrate_child() : div_4.firstChild;
72
+ var node_2 = _$_.hydrating ? _$_.hydrate_sibling() : div_5.nextSibling;
96
73
 
97
- _$_.append(__anchor, div_6);
98
- })
99
- });
74
+ _$_.portal(node_2, () => typeof document !== 'undefined' ? document.body : null, (__anchor, __block) => {
75
+ var div_6 = root_5();
100
76
 
101
- _$_.pop(div_4);
102
- }
77
+ _$_.append(__anchor, div_6);
78
+ });
103
79
 
104
- _$_.append(__anchor, div_4);
105
- });
80
+ _$_.hydrating && _$_.pop(div_4);
81
+ }
82
+
83
+ _$_.append(__anchor, div_4);
106
84
  }
107
85
 
108
- export function NestedContentWithPortal() {
109
- return _$_.tsrx_element((__anchor, __block) => {
110
- var div_7 = root_6();
86
+ PortalWithMainContent[_$_.$r] = PortalWithMainContent_render;
87
+
88
+ var root_7 = _$_.template(`<div class="portal-content">Portal content</div>`, 0);
89
+ var root_6 = _$_.template(`<div class="outer"><div class="inner"><span>Nested content</span></div></div>`, 0);
111
90
 
112
- {
113
- var div_8 = _$_.child(div_7);
91
+ function NestedContentWithPortal_render(__anchor, __block) {
92
+ var div_7 = root_6();
114
93
 
115
- _$_.pop(div_8);
94
+ {
95
+ var div_8 = _$_.hydrating ? _$_.hydrate_child() : div_7.firstChild;
96
+ var node_3 = _$_.hydrating ? _$_.hydrate_sibling() : _$_.append_into(div_7);
116
97
 
117
- var node_3 = _$_.sibling(div_8);
98
+ _$_.portal(node_3, () => typeof document !== 'undefined' ? document.body : null, (__anchor, __block) => {
99
+ var div_9 = root_7();
118
100
 
119
- _$_.render_component(Portal, node_3, {
120
- get target() {
121
- return typeof document !== 'undefined' ? document.body : null;
122
- },
101
+ _$_.append(__anchor, div_9);
102
+ });
123
103
 
124
- children: _$_.tsrx_element((__anchor, __block) => {
125
- var div_9 = root_7();
104
+ _$_.hydrating && _$_.pop(div_7);
105
+ }
126
106
 
127
- _$_.append(__anchor, div_9);
128
- })
129
- });
107
+ _$_.append(__anchor, div_7);
108
+ }
130
109
 
131
- _$_.pop(div_7);
132
- }
110
+ NestedContentWithPortal[_$_.$r] = NestedContentWithPortal_render;
133
111
 
134
- _$_.append(__anchor, div_7);
135
- });
112
+ import { Portal, track } from 'ripple';
113
+
114
+ export function SimplePortal() {
115
+ return _$_.tsrx_element(SimplePortal_render);
116
+ }
117
+
118
+ export function ConditionalPortal() {
119
+ return _$_.tsrx_element(ConditionalPortal_render);
120
+ }
121
+
122
+ export function PortalWithMainContent() {
123
+ return _$_.tsrx_element(PortalWithMainContent_render);
124
+ }
125
+
126
+ export function NestedContentWithPortal() {
127
+ return _$_.tsrx_element(NestedContentWithPortal_render);
136
128
  }
137
129
 
138
130
  _$_.delegate(['click']);
@@ -2,127 +2,184 @@
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
4
  var root = _$_.template(`<div class="count"> </div>`, 0);
5
+
6
+ function render(__prev) {
7
+ var __a = __prev._count.value;
8
+
9
+ if (__prev.a !== __a) {
10
+ _$_.set_text(__prev._expression, __prev.a = __a);
11
+ }
12
+ }
13
+
14
+ function TrackedState_render(__anchor, __block) {
15
+ const count = _$_.track(0, __block, 'c1818584');
16
+ var div = root();
17
+
18
+ {
19
+ var expression = _$_.hydrating ? _$_.hydrate_text() : div.firstChild;
20
+ }
21
+
22
+ _$_.render(render, { a: ' ', _count: count, _expression: expression });
23
+ _$_.append(__anchor, div);
24
+ }
25
+
26
+ TrackedState[_$_.$r] = TrackedState_render;
27
+
5
28
  var root_1 = _$_.template(`<div><span class="count"> </span></div>`, 0);
6
- var root_2 = _$_.template(`<div class="sum"> </div>`, 0);
7
- var root_3 = _$_.template(`<div class="multiple-tracked"><div class="x"> </div><div class="y"> </div><div class="z"> </div></div>`, 0);
8
- var root_4 = _$_.template(`<div class="name"> </div>`, 0);
9
29
 
10
- import { track } from 'ripple';
30
+ function CounterWithInitial_render(__anchor, __block, props) {
31
+ const count = _$_.track(props.initial, __block, '03ea4348');
32
+ var div_1 = root_1();
11
33
 
12
- export function TrackedState() {
13
- return _$_.tsrx_element((__anchor, __block) => {
14
- let lazy = _$_.track(0, __block, 'c1818584');
15
- var div = root();
34
+ {
35
+ var span = _$_.hydrating ? _$_.hydrate_child() : div_1.firstChild;
16
36
 
17
37
  {
18
- var expression = _$_.child(div);
38
+ var expression_1 = _$_.hydrating ? _$_.hydrate_child() : span.firstChild;
19
39
 
20
- _$_.expression(expression, () => lazy.value);
21
- _$_.pop(div);
40
+ _$_.expression(expression_1, () => count.value);
41
+ _$_.hydrating && _$_.pop(span);
22
42
  }
43
+ }
23
44
 
24
- _$_.append(__anchor, div);
25
- });
45
+ _$_.append(__anchor, div_1);
26
46
  }
27
47
 
28
- export function CounterWithInitial(props) {
29
- return _$_.tsrx_element((__anchor, __block) => {
30
- let lazy_1 = _$_.track(props.initial, __block, '03ea4348');
31
- var div_1 = root_1();
48
+ CounterWithInitial[_$_.$r] = CounterWithInitial_render;
32
49
 
33
- {
34
- var span = _$_.child(div_1);
50
+ function CounterWrapper_render(__anchor, __block) {
51
+ _$_.render_component(CounterWithInitial, __anchor, { initial: 5 });
52
+ }
35
53
 
36
- {
37
- var expression_1 = _$_.child(span);
54
+ CounterWrapper[_$_.$r] = CounterWrapper_render;
38
55
 
39
- _$_.expression(expression_1, () => lazy_1.value);
40
- _$_.pop(span);
41
- }
42
- }
56
+ var root_2 = _$_.template(`<div class="sum"> </div>`, 0);
43
57
 
44
- _$_.append(__anchor, div_1);
45
- });
58
+ function ComputedValues_render(__anchor, __block) {
59
+ const a = _$_.track(2, __block, 'b78281db');
60
+ const b = _$_.track(3, __block, 'a0cf6c6d');
61
+ const sum = () => a.value + b.value;
62
+ var div_2 = root_2();
63
+
64
+ {
65
+ var expression_2 = _$_.hydrating ? _$_.hydrate_child() : div_2.firstChild;
66
+
67
+ _$_.expression(expression_2, sum);
68
+ _$_.hydrating && _$_.pop(div_2);
69
+ }
70
+
71
+ _$_.append(__anchor, div_2);
46
72
  }
47
73
 
48
- export function CounterWrapper() {
49
- return _$_.tsrx_element((__anchor, __block) => {
50
- _$_.render_component(CounterWithInitial, __anchor, { initial: 5 });
51
- });
74
+ ComputedValues[_$_.$r] = ComputedValues_render;
75
+
76
+ var root_3 = _$_.template(`<div class="multiple-tracked"><div class="x"> </div><div class="y"> </div><div class="z"> </div></div>`, 0);
77
+
78
+ function render_1(__prev) {
79
+ var __a = __prev._x.value;
80
+
81
+ if (__prev.a !== __a) {
82
+ _$_.set_text(__prev._expression_3, __prev.a = __a);
83
+ }
84
+
85
+ var __b = __prev._y.value;
86
+
87
+ if (__prev.b !== __b) {
88
+ _$_.set_text(__prev._expression_4, __prev.b = __b);
89
+ }
90
+
91
+ var __c = __prev._z.value;
92
+
93
+ if (__prev.c !== __c) {
94
+ _$_.set_text(__prev._expression_5, __prev.c = __c);
95
+ }
52
96
  }
53
97
 
54
- export function ComputedValues() {
55
- return _$_.tsrx_element((__anchor, __block) => {
56
- let lazy_2 = _$_.track(2, __block, 'b78281db');
57
- let lazy_3 = _$_.track(3, __block, 'a0cf6c6d');
58
- const sum = () => lazy_2.value + lazy_3.value;
59
- var div_2 = root_2();
98
+ function MultipleTracked_render(__anchor, __block) {
99
+ const x = _$_.track(10, __block, '843522de');
100
+ const y = _$_.track(20, __block, '1308996d');
101
+ const z = _$_.track(30, __block, '048c3fd0');
102
+ var div_3 = root_3();
103
+
104
+ {
105
+ var div_4 = _$_.hydrating ? _$_.hydrate_child() : div_3.firstChild;
60
106
 
61
107
  {
62
- var expression_2 = _$_.child(div_2);
108
+ var expression_3 = _$_.hydrating ? _$_.hydrate_text() : div_4.firstChild;
109
+ }
63
110
 
64
- _$_.expression(expression_2, sum);
65
- _$_.pop(div_2);
111
+ var div_5 = _$_.hydrating ? _$_.hydrate_sibling() : div_4.nextSibling;
112
+
113
+ {
114
+ var expression_4 = _$_.hydrating ? _$_.hydrate_text() : div_5.firstChild;
66
115
  }
67
116
 
68
- _$_.append(__anchor, div_2);
117
+ var div_6 = _$_.hydrating ? _$_.hydrate_sibling() : div_5.nextSibling;
118
+
119
+ {
120
+ var expression_5 = _$_.hydrating ? _$_.hydrate_text() : div_6.firstChild;
121
+ }
122
+ }
123
+
124
+ _$_.render(render_1, {
125
+ a: ' ',
126
+ b: ' ',
127
+ c: ' ',
128
+ _x: x,
129
+ _expression_3: expression_3,
130
+ _y: y,
131
+ _expression_4: expression_4,
132
+ _z: z,
133
+ _expression_5: expression_5
69
134
  });
70
- }
71
135
 
72
- export function MultipleTracked() {
73
- return _$_.tsrx_element((__anchor, __block) => {
74
- let lazy_4 = _$_.track(10, __block, '843522de');
75
- let lazy_5 = _$_.track(20, __block, '1308996d');
76
- let lazy_6 = _$_.track(30, __block, '048c3fd0');
77
- var div_3 = root_3();
136
+ _$_.append(__anchor, div_3);
137
+ }
78
138
 
79
- {
80
- var div_4 = _$_.child(div_3);
139
+ MultipleTracked[_$_.$r] = MultipleTracked_render;
81
140
 
82
- {
83
- var expression_3 = _$_.child(div_4);
141
+ var root_4 = _$_.template(`<div class="name"> </div>`, 0);
84
142
 
85
- _$_.expression(expression_3, () => lazy_4.value);
86
- _$_.pop(div_4);
87
- }
143
+ function DerivedState_render(__anchor, __block) {
144
+ const firstName = _$_.track('John', __block, '6015eeca');
145
+ const lastName = _$_.track('Doe', __block, '4fa9a20e');
146
+ const fullName = () => `${firstName.value} ${lastName.value}`;
147
+ var div_7 = root_4();
88
148
 
89
- var div_5 = _$_.sibling(div_4);
149
+ {
150
+ var expression_6 = _$_.hydrating ? _$_.hydrate_child() : div_7.firstChild;
90
151
 
91
- {
92
- var expression_4 = _$_.child(div_5);
152
+ _$_.expression(expression_6, fullName);
153
+ _$_.hydrating && _$_.pop(div_7);
154
+ }
93
155
 
94
- _$_.expression(expression_4, () => lazy_5.value);
95
- _$_.pop(div_5);
96
- }
156
+ _$_.append(__anchor, div_7);
157
+ }
97
158
 
98
- var div_6 = _$_.sibling(div_5);
159
+ DerivedState[_$_.$r] = DerivedState_render;
99
160
 
100
- {
101
- var expression_5 = _$_.child(div_6);
161
+ import { track } from 'ripple';
102
162
 
103
- _$_.expression(expression_5, () => lazy_6.value);
104
- _$_.pop(div_6);
105
- }
106
- }
163
+ export function TrackedState() {
164
+ return _$_.tsrx_element(TrackedState_render);
165
+ }
107
166
 
108
- _$_.append(__anchor, div_3);
109
- });
167
+ export function CounterWithInitial(props) {
168
+ return _$_.tsrx_element(CounterWithInitial_render, props);
110
169
  }
111
170
 
112
- export function DerivedState() {
113
- return _$_.tsrx_element((__anchor, __block) => {
114
- let lazy_7 = _$_.track('John', __block, '6015eeca');
115
- let lazy_8 = _$_.track('Doe', __block, '4fa9a20e');
116
- const fullName = () => `${lazy_7.value} ${lazy_8.value}`;
117
- var div_7 = root_4();
171
+ export function CounterWrapper() {
172
+ return _$_.tsrx_element(CounterWrapper_render);
173
+ }
118
174
 
119
- {
120
- var expression_6 = _$_.child(div_7);
175
+ export function ComputedValues() {
176
+ return _$_.tsrx_element(ComputedValues_render);
177
+ }
121
178
 
122
- _$_.expression(expression_6, fullName);
123
- _$_.pop(div_7);
124
- }
179
+ export function MultipleTracked() {
180
+ return _$_.tsrx_element(MultipleTracked_render);
181
+ }
125
182
 
126
- _$_.append(__anchor, div_7);
127
- });
183
+ export function DerivedState() {
184
+ return _$_.tsrx_element(DerivedState_render);
128
185
  }
@@ -2,34 +2,43 @@
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
4
  var root = _$_.template(`<div class="ready">ready</div>`, 1, 1);
5
- var root_1 = _$_.template(`<div class="ready">ready</div>`, 1, 1);
6
5
 
7
- export function GuardReturnRenders() {
8
- return _$_.tsrx_element((__anchor, __block) => {
9
- const ready = true;
6
+ function GuardReturnRenders_render(__anchor, __block) {
7
+ const ready = true;
10
8
 
11
- if (!ready) {
12
- return null;
13
- }
9
+ if (!ready) {
10
+ return null;
11
+ }
14
12
 
15
- var fragment = root();
13
+ var fragment = root();
16
14
 
17
- _$_.append(__anchor, fragment);
18
- });
15
+ _$_.append(__anchor, fragment);
19
16
  }
20
17
 
21
- export function GuardReturnNull() {
22
- return _$_.tsrx_element((__anchor, __block) => {
23
- const ready = false;
18
+ GuardReturnRenders[_$_.$r] = GuardReturnRenders_render;
24
19
 
25
- if (!ready) {
26
- return null;
27
- }
20
+ var root_1 = _$_.template(`<div class="ready">ready</div>`, 1, 1);
28
21
 
29
- var fragment_1 = root_1();
22
+ function GuardReturnNull_render(__anchor, __block) {
23
+ const ready = false;
30
24
 
31
- _$_.append(__anchor, fragment_1);
32
- });
25
+ if (!ready) {
26
+ return null;
27
+ }
28
+
29
+ var fragment_1 = root_1();
30
+
31
+ _$_.append(__anchor, fragment_1);
32
+ }
33
+
34
+ GuardReturnNull[_$_.$r] = GuardReturnNull_render;
35
+
36
+ export function GuardReturnRenders() {
37
+ return _$_.tsrx_element(GuardReturnRenders_render);
38
+ }
39
+
40
+ export function GuardReturnNull() {
41
+ return _$_.tsrx_element(GuardReturnNull_render);
33
42
  }
34
43
 
35
44
  export function StringReturn() {