ripple 0.3.128 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/CHANGELOG.md +267 -0
  2. package/package.json +10 -4
  3. package/src/runtime/element.js +23 -6
  4. package/src/runtime/index-client.js +81 -41
  5. package/src/runtime/index-server.js +1 -0
  6. package/src/runtime/internal/client/blocks.js +173 -91
  7. package/src/runtime/internal/client/component.js +4 -30
  8. package/src/runtime/internal/client/composite.js +12 -13
  9. package/src/runtime/internal/client/constants.js +9 -0
  10. package/src/runtime/internal/client/context.js +12 -19
  11. package/src/runtime/internal/client/css.js +7 -9
  12. package/src/runtime/internal/client/events.js +178 -90
  13. package/src/runtime/internal/client/expression.js +45 -25
  14. package/src/runtime/internal/client/for.js +409 -129
  15. package/src/runtime/internal/client/head.js +10 -5
  16. package/src/runtime/internal/client/html.js +1 -0
  17. package/src/runtime/internal/client/hydration.js +152 -10
  18. package/src/runtime/internal/client/if.js +239 -50
  19. package/src/runtime/internal/client/index.js +4 -12
  20. package/src/runtime/internal/client/operations.js +40 -61
  21. package/src/runtime/internal/client/portal.js +163 -85
  22. package/src/runtime/internal/client/render.js +39 -39
  23. package/src/runtime/internal/client/rpc.js +3 -3
  24. package/src/runtime/internal/client/runtime.js +592 -433
  25. package/src/runtime/internal/client/selector.js +5 -2
  26. package/src/runtime/internal/client/template.js +133 -158
  27. package/src/runtime/internal/client/transport.js +38 -0
  28. package/src/runtime/internal/client/try.js +465 -426
  29. package/src/runtime/internal/client/types.d.ts +56 -23
  30. package/src/runtime/internal/client/utils.js +1 -3
  31. package/src/runtime/internal/server/dynamic.js +20 -21
  32. package/src/runtime/internal/server/index.js +325 -275
  33. package/src/runtime/internal/server/rpc.js +3 -2
  34. package/src/runtime/internal/server/transport.js +16 -0
  35. package/src/runtime/transport.js +21 -0
  36. package/tests/client/__snapshots__/for.test.tsrx.snap +0 -5
  37. package/tests/client/array/array.copy-within.test.tsrx +12 -12
  38. package/tests/client/array/array.derived.test.tsrx +46 -46
  39. package/tests/client/array/array.iteration.test.tsrx +10 -10
  40. package/tests/client/array/array.mutations.test.tsrx +20 -20
  41. package/tests/client/array/array.static.test.tsrx +11 -11
  42. package/tests/client/array/array.to-methods.test.tsrx +6 -6
  43. package/tests/client/async-suspend.test.tsrx +74 -75
  44. package/tests/client/basic/basic.attributes.test.tsrx +86 -83
  45. package/tests/client/basic/basic.collections.test.tsrx +12 -12
  46. package/tests/client/basic/basic.components.test.tsrx +99 -25
  47. package/tests/client/basic/basic.errors.test.tsrx +18 -18
  48. package/tests/client/basic/basic.events.test.tsrx +42 -42
  49. package/tests/client/basic/basic.get-set.test.tsrx +8 -8
  50. package/tests/client/basic/basic.reactivity.test.tsrx +73 -38
  51. package/tests/client/basic/basic.rendering.test.tsrx +25 -25
  52. package/tests/client/basic/basic.utilities.test.tsrx +3 -3
  53. package/tests/client/boundaries.test.tsrx +8 -8
  54. package/tests/client/boxed-locals.test.tsrx +452 -0
  55. package/tests/client/compiler/__snapshots__/compiler.assignments.test.tsrx.snap +6 -6
  56. package/tests/client/compiler/compiler.assignments.test.tsrx +9 -73
  57. package/tests/client/compiler/compiler.attributes.test.tsrx +23 -23
  58. package/tests/client/compiler/compiler.basic.test.tsrx +15 -60
  59. package/tests/client/compiler/compiler.tracked-access.test.tsrx +18 -43
  60. package/tests/client/compiler/compiler.try-in-function.test.tsrx +2 -2
  61. package/tests/client/composite/__snapshots__/composite.render.test.tsrx.snap +0 -1
  62. package/tests/client/composite/composite.dynamic-components.test.tsrx +77 -6
  63. package/tests/client/composite/composite.props.test.tsrx +149 -12
  64. package/tests/client/composite/composite.reactivity.test.tsrx +51 -52
  65. package/tests/client/composite/composite.render.test.tsrx +26 -9
  66. package/tests/client/css/scoped-styles.test.tsrx +8 -8
  67. package/tests/client/date.test.tsrx +42 -42
  68. package/tests/client/derived-release.test.tsrx +370 -0
  69. package/tests/client/dynamic-elements.test.tsrx +45 -45
  70. package/tests/client/events.test.tsrx +97 -71
  71. package/tests/client/for-selector.test.tsrx +14 -14
  72. package/tests/client/for-single-root-items.test.tsrx +118 -3
  73. package/tests/client/for.test.tsrx +332 -31
  74. package/tests/client/head.test.tsrx +19 -19
  75. package/tests/client/html.test.tsrx +11 -9
  76. package/tests/client/if-block.test.tsrx +80 -0
  77. package/tests/client/map.test.tsrx +16 -16
  78. package/tests/client/media-query.test.tsrx +7 -7
  79. package/tests/client/portal.test.tsrx +224 -26
  80. package/tests/client/primitive-text.test.tsrx +50 -0
  81. package/tests/client/prop-kind-switch.test.tsrx +141 -0
  82. package/tests/client/ref.test.tsrx +17 -17
  83. package/tests/client/return.test.tsrx +26 -3
  84. package/tests/client/root-boundary.test.tsrx +42 -0
  85. package/tests/client/scoped-flush.test.tsrx +8 -8
  86. package/tests/client/set.test.tsrx +6 -6
  87. package/tests/client/svg.test.tsrx +11 -11
  88. package/tests/client/switch.test.tsrx +44 -44
  89. package/tests/client/track-async-hydration.test.tsrx +4 -4
  90. package/tests/client/try.test.tsrx +151 -83
  91. package/tests/client/tsx.test.tsrx +43 -40
  92. package/tests/client/url/url.derived.test.tsrx +6 -6
  93. package/tests/client/url-search-params/url-search-params.derived.test.tsrx +8 -8
  94. package/tests/client/url-search-params/url-search-params.iteration.test.tsrx +10 -10
  95. package/tests/client/url-search-params/url-search-params.mutation.test.tsrx +10 -10
  96. package/tests/client/url-search-params/url-search-params.retrieval.test.tsrx +18 -18
  97. package/tests/client/url-search-params/url-search-params.serialization.test.tsrx +2 -2
  98. package/tests/hydration/basic.test.js +74 -1
  99. package/tests/hydration/build-components.js +22 -1
  100. package/tests/hydration/compiled/client/basic.js +1142 -713
  101. package/tests/hydration/compiled/client/composite.js +151 -100
  102. package/tests/hydration/compiled/client/events.js +184 -171
  103. package/tests/hydration/compiled/client/for.js +1472 -1132
  104. package/tests/hydration/compiled/client/fragment-cursor.js +2341 -0
  105. package/tests/hydration/compiled/client/head.js +254 -201
  106. package/tests/hydration/compiled/client/hmr.js +54 -41
  107. package/tests/hydration/compiled/client/html-in-template.js +54 -39
  108. package/tests/hydration/compiled/client/html.js +1633 -1263
  109. package/tests/hydration/compiled/client/if-children.js +420 -270
  110. package/tests/hydration/compiled/client/if-fragment-controlflow.js +363 -317
  111. package/tests/hydration/compiled/client/if.js +229 -219
  112. package/tests/hydration/compiled/client/mixed-control-flow.js +420 -404
  113. package/tests/hydration/compiled/client/nested-control-flow.js +1326 -1277
  114. package/tests/hydration/compiled/client/portal.js +87 -95
  115. package/tests/hydration/compiled/client/reactivity.js +135 -101
  116. package/tests/hydration/compiled/client/return.js +28 -19
  117. package/tests/hydration/compiled/client/streaming.js +390 -306
  118. package/tests/hydration/compiled/client/switch.js +258 -266
  119. package/tests/hydration/compiled/client/track-async-serialization.js +448 -280
  120. package/tests/hydration/compiled/client/try.js +173 -129
  121. package/tests/hydration/compiled/client/typed-text.js +71 -0
  122. package/tests/hydration/compiled/fixtures/money.js +10 -0
  123. package/tests/hydration/compiled/server/basic.js +123 -6
  124. package/tests/hydration/compiled/server/composite.js +16 -30
  125. package/tests/hydration/compiled/server/events.js +66 -18
  126. package/tests/hydration/compiled/server/for.js +117 -41
  127. package/tests/hydration/compiled/server/fragment-cursor.js +1687 -0
  128. package/tests/hydration/compiled/server/head.js +20 -20
  129. package/tests/hydration/compiled/server/hmr.js +2 -2
  130. package/tests/hydration/compiled/server/html.js +70 -238
  131. package/tests/hydration/compiled/server/if-children.js +107 -15
  132. package/tests/hydration/compiled/server/if.js +11 -15
  133. package/tests/hydration/compiled/server/mixed-control-flow.js +8 -8
  134. package/tests/hydration/compiled/server/portal.js +14 -22
  135. package/tests/hydration/compiled/server/reactivity.js +14 -14
  136. package/tests/hydration/compiled/server/streaming.js +19 -19
  137. package/tests/hydration/compiled/server/switch.js +8 -8
  138. package/tests/hydration/compiled/server/track-async-serialization.js +150 -23
  139. package/tests/hydration/compiled/server/try.js +8 -8
  140. package/tests/hydration/compiled/server/typed-text.js +17 -0
  141. package/tests/hydration/components/basic.tsrx +44 -8
  142. package/tests/hydration/components/composite.tsrx +2 -2
  143. package/tests/hydration/components/events.tsrx +25 -25
  144. package/tests/hydration/components/for.tsrx +115 -67
  145. package/tests/hydration/components/fragment-cursor.tsrx +650 -0
  146. package/tests/hydration/components/head.tsrx +16 -16
  147. package/tests/hydration/components/hmr.tsrx +2 -2
  148. package/tests/hydration/components/html.tsrx +7 -7
  149. package/tests/hydration/components/if-children.tsrx +72 -25
  150. package/tests/hydration/components/if.tsrx +18 -18
  151. package/tests/hydration/components/mixed-control-flow.tsrx +11 -11
  152. package/tests/hydration/components/portal.tsrx +3 -3
  153. package/tests/hydration/components/reactivity.tsrx +16 -16
  154. package/tests/hydration/components/streaming.tsrx +20 -20
  155. package/tests/hydration/components/switch.tsrx +20 -20
  156. package/tests/hydration/components/text-types.ts +4 -0
  157. package/tests/hydration/components/track-async-serialization.tsrx +80 -26
  158. package/tests/hydration/components/try.tsrx +8 -8
  159. package/tests/hydration/components/typed-text.tsrx +22 -0
  160. package/tests/hydration/fixtures/money.js +10 -0
  161. package/tests/hydration/for.test.js +36 -0
  162. package/tests/hydration/fragment-cursor.test.js +111 -0
  163. package/tests/hydration/if-children.test.js +24 -0
  164. package/tests/hydration/streaming.test.js +19 -0
  165. package/tests/hydration/track-async-serialization.test.js +87 -2
  166. package/tests/hydration/tsconfig.text-types.json +10 -0
  167. package/tests/hydration/typed-text.test.js +34 -0
  168. package/tests/server/await.test.tsrx +3 -3
  169. package/tests/server/basic.attributes.test.tsrx +42 -42
  170. package/tests/server/basic.components.test.tsrx +64 -8
  171. package/tests/server/basic.test.tsrx +34 -32
  172. package/tests/server/compiler.test.tsrx +1 -70
  173. package/tests/server/composite.props.test.tsrx +6 -6
  174. package/tests/server/dynamic-elements.test.tsrx +31 -8
  175. package/tests/server/for.test.tsrx +94 -0
  176. package/tests/server/head.test.tsrx +11 -11
  177. package/tests/server/scoped-styles.test.tsrx +2 -2
  178. package/tests/server/streaming-ssr.test.tsrx +48 -43
  179. package/tests/server/track-async-serialization.test.tsrx +204 -21
  180. package/tests/server/try.test.tsrx +48 -48
  181. package/tests/types/transport.ts +40 -0
  182. package/tests/utils/vite-plugin-config.test.js +23 -0
  183. package/types/index.d.ts +48 -7
  184. package/types/server.d.ts +3 -0
  185. package/types/transport.d.ts +15 -0
  186. package/src/runtime/internal/client/switch.js +0 -113
  187. package/src/utils/errors.js +0 -13
  188. package/tests/client/lazy-array.test.tsrx +0 -31
  189. package/tests/client/lazy-destructuring.test.tsrx +0 -438
  190. package/tests/client/tracked-index-access.test.tsrx +0 -113
  191. package/tests/server/lazy-destructuring.test.tsrx +0 -595
  192. package/tests/server/tracked-index-access.test.tsrx +0 -76
@@ -3,291 +3,344 @@ import * as _$_ from 'ripple/internal/client';
3
3
 
4
4
  var root_1 = _$_.template(`<div>Content</div>`, 0);
5
5
  var root = _$_.template(`<!>`, 1, 1);
6
+
7
+ function StaticTitle_render(__anchor, __block) {
8
+ var fragment = root();
9
+ var node = _$_.first_child_frag(fragment);
10
+
11
+ _$_.expression(node, () => _$_.tsrx_element((__anchor, __block) => {
12
+ var div = root_1();
13
+
14
+ _$_.head('6e1f1b90', (__anchor) => {
15
+ _$_.document.title = 'Static Test Title';
16
+ });
17
+
18
+ _$_.append(__anchor, div);
19
+ }));
20
+
21
+ _$_.append(__anchor, fragment);
22
+ }
23
+
24
+ StaticTitle[_$_.$r] = StaticTitle_render;
25
+
6
26
  var root_3 = _$_.template(`<div><span> </span></div>`, 0);
7
27
  var root_2 = _$_.template(`<!>`, 1, 1);
28
+
29
+ function ReactiveTitle_render(__anchor, __block) {
30
+ const title = _$_.track('Initial Title', __block, 'cbca63e3');
31
+ var fragment_1 = root_2();
32
+ var node_1 = _$_.first_child_frag(fragment_1);
33
+
34
+ _$_.expression(node_1, () => _$_.tsrx_element((__anchor, __block) => {
35
+ var div_1 = root_3();
36
+
37
+ {
38
+ var span = _$_.hydrating ? _$_.hydrate_child() : div_1.firstChild;
39
+
40
+ {
41
+ var expression = _$_.hydrating ? _$_.hydrate_child() : span.firstChild;
42
+
43
+ _$_.expression(expression, () => title.value);
44
+ _$_.hydrating && _$_.pop(span);
45
+ }
46
+ }
47
+
48
+ _$_.head('56ee4dab', (__anchor) => {
49
+ _$_.render(() => {
50
+ _$_.document.title = title.value;
51
+ });
52
+ });
53
+
54
+ _$_.append(__anchor, div_1);
55
+ }));
56
+
57
+ _$_.append(__anchor, fragment_1);
58
+ }
59
+
60
+ ReactiveTitle[_$_.$r] = ReactiveTitle_render;
61
+
8
62
  var root_6 = _$_.template(`<meta name="description" content="Page description"><link rel="stylesheet" href="/styles.css">`, 1, 2);
9
63
  var root_5 = _$_.template(`<div>Page content</div>`, 0);
10
64
  var root_4 = _$_.template(`<!>`, 1, 1);
65
+
66
+ function MultipleHeadElements_render(__anchor, __block) {
67
+ var fragment_2 = root_4();
68
+ var node_2 = _$_.first_child_frag(fragment_2);
69
+
70
+ _$_.expression(node_2, () => _$_.tsrx_element((__anchor, __block) => {
71
+ var div_2 = root_5();
72
+
73
+ _$_.head('a718096c', (__anchor) => {
74
+ var fragment_3 = root_6();
75
+
76
+ _$_.document.title = 'Page Title';
77
+ _$_.next();
78
+ _$_.append(__anchor, fragment_3);
79
+ });
80
+
81
+ _$_.append(__anchor, div_2);
82
+ }));
83
+
84
+ _$_.append(__anchor, fragment_2);
85
+ }
86
+
87
+ MultipleHeadElements[_$_.$r] = MultipleHeadElements_render;
88
+
11
89
  var root_9 = _$_.template(`<meta name="description">`, 0);
12
90
  var root_8 = _$_.template(`<div> </div>`, 0);
13
91
  var root_7 = _$_.template(`<!>`, 1, 1);
14
- var root_11 = _$_.template(`<div> </div>`, 0);
15
- var root_10 = _$_.template(`<!>`, 1, 1);
16
- var root_13 = _$_.template(`<div>Empty title test</div>`, 0);
17
- var root_12 = _$_.template(`<!>`, 1, 1);
18
- var root_15 = _$_.template(`<div> </div>`, 0);
19
- var root_14 = _$_.template(`<!>`, 1, 1);
20
- var root_17 = _$_.template(`<div><span> </span></div>`, 0);
21
- var root_16 = _$_.template(`<!>`, 1, 1);
22
- var root_20 = _$_.template(`<meta name="author" content="Test Author">`, 0);
23
- var root_19 = _$_.template(`<div>Content</div>`, 0);
24
- var root_18 = _$_.template(`<!>`, 1, 1);
25
- var root_22 = _$_.template(`<div>Styled content</div>`, 0);
26
- var root_21 = _$_.template(`<!>`, 1, 1);
27
92
 
28
- import { track } from 'ripple';
93
+ function ReactiveMetaTags_render(__anchor, __block) {
94
+ const description = _$_.track('Initial description', __block, '38bfa3b2');
95
+ var fragment_4 = root_7();
96
+ var node_3 = _$_.first_child_frag(fragment_4);
29
97
 
30
- export function StaticTitle() {
31
- return _$_.tsrx_element((__anchor, __block) => {
32
- var fragment = root();
33
- var node = _$_.first_child_frag(fragment);
98
+ _$_.expression(node_3, () => _$_.tsrx_element((__anchor, __block) => {
99
+ var div_3 = root_8();
34
100
 
35
- _$_.expression(node, () => _$_.tsrx_element((__anchor, __block) => {
36
- var div = root_1();
101
+ {
102
+ var expression_1 = _$_.hydrating ? _$_.hydrate_child() : div_3.firstChild;
37
103
 
38
- _$_.head('6e1f1b90', (__anchor) => {
39
- _$_.document.title = 'Static Test Title';
40
- });
104
+ _$_.expression(expression_1, () => description.value);
105
+ _$_.hydrating && _$_.pop(div_3);
106
+ }
107
+
108
+ _$_.head('c297b350', (__anchor) => {
109
+ var meta = root_9();
110
+
111
+ _$_.document.title = 'My Page';
112
+ _$_.set_attribute(meta, 'content');
113
+ _$_.append(__anchor, meta);
114
+ });
41
115
 
42
- _$_.append(__anchor, div);
43
- }));
116
+ _$_.append(__anchor, div_3);
117
+ }));
44
118
 
45
- _$_.append(__anchor, fragment);
46
- });
119
+ _$_.append(__anchor, fragment_4);
47
120
  }
48
121
 
49
- export function ReactiveTitle() {
50
- return _$_.tsrx_element((__anchor, __block) => {
51
- let lazy = _$_.track('Initial Title', __block, 'cbca63e3');
52
- var fragment_1 = root_2();
53
- var node_1 = _$_.first_child_frag(fragment_1);
122
+ ReactiveMetaTags[_$_.$r] = ReactiveMetaTags_render;
54
123
 
55
- _$_.expression(node_1, () => _$_.tsrx_element((__anchor, __block) => {
56
- var div_1 = root_3();
124
+ var root_11 = _$_.template(`<div> </div>`, 0);
125
+ var root_10 = _$_.template(`<!>`, 1, 1);
57
126
 
58
- {
59
- var span = _$_.hydrating ? _$_.hydrate_child() : div_1.firstChild;
127
+ function TitleWithTemplate_render(__anchor, __block) {
128
+ const name = _$_.track('World', __block, 'f3925cd5');
129
+ var fragment_5 = root_10();
130
+ var node_4 = _$_.first_child_frag(fragment_5);
60
131
 
61
- {
62
- var expression = _$_.hydrating ? _$_.hydrate_child() : span.firstChild;
132
+ _$_.expression(node_4, () => _$_.tsrx_element((__anchor, __block) => {
133
+ var div_4 = root_11();
63
134
 
64
- _$_.expression(expression, () => lazy.value);
65
- _$_.pop(span);
66
- }
67
- }
135
+ {
136
+ var expression_2 = _$_.hydrating ? _$_.hydrate_child() : div_4.firstChild;
137
+
138
+ _$_.expression(expression_2, () => name.value);
139
+ _$_.hydrating && _$_.pop(div_4);
140
+ }
68
141
 
69
- _$_.head('91435bee', (__anchor) => {
70
- _$_.render(() => {
71
- _$_.document.title = lazy.value;
72
- });
142
+ _$_.head('9ab2373c', (__anchor) => {
143
+ _$_.render(() => {
144
+ _$_.document.title = `Hello ${name.value}!`;
73
145
  });
146
+ });
74
147
 
75
- _$_.append(__anchor, div_1);
76
- }));
148
+ _$_.append(__anchor, div_4);
149
+ }));
77
150
 
78
- _$_.append(__anchor, fragment_1);
79
- });
151
+ _$_.append(__anchor, fragment_5);
80
152
  }
81
153
 
82
- export function MultipleHeadElements() {
83
- return _$_.tsrx_element((__anchor, __block) => {
84
- var fragment_2 = root_4();
85
- var node_2 = _$_.first_child_frag(fragment_2);
154
+ TitleWithTemplate[_$_.$r] = TitleWithTemplate_render;
86
155
 
87
- _$_.expression(node_2, () => _$_.tsrx_element((__anchor, __block) => {
88
- var div_2 = root_5();
156
+ var root_13 = _$_.template(`<div>Empty title test</div>`, 0);
157
+ var root_12 = _$_.template(`<!>`, 1, 1);
89
158
 
90
- _$_.head('07a54928', (__anchor) => {
91
- var fragment_3 = root_6();
159
+ function EmptyTitle_render(__anchor, __block) {
160
+ var fragment_6 = root_12();
161
+ var node_5 = _$_.first_child_frag(fragment_6);
92
162
 
93
- _$_.document.title = 'Page Title';
94
- _$_.next();
95
- _$_.append(__anchor, fragment_3, true);
96
- });
163
+ _$_.expression(node_5, () => _$_.tsrx_element((__anchor, __block) => {
164
+ var div_5 = root_13();
97
165
 
98
- _$_.append(__anchor, div_2);
99
- }));
166
+ _$_.head('50cc7ae2', (__anchor) => {
167
+ _$_.document.title = '';
168
+ });
100
169
 
101
- _$_.append(__anchor, fragment_2);
102
- });
170
+ _$_.append(__anchor, div_5);
171
+ }));
172
+
173
+ _$_.append(__anchor, fragment_6);
103
174
  }
104
175
 
105
- export function ReactiveMetaTags() {
106
- return _$_.tsrx_element((__anchor, __block) => {
107
- let lazy_1 = _$_.track('Initial description', __block, '38bfa3b2');
108
- var fragment_4 = root_7();
109
- var node_3 = _$_.first_child_frag(fragment_4);
176
+ EmptyTitle[_$_.$r] = EmptyTitle_render;
177
+
178
+ var root_15 = _$_.template(`<div> </div>`, 0);
179
+ var root_14 = _$_.template(`<!>`, 1, 1);
110
180
 
111
- _$_.expression(node_3, () => _$_.tsrx_element((__anchor, __block) => {
112
- var div_3 = root_8();
181
+ function ConditionalTitle_render(__anchor, __block) {
182
+ const showPrefix = _$_.track(true, __block, 'ff71bf1f');
183
+ const title = _$_.track('Main Page', __block, '7cd7d671');
184
+ var fragment_7 = root_14();
185
+ var node_6 = _$_.first_child_frag(fragment_7);
113
186
 
114
- {
115
- var expression_1 = _$_.hydrating ? _$_.hydrate_child() : div_3.firstChild;
187
+ _$_.expression(node_6, () => _$_.tsrx_element((__anchor, __block) => {
188
+ var div_6 = root_15();
116
189
 
117
- _$_.expression(expression_1, () => lazy_1.value);
118
- _$_.pop(div_3);
119
- }
190
+ {
191
+ var expression_3 = _$_.hydrating ? _$_.hydrate_child() : div_6.firstChild;
120
192
 
121
- _$_.head('4ca6a546', (__anchor) => {
122
- var meta = root_9();
193
+ _$_.expression(expression_3, () => title.value);
194
+ _$_.hydrating && _$_.pop(div_6);
195
+ }
123
196
 
124
- _$_.document.title = 'My Page';
125
- _$_.set_attribute(meta, 'content');
126
- _$_.append(__anchor, meta);
197
+ _$_.head('0877ba8e', (__anchor) => {
198
+ _$_.render(() => {
199
+ _$_.document.title = showPrefix.value ? 'App - ' + title.value : title.value;
127
200
  });
201
+ });
128
202
 
129
- _$_.append(__anchor, div_3);
130
- }));
203
+ _$_.append(__anchor, div_6);
204
+ }));
131
205
 
132
- _$_.append(__anchor, fragment_4);
133
- });
206
+ _$_.append(__anchor, fragment_7);
134
207
  }
135
208
 
136
- export function TitleWithTemplate() {
137
- return _$_.tsrx_element((__anchor, __block) => {
138
- let lazy_2 = _$_.track('World', __block, 'f3925cd5');
139
- var fragment_5 = root_10();
140
- var node_4 = _$_.first_child_frag(fragment_5);
209
+ ConditionalTitle[_$_.$r] = ConditionalTitle_render;
141
210
 
142
- _$_.expression(node_4, () => _$_.tsrx_element((__anchor, __block) => {
143
- var div_4 = root_11();
211
+ var root_17 = _$_.template(`<div><span> </span></div>`, 0);
144
212
 
145
- {
146
- var expression_2 = _$_.hydrating ? _$_.hydrate_child() : div_4.firstChild;
213
+ function render(__prev) {
214
+ var __a = __prev._count.value;
147
215
 
148
- _$_.expression(expression_2, () => lazy_2.value);
149
- _$_.pop(div_4);
150
- }
216
+ if (__prev.a !== __a) {
217
+ _$_.set_text(__prev._expression_4, __prev.a = __a);
218
+ }
219
+ }
151
220
 
152
- _$_.head('10dc944d', (__anchor) => {
153
- _$_.render(() => {
154
- _$_.document.title = `Hello ${lazy_2.value}!`;
155
- });
156
- });
221
+ var root_16 = _$_.template(`<!>`, 1, 1);
157
222
 
158
- _$_.append(__anchor, div_4);
159
- }));
223
+ function ComputedTitle_render(__anchor, __block) {
224
+ const count = _$_.track(0, __block, 'b6a48610');
225
+ let prefix = 'Count: ';
226
+ var fragment_8 = root_16();
227
+ var node_7 = _$_.first_child_frag(fragment_8);
160
228
 
161
- _$_.append(__anchor, fragment_5);
162
- });
163
- }
229
+ _$_.expression(node_7, () => _$_.tsrx_element((__anchor, __block) => {
230
+ var div_7 = root_17();
164
231
 
165
- export function EmptyTitle() {
166
- return _$_.tsrx_element((__anchor, __block) => {
167
- var fragment_6 = root_12();
168
- var node_5 = _$_.first_child_frag(fragment_6);
232
+ {
233
+ var span_1 = _$_.hydrating ? _$_.hydrate_child() : div_7.firstChild;
169
234
 
170
- _$_.expression(node_5, () => _$_.tsrx_element((__anchor, __block) => {
171
- var div_5 = root_13();
235
+ {
236
+ var expression_4 = _$_.hydrating ? _$_.hydrate_text() : span_1.firstChild;
237
+ }
238
+ }
172
239
 
173
- _$_.head('13ba9873', (__anchor) => {
174
- _$_.document.title = '';
240
+ _$_.head('60e9fce1', (__anchor) => {
241
+ _$_.render(() => {
242
+ _$_.document.title = prefix + count.value;
175
243
  });
244
+ });
176
245
 
177
- _$_.append(__anchor, div_5);
178
- }));
246
+ _$_.render(render, { a: ' ', _count: count, _expression_4: expression_4 });
247
+ _$_.append(__anchor, div_7);
248
+ }));
179
249
 
180
- _$_.append(__anchor, fragment_6);
181
- });
250
+ _$_.append(__anchor, fragment_8);
182
251
  }
183
252
 
184
- export function ConditionalTitle() {
185
- return _$_.tsrx_element((__anchor, __block) => {
186
- let lazy_3 = _$_.track(true, __block, 'ff71bf1f');
187
- let lazy_4 = _$_.track('Main Page', __block, '7cd7d671');
188
- var fragment_7 = root_14();
189
- var node_6 = _$_.first_child_frag(fragment_7);
253
+ ComputedTitle[_$_.$r] = ComputedTitle_render;
190
254
 
191
- _$_.expression(node_6, () => _$_.tsrx_element((__anchor, __block) => {
192
- var div_6 = root_15();
255
+ var root_20 = _$_.template(`<meta name="author" content="Test Author">`, 0);
256
+ var root_19 = _$_.template(`<div>Content</div>`, 0);
257
+ var root_18 = _$_.template(`<!>`, 1, 1);
193
258
 
194
- {
195
- var expression_3 = _$_.hydrating ? _$_.hydrate_child() : div_6.firstChild;
259
+ function MultipleHeadBlocks_render(__anchor, __block) {
260
+ var fragment_9 = root_18();
261
+ var node_8 = _$_.first_child_frag(fragment_9);
196
262
 
197
- _$_.expression(expression_3, () => lazy_4.value);
198
- _$_.pop(div_6);
199
- }
263
+ _$_.expression(node_8, () => _$_.tsrx_element((__anchor, __block) => {
264
+ var div_8 = root_19();
200
265
 
201
- _$_.head('4b39c36b', (__anchor) => {
202
- _$_.render(() => {
203
- _$_.document.title = lazy_3.value ? 'App - ' + lazy_4.value : lazy_4.value;
204
- });
205
- });
266
+ _$_.head('e56fc100', (__anchor) => {
267
+ _$_.document.title = 'First Head';
268
+ });
206
269
 
207
- _$_.append(__anchor, div_6);
208
- }));
270
+ _$_.head('ba797fb2', (__anchor) => {
271
+ var meta_1 = root_20();
209
272
 
210
- _$_.append(__anchor, fragment_7);
211
- });
212
- }
273
+ _$_.append(__anchor, meta_1);
274
+ });
213
275
 
214
- export function ComputedTitle() {
215
- return _$_.tsrx_element((__anchor, __block) => {
216
- let lazy_5 = _$_.track(0, __block, 'b6a48610');
217
- let prefix = 'Count: ';
218
- var fragment_8 = root_16();
219
- var node_7 = _$_.first_child_frag(fragment_8);
276
+ _$_.append(__anchor, div_8);
277
+ }));
220
278
 
221
- _$_.expression(node_7, () => _$_.tsrx_element((__anchor, __block) => {
222
- var div_7 = root_17();
279
+ _$_.append(__anchor, fragment_9);
280
+ }
223
281
 
224
- {
225
- var span_1 = _$_.hydrating ? _$_.hydrate_child() : div_7.firstChild;
282
+ MultipleHeadBlocks[_$_.$r] = MultipleHeadBlocks_render;
226
283
 
227
- {
228
- var expression_4 = _$_.hydrating ? _$_.hydrate_child(true) : span_1.firstChild;
284
+ var root_22 = _$_.template(`<div>Styled content</div>`, 0);
285
+ var root_21 = _$_.template(`<!>`, 1, 1);
229
286
 
230
- _$_.pop(span_1);
231
- }
232
- }
287
+ function HeadWithStyle_render(__anchor, __block) {
288
+ var fragment_10 = root_21();
289
+ var node_9 = _$_.first_child_frag(fragment_10);
233
290
 
234
- _$_.head('92c79d98', (__anchor) => {
235
- _$_.render(() => {
236
- _$_.document.title = prefix + lazy_5.value;
237
- });
238
- });
291
+ _$_.expression(node_9, () => _$_.tsrx_element((__anchor, __block) => {
292
+ var div_9 = root_22();
239
293
 
240
- _$_.render(() => {
241
- _$_.set_text(expression_4, lazy_5.value);
242
- });
294
+ _$_.head('872692a0', (__anchor) => {
295
+ _$_.document.title = 'Styled Page';
296
+ });
243
297
 
244
- _$_.append(__anchor, div_7);
245
- }));
298
+ _$_.append(__anchor, div_9);
299
+ }));
246
300
 
247
- _$_.append(__anchor, fragment_8);
248
- });
301
+ _$_.append(__anchor, fragment_10);
249
302
  }
250
303
 
251
- export function MultipleHeadBlocks() {
252
- return _$_.tsrx_element((__anchor, __block) => {
253
- var fragment_9 = root_18();
254
- var node_8 = _$_.first_child_frag(fragment_9);
304
+ HeadWithStyle[_$_.$r] = HeadWithStyle_render;
255
305
 
256
- _$_.expression(node_8, () => _$_.tsrx_element((__anchor, __block) => {
257
- var div_8 = root_19();
306
+ import { track } from 'ripple';
258
307
 
259
- _$_.head('e50b427b', (__anchor) => {
260
- _$_.document.title = 'First Head';
261
- });
308
+ export function StaticTitle() {
309
+ return _$_.tsrx_element(StaticTitle_render);
310
+ }
262
311
 
263
- _$_.head('68467dce', (__anchor) => {
264
- var meta_1 = root_20();
312
+ export function ReactiveTitle() {
313
+ return _$_.tsrx_element(ReactiveTitle_render);
314
+ }
265
315
 
266
- _$_.append(__anchor, meta_1);
267
- });
316
+ export function MultipleHeadElements() {
317
+ return _$_.tsrx_element(MultipleHeadElements_render);
318
+ }
268
319
 
269
- _$_.append(__anchor, div_8);
270
- }));
320
+ export function ReactiveMetaTags() {
321
+ return _$_.tsrx_element(ReactiveMetaTags_render);
322
+ }
271
323
 
272
- _$_.append(__anchor, fragment_9);
273
- });
324
+ export function TitleWithTemplate() {
325
+ return _$_.tsrx_element(TitleWithTemplate_render);
274
326
  }
275
327
 
276
- export function HeadWithStyle() {
277
- return _$_.tsrx_element((__anchor, __block) => {
278
- var fragment_10 = root_21();
279
- var node_9 = _$_.first_child_frag(fragment_10);
328
+ export function EmptyTitle() {
329
+ return _$_.tsrx_element(EmptyTitle_render);
330
+ }
280
331
 
281
- _$_.expression(node_9, () => _$_.tsrx_element((__anchor, __block) => {
282
- var div_9 = root_22();
332
+ export function ConditionalTitle() {
333
+ return _$_.tsrx_element(ConditionalTitle_render);
334
+ }
283
335
 
284
- _$_.head('3a8578a5', (__anchor) => {
285
- _$_.document.title = 'Styled Page';
286
- });
336
+ export function ComputedTitle() {
337
+ return _$_.tsrx_element(ComputedTitle_render);
338
+ }
287
339
 
288
- _$_.append(__anchor, div_9);
289
- }));
340
+ export function MultipleHeadBlocks() {
341
+ return _$_.tsrx_element(MultipleHeadBlocks_render);
342
+ }
290
343
 
291
- _$_.append(__anchor, fragment_10);
292
- });
344
+ export function HeadWithStyle() {
345
+ return _$_.tsrx_element(HeadWithStyle_render);
293
346
  }
@@ -2,64 +2,77 @@
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
4
  var root = _$_.template(`<div class="layout"><nav class="nav">Navigation</nav><main class="main"><!></main></div>`, 0);
5
- var root_2 = _$_.template(`<p class="text">Hello world</p>`, 0);
6
- var root_1 = _$_.template(`<div class="content"><!></div>`, 0);
7
5
 
8
- import { track } from 'ripple';
6
+ function Layout_render(__anchor, __block, { children }) {
7
+ var div = root();
9
8
 
10
- export function Layout({ children }) {
11
- return _$_.tsrx_element((__anchor, __block) => {
12
- var div = root();
9
+ {
10
+ var nav = _$_.hydrating ? _$_.hydrate_child() : div.firstChild;
11
+ var main = _$_.hydrating ? _$_.hydrate_sibling() : nav.nextSibling;
13
12
 
14
13
  {
15
- var nav = _$_.hydrating ? _$_.hydrate_child() : div.firstChild;
16
- var main = _$_.hydrating ? _$_.hydrate_sibling() : nav.nextSibling;
17
-
18
- {
19
- var expression = _$_.hydrating ? _$_.hydrate_child() : main.firstChild;
14
+ var expression = _$_.hydrating ? _$_.hydrate_child() : main.firstChild;
20
15
 
21
- _$_.expression(expression, () => children);
22
- _$_.pop(main);
23
- }
16
+ _$_.expression(expression, () => children);
17
+ _$_.hydrating && _$_.pop(main);
24
18
  }
19
+ }
25
20
 
26
- _$_.append(__anchor, div);
27
- });
21
+ _$_.append(__anchor, div);
28
22
  }
29
23
 
30
- export function Content() {
31
- return _$_.tsrx_element((__anchor, __block) => {
32
- let lazy = _$_.track(true, __block, '0bdb1500');
33
- var div_1 = root_1();
24
+ Layout[_$_.$r] = Layout_render;
34
25
 
35
- {
36
- var node = _$_.hydrating ? _$_.hydrate_child() : div_1.firstChild;
26
+ var root_2 = _$_.template(`<p class="text">Hello world</p>`, 0);
37
27
 
38
- {
39
- var consequent = (__anchor) => {
40
- var p = root_2();
28
+ function consequent(__anchor, visible) {
29
+ var p = root_2();
41
30
 
42
- _$_.append(__anchor, p);
43
- };
31
+ _$_.append(__anchor, p);
32
+ }
44
33
 
45
- _$_.if(node, (__render) => {
46
- if (lazy.value) __render(consequent);
47
- });
48
- }
34
+ function if_1(visible) {
35
+ if (visible.value) return consequent;
36
+ }
49
37
 
50
- _$_.pop(div_1);
51
- }
38
+ var root_1 = _$_.template(`<div class="content"><!></div>`, 0);
39
+
40
+ function Content_render(__anchor, __block) {
41
+ const visible = _$_.track(true, __block, '0bdb1500');
42
+ var div_1 = root_1();
43
+
44
+ {
45
+ var node = _$_.hydrating ? _$_.hydrate_child() : div_1.firstChild;
52
46
 
53
- _$_.append(__anchor, div_1);
47
+ _$_.if(node, if_1, false, visible);
48
+ _$_.hydrating && _$_.pop(div_1);
49
+ }
50
+
51
+ _$_.append(__anchor, div_1);
52
+ }
53
+
54
+ Content[_$_.$r] = Content_render;
55
+
56
+ function LayoutWithContent_render(__anchor, __block) {
57
+ _$_.render_component(Layout, __anchor, {
58
+ children: _$_.tsrx_element((__anchor, __block) => {
59
+ _$_.render_component(Content, __anchor, {});
60
+ })
54
61
  });
55
62
  }
56
63
 
64
+ LayoutWithContent[_$_.$r] = LayoutWithContent_render;
65
+
66
+ import { track } from 'ripple';
67
+
68
+ export function Layout(__props) {
69
+ return _$_.tsrx_element(Layout_render, __props);
70
+ }
71
+
72
+ export function Content() {
73
+ return _$_.tsrx_element(Content_render);
74
+ }
75
+
57
76
  export function LayoutWithContent() {
58
- return _$_.tsrx_element((__anchor, __block) => {
59
- _$_.render_component(Layout, __anchor, {
60
- children: _$_.tsrx_element((__anchor, __block) => {
61
- _$_.render_component(Content, __anchor, {});
62
- })
63
- });
64
- });
77
+ return _$_.tsrx_element(LayoutWithContent_render);
65
78
  }