ripple 0.3.71 → 0.3.74
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.
- package/CHANGELOG.md +75 -0
- package/package.json +3 -3
- package/src/jsx-runtime.d.ts +2 -8
- package/src/runtime/index-client.js +3 -13
- package/src/runtime/internal/client/blocks.js +3 -25
- package/src/runtime/internal/client/for.js +80 -5
- package/src/runtime/internal/client/index.js +0 -2
- package/src/runtime/internal/client/types.d.ts +0 -10
- package/tests/client/__snapshots__/computed-properties.test.tsrx.snap +8 -0
- package/tests/client/__snapshots__/for.test.tsrx.snap +22 -0
- package/tests/client/__snapshots__/html.test.tsrx.snap +4 -0
- package/tests/client/array/array.copy-within.test.tsrx +19 -19
- package/tests/client/array/array.derived.test.tsrx +97 -109
- package/tests/client/array/array.iteration.test.tsrx +28 -28
- package/tests/client/array/array.mutations.test.tsrx +68 -68
- package/tests/client/array/array.static.test.tsrx +82 -92
- package/tests/client/array/array.to-methods.test.tsrx +15 -15
- package/tests/client/async-suspend.test.tsrx +180 -179
- package/tests/client/basic/__snapshots__/basic.attributes.test.tsrx.snap +2 -0
- package/tests/client/basic/__snapshots__/basic.rendering.test.tsrx.snap +4 -0
- package/tests/client/basic/basic.attributes.test.tsrx +273 -317
- package/tests/client/basic/basic.collections.test.tsrx +59 -71
- package/tests/client/basic/basic.components.test.tsrx +196 -222
- package/tests/client/basic/basic.errors.test.tsrx +72 -78
- package/tests/client/basic/basic.events.test.tsrx +80 -85
- package/tests/client/basic/basic.get-set.test.tsrx +54 -64
- package/tests/client/basic/basic.hmr.test.tsrx +15 -19
- package/tests/client/basic/basic.reactivity.test.tsrx +121 -135
- package/tests/client/basic/basic.rendering.test.tsrx +273 -178
- package/tests/client/basic/basic.utilities.test.tsrx +8 -10
- package/tests/client/boundaries.test.tsrx +18 -18
- package/tests/client/compiler/compiler.assignments.test.tsrx +77 -76
- package/tests/client/compiler/compiler.attributes.test.tsrx +18 -14
- package/tests/client/compiler/compiler.basic.test.tsrx +364 -296
- package/tests/client/compiler/compiler.regex.test.tsrx +40 -44
- package/tests/client/compiler/compiler.tracked-access.test.tsrx +57 -38
- package/tests/client/compiler/compiler.try-in-function.test.tsrx +16 -16
- package/tests/client/compiler/compiler.typescript.test.tsrx +4 -3
- package/tests/client/composite/composite.dynamic-components.test.tsrx +41 -44
- package/tests/client/composite/composite.generics.test.tsrx +165 -167
- package/tests/client/composite/composite.props.test.tsrx +66 -74
- package/tests/client/composite/composite.reactivity.test.tsrx +132 -166
- package/tests/client/composite/composite.render.test.tsrx +92 -101
- package/tests/client/computed-properties.test.tsrx +14 -18
- package/tests/client/context.test.tsrx +14 -18
- package/tests/client/css/global-additional-cases.test.tsrx +491 -437
- package/tests/client/css/global-advanced-selectors.test.tsrx +169 -153
- package/tests/client/css/global-at-rules.test.tsrx +71 -66
- package/tests/client/css/global-basic.test.tsrx +105 -98
- package/tests/client/css/global-classes-ids.test.tsrx +128 -114
- package/tests/client/css/global-combinators.test.tsrx +83 -78
- package/tests/client/css/global-complex-nesting.test.tsrx +134 -120
- package/tests/client/css/global-edge-cases.test.tsrx +138 -120
- package/tests/client/css/global-keyframes.test.tsrx +108 -96
- package/tests/client/css/global-nested.test.tsrx +88 -78
- package/tests/client/css/global-pseudo.test.tsrx +104 -98
- package/tests/client/css/global-scoping.test.tsrx +145 -125
- package/tests/client/css/style-identifier.test.tsrx +62 -69
- package/tests/client/date.test.tsrx +83 -83
- package/tests/client/dynamic-elements.test.tsrx +227 -283
- package/tests/client/events.test.tsrx +252 -266
- package/tests/client/for.test.tsrx +120 -127
- package/tests/client/head.test.tsrx +40 -48
- package/tests/client/html.test.tsrx +37 -49
- package/tests/client/input-value.test.tsrx +1125 -1354
- package/tests/client/lazy-array.test.tsrx +10 -16
- package/tests/client/lazy-destructuring.test.tsrx +169 -221
- package/tests/client/map.test.tsrx +39 -41
- package/tests/client/media-query.test.tsrx +15 -19
- package/tests/client/object.test.tsrx +46 -56
- package/tests/client/portal.test.tsrx +31 -37
- package/tests/client/ref.test.tsrx +173 -193
- package/tests/client/return.test.tsrx +62 -37
- package/tests/client/set.test.tsrx +33 -33
- package/tests/client/svg.test.tsrx +195 -215
- package/tests/client/switch.test.tsrx +201 -191
- package/tests/client/track-async-hydration.test.tsrx +14 -18
- package/tests/client/tracked-index-access.test.tsrx +18 -28
- package/tests/client/try.test.tsrx +494 -619
- package/tests/client/tsx.test.tsrx +290 -371
- package/tests/client/typescript-generics.test.tsrx +121 -129
- package/tests/client/url/url.derived.test.tsrx +21 -25
- package/tests/client/url/url.parsing.test.tsrx +35 -35
- package/tests/client/url/url.partial-removal.test.tsrx +32 -32
- package/tests/client/url/url.reactivity.test.tsrx +68 -72
- package/tests/client/url/url.serialization.test.tsrx +8 -8
- package/tests/client/url-search-params/url-search-params.derived.test.tsrx +21 -27
- package/tests/client/url-search-params/url-search-params.initialization.test.tsrx +16 -16
- package/tests/client/url-search-params/url-search-params.iteration.test.tsrx +37 -37
- package/tests/client/url-search-params/url-search-params.mutation.test.tsrx +56 -60
- package/tests/client/url-search-params/url-search-params.retrieval.test.tsrx +32 -34
- package/tests/client/url-search-params/url-search-params.serialization.test.tsrx +9 -9
- package/tests/client/url-search-params/url-search-params.tracked-url.test.tsrx +10 -10
- package/tests/hydration/compiled/client/basic.js +396 -325
- package/tests/hydration/compiled/client/composite.js +52 -44
- package/tests/hydration/compiled/client/for.js +734 -604
- package/tests/hydration/compiled/client/head.js +183 -103
- package/tests/hydration/compiled/client/html.js +93 -86
- package/tests/hydration/compiled/client/if-children.js +95 -71
- package/tests/hydration/compiled/client/if.js +113 -89
- package/tests/hydration/compiled/client/mixed-control-flow.js +225 -209
- package/tests/hydration/compiled/client/nested-control-flow.js +94 -98
- package/tests/hydration/compiled/client/reactivity.js +26 -24
- package/tests/hydration/compiled/client/return.js +8 -42
- package/tests/hydration/compiled/client/switch.js +208 -173
- package/tests/hydration/compiled/client/track-async-serialization.js +176 -128
- package/tests/hydration/compiled/client/try.js +29 -21
- package/tests/hydration/compiled/server/basic.js +210 -221
- package/tests/hydration/compiled/server/composite.js +13 -14
- package/tests/hydration/compiled/server/for.js +427 -444
- package/tests/hydration/compiled/server/head.js +199 -189
- package/tests/hydration/compiled/server/html.js +33 -41
- package/tests/hydration/compiled/server/if-children.js +114 -117
- package/tests/hydration/compiled/server/if.js +77 -83
- package/tests/hydration/compiled/server/mixed-control-flow.js +145 -150
- package/tests/hydration/compiled/server/nested-control-flow.js +10 -0
- package/tests/hydration/compiled/server/reactivity.js +24 -22
- package/tests/hydration/compiled/server/return.js +6 -18
- package/tests/hydration/compiled/server/switch.js +179 -176
- package/tests/hydration/compiled/server/track-async-serialization.js +88 -70
- package/tests/hydration/compiled/server/try.js +31 -35
- package/tests/hydration/components/basic.tsrx +216 -286
- package/tests/hydration/components/composite.tsrx +32 -42
- package/tests/hydration/components/events.tsrx +81 -101
- package/tests/hydration/components/for.tsrx +270 -336
- package/tests/hydration/components/head.tsrx +43 -39
- package/tests/hydration/components/hmr.tsrx +16 -22
- package/tests/hydration/components/html-in-template.tsrx +15 -21
- package/tests/hydration/components/html.tsrx +442 -526
- package/tests/hydration/components/if-children.tsrx +107 -125
- package/tests/hydration/components/if.tsrx +68 -90
- package/tests/hydration/components/mixed-control-flow.tsrx +65 -72
- package/tests/hydration/components/nested-control-flow.tsrx +202 -216
- package/tests/hydration/components/portal.tsrx +33 -41
- package/tests/hydration/components/reactivity.tsrx +26 -34
- package/tests/hydration/components/return.tsrx +4 -6
- package/tests/hydration/components/switch.tsrx +73 -78
- package/tests/hydration/components/track-async-serialization.tsrx +83 -93
- package/tests/hydration/components/try.tsrx +37 -51
- package/tests/hydration/switch.test.js +8 -8
- package/tests/server/await.test.tsrx +3 -3
- package/tests/server/basic.attributes.test.tsrx +120 -167
- package/tests/server/basic.components.test.tsrx +163 -197
- package/tests/server/basic.test.tsrx +298 -220
- package/tests/server/compiler.test.tsrx +142 -72
- package/tests/server/composite.props.test.tsrx +54 -58
- package/tests/server/composite.test.tsrx +165 -167
- package/tests/server/context.test.tsrx +13 -17
- package/tests/server/dynamic-elements.test.tsrx +103 -135
- package/tests/server/for.test.tsrx +115 -84
- package/tests/server/head.test.tsrx +31 -31
- package/tests/server/html-nesting-validation.test.tsrx +16 -8
- package/tests/server/if.test.tsrx +49 -59
- package/tests/server/lazy-destructuring.test.tsrx +288 -366
- package/tests/server/return.test.tsrx +58 -36
- package/tests/server/streaming-ssr.test.tsrx +4 -4
- package/tests/server/style-identifier.test.tsrx +58 -66
- package/tests/server/switch.test.tsrx +89 -97
- package/tests/server/track-async-serialization.test.tsrx +85 -103
- package/tests/server/try.test.tsrx +275 -360
- package/tests/utils/ref-types.test.js +72 -0
- package/tests/utils/vite-plugin-config.test.js +41 -74
- package/types/index.d.ts +1 -0
- package/src/runtime/internal/client/compat.js +0 -40
- package/tests/utils/compiler-compat-config.test.js +0 -38
|
@@ -14,22 +14,20 @@ describe('basic client > collections', () => {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
it('renders with simple reactive objects', () => {
|
|
17
|
-
function Basic() {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
function Basic() @{
|
|
18
|
+
let &[user] = track({
|
|
19
|
+
name: 'John',
|
|
20
|
+
age: 25,
|
|
21
|
+
});
|
|
22
|
+
<>
|
|
23
23
|
<div class="name">{user.name}</div>
|
|
24
24
|
<div class="age">{user.age}</div>
|
|
25
25
|
<button
|
|
26
26
|
onClick={() => {
|
|
27
27
|
user = { ...user, name: 'Jane', age: 30 };
|
|
28
28
|
}}
|
|
29
|
-
>
|
|
30
|
-
|
|
31
|
-
</button>
|
|
32
|
-
</>;
|
|
29
|
+
>{'Update User'}</button>
|
|
30
|
+
</>
|
|
33
31
|
}
|
|
34
32
|
|
|
35
33
|
render(Basic);
|
|
@@ -49,12 +47,12 @@ describe('basic client > collections', () => {
|
|
|
49
47
|
});
|
|
50
48
|
|
|
51
49
|
it('renders with nested reactive objects', () => {
|
|
52
|
-
function Basic() {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
function Basic() @{
|
|
51
|
+
let &[user] = track({
|
|
52
|
+
name: track('John'),
|
|
53
|
+
age: track(25),
|
|
54
|
+
});
|
|
55
|
+
<>
|
|
58
56
|
<div class="name">{user.name.value}</div>
|
|
59
57
|
<div class="age">{user.age.value}</div>
|
|
60
58
|
<button
|
|
@@ -62,10 +60,8 @@ describe('basic client > collections', () => {
|
|
|
62
60
|
user.name.value = 'Jane';
|
|
63
61
|
user.age.value = 30;
|
|
64
62
|
}}
|
|
65
|
-
>
|
|
66
|
-
|
|
67
|
-
</button>
|
|
68
|
-
</>;
|
|
63
|
+
>{'Update User'}</button>
|
|
64
|
+
</>
|
|
69
65
|
}
|
|
70
66
|
|
|
71
67
|
render(Basic);
|
|
@@ -85,21 +81,21 @@ describe('basic client > collections', () => {
|
|
|
85
81
|
});
|
|
86
82
|
|
|
87
83
|
it('works as a reactive RippleArray when constructed using # syntactic sugar', () => {
|
|
88
|
-
function App() {
|
|
89
|
-
|
|
90
|
-
|
|
84
|
+
function App() @{
|
|
85
|
+
const array = new RippleArray(1, 2, 3);
|
|
86
|
+
<>
|
|
91
87
|
<pre>{String(array[3])}</pre>
|
|
92
88
|
<pre>{array[0]}</pre>
|
|
93
|
-
<pre>
|
|
89
|
+
<pre>
|
|
90
|
+
{TRACKED_ARRAY in array}
|
|
91
|
+
</pre>
|
|
94
92
|
<button
|
|
95
93
|
onClick={() => {
|
|
96
94
|
array.push(array.length + 1);
|
|
97
95
|
array[0] = array[0] + 1;
|
|
98
96
|
}}
|
|
99
|
-
>
|
|
100
|
-
|
|
101
|
-
</button>
|
|
102
|
-
</>;
|
|
97
|
+
>{'Add'}</button>
|
|
98
|
+
</>
|
|
103
99
|
}
|
|
104
100
|
|
|
105
101
|
render(App);
|
|
@@ -121,36 +117,30 @@ describe('basic client > collections', () => {
|
|
|
121
117
|
});
|
|
122
118
|
|
|
123
119
|
it('cleans up mixed tsrx collection sentinels and trailing text on rerender', () => {
|
|
124
|
-
function App() {
|
|
125
|
-
|
|
126
|
-
|
|
120
|
+
function App() @{
|
|
121
|
+
let &[primary] = track(true);
|
|
122
|
+
<>
|
|
127
123
|
<div class="frame">
|
|
128
|
-
{
|
|
124
|
+
{<>
|
|
129
125
|
{primary
|
|
130
126
|
? [
|
|
131
127
|
'first:',
|
|
132
|
-
<strong class="middle">
|
|
133
|
-
{'one'}
|
|
134
|
-
</strong>,
|
|
128
|
+
<strong class="middle">{'one'}</strong>,
|
|
135
129
|
':tail',
|
|
136
130
|
]
|
|
137
131
|
: [
|
|
138
132
|
'second:',
|
|
139
|
-
<strong class="middle">
|
|
140
|
-
{'two'}
|
|
141
|
-
</strong>,
|
|
133
|
+
<strong class="middle">{'two'}</strong>,
|
|
142
134
|
':done',
|
|
143
135
|
]}
|
|
144
|
-
|
|
136
|
+
</>}
|
|
145
137
|
</div>
|
|
146
138
|
<button
|
|
147
139
|
onClick={() => {
|
|
148
140
|
primary = !primary;
|
|
149
141
|
}}
|
|
150
|
-
>
|
|
151
|
-
|
|
152
|
-
</button>
|
|
153
|
-
</>;
|
|
142
|
+
>{'toggle'}</button>
|
|
143
|
+
</>
|
|
154
144
|
}
|
|
155
145
|
|
|
156
146
|
render(App);
|
|
@@ -178,21 +168,17 @@ describe('basic client > collections', () => {
|
|
|
178
168
|
});
|
|
179
169
|
|
|
180
170
|
it('flattens nested primitive arrays inside mixed tsrx collections', () => {
|
|
181
|
-
function App() {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
{
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
]}
|
|
193
|
-
</tsx>}
|
|
194
|
-
</div>
|
|
195
|
-
</>;
|
|
171
|
+
function App() @{
|
|
172
|
+
<div class="frame">
|
|
173
|
+
{<>
|
|
174
|
+
{[
|
|
175
|
+
'start:',
|
|
176
|
+
['one', 2, true, null, false],
|
|
177
|
+
<strong>{'!'}</strong>,
|
|
178
|
+
':end',
|
|
179
|
+
]}
|
|
180
|
+
</>}
|
|
181
|
+
</div>
|
|
196
182
|
}
|
|
197
183
|
|
|
198
184
|
render(App);
|
|
@@ -201,12 +187,14 @@ describe('basic client > collections', () => {
|
|
|
201
187
|
});
|
|
202
188
|
|
|
203
189
|
it('flattens direct primitive array expressions', () => {
|
|
204
|
-
function App() {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
<div class="frame">
|
|
190
|
+
function App() @{
|
|
191
|
+
const items = ['start:', ['one', 2], null, true, false, ':end'];
|
|
192
|
+
<>
|
|
193
|
+
<div class="frame">
|
|
194
|
+
{['start:', ['one', 2], null, true, false, ':end']}
|
|
195
|
+
</div>
|
|
208
196
|
<div class="bound-frame">{items}</div>
|
|
209
|
-
|
|
197
|
+
</>
|
|
210
198
|
}
|
|
211
199
|
|
|
212
200
|
render(App);
|
|
@@ -216,16 +204,16 @@ describe('basic client > collections', () => {
|
|
|
216
204
|
});
|
|
217
205
|
|
|
218
206
|
it('flattens conditional primitive array expressions', () => {
|
|
219
|
-
function App() {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
207
|
+
function App() @{
|
|
208
|
+
const condition = true;
|
|
209
|
+
const ternary_items = condition
|
|
210
|
+
? ['start:', ['one', 2], null, true, false, ':end']
|
|
211
|
+
: ['fallback'];
|
|
212
|
+
const logical_items = condition && ['start:', ['one', 2], null, true, false, ':end'];
|
|
213
|
+
<>
|
|
226
214
|
<div class="ternary-frame">{ternary_items}</div>
|
|
227
215
|
<div class="logical-frame">{logical_items}</div>
|
|
228
|
-
|
|
216
|
+
</>
|
|
229
217
|
}
|
|
230
218
|
|
|
231
219
|
render(App);
|