ripple 0.3.128 → 0.4.1

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 (197) hide show
  1. package/CHANGELOG.md +294 -0
  2. package/package.json +11 -4
  3. package/src/jsx-runtime.d.ts +12 -2
  4. package/src/runtime/element.js +23 -6
  5. package/src/runtime/index-client.js +81 -41
  6. package/src/runtime/index-server.js +1 -0
  7. package/src/runtime/internal/client/blocks.js +173 -91
  8. package/src/runtime/internal/client/component.js +4 -30
  9. package/src/runtime/internal/client/composite.js +12 -13
  10. package/src/runtime/internal/client/constants.js +9 -0
  11. package/src/runtime/internal/client/context.js +12 -19
  12. package/src/runtime/internal/client/css.js +7 -9
  13. package/src/runtime/internal/client/events.js +178 -90
  14. package/src/runtime/internal/client/expression.js +45 -25
  15. package/src/runtime/internal/client/for.js +409 -129
  16. package/src/runtime/internal/client/head.js +10 -5
  17. package/src/runtime/internal/client/html.js +1 -0
  18. package/src/runtime/internal/client/hydration.js +152 -10
  19. package/src/runtime/internal/client/if.js +239 -50
  20. package/src/runtime/internal/client/index.js +4 -12
  21. package/src/runtime/internal/client/operations.js +40 -61
  22. package/src/runtime/internal/client/portal.js +163 -85
  23. package/src/runtime/internal/client/render.js +44 -43
  24. package/src/runtime/internal/client/rpc.js +3 -3
  25. package/src/runtime/internal/client/runtime.js +592 -433
  26. package/src/runtime/internal/client/selector.js +5 -2
  27. package/src/runtime/internal/client/template.js +133 -158
  28. package/src/runtime/internal/client/transport.js +38 -0
  29. package/src/runtime/internal/client/try.js +465 -426
  30. package/src/runtime/internal/client/types.d.ts +56 -23
  31. package/src/runtime/internal/client/utils.js +1 -3
  32. package/src/runtime/internal/server/dynamic.js +20 -21
  33. package/src/runtime/internal/server/index.js +329 -277
  34. package/src/runtime/internal/server/rpc.js +3 -2
  35. package/src/runtime/internal/server/transport.js +16 -0
  36. package/src/runtime/transport.js +21 -0
  37. package/tests/client/__snapshots__/for.test.tsrx.snap +0 -5
  38. package/tests/client/array/array.copy-within.test.tsrx +12 -12
  39. package/tests/client/array/array.derived.test.tsrx +46 -46
  40. package/tests/client/array/array.iteration.test.tsrx +10 -10
  41. package/tests/client/array/array.mutations.test.tsrx +20 -20
  42. package/tests/client/array/array.static.test.tsrx +11 -11
  43. package/tests/client/array/array.to-methods.test.tsrx +6 -6
  44. package/tests/client/async-suspend.test.tsrx +74 -75
  45. package/tests/client/basic/basic.attributes.test.tsrx +123 -83
  46. package/tests/client/basic/basic.collections.test.tsrx +12 -12
  47. package/tests/client/basic/basic.components.test.tsrx +99 -25
  48. package/tests/client/basic/basic.errors.test.tsrx +18 -18
  49. package/tests/client/basic/basic.events.test.tsrx +42 -42
  50. package/tests/client/basic/basic.get-set.test.tsrx +8 -8
  51. package/tests/client/basic/basic.reactivity.test.tsrx +73 -38
  52. package/tests/client/basic/basic.rendering.test.tsrx +25 -25
  53. package/tests/client/basic/basic.utilities.test.tsrx +3 -3
  54. package/tests/client/boundaries.test.tsrx +8 -8
  55. package/tests/client/boxed-locals.test.tsrx +452 -0
  56. package/tests/client/compiler/__snapshots__/compiler.assignments.test.tsrx.snap +6 -6
  57. package/tests/client/compiler/compiler.assignments.test.tsrx +9 -73
  58. package/tests/client/compiler/compiler.attributes.test.tsrx +23 -23
  59. package/tests/client/compiler/compiler.basic.test.tsrx +15 -60
  60. package/tests/client/compiler/compiler.tracked-access.test.tsrx +18 -43
  61. package/tests/client/compiler/compiler.try-in-function.test.tsrx +2 -2
  62. package/tests/client/composite/__snapshots__/composite.render.test.tsrx.snap +0 -1
  63. package/tests/client/composite/composite.dynamic-components.test.tsrx +77 -6
  64. package/tests/client/composite/composite.props.test.tsrx +149 -12
  65. package/tests/client/composite/composite.reactivity.test.tsrx +51 -52
  66. package/tests/client/composite/composite.render.test.tsrx +26 -9
  67. package/tests/client/css/scoped-styles.test.tsrx +8 -8
  68. package/tests/client/date.test.tsrx +42 -42
  69. package/tests/client/derived-release.test.tsrx +370 -0
  70. package/tests/client/dynamic-elements.test.tsrx +45 -45
  71. package/tests/client/events.test.tsrx +97 -71
  72. package/tests/client/for-selector.test.tsrx +14 -14
  73. package/tests/client/for-single-root-items.test.tsrx +118 -3
  74. package/tests/client/for.test.tsrx +332 -31
  75. package/tests/client/head.test.tsrx +19 -19
  76. package/tests/client/html.test.tsrx +11 -9
  77. package/tests/client/if-block.test.tsrx +80 -0
  78. package/tests/client/map.test.tsrx +16 -16
  79. package/tests/client/media-query.test.tsrx +7 -7
  80. package/tests/client/portal.test.tsrx +224 -26
  81. package/tests/client/primitive-text.test.tsrx +50 -0
  82. package/tests/client/prop-kind-switch.test.tsrx +141 -0
  83. package/tests/client/ref.test.tsrx +17 -17
  84. package/tests/client/return.test.tsrx +26 -3
  85. package/tests/client/root-boundary.test.tsrx +42 -0
  86. package/tests/client/scoped-flush.test.tsrx +8 -8
  87. package/tests/client/set.test.tsrx +6 -6
  88. package/tests/client/svg.test.tsrx +11 -11
  89. package/tests/client/switch.test.tsrx +44 -44
  90. package/tests/client/track-async-hydration.test.tsrx +4 -4
  91. package/tests/client/try.test.tsrx +151 -83
  92. package/tests/client/tsx.test.tsrx +43 -40
  93. package/tests/client/url/url.derived.test.tsrx +6 -6
  94. package/tests/client/url-search-params/url-search-params.derived.test.tsrx +8 -8
  95. package/tests/client/url-search-params/url-search-params.iteration.test.tsrx +10 -10
  96. package/tests/client/url-search-params/url-search-params.mutation.test.tsrx +10 -10
  97. package/tests/client/url-search-params/url-search-params.retrieval.test.tsrx +18 -18
  98. package/tests/client/url-search-params/url-search-params.serialization.test.tsrx +2 -2
  99. package/tests/hydration/basic.test.js +74 -1
  100. package/tests/hydration/build-components.js +22 -1
  101. package/tests/hydration/compiled/client/basic.js +1142 -713
  102. package/tests/hydration/compiled/client/composite.js +151 -100
  103. package/tests/hydration/compiled/client/events.js +184 -171
  104. package/tests/hydration/compiled/client/for.js +1472 -1132
  105. package/tests/hydration/compiled/client/fragment-cursor.js +2341 -0
  106. package/tests/hydration/compiled/client/head.js +254 -201
  107. package/tests/hydration/compiled/client/hmr.js +54 -41
  108. package/tests/hydration/compiled/client/html-in-template.js +54 -39
  109. package/tests/hydration/compiled/client/html.js +1633 -1263
  110. package/tests/hydration/compiled/client/if-children.js +420 -270
  111. package/tests/hydration/compiled/client/if-fragment-controlflow.js +363 -317
  112. package/tests/hydration/compiled/client/if.js +229 -219
  113. package/tests/hydration/compiled/client/mixed-control-flow.js +420 -404
  114. package/tests/hydration/compiled/client/nested-control-flow.js +1326 -1277
  115. package/tests/hydration/compiled/client/portal.js +87 -95
  116. package/tests/hydration/compiled/client/reactivity.js +135 -101
  117. package/tests/hydration/compiled/client/return.js +28 -19
  118. package/tests/hydration/compiled/client/streaming.js +390 -306
  119. package/tests/hydration/compiled/client/switch.js +258 -266
  120. package/tests/hydration/compiled/client/track-async-serialization.js +448 -280
  121. package/tests/hydration/compiled/client/try.js +173 -129
  122. package/tests/hydration/compiled/client/typed-text.js +71 -0
  123. package/tests/hydration/compiled/fixtures/money.js +10 -0
  124. package/tests/hydration/compiled/server/basic.js +123 -6
  125. package/tests/hydration/compiled/server/composite.js +16 -30
  126. package/tests/hydration/compiled/server/events.js +66 -18
  127. package/tests/hydration/compiled/server/for.js +117 -41
  128. package/tests/hydration/compiled/server/fragment-cursor.js +1687 -0
  129. package/tests/hydration/compiled/server/head.js +20 -20
  130. package/tests/hydration/compiled/server/hmr.js +2 -2
  131. package/tests/hydration/compiled/server/html.js +70 -238
  132. package/tests/hydration/compiled/server/if-children.js +107 -15
  133. package/tests/hydration/compiled/server/if.js +11 -15
  134. package/tests/hydration/compiled/server/mixed-control-flow.js +8 -8
  135. package/tests/hydration/compiled/server/portal.js +14 -22
  136. package/tests/hydration/compiled/server/reactivity.js +14 -14
  137. package/tests/hydration/compiled/server/streaming.js +19 -19
  138. package/tests/hydration/compiled/server/switch.js +8 -8
  139. package/tests/hydration/compiled/server/track-async-serialization.js +150 -23
  140. package/tests/hydration/compiled/server/try.js +8 -8
  141. package/tests/hydration/compiled/server/typed-text.js +17 -0
  142. package/tests/hydration/components/basic.tsrx +44 -8
  143. package/tests/hydration/components/composite.tsrx +2 -2
  144. package/tests/hydration/components/events.tsrx +25 -25
  145. package/tests/hydration/components/for.tsrx +115 -67
  146. package/tests/hydration/components/fragment-cursor.tsrx +650 -0
  147. package/tests/hydration/components/head.tsrx +16 -16
  148. package/tests/hydration/components/hmr.tsrx +2 -2
  149. package/tests/hydration/components/html.tsrx +7 -7
  150. package/tests/hydration/components/if-children.tsrx +72 -25
  151. package/tests/hydration/components/if.tsrx +18 -18
  152. package/tests/hydration/components/mixed-control-flow.tsrx +11 -11
  153. package/tests/hydration/components/portal.tsrx +3 -3
  154. package/tests/hydration/components/reactivity.tsrx +16 -16
  155. package/tests/hydration/components/streaming.tsrx +20 -20
  156. package/tests/hydration/components/switch.tsrx +20 -20
  157. package/tests/hydration/components/text-types.ts +4 -0
  158. package/tests/hydration/components/track-async-serialization.tsrx +80 -26
  159. package/tests/hydration/components/try.tsrx +8 -8
  160. package/tests/hydration/components/typed-text.tsrx +22 -0
  161. package/tests/hydration/fixtures/money.js +10 -0
  162. package/tests/hydration/for.test.js +36 -0
  163. package/tests/hydration/fragment-cursor.test.js +111 -0
  164. package/tests/hydration/if-children.test.js +24 -0
  165. package/tests/hydration/streaming.test.js +19 -0
  166. package/tests/hydration/track-async-serialization.test.js +87 -2
  167. package/tests/hydration/tsconfig.text-types.json +10 -0
  168. package/tests/hydration/typed-text.test.js +34 -0
  169. package/tests/server/await.test.tsrx +3 -3
  170. package/tests/server/basic.attributes.test.tsrx +70 -42
  171. package/tests/server/basic.components.test.tsrx +64 -8
  172. package/tests/server/basic.test.tsrx +34 -32
  173. package/tests/server/compiler.test.tsrx +1 -70
  174. package/tests/server/composite.props.test.tsrx +6 -6
  175. package/tests/server/dynamic-elements.test.tsrx +31 -8
  176. package/tests/server/for.test.tsrx +94 -0
  177. package/tests/server/head.test.tsrx +11 -11
  178. package/tests/server/scoped-styles.test.tsrx +2 -2
  179. package/tests/server/streaming-ssr.test.tsrx +48 -43
  180. package/tests/server/track-async-serialization.test.tsrx +204 -21
  181. package/tests/server/try.test.tsrx +48 -48
  182. package/tests/types/transport.ts +40 -0
  183. package/tests/utils/jsx-runtime-types.test.js +67 -2
  184. package/tests/utils/tracked-types.test.js +117 -0
  185. package/tests/utils/vite-plugin-config.test.js +23 -0
  186. package/types/index.d.ts +49 -9
  187. package/types/server.d.ts +3 -0
  188. package/types/transport.d.ts +15 -0
  189. package/src/runtime/internal/client/switch.js +0 -113
  190. package/src/utils/errors.js +0 -13
  191. package/tests/client/compiler/__snapshots__/compiler.assignments.test.rsrx.snap +0 -12
  192. package/tests/client/compiler/__snapshots__/compiler.typescript.test.rsrx.snap +0 -46
  193. package/tests/client/lazy-array.test.tsrx +0 -31
  194. package/tests/client/lazy-destructuring.test.tsrx +0 -438
  195. package/tests/client/tracked-index-access.test.tsrx +0 -113
  196. package/tests/server/lazy-destructuring.test.tsrx +0 -595
  197. package/tests/server/tracked-index-access.test.tsrx +0 -76
