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
|
@@ -2,11 +2,9 @@ import { Fragment, flushSync, track } from 'ripple';
|
|
|
2
2
|
|
|
3
3
|
describe('Fragment innerHTML', () => {
|
|
4
4
|
it('renders host innerHTML as content instead of an attribute', () => {
|
|
5
|
-
function App() {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
<code innerHTML={html} />
|
|
9
|
-
</>;
|
|
5
|
+
function App() @{
|
|
6
|
+
const html = '<span>Host HTML</span>';
|
|
7
|
+
<code innerHTML={html} />
|
|
10
8
|
}
|
|
11
9
|
|
|
12
10
|
render(App);
|
|
@@ -17,14 +15,14 @@ describe('Fragment innerHTML', () => {
|
|
|
17
15
|
});
|
|
18
16
|
|
|
19
17
|
it('renders spread innerHTML as content instead of an attribute', () => {
|
|
20
|
-
function App() {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
function App() @{
|
|
19
|
+
let &[attrs] = track<{ innerHTML?: string }>({
|
|
20
|
+
innerHTML: '<span>Spread HTML</span>',
|
|
21
|
+
});
|
|
22
|
+
<>
|
|
25
23
|
<code {...attrs} />
|
|
26
24
|
<button onClick={() => (attrs = { innerHTML: '<em>Updated HTML</em>' })}>{'Update'}</button>
|
|
27
|
-
|
|
25
|
+
</>
|
|
28
26
|
}
|
|
29
27
|
|
|
30
28
|
render(App);
|
|
@@ -42,11 +40,9 @@ describe('Fragment innerHTML', () => {
|
|
|
42
40
|
});
|
|
43
41
|
|
|
44
42
|
it('uses the last innerHTML value when spreads and direct props are mixed', () => {
|
|
45
|
-
function App() {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
<code {...attrs} innerHTML="<em>Direct HTML</em>" />
|
|
49
|
-
</>;
|
|
43
|
+
function App() @{
|
|
44
|
+
const attrs = { innerHTML: '<span>Spread HTML</span>' };
|
|
45
|
+
<code {...attrs} innerHTML="<em>Direct HTML</em>" />
|
|
50
46
|
}
|
|
51
47
|
|
|
52
48
|
render(App);
|
|
@@ -57,11 +53,9 @@ describe('Fragment innerHTML', () => {
|
|
|
57
53
|
});
|
|
58
54
|
|
|
59
55
|
it('renders static innerHTML fragments', () => {
|
|
60
|
-
function App() {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
<Fragment innerHTML={str} />
|
|
64
|
-
</>;
|
|
56
|
+
function App() @{
|
|
57
|
+
let str = '<div>Test</div>';
|
|
58
|
+
<Fragment innerHTML={str} />
|
|
65
59
|
}
|
|
66
60
|
|
|
67
61
|
render(App);
|
|
@@ -69,18 +63,16 @@ describe('Fragment innerHTML', () => {
|
|
|
69
63
|
});
|
|
70
64
|
|
|
71
65
|
it('renders dynamic innerHTML fragments', () => {
|
|
72
|
-
function App() {
|
|
73
|
-
|
|
74
|
-
|
|
66
|
+
function App() @{
|
|
67
|
+
let &[str] = track('<div>Test</div>');
|
|
68
|
+
<>
|
|
75
69
|
<Fragment innerHTML={str} />
|
|
76
70
|
<button
|
|
77
71
|
onClick={() => {
|
|
78
72
|
str = '<div>Updated</div>';
|
|
79
73
|
}}
|
|
80
|
-
>
|
|
81
|
-
|
|
82
|
-
</button>
|
|
83
|
-
</>;
|
|
74
|
+
>{'Update'}</button>
|
|
75
|
+
</>
|
|
84
76
|
}
|
|
85
77
|
|
|
86
78
|
render(App);
|
|
@@ -94,11 +86,9 @@ describe('Fragment innerHTML', () => {
|
|
|
94
86
|
});
|
|
95
87
|
|
|
96
88
|
it('renders static Fragment innerHTML', () => {
|
|
97
|
-
function App() {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
<Fragment innerHTML={html} />
|
|
101
|
-
</>;
|
|
89
|
+
function App() @{
|
|
90
|
+
const html = '<strong>Fragment HTML</strong>';
|
|
91
|
+
<Fragment innerHTML={html} />
|
|
102
92
|
}
|
|
103
93
|
|
|
104
94
|
render(App);
|
|
@@ -108,12 +98,12 @@ describe('Fragment innerHTML', () => {
|
|
|
108
98
|
});
|
|
109
99
|
|
|
110
100
|
it('updates dynamic Fragment innerHTML', () => {
|
|
111
|
-
function App() {
|
|
112
|
-
|
|
113
|
-
|
|
101
|
+
function App() @{
|
|
102
|
+
let &[html] = track('<span>First</span>');
|
|
103
|
+
<>
|
|
114
104
|
<Fragment innerHTML={html} />
|
|
115
105
|
<button onClick={() => (html = '<em>Second</em>')}>{'Update'}</button>
|
|
116
|
-
|
|
106
|
+
</>
|
|
117
107
|
}
|
|
118
108
|
|
|
119
109
|
render(App);
|
|
@@ -130,13 +120,11 @@ describe('Fragment innerHTML', () => {
|
|
|
130
120
|
});
|
|
131
121
|
|
|
132
122
|
it('renders the correct namespace for child svg element when html is surrounded by <svg>', () => {
|
|
133
|
-
function App() {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
<
|
|
137
|
-
|
|
138
|
-
</svg>
|
|
139
|
-
</>;
|
|
123
|
+
function App() @{
|
|
124
|
+
let str = '<circle r="45" cx="50" cy="50" fill="red" />';
|
|
125
|
+
<svg height="100" width="100">
|
|
126
|
+
<Fragment innerHTML={str} />
|
|
127
|
+
</svg>
|
|
140
128
|
}
|
|
141
129
|
|
|
142
130
|
render(App);
|
|
@@ -148,11 +136,11 @@ describe('Fragment innerHTML', () => {
|
|
|
148
136
|
it(
|
|
149
137
|
'renders the correct namespace for child math element when html is surrounded by <math>',
|
|
150
138
|
() => {
|
|
151
|
-
function App() {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
<
|
|
155
|
-
|
|
139
|
+
function App() @{
|
|
140
|
+
let str = '<mi>x</mi><mo>+</mo><mi>y</mi>';
|
|
141
|
+
<math>
|
|
142
|
+
<Fragment innerHTML={str} />
|
|
143
|
+
</math>
|
|
156
144
|
}
|
|
157
145
|
|
|
158
146
|
render(App);
|