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,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 = _$_.hydrating ? _$_.hydrate_child() : div.firstChild;
21
- var node = _$_.hydrating ? _$_.hydrate_sibling() : h1.nextSibling;
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 = _$_.hydrating ? _$_.hydrate_child() : div_2.firstChild;
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 = _$_.hydrating ? _$_.hydrate_sibling() : button.nextSibling;
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 = _$_.hydrating ? _$_.hydrate_child() : div_4.firstChild;
87
- var node_2 = _$_.hydrating ? _$_.hydrate_sibling() : div_5.nextSibling;
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 = _$_.hydrating ? _$_.hydrate_child() : div_7.firstChild;
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 = _$_.hydrating ? _$_.hydrate_sibling() : div_8.nextSibling;
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,150 +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 = _$_.hydrating ? _$_.hydrate_child(true) : div.firstChild;
38
+ var expression_1 = _$_.hydrating ? _$_.hydrate_child() : span.firstChild;
19
39
 
20
- _$_.pop(div);
40
+ _$_.expression(expression_1, () => count.value);
41
+ _$_.hydrating && _$_.pop(span);
21
42
  }
43
+ }
22
44
 
23
- _$_.render(() => {
24
- _$_.set_text(expression, lazy.value);
25
- });
45
+ _$_.append(__anchor, div_1);
46
+ }
26
47
 
27
- _$_.append(__anchor, div);
28
- });
48
+ CounterWithInitial[_$_.$r] = CounterWithInitial_render;
49
+
50
+ function CounterWrapper_render(__anchor, __block) {
51
+ _$_.render_component(CounterWithInitial, __anchor, { initial: 5 });
29
52
  }
30
53
 
31
- export function CounterWithInitial(props) {
32
- return _$_.tsrx_element((__anchor, __block) => {
33
- let lazy_1 = _$_.track(props.initial, __block, '03ea4348');
34
- var div_1 = root_1();
54
+ CounterWrapper[_$_.$r] = CounterWrapper_render;
35
55
 
36
- {
37
- var span = _$_.hydrating ? _$_.hydrate_child() : div_1.firstChild;
56
+ var root_2 = _$_.template(`<div class="sum"> </div>`, 0);
38
57
 
39
- {
40
- var expression_1 = _$_.hydrating ? _$_.hydrate_child() : span.firstChild;
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();
41
63
 
42
- _$_.expression(expression_1, () => lazy_1.value);
43
- _$_.pop(span);
44
- }
45
- }
64
+ {
65
+ var expression_2 = _$_.hydrating ? _$_.hydrate_child() : div_2.firstChild;
46
66
 
47
- _$_.append(__anchor, div_1);
48
- });
49
- }
67
+ _$_.expression(expression_2, sum);
68
+ _$_.hydrating && _$_.pop(div_2);
69
+ }
50
70
 
51
- export function CounterWrapper() {
52
- return _$_.tsrx_element((__anchor, __block) => {
53
- _$_.render_component(CounterWithInitial, __anchor, { initial: 5 });
54
- });
71
+ _$_.append(__anchor, div_2);
55
72
  }
56
73
 
57
- export function ComputedValues() {
58
- return _$_.tsrx_element((__anchor, __block) => {
59
- let lazy_2 = _$_.track(2, __block, 'b78281db');
60
- let lazy_3 = _$_.track(3, __block, 'a0cf6c6d');
61
- const sum = () => lazy_2.value + lazy_3.value;
62
- var div_2 = root_2();
74
+ ComputedValues[_$_.$r] = ComputedValues_render;
63
75
 
64
- {
65
- var expression_2 = _$_.hydrating ? _$_.hydrate_child() : div_2.firstChild;
76
+ var root_3 = _$_.template(`<div class="multiple-tracked"><div class="x"> </div><div class="y"> </div><div class="z"> </div></div>`, 0);
66
77
 
67
- _$_.expression(expression_2, sum);
68
- _$_.pop(div_2);
69
- }
78
+ function render_1(__prev) {
79
+ var __a = __prev._x.value;
70
80
 
71
- _$_.append(__anchor, div_2);
72
- });
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
+ }
73
96
  }
74
97
 