@@ -2,184 +2,228 @@
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
4
  var root = _$_.template(`<p class="root-pending">root loading...</p>`, 0);
5
- var root_1 = _$_.template(`<section class="root-catch"><p class="root-error"> </p><button class="root-reset">retry</button></section>`, 0);
6
- var root_2 = _$_.template(`<p>should not render</p>`, 1, 1);
7
- var root_3 = _$_.template(`<p class="root-async-value"> </p>`, 0);
8
- var root_4 = _$_.template(`<p class="root-async-value"> </p>`, 0);
9
- var root_5 = _$_.template(`<p class="loading">loading...</p>`, 0);
10
- var root_7 = _$_.template(`<li> </li>`, 0);
11
- var root_6 = _$_.template(`<ul class="items"></ul>`, 0);
12
- var root_10 = _$_.template(`<div class="loading">loading async content</div>`, 0);
13
- var root_9 = _$_.template(`<div class="before">before</div><!>`, 1, 2);
14
- var root_8 = _$_.template(`<!>`, 1, 1);
15
- var root_11 = _$_.template(`<div class="resolved"> </div>`, 0);
16
-
17
- import { trackAsync } from 'ripple';
18
5
 
19
- export function RootPending() {
20
- return _$_.tsrx_element((__anchor, __block) => {
21
- var p = root();
6
+ function RootPending_render(__anchor, __block) {
7
+ var p = root();
22
8
 
23
- _$_.append(__anchor, p);
24
- });
9
+ _$_.append(__anchor, p);
25
10
  }
26
11
 
27
- export function RootCatch({ error, reset }) {
28
- return _$_.tsrx_element((__anchor, __block) => {
29
- var section = root_1();
12
+ RootPending[_$_.$r] = RootPending_render;
30
13
 
31
- {
32
- var p_1 = _$_.hydrating ? _$_.hydrate_child() : section.firstChild;
14
+ var root_1 = _$_.template(`<section class="root-catch"><p class="root-error"> </p><button class="root-reset">retry</button></section>`, 0);
33
15
 
34
- {
35
- var expression = _$_.hydrating ? _$_.hydrate_child() : p_1.firstChild;
16
+ function RootCatch_render(__anchor, __block, { error, reset }) {
17
+ var section = root_1();
36
18
 
37
- _$_.expression(expression, () => error.message);
38
- _$_.pop(p_1);
39
- }
19
+ {
20
+ var p_1 = _$_.hydrating ? _$_.hydrate_child() : section.firstChild;
40
21
 
41
- var button = _$_.hydrating ? _$_.hydrate_sibling() : p_1.nextSibling;
22
+ {
23
+ var expression = _$_.hydrating ? _$_.hydrate_child() : p_1.firstChild;
42
24
 
43
- _$_.event('Click', button, reset);
25
+ _$_.expression(expression, () => error.message);
26
+ _$_.hydrating && _$_.pop(p_1);
44
27
  }
45
28
 
46
- _$_.append(__anchor, section);
47
- });
29
+ var button = _$_.hydrating ? _$_.hydrate_sibling() : p_1.nextSibling;
30
+
31
+ _$_.event('Click', button, reset);
32
+ }
33
+
34
+ _$_.append(__anchor, section);
48
35
  }
49
36
 
50
- export function RootThrows() {
51
- return _$_.tsrx_element((__anchor, __block) => {
52
- throw _$_.with_scope(__block, () => new Error('root exploded'));
37
+ RootCatch[_$_.$r] = RootCatch_render;
38
+
39
+ var root_2 = _$_.template(`<p>should not render</p>`, 0);
53
40
 
54
- var fragment = root_2();
41
+ function RootThrows_render(__anchor, __block) {
42
+ throw _$_.with_scope(__block, () => new Error('root exploded'));
55
43
 
56
- _$_.append(__anchor, fragment);
57
- });
44
+ var p_2 = root_2();
45
+
46
+ _$_.append(__anchor, p_2);
58
47
  }
59
48
 
60
- export function RootAsyncDirect() {
61
- return _$_.tsrx_element((__anchor, __block) => {
62
- let lazy = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve('root async value')), __block, 'd6bf9e33');
63
- var p_2 = root_3();
49
+ RootThrows[_$_.$r] = RootThrows_render;
64
50
 
65
- {
66
- var expression_1 = _$_.hydrating ? _$_.hydrate_child() : p_2.firstChild;
51
+ var root_3 = _$_.template(`<p class="root-async-value"> </p>`, 0);
67
52
 
68
- _$_.expression(expression_1, () => lazy.value);
69
- _$_.pop(p_2);
70
- }
53
+ function RootAsyncDirect_render(__anchor, __block) {
54
+ const value = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve('root async value')), __block, 'd6bf9e33');
55
+ var p_3 = root_3();
56
+
57
+ {
58
+ var expression_1 = _$_.hydrating ? _$_.hydrate_child() : p_3.firstChild;
71
59
 
72
- _$_.append(__anchor, p_2);
73
- });
60
+ _$_.expression(expression_1, () => value.value);
61
+ _$_.hydrating && _$_.pop(p_3);
62
+ }
63
+
64
+ _$_.append(__anchor, p_3);
74
65
  }
75
66
 
76
- export function RootAsyncRejects() {
77
- return _$_.tsrx_element((__anchor, __block) => {
78
- let lazy_1 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.reject(new Error('root async failed'))), __block, 'd2fe7b64');
79
- var p_3 = root_4();
67
+ RootAsyncDirect[_$_.$r] = RootAsyncDirect_render;
80
68
 
81
- {
82
- var expression_2 = _$_.hydrating ? _$_.hydrate_child() : p_3.firstChild;
69
+ var root_4 = _$_.template(`<p class="root-async-value"> </p>`, 0);
83
70
 
84
- _$_.expression(expression_2, () => lazy_1.value);
85
- _$_.pop(p_3);
86
- }
71
+ function RootAsyncRejects_render(__anchor, __block) {
72
+ const value = _$_.track_async(() => _$_.with_scope(__block, () => Promise.reject(new Error('root async failed'))), __block, 'd2fe7b64');
73
+ var p_4 = root_4();
74
+
75
+ {
76
+ var expression_2 = _$_.hydrating ? _$_.hydrate_child() : p_4.firstChild;
87
77
 
88
- _$_.append(__anchor, p_3);
89
- });
78
+ _$_.expression(expression_2, () => value.value);
79
+ _$_.hydrating && _$_.pop(p_4);
80
+ }
81
+
82
+ _$_.append(__anchor, p_4);
90
83
  }