75
- export function MultipleTracked() {
76
- return _$_.tsrx_element((__anchor, __block) => {
77
- let lazy_4 = _$_.track(10, __block, '843522de');
78
- let lazy_5 = _$_.track(20, __block, '1308996d');
79
- let lazy_6 = _$_.track(30, __block, '048c3fd0');
80
- var div_3 = root_3();
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;
81
106
 
82
107
  {
83
- var div_4 = _$_.hydrating ? _$_.hydrate_child() : div_3.firstChild;
108
+ var expression_3 = _$_.hydrating ? _$_.hydrate_text() : div_4.firstChild;
109
+ }
84
110
 
85
- {
86
- var expression_3 = _$_.hydrating ? _$_.hydrate_child(true) : div_4.firstChild;
111
+ var div_5 = _$_.hydrating ? _$_.hydrate_sibling() : div_4.nextSibling;
87
112
 
88
- _$_.pop(div_4);
89
- }
113
+ {
114
+ var expression_4 = _$_.hydrating ? _$_.hydrate_text() : div_5.firstChild;
115
+ }
90
116
 
91
- var div_5 = _$_.hydrating ? _$_.hydrate_sibling() : div_4.nextSibling;
117
+ var div_6 = _$_.hydrating ? _$_.hydrate_sibling() : div_5.nextSibling;
92
118
 
93
- {
94
- var expression_4 = _$_.hydrating ? _$_.hydrate_child(true) : div_5.firstChild;
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
134
+ });
95
135
 
96
- _$_.pop(div_5);
97
- }
136
+ _$_.append(__anchor, div_3);
137
+ }
98
138
 
99
- var div_6 = _$_.hydrating ? _$_.hydrate_sibling() : div_5.nextSibling;
139
+ MultipleTracked[_$_.$r] = MultipleTracked_render;
100
140
 
101
- {
102
- var expression_5 = _$_.hydrating ? _$_.hydrate_child(true) : div_6.firstChild;
141
+ var root_4 = _$_.template(`<div class="name"> </div>`, 0);
103
142
 
104
- _$_.pop(div_6);
105
- }
106
- }
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();
107
148
 
108
- _$_.render(
109
- (__prev) => {
110
- var __a = lazy_4.value;
149
+ {
150
+ var expression_6 = _$_.hydrating ? _$_.hydrate_child() : div_7.firstChild;
111
151
 
112
- if (__prev.a !== __a) {
113
- _$_.set_text(expression_3, __prev.a = __a);
114
- }
152
+ _$_.expression(expression_6, fullName);
153
+ _$_.hydrating && _$_.pop(div_7);
154
+ }
115
155
 
116
- var __b = lazy_5.value;
156
+ _$_.append(__anchor, div_7);
157
+ }
117
158
 
118
- if (__prev.b !== __b) {
119
- _$_.set_text(expression_4, __prev.b = __b);
120
- }
159
+ DerivedState[_$_.$r] = DerivedState_render;
121
160
 
122
- var __c = lazy_6.value;
161
+ import { track } from 'ripple';
123
162
 
124
- if (__prev.c !== __c) {
125
- _$_.set_text(expression_5, __prev.c = __c);
126
- }
127
- },
128
- { a: ' ', b: ' ', c: ' ' }
129
- );
163
+ export function TrackedState() {
164
+ return _$_.tsrx_element(TrackedState_render);
165
+ }
130
166
 
131
- _$_.append(__anchor, div_3);
132
- });
167
+ export function CounterWithInitial(props) {
168
+ return _$_.tsrx_element(CounterWithInitial_render, props);
133
169
  }
134
170
 
135
- export function DerivedState() {
136
- return _$_.tsrx_element((__anchor, __block) => {
137
- let lazy_7 = _$_.track('John', __block, '6015eeca');
138
- let lazy_8 = _$_.track('Doe', __block, '4fa9a20e');
139
- const fullName = () => `${lazy_7.value} ${lazy_8.value}`;
140
- var div_7 = root_4();
171
+ export function CounterWrapper() {
172
+ return _$_.tsrx_element(CounterWrapper_render);
173
+ }
141
174
 
142
- {
143
- var expression_6 = _$_.hydrating ? _$_.hydrate_child() : div_7.firstChild;
175
+ export function ComputedValues() {
176
+ return _$_.tsrx_element(ComputedValues_render);
177
+ }
144
178
 
145
- _$_.expression(expression_6, fullName);
146
- _$_.pop(div_7);
147
- }
179
+ export function MultipleTracked() {
180
+ return _$_.tsrx_element(MultipleTracked_render);
181
+ }
148
182
 
149
- _$_.append(__anchor, div_7);
150
- });
183
+ export function DerivedState() {
184
+ return _$_.tsrx_element(DerivedState_render);
151
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() {