91
84
 
92
- export function AsyncListInTryPending() {
93
- return _$_.tsrx_element((__anchor, __block) => {
85
+ RootAsyncRejects[_$_.$r] = RootAsyncRejects_render;
86
+
87
+ var root_5 = _$_.template(`<p class="loading">loading...</p>`, 0);
88
+
89
+ function AsyncListInTryPending_render(__anchor, __block) {
90
+ _$_.try(
91
+ __anchor,
92
+ (__anchor) => {
93
+ _$_.render_component(AsyncList, __anchor, {});
94
+ },
95
+ null,
96
+ (__anchor) => {
97
+ var p_5 = root_5();
98
+
99
+ _$_.append(__anchor, p_5);
100
+ },
101
+ true
102
+ );
103
+ }
104
+
105
+ AsyncListInTryPending[_$_.$r] = AsyncListInTryPending_render;
106
+
107
+ var root_7 = _$_.template(`<li> </li>`, 0);
108
+ var root_6 = _$_.template(`<ul class="items"></ul>`, 0);
109
+
110
+ function AsyncList_render(__anchor, __block) {
111
+ const items = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(['alpha', 'beta', 'gamma'])), __block, 'b3d31627');
112
+ var ul = root_6();
113
+
114
+ {
115
+ _$_.for(
116
+ ul,
117
+ () => items.value,
118
+ (__anchor, item) => {
119
+ var li = root_7();
120
+
121
+ {
122
+ var expression_3 = _$_.hydrating ? _$_.hydrate_child() : li.firstChild;
123
+
124
+ _$_.expression(expression_3, () => item);
125
+ _$_.hydrating && _$_.pop(li);
126
+ }
127
+
128
+ _$_.append(__anchor, li);
129
+ },
130
+ 4
131
+ );
132
+
133
+ _$_.hydrating && _$_.pop(ul);
134
+ }
135
+
136
+ _$_.append(__anchor, ul);
137
+ }
138
+
139
+ AsyncList[_$_.$r] = AsyncList_render;
140
+
141
+ var root_10 = _$_.template(`<div class="loading">loading async content</div>`, 0);
142
+ var root_9 = _$_.template(`<div class="before">before</div><!>`, 1, 2);
143
+ var root_8 = _$_.template(`<!>`, 1, 1);
144
+
145
+ function AsyncTryWithLeadingSibling_render(__anchor, __block) {
146
+ var fragment = root_8();
147
+ var node_1 = _$_.first_child_frag(fragment);
148
+
149
+ _$_.expression(node_1, () => _$_.tsrx_element((__anchor, __block) => {
150
+ var fragment_1 = root_9();
151
+ var div = _$_.first_child_frag(fragment_1);
152
+ var node = _$_.hydrating ? _$_.hydrate_sibling() : div.nextSibling;
153
+
94
154
  _$_.try(
95
- __anchor,
155
+ node,
96
156
  (__anchor) => {
97
- _$_.render_component(AsyncList, __anchor, {});
157
+ _$_.render_component(AsyncContent, __anchor, {});
98
158
  },
99
159
  null,
100
160
  (__anchor) => {
101
- var p_4 = root_5();
161
+ var div_1 = root_10();
102
162
 
103
- _$_.append(__anchor, p_4);
104
- },
105
- true
163
+ _$_.append(__anchor, div_1);
164
+ }
106
165
  );
107
- });
166
+
167
+ _$_.append(__anchor, fragment_1);
168
+ }));
169
+
170
+ _$_.append(__anchor, fragment);
108
171
  }
109
172
 
110
- function AsyncList() {
111
- return _$_.tsrx_element((__anchor, __block) => {
112
- let lazy_2 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(['alpha', 'beta', 'gamma'])), __block, 'b3d31627');
113
- var ul = root_6();
173
+ AsyncTryWithLeadingSibling[_$_.$r] = AsyncTryWithLeadingSibling_render;
114
174
 
115
- {
116
- _$_.for(
117
- ul,
118
- () => lazy_2.value,
119
- (__anchor, item) => {
120
- var li = root_7();
175
+ var root_11 = _$_.template(`<div class="resolved"> </div>`, 0);
121
176
 
122
- {
123
- var expression_3 = _$_.hydrating ? _$_.hydrate_child() : li.firstChild;
177
+ function AsyncContent_render(__anchor, __block) {
178
+ const value = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve('ready')), __block, '15ea8758');
179
+ var div_2 = root_11();
124
180
 
125
- _$_.expression(expression_3, () => item);
126
- _$_.pop(li);
127
- }
181
+ {
182
+ var expression_4 = _$_.hydrating ? _$_.hydrate_child() : div_2.firstChild;
128
183
 
129
- _$_.append(__anchor, li);
130
- },
131
- 4
132
- );
184
+ _$_.expression(expression_4, () => value.value);
185
+ _$_.hydrating && _$_.pop(div_2);
186
+ }
133
187
 
134
- _$_.pop(ul);
135
- }
188
+ _$_.append(__anchor, div_2);
189
+ }
136
190
 
137
- _$_.append(__anchor, ul);
138
- });
191
+ AsyncContent[_$_.$r] = AsyncContent_render;
192
+
193
+ import { trackAsync } from 'ripple';
194
+
195
+ export function RootPending() {
196
+ return _$_.tsrx_element(RootPending_render);
139
197
  }
140
198
 
141
- export function AsyncTryWithLeadingSibling() {
142
- return _$_.tsrx_element((__anchor, __block) => {
143
- var fragment_1 = root_8();
144
- var node_1 = _$_.first_child_frag(fragment_1);
145
-
146
- _$_.expression(node_1, () => _$_.tsrx_element((__anchor, __block) => {
147
- var fragment_2 = root_9();
148
- var div = _$_.first_child_frag(fragment_2);
149
- var node = _$_.hydrating ? _$_.hydrate_sibling() : div.nextSibling;
150
-
151
- _$_.try(
152
- node,
153
- (__anchor) => {
154
- _$_.render_component(AsyncContent, __anchor, {});
155
- },
156
- null,
157
- (__anchor) => {
158
- var div_1 = root_10();
159
-
160
- _$_.append(__anchor, div_1);
161
- }
162
- );
199
+ export function RootCatch(__props) {
200
+ return _$_.tsrx_element(RootCatch_render, __props);
201
+ }
163
202
 
164
- _$_.append(__anchor, fragment_2);
165
- }));
203
+ export function RootThrows() {
204
+ return _$_.tsrx_element(RootThrows_render);
205
+ }
166
206
 
167
- _$_.append(__anchor, fragment_1);
168
- });
207
+ export function RootAsyncDirect() {
208
+ return _$_.tsrx_element(RootAsyncDirect_render);
169
209
  }
170
210
 
171
- function AsyncContent() {
172
- return _$_.tsrx_element((__anchor, __block) => {
173
- let lazy_3 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve('ready')), __block, '15ea8758');
174
- var div_2 = root_11();
211
+ export function RootAsyncRejects() {
212
+ return _$_.tsrx_element(RootAsyncRejects_render);
213
+ }
175
214
 
176
- {
177
- var expression_4 = _$_.hydrating ? _$_.hydrate_child() : div_2.firstChild;
215
+ export function AsyncListInTryPending() {
216
+ return _$_.tsrx_element(AsyncListInTryPending_render);
217
+ }
178
218
 
179
- _$_.expression(expression_4, () => lazy_3.value);
180
- _$_.pop(div_2);
181
- }
219
+ function AsyncList() {
220
+ return _$_.tsrx_element(AsyncList_render);
221
+ }
222
+
223
+ export function AsyncTryWithLeadingSibling() {
224
+ return _$_.tsrx_element(AsyncTryWithLeadingSibling_render);
225
+ }
182
226
 
183
- _$_.append(__anchor, div_2);
184
- });
227
+ function AsyncContent() {
228
+ return _$_.tsrx_element(AsyncContent_render);
185
229
  }
@@ -0,0 +1,71 @@
1
+ // @ts-nocheck
2
+ import * as _$_ from 'ripple/internal/client';
3
+
4
+ var root_1 = _$_.template(`<div class="typed-run"> <span>tail</span></div><p class="typed-number"> </p><button>update</button>`, 1, 3);
5
+
6
+ function render(__prev) {
7
+ var __a = 'value: ' + (__prev._row.value.label + String(__prev._row.value.count ?? ''));
8
+
9
+ if (__prev.a !== __a) {
10
+ _$_.set_text(__prev._expression, __prev.a = __a);
11
+ }
12
+
13
+ var __b = (0, __prev._row.value.count);
14
+
15
+ if (__prev.b !== __b) {
16
+ _$_.set_text(__prev._expression_1, __prev.b = __b);
17
+ }
18
+ }
19
+
20
+ var root = _$_.template(`<!>`, 1, 1);
21
+
22
+ function TypedText_render(__anchor, __block) {
23
+ const row = _$_.track({ label: '<first>', count: 2 }, __block, '9bf2304a');
24
+ var fragment = root();
25
+ var node = _$_.first_child_frag(fragment);
26
+
27
+ _$_.expression(node, () => _$_.tsrx_element((__anchor, __block) => {
28
+ var fragment_1 = root_1();
29
+ var div = _$_.first_child_frag(fragment_1);
30
+
31
+ {
32
+ var expression = _$_.hydrating ? _$_.hydrate_child(true) : div.firstChild;
33
+
34
+ _$_.hydrating && _$_.pop(div);
35
+ }
36
+
37
+ var p = _$_.hydrating ? _$_.hydrate_sibling() : div.nextSibling;
38
+
39
+ {
40
+ var expression_1 = _$_.hydrating ? _$_.hydrate_text() : p.firstChild;
41
+ }
42
+
43
+ var button = _$_.hydrating ? _$_.hydrate_sibling() : p.nextSibling;
44
+
45
+ button.__click = () => {
46
+ row.value = { label: '&next', count: 3n };
47
+ };
48
+
49
+ _$_.render(render, {
50
+ a: ' ',
51
+ b: ' ',
52
+ _row: row,
53
+ _expression: expression,
54
+ _expression_1: expression_1
55
+ });
56
+
57
+ _$_.append(__anchor, fragment_1);
58
+ }));
59
+
60
+ _$_.append(__anchor, fragment);
61
+ }
62
+
63
+ TypedText[_$_.$r] = TypedText_render;
64
+
65
+ import { track } from 'ripple';
66
+
67
+ export function TypedText() {
68
+ return _$_.tsrx_element(TypedText_render);
69
+ }
70
+
71
+ _$_.delegate(['click']);
@@ -0,0 +1,10 @@
1
+ export class Money {
2
+ /** @param {number} amount @param {string} currency */
3
+ constructor(amount, currency) {
4
+ this.amount = amount;
5
+ this.currency = currency;
6
+ }
7
+ format() {
8
+ return `${this.amount} ${this.currency}`;
9
+ }
10
+ }
@@ -474,7 +474,7 @@ export function DynamicArrayFromCall() {
474
474
 
475
475
  export function DynamicArrayFromTrack() {
476
476
  return _$_.tsrx_element(() => {
477
- let lazy = _$_.track(['start:', ['one', 2], true, null, false, ':end'], 'b5de6402');
477
+ const items = _$_.track(['start:', ['one', 2], true, null, false, ':end'], 'b5de6402');
478
478
 
479
479
  _$_.regular_block(() => {
480
480
  let __out = '';
@@ -484,7 +484,7 @@ export function DynamicArrayFromTrack() {
484
484
  {
485
485
  _$_.output_push(__out);
486
486
  __out = '';
487
- _$_.render_expression(lazy.value);
487
+ _$_.render_expression(items.value);
488
488
  }
489
489
 
490
490
  __out += '</div>';
@@ -641,7 +641,7 @@ export function TsxDeclaredBeforeTopLevelTsx() {
641
641
  });
642
642
  }
643
643
 
644
- function TextProp(__props) {
644
+ function TextProp({ children }) {
645
645
  return _$_.tsrx_element(() => {
646
646
  _$_.regular_block(() => {
647
647
  let __out = '';
@@ -651,7 +651,7 @@ function TextProp(__props) {
651
651
  {
652
652
  _$_.output_push(__out);
653
653
  __out = '';
654
- _$_.render_expression(__props.children);
654
+ _$_.render_expression(children.value);
655
655
  }
656
656
 
657
657
  __out += '</div>';
@@ -660,9 +660,20 @@ function TextProp(__props) {
660
660
  });
661
661
  }
662
662
 
663
+ function TypedTextProp({ children }) {
664
+ return _$_.tsrx_element(() => {
665
+ _$_.regular_block(() => {
666
+ let __out = '';
667
+
668
+ __out += '<div class="text-prop">' + _$_.escape(children.value) + '</div>';
669
+ _$_.output_push(__out);
670
+ });
671
+ });
672
+ }
673
+
663
674
  export function TextPropWithToggle() {
664
675
  return _$_.tsrx_element(() => {
665
- let lazy_1 = _$_.track(false, '1ba81c3b');
676
+ const show = _$_.track(false, '1ba81c3b');
666
677
 
667
678
  _$_.regular_block(() => {
668
679
  let __out = '';
@@ -675,7 +686,37 @@ export function TextPropWithToggle() {
675
686
 
676
687
  const args = [
677
688
  {
678
- children: _$_.normalize_children(lazy_1.value ? 'hello' : '')
689
+ children: _$_.normalize_children(_$_.track(() => show.value ? 'hello' : '', '649e2af0'))
690
+ }
691
+ ];
692
+
693
+ _$_.output_push(__out);
694
+ __out = '';
695
+ _$_.render_component(comp, ...args);
696
+ }
697
+
698
+ __out += '<button class="show-text">Show</button>';
699
+ _$_.output_push(__out);
700
+ });
701
+ });
702
+ }
703
+
704
+ export function TypedTextPropWithToggle() {
705
+ return _$_.tsrx_element(() => {
706
+ const show = _$_.track(false, 'ba719d47');
707
+
708
+ _$_.regular_block(() => {
709
+ let __out = '';
710
+
711
+ {
712
+ const comp = TypedTextProp;
713
+
714
+ _$_.output_push(__out);
715
+ __out = '';
716
+
717
+ const args = [
718
+ {
719
+ children: _$_.normalize_children(_$_.track(() => show.value ? 'hello' : '', '6fb091f9'))
679
720
  }
680
721
  ];
681
722
 
@@ -1022,4 +1063,80 @@ export function FragmentLeadsWithPrimitiveCall() {
1022
1063
  _$_.output_push(__out);
1023
1064
  });
1024
1065
  });
1066
+ }
1067
+
1068
+ export function PrimitiveTextCalls() {
1069
+ return _$_.tsrx_element(() => {
1070
+ const count = _$_.track(2, 'eea72017');
1071
+
1072
+ _$_.regular_block(() => {
1073
+ let __out = '';
1074
+
1075
+ __out += '<div class="primitive-calls">' + _$_.escape("sum: " + (String(Number(count.value) + Number(count.value) ?? '') + ("; big: " + String(BigInt(count.value) ?? '')))) + '</div><button>update</button>';
1076
+ _$_.output_push(__out);
1077
+ });
1078
+ });
1079
+ }
1080
+
1081
+ export function ShadowedTextCalls() {
1082
+ return _$_.tsrx_element(() => {
1083
+ const String = () => _$_.tsrx_element(() => {
1084
+ _$_.regular_block(() => {
1085
+ let __out = '';
1086
+
1087
+ __out += '<b>string</b>';
1088
+ _$_.output_push(__out);
1089
+ });
1090
+ });
1091
+
1092
+ const Number = () => _$_.tsrx_element(() => {
1093
+ _$_.regular_block(() => {
1094
+ let __out = '';
1095
+
1096
+ __out += '<b>number</b>';
1097
+ _$_.output_push(__out);
1098
+ });
1099
+ });
1100
+
1101
+ const BigInt = () => _$_.tsrx_element(() => {
1102
+ _$_.regular_block(() => {
1103
+ let __out = '';
1104
+
1105
+ __out += '<b>bigint</b>';
1106
+ _$_.output_push(__out);
1107
+ });
1108
+ });
1109
+
1110
+ const Date = () => _$_.tsrx_element(() => {
1111
+ _$_.regular_block(() => {
1112
+ let __out = '';
1113
+
1114
+ __out += '<b>date</b>';
1115
+ _$_.output_push(__out);
1116
+ });
1117
+ });
1118
+
1119
+ _$_.regular_block(() => {
1120
+ let __out = '';
1121
+
1122
+ __out += '<p>before';
1123
+ _$_.output_push(__out);
1124
+ __out = '';
1125
+ _$_.render_tsrx_element(String());
1126
+ __out += 'after</p><p>before';
1127
+ _$_.output_push(__out);
1128
+ __out = '';
1129
+ _$_.render_tsrx_element(Number());
1130
+ __out += 'after</p><p>before';
1131
+ _$_.output_push(__out);
1132
+ __out = '';
1133
+ _$_.render_tsrx_element(BigInt());
1134
+ __out += 'after</p><p>before';
1135
+ _$_.output_push(__out);
1136
+ __out = '';
1137
+ _$_.render_tsrx_element(Date());
1138
+ __out += 'after</p>';
1139
+ _$_.output_push(__out);
1140
+ });
1141
+ });
1025
1142
  }