@vidact/runtime 0.2.0-beta.0 → 0.2.0-beta.4
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 +37 -0
- package/README.md +1 -1
- package/dist/actions.d.ts +32 -30
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +251 -266
- package/dist/actions.js.map +1 -1
- package/dist/async.d.ts +20 -17
- package/dist/async.d.ts.map +1 -1
- package/dist/async.js +18 -17
- package/dist/async.js.map +1 -1
- package/dist/compiled/async-resource.d.ts +9 -6
- package/dist/compiled/async-resource.d.ts.map +1 -1
- package/dist/compiled/async-resource.js +69 -77
- package/dist/compiled/async-resource.js.map +1 -1
- package/dist/compiled/core.d.ts +136 -147
- package/dist/compiled/core.d.ts.map +1 -1
- package/dist/compiled/core.js +2669 -2985
- package/dist/compiled/core.js.map +1 -1
- package/dist/compiled/types.d.ts +44 -56
- package/dist/compiled/types.d.ts.map +1 -1
- package/dist/compiled/types.js +10 -6
- package/dist/compiled/types.js.map +1 -1
- package/dist/compiled/validation.d.ts +4 -1
- package/dist/compiled/validation.d.ts.map +1 -1
- package/dist/compiled/validation.js +17 -20
- package/dist/compiled/validation.js.map +1 -1
- package/dist/component-spread.d.ts +5 -3
- package/dist/component-spread.d.ts.map +1 -1
- package/dist/component-spread.js +49 -67
- package/dist/component-spread.js.map +1 -1
- package/dist/concurrent.d.ts +20 -18
- package/dist/concurrent.d.ts.map +1 -1
- package/dist/concurrent.js +191 -210
- package/dist/concurrent.js.map +1 -1
- package/dist/direct-dom.d.ts +17 -12
- package/dist/direct-dom.d.ts.map +1 -1
- package/dist/direct-dom.js +187 -221
- package/dist/direct-dom.js.map +1 -1
- package/dist/dom/attributes.d.ts +9 -6
- package/dist/dom/attributes.d.ts.map +1 -1
- package/dist/dom/attributes.js +65 -47
- package/dist/dom/attributes.js.map +1 -1
- package/dist/dom/events.d.ts +5 -2
- package/dist/dom/events.d.ts.map +1 -1
- package/dist/dom/events.js +53 -65
- package/dist/dom/events.js.map +1 -1
- package/dist/dom/forms.d.ts +9 -6
- package/dist/dom/forms.d.ts.map +1 -1
- package/dist/dom/forms.js +152 -198
- package/dist/dom/forms.js.map +1 -1
- package/dist/dom/intrinsic.d.ts +17 -15
- package/dist/dom/intrinsic.d.ts.map +1 -1
- package/dist/dom/intrinsic.js +48 -50
- package/dist/dom/intrinsic.js.map +1 -1
- package/dist/dom/namespace.d.ts +4 -1
- package/dist/dom/namespace.d.ts.map +1 -1
- package/dist/dom/namespace.js +25 -28
- package/dist/dom/namespace.js.map +1 -1
- package/dist/dom/namespaces.d.ts +11 -8
- package/dist/dom/namespaces.d.ts.map +1 -1
- package/dist/dom/namespaces.js +14 -12
- package/dist/dom/namespaces.js.map +1 -1
- package/dist/dom/properties.d.ts +18 -16
- package/dist/dom/properties.d.ts.map +1 -1
- package/dist/dom/properties.js +273 -296
- package/dist/dom/properties.js.map +1 -1
- package/dist/dom/style-properties.d.ts +4 -1
- package/dist/dom/style-properties.d.ts.map +1 -1
- package/dist/dom/style-properties.js +49 -45
- package/dist/dom/style-properties.js.map +1 -1
- package/dist/dom/styles.d.ts +5 -2
- package/dist/dom/styles.d.ts.map +1 -1
- package/dist/dom/styles.js +47 -67
- package/dist/dom/styles.js.map +1 -1
- package/dist/dom-forms.d.ts +4 -1
- package/dist/dom-forms.d.ts.map +1 -1
- package/dist/dom-forms.js +16 -13
- package/dist/dom-forms.js.map +1 -1
- package/dist/dom-styles.d.ts +4 -1
- package/dist/dom-styles.d.ts.map +1 -1
- package/dist/dom-styles.js +10 -7
- package/dist/dom-styles.js.map +1 -1
- package/dist/framework-hydrate.d.ts +20 -17
- package/dist/framework-hydrate.d.ts.map +1 -1
- package/dist/framework-hydrate.js +128 -146
- package/dist/framework-hydrate.js.map +1 -1
- package/dist/framework-protocol.d.ts +27 -25
- package/dist/framework-protocol.d.ts.map +1 -1
- package/dist/framework-protocol.js +173 -211
- package/dist/framework-protocol.js.map +1 -1
- package/dist/framework.d.ts +34 -32
- package/dist/framework.d.ts.map +1 -1
- package/dist/framework.js +74 -93
- package/dist/framework.js.map +1 -1
- package/dist/hydrate.d.ts +11 -8
- package/dist/hydrate.d.ts.map +1 -1
- package/dist/hydrate.js +13 -9
- package/dist/hydrate.js.map +1 -1
- package/dist/hydration-bridge.d.ts +61 -58
- package/dist/hydration-bridge.d.ts.map +1 -1
- package/dist/hydration-bridge.js +67 -66
- package/dist/hydration-bridge.js.map +1 -1
- package/dist/hydration.d.ts +31 -28
- package/dist/hydration.d.ts.map +1 -1
- package/dist/hydration.js +376 -462
- package/dist/hydration.js.map +1 -1
- package/dist/index.d.ts +13 -13
- package/dist/index.js +11 -13
- package/dist/indexed-list.d.ts +8 -5
- package/dist/indexed-list.d.ts.map +1 -1
- package/dist/indexed-list.js +14 -7
- package/dist/indexed-list.js.map +1 -1
- package/dist/jsx-runtime.d.ts +10 -8
- package/dist/jsx-runtime.d.ts.map +1 -1
- package/dist/jsx-runtime.js +28 -23
- package/dist/jsx-runtime.js.map +1 -1
- package/dist/keyed-list.d.ts +13 -14
- package/dist/keyed-list.d.ts.map +1 -1
- package/dist/keyed-list.js +132 -160
- package/dist/keyed-list.js.map +1 -1
- package/dist/metadata.d.ts +6 -3
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +131 -164
- package/dist/metadata.js.map +1 -1
- package/dist/nested-prop.d.ts +4 -2
- package/dist/nested-prop.d.ts.map +1 -1
- package/dist/nested-prop.js +17 -16
- package/dist/nested-prop.js.map +1 -1
- package/dist/profiling.d.ts +11 -8
- package/dist/profiling.d.ts.map +1 -1
- package/dist/profiling.js +17 -17
- package/dist/profiling.js.map +1 -1
- package/dist/protocol.d.ts +5 -2
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +8 -5
- package/dist/protocol.js.map +1 -1
- package/dist/raw-html.d.ts +5 -2
- package/dist/raw-html.d.ts.map +1 -1
- package/dist/raw-html.js +86 -146
- package/dist/raw-html.js.map +1 -1
- package/dist/ref.d.ts +8 -3
- package/dist/ref.d.ts.map +1 -1
- package/dist/ref.js +10 -2
- package/dist/ref.js.map +1 -1
- package/dist/renderable-protocol.d.ts +26 -8
- package/dist/renderable-protocol.d.ts.map +1 -1
- package/dist/renderable-protocol.js +30 -9
- package/dist/renderable-protocol.js.map +1 -1
- package/dist/renderable.d.ts +27 -22
- package/dist/renderable.d.ts.map +1 -1
- package/dist/renderable.js +141 -133
- package/dist/renderable.js.map +1 -1
- package/dist/retained-ui.d.ts +9 -6
- package/dist/retained-ui.d.ts.map +1 -1
- package/dist/retained-ui.js +12 -10
- package/dist/retained-ui.js.map +1 -1
- package/dist/root.d.ts +18 -15
- package/dist/root.d.ts.map +1 -1
- package/dist/root.js +73 -85
- package/dist/root.js.map +1 -1
- package/dist/scheduler.d.ts +10 -8
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +97 -105
- package/dist/scheduler.js.map +1 -1
- package/dist/server-framework.d.ts +45 -42
- package/dist/server-framework.d.ts.map +1 -1
- package/dist/server-framework.js +209 -217
- package/dist/server-framework.js.map +1 -1
- package/dist/server.d.ts +130 -128
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +592 -706
- package/dist/server.js.map +1 -1
- package/dist/shared/promise.d.ts +6 -3
- package/dist/shared/promise.d.ts.map +1 -1
- package/dist/shared/promise.js +21 -19
- package/dist/shared/promise.js.map +1 -1
- package/dist/source-mask.d.ts +9 -6
- package/dist/source-mask.d.ts.map +1 -1
- package/dist/source-mask.js +45 -63
- package/dist/source-mask.js.map +1 -1
- package/dist/spread.d.ts +5 -2
- package/dist/spread.d.ts.map +1 -1
- package/dist/spread.js +79 -99
- package/dist/spread.js.map +1 -1
- package/dist/state-slot.d.ts +18 -15
- package/dist/state-slot.d.ts.map +1 -1
- package/dist/state-slot.js +43 -42
- package/dist/state-slot.js.map +1 -1
- package/dist/testing.d.ts +9 -6
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +16 -12
- package/dist/testing.js.map +1 -1
- package/package.json +8 -7
- package/src/actions.ts +415 -0
- package/src/async.ts +78 -0
- package/src/compiled/async-resource.ts +113 -0
- package/src/compiled/core.ts +4026 -0
- package/src/compiled/types.ts +96 -0
- package/src/compiled/validation.ts +23 -0
- package/src/component-spread.ts +86 -0
- package/src/concurrent.ts +310 -0
- package/src/direct-dom.ts +365 -0
- package/src/dom/attributes.ts +55 -0
- package/src/dom/events.ts +93 -0
- package/src/dom/forms.ts +220 -0
- package/src/dom/intrinsic.ts +94 -0
- package/src/dom/namespace.ts +30 -0
- package/src/dom/namespaces.ts +14 -0
- package/src/dom/properties.ts +355 -0
- package/src/dom/style-properties.ts +46 -0
- package/src/dom/styles.ts +86 -0
- package/src/dom-forms.ts +23 -0
- package/src/dom-styles.ts +11 -0
- package/src/env.d.ts +6 -0
- package/src/framework-hydrate.ts +224 -0
- package/src/framework-protocol.ts +335 -0
- package/src/framework.ts +161 -0
- package/src/hydrate.ts +38 -0
- package/src/hydration-bridge.ts +183 -0
- package/src/hydration.ts +556 -0
- package/src/index.ts +92 -0
- package/src/indexed-list.ts +20 -0
- package/src/jsx-runtime.ts +55 -0
- package/src/keyed-list.ts +233 -0
- package/src/metadata.ts +212 -0
- package/src/nested-prop.ts +27 -0
- package/src/profiling.ts +43 -0
- package/src/protocol.ts +8 -0
- package/src/raw-html.ts +206 -0
- package/src/ref.ts +13 -0
- package/src/renderable-protocol.ts +63 -0
- package/src/renderable.ts +283 -0
- package/src/retained-ui.ts +19 -0
- package/src/root.ts +122 -0
- package/src/scheduler.ts +136 -0
- package/src/server-framework.ts +397 -0
- package/src/server.ts +1143 -0
- package/src/shared/promise.ts +28 -0
- package/src/source-mask.ts +83 -0
- package/src/spread.ts +131 -0
- package/src/state-slot.ts +76 -0
- package/src/testing.ts +27 -0
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/raw-html.js
CHANGED
|
@@ -1,172 +1,112 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { HydrationMismatch, isHydrating } from "./hydration-bridge.js";
|
|
2
|
+
import { isCompiledBinding, mountCompiledPropTransition } from "./compiled/core.js";
|
|
3
|
+
//#region src/raw-html.ts
|
|
3
4
|
const RAW_HTML_PUBLICATION_PRIORITY = 100;
|
|
4
|
-
const rawHtmlHosts = new WeakSet();
|
|
5
|
-
const DEV = typeof __VIDACT_DEV__ ===
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
mountRawHtml(element, value, children);
|
|
5
|
+
const rawHtmlHosts = /* @__PURE__ */ new WeakSet();
|
|
6
|
+
const DEV = typeof __VIDACT_DEV__ === "undefined" || __VIDACT_DEV__;
|
|
7
|
+
function mountRawHtmlProp(element, value, children) {
|
|
8
|
+
if (value === null || value === void 0) return;
|
|
9
|
+
if (isCompiledBinding(value)) {
|
|
10
|
+
mountCompiledPropTransition(value, (initial) => mountRawHtml(element, initial, children), (next, previous) => prepareRawHtml(element, next, previous, children));
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
mountRawHtml(element, value, children);
|
|
14
14
|
}
|
|
15
15
|
function mountRawHtml(element, value, children) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
container.replaceChildren(adoptRawHtml(element, staged));
|
|
28
|
-
}
|
|
29
|
-
rawHtmlHosts.add(element);
|
|
16
|
+
const html = readRawHtml(element, value, children);
|
|
17
|
+
if (html === null || html === void 0) return;
|
|
18
|
+
const container = rawHtmlContainer(element);
|
|
19
|
+
const staged = parseRawHtml(element, html);
|
|
20
|
+
if (isHydrating()) {
|
|
21
|
+
if (!hasEqualHydrationRawChildren(container, staged)) throw new HydrationMismatch("server raw HTML does not match the client value");
|
|
22
|
+
} else container.replaceChildren(adoptRawHtml(element, staged));
|
|
23
|
+
rawHtmlHosts.add(element);
|
|
30
24
|
}
|
|
31
25
|
function hasEqualHydrationRawChildren(container, expected) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const actual = [];
|
|
41
|
-
for (let node = start.nextSibling; node !== null && node !== end; node = node.nextSibling) {
|
|
42
|
-
actual.push(node);
|
|
43
|
-
}
|
|
44
|
-
if (actual.length !== expected.childNodes.length)
|
|
45
|
-
return false;
|
|
46
|
-
for (let index = 0; index < actual.length; index += 1) {
|
|
47
|
-
if (!actual[index]?.isEqualNode(expected.childNodes[index] ?? null))
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
return true;
|
|
26
|
+
const start = container.firstChild;
|
|
27
|
+
const end = container.lastChild;
|
|
28
|
+
if (!(start instanceof Comment) || start.data !== "vidact:v1:h" || !(end instanceof Comment) || end.data !== "/vidact:v1:h") return false;
|
|
29
|
+
const actual = [];
|
|
30
|
+
for (let node = start.nextSibling; node !== null && node !== end; node = node.nextSibling) actual.push(node);
|
|
31
|
+
if (actual.length !== expected.childNodes.length) return false;
|
|
32
|
+
for (let index = 0; index < actual.length; index += 1) if (!actual[index]?.isEqualNode(expected.childNodes[index] ?? null)) return false;
|
|
33
|
+
return true;
|
|
51
34
|
}
|
|
52
35
|
function prepareRawHtml(element, nextValue, previousValue, children) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
undefined,
|
|
79
|
-
undefined,
|
|
80
|
-
RAW_HTML_PUBLICATION_PRIORITY,
|
|
81
|
-
];
|
|
36
|
+
const nextHtml = readRawHtml(element, nextValue, children);
|
|
37
|
+
const previousHtml = readRawHtml(element, previousValue, children);
|
|
38
|
+
if (nextHtml === null || nextHtml === void 0 || nextHtml === previousHtml) return void 0;
|
|
39
|
+
const staged = parseRawHtml(element, nextHtml);
|
|
40
|
+
const container = rawHtmlContainer(element);
|
|
41
|
+
const wasRawHtmlHost = rawHtmlHosts.has(element);
|
|
42
|
+
let previousNodes;
|
|
43
|
+
return [
|
|
44
|
+
() => {
|
|
45
|
+
assertExecutableRawHtmlTarget(element);
|
|
46
|
+
const adopted = adoptRawHtml(element, staged);
|
|
47
|
+
previousNodes = [...container.childNodes];
|
|
48
|
+
container.replaceChildren(adopted);
|
|
49
|
+
rawHtmlHosts.add(element);
|
|
50
|
+
},
|
|
51
|
+
() => {
|
|
52
|
+
if (previousNodes === void 0) return;
|
|
53
|
+
container.replaceChildren(...previousNodes);
|
|
54
|
+
if (!wasRawHtmlHost) rawHtmlHosts.delete(element);
|
|
55
|
+
previousNodes = void 0;
|
|
56
|
+
},
|
|
57
|
+
void 0,
|
|
58
|
+
void 0,
|
|
59
|
+
RAW_HTML_PUBLICATION_PRIORITY
|
|
60
|
+
];
|
|
82
61
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
assertExecutableRawHtmlTarget(element);
|
|
62
|
+
function validateRawHtmlRelatedProp(element, name) {
|
|
63
|
+
if (name === "type" && rawHtmlHosts.has(element)) assertExecutableRawHtmlTarget(element);
|
|
86
64
|
}
|
|
87
65
|
function readRawHtml(element, value, children) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const html = value['__html'];
|
|
97
|
-
if (html === null || html === undefined)
|
|
98
|
-
return html;
|
|
99
|
-
if (children.some((child) => child !== null && child !== undefined)) {
|
|
100
|
-
throw new Error(DEV ? 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.' : 'V602');
|
|
101
|
-
}
|
|
102
|
-
assertExecutableRawHtmlTarget(element);
|
|
103
|
-
return html;
|
|
66
|
+
if (value === null || value === void 0) return void 0;
|
|
67
|
+
assertRawHtmlPropTarget(element);
|
|
68
|
+
if (typeof value !== "object" || !("__html" in value)) throw new Error(DEV ? "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information." : "V601");
|
|
69
|
+
const html = value["__html"];
|
|
70
|
+
if (html === null || html === void 0) return html;
|
|
71
|
+
if (children.some((child) => child !== null && child !== void 0)) throw new Error(DEV ? "Can only set one of `children` or `props.dangerouslySetInnerHTML`." : "V602");
|
|
72
|
+
assertExecutableRawHtmlTarget(element);
|
|
73
|
+
return html;
|
|
104
74
|
}
|
|
105
75
|
function assertRawHtmlPropTarget(element) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
? `${tag} is a void element tag and must neither have \`children\` nor use \`dangerouslySetInnerHTML\`.`
|
|
110
|
-
: 'V603');
|
|
111
|
-
}
|
|
112
|
-
if (tag === 'textarea') {
|
|
113
|
-
throw new Error(DEV ? '`dangerouslySetInnerHTML` does not make sense on <textarea>.' : 'V604');
|
|
114
|
-
}
|
|
76
|
+
const tag = element.localName;
|
|
77
|
+
if (isVoidHtmlElement(tag)) throw new Error(DEV ? `${tag} is a void element tag and must neither have \`children\` nor use \`dangerouslySetInnerHTML\`.` : "V603");
|
|
78
|
+
if (tag === "textarea") throw new Error(DEV ? "`dangerouslySetInnerHTML` does not make sense on <textarea>." : "V604");
|
|
115
79
|
}
|
|
116
80
|
function assertExecutableRawHtmlTarget(element) {
|
|
117
|
-
|
|
118
|
-
if (tag === 'script' && isExecutableScript(element)) {
|
|
119
|
-
throw new Error(DEV
|
|
120
|
-
? 'dangerouslySetInnerHTML on an executable <script> is unsupported because direct-created scripts execute when connected; use a non-executable data MIME type'
|
|
121
|
-
: 'V605');
|
|
122
|
-
}
|
|
81
|
+
if (element.localName === "script" && isExecutableScript(element)) throw new Error(DEV ? "dangerouslySetInnerHTML on an executable <script> is unsupported because direct-created scripts execute when connected; use a non-executable data MIME type" : "V605");
|
|
123
82
|
}
|
|
124
83
|
function isVoidHtmlElement(tag) {
|
|
125
|
-
|
|
126
|
-
tag === 'base' ||
|
|
127
|
-
tag === 'br' ||
|
|
128
|
-
tag === 'col' ||
|
|
129
|
-
tag === 'embed' ||
|
|
130
|
-
tag === 'hr' ||
|
|
131
|
-
tag === 'img' ||
|
|
132
|
-
tag === 'input' ||
|
|
133
|
-
tag === 'keygen' ||
|
|
134
|
-
tag === 'link' ||
|
|
135
|
-
tag === 'menuitem' ||
|
|
136
|
-
tag === 'meta' ||
|
|
137
|
-
tag === 'param' ||
|
|
138
|
-
tag === 'source' ||
|
|
139
|
-
tag === 'track' ||
|
|
140
|
-
tag === 'wbr');
|
|
84
|
+
return tag === "area" || tag === "base" || tag === "br" || tag === "col" || tag === "embed" || tag === "hr" || tag === "img" || tag === "input" || tag === "keygen" || tag === "link" || tag === "menuitem" || tag === "meta" || tag === "param" || tag === "source" || tag === "track" || tag === "wbr";
|
|
141
85
|
}
|
|
142
86
|
function isExecutableScript(element) {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
return (/^(?:application|text)\/(?:x-)?(?:java|ecma)script(?:1\.[0-5])?$/.test(type) ||
|
|
148
|
-
type === 'text/jscript' ||
|
|
149
|
-
type === 'text/livescript');
|
|
87
|
+
const type = element.type.trim().toLowerCase().split(";", 1)[0] ?? "";
|
|
88
|
+
if (type === "" || type === "module" || type === "importmap" || type === "speculationrules") return true;
|
|
89
|
+
return /^(?:application|text)\/(?:x-)?(?:java|ecma)script(?:1\.[0-5])?$/.test(type) || type === "text/jscript" || type === "text/livescript";
|
|
150
90
|
}
|
|
151
91
|
function parseRawHtml(element, html) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
fragment.append(...rawHtmlContainer(staging).childNodes);
|
|
159
|
-
return fragment;
|
|
92
|
+
const stagingDocument = element.ownerDocument.implementation.createHTMLDocument();
|
|
93
|
+
const staging = element.localName === "noscript" ? element.cloneNode(false) : stagingDocument.createElement(element.localName.includes("-") ? "div" : element.localName);
|
|
94
|
+
Reflect.set(staging, "innerHTML", html);
|
|
95
|
+
const fragment = staging.ownerDocument.createDocumentFragment();
|
|
96
|
+
fragment.append(...rawHtmlContainer(staging).childNodes);
|
|
97
|
+
return fragment;
|
|
160
98
|
}
|
|
161
99
|
function rawHtmlContainer(element) {
|
|
162
|
-
|
|
100
|
+
return element instanceof HTMLTemplateElement ? element.content : element;
|
|
163
101
|
}
|
|
164
102
|
function adoptRawHtml(element, staged) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
return adopted;
|
|
103
|
+
if (staged.ownerDocument === element.ownerDocument) return staged;
|
|
104
|
+
const adopted = element.ownerDocument.createDocumentFragment();
|
|
105
|
+
adopted.append(...staged.childNodes);
|
|
106
|
+
element.ownerDocument.defaultView?.customElements.upgrade(adopted);
|
|
107
|
+
return adopted;
|
|
171
108
|
}
|
|
109
|
+
//#endregion
|
|
110
|
+
export { mountRawHtmlProp, validateRawHtmlRelatedProp };
|
|
111
|
+
|
|
172
112
|
//# sourceMappingURL=raw-html.js.map
|
package/dist/raw-html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw-html.js","
|
|
1
|
+
{"version":3,"file":"raw-html.js","names":[],"sources":["../src/raw-html.ts"],"mappings":"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"}
|
package/dist/ref.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
//#region src/ref.d.ts
|
|
2
|
+
interface MutableRef<T> {
|
|
3
|
+
current: T;
|
|
3
4
|
}
|
|
5
|
+
/** Creates the plain ref object used by dependency initialization outside component hooks. */
|
|
6
|
+
declare function createRef<T>(): MutableRef<T | null>;
|
|
4
7
|
/** Creates the stable ref cell captured by a component's one-time execution. */
|
|
5
|
-
|
|
8
|
+
declare function useRef<T>(initialValue: T): MutableRef<T>;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { MutableRef, createRef, useRef };
|
|
6
11
|
//# sourceMappingURL=ref.d.ts.map
|
package/dist/ref.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ref.d.ts","
|
|
1
|
+
{"version":3,"file":"ref.d.ts","names":[],"sources":["../src/ref.ts"],"mappings":";UAAiB,WAAW;EAC1B,SAAS;;;iBAIK,UAAU,MAAM,WAAW;;iBAK3B,OAAO,GAAG,cAAc,IAAI,WAAW"}
|
package/dist/ref.js
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
|
+
//#region src/ref.ts
|
|
2
|
+
/** Creates the plain ref object used by dependency initialization outside component hooks. */
|
|
3
|
+
function createRef() {
|
|
4
|
+
return { current: null };
|
|
5
|
+
}
|
|
1
6
|
/** Creates the stable ref cell captured by a component's one-time execution. */
|
|
2
|
-
|
|
3
|
-
|
|
7
|
+
function useRef(initialValue) {
|
|
8
|
+
return { current: initialValue };
|
|
4
9
|
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { createRef, useRef };
|
|
12
|
+
|
|
5
13
|
//# sourceMappingURL=ref.js.map
|
package/dist/ref.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ref.js","
|
|
1
|
+
{"version":3,"file":"ref.js","names":[],"sources":["../src/ref.ts"],"mappings":";;AAKA,SAAgB,YAAqC;CACnD,OAAO,EAAE,SAAS,KAAK;AACzB;;AAGA,SAAgB,OAAU,cAAgC;CACxD,OAAO,EAAE,SAAS,aAAa;AACjC"}
|
|
@@ -1,10 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
//#region src/renderable-protocol.d.ts
|
|
2
|
+
declare const RENDERABLE: unique symbol;
|
|
3
|
+
interface RenderableProtocol {
|
|
4
|
+
readonly [RENDERABLE]: {
|
|
5
|
+
readonly identity: unknown;
|
|
6
|
+
readonly input: unknown;
|
|
7
|
+
readonly reconcile: boolean;
|
|
8
|
+
readonly construct: (input: never) => unknown;
|
|
9
|
+
};
|
|
7
10
|
}
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Cloning a renderable pulls in the element-construction module, which most
|
|
13
|
+
* compiled apps never touch. The renderable module registers its clone the
|
|
14
|
+
* first time an element capability is created, so `jsx` can reach it without
|
|
15
|
+
* importing it, and bundles that never build elements leave it out.
|
|
16
|
+
*/
|
|
17
|
+
type RenderableClone = (value: RenderableProtocol, overrides: Record<string, unknown>) => unknown;
|
|
18
|
+
declare function installRenderableClone(clone: RenderableClone): void;
|
|
19
|
+
declare function renderableCloneHandler(): RenderableClone | undefined;
|
|
20
|
+
declare function isRenderableProtocol(value: unknown): value is RenderableProtocol;
|
|
21
|
+
declare function materializeRenderable(value: RenderableProtocol): unknown;
|
|
22
|
+
declare function materializeRenderableWithInput(value: RenderableProtocol, input: unknown): unknown;
|
|
23
|
+
declare function renderableIdentity(value: RenderableProtocol): unknown;
|
|
24
|
+
declare function canReconcileRenderable(value: RenderableProtocol): boolean;
|
|
25
|
+
declare function renderablePropsSnapshot(value: RenderableProtocol): Record<PropertyKey, unknown>;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { RENDERABLE, RenderableClone, RenderableProtocol, canReconcileRenderable, installRenderableClone, isRenderableProtocol, materializeRenderable, materializeRenderableWithInput, renderableCloneHandler, renderableIdentity, renderablePropsSnapshot };
|
|
10
28
|
//# sourceMappingURL=renderable-protocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderable-protocol.d.ts","
|
|
1
|
+
{"version":3,"file":"renderable-protocol.d.ts","names":[],"sources":["../src/renderable-protocol.ts"],"mappings":";cAAa;UAEI;YACL;aACC;aACA;aACA;aACA,YAAY;;;;;;;;;KAUb,mBACV,OAAO,oBACP,WAAW;iBAKG,uBAAuB,OAAO;iBAI9B,0BAA0B;iBAI1B,qBAAqB,iBAAiB,SAAS;iBAS/C,sBAAsB,OAAO;iBAK7B,+BAA+B,OAAO,oBAAoB;iBAI1D,mBAAmB,OAAO;iBAI1B,uBAAuB,OAAO;iBAI9B,wBAAwB,OAAO,qBAAqB,OAAO"}
|
|
@@ -1,12 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
typeof value[RENDERABLE]?.construct === 'function');
|
|
1
|
+
//#region src/renderable-protocol.ts
|
|
2
|
+
const RENDERABLE = Symbol.for("vidact.v1.Renderable");
|
|
3
|
+
let renderableClone;
|
|
4
|
+
function installRenderableClone(clone) {
|
|
5
|
+
renderableClone = clone;
|
|
7
6
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return internals.construct(internals.input);
|
|
7
|
+
function renderableCloneHandler() {
|
|
8
|
+
return renderableClone;
|
|
11
9
|
}
|
|
10
|
+
function isRenderableProtocol(value) {
|
|
11
|
+
return typeof value === "object" && value !== null && Object.hasOwn(value, RENDERABLE) && typeof value[RENDERABLE]?.construct === "function";
|
|
12
|
+
}
|
|
13
|
+
function materializeRenderable(value) {
|
|
14
|
+
const internals = value[RENDERABLE];
|
|
15
|
+
return internals.construct(internals.input);
|
|
16
|
+
}
|
|
17
|
+
function materializeRenderableWithInput(value, input) {
|
|
18
|
+
return value[RENDERABLE].construct(input);
|
|
19
|
+
}
|
|
20
|
+
function renderableIdentity(value) {
|
|
21
|
+
return value[RENDERABLE].identity;
|
|
22
|
+
}
|
|
23
|
+
function canReconcileRenderable(value) {
|
|
24
|
+
return value[RENDERABLE].reconcile;
|
|
25
|
+
}
|
|
26
|
+
function renderablePropsSnapshot(value) {
|
|
27
|
+
const props = value.props;
|
|
28
|
+
return Object.fromEntries(Reflect.ownKeys(props).map((name) => [name, Reflect.get(props, name)]));
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { RENDERABLE, canReconcileRenderable, installRenderableClone, isRenderableProtocol, materializeRenderable, materializeRenderableWithInput, renderableCloneHandler, renderableIdentity, renderablePropsSnapshot };
|
|
32
|
+
|
|
12
33
|
//# sourceMappingURL=renderable-protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderable-protocol.js","
|
|
1
|
+
{"version":3,"file":"renderable-protocol.js","names":[],"sources":["../src/renderable-protocol.ts"],"mappings":";AAAA,MAAa,aAAa,OAAO,IAAI,sBAAsB;AAsB3D,IAAI;AAEJ,SAAgB,uBAAuB,OAA8B;CACnE,kBAAkB;AACpB;AAEA,SAAgB,yBAAsD;CACpE,OAAO;AACT;AAEA,SAAgB,qBAAqB,OAA6C;CAChF,OACE,OAAO,UAAU,YACjB,UAAU,QACV,OAAO,OAAO,OAAO,UAAU,KAC/B,OAAQ,MAA6B,WAAW,EAAE,cAAc;AAEpE;AAEA,SAAgB,sBAAsB,OAAoC;CACxE,MAAM,YAAY,MAAM;CACxB,OAAO,UAAU,UAAU,UAAU,KAAc;AACrD;AAEA,SAAgB,+BAA+B,OAA2B,OAAyB;CACjG,OAAO,MAAM,WAAW,CAAC,UAAU,KAAc;AACnD;AAEA,SAAgB,mBAAmB,OAAoC;CACrE,OAAO,MAAM,WAAW,CAAC;AAC3B;AAEA,SAAgB,uBAAuB,OAAoC;CACzE,OAAO,MAAM,WAAW,CAAC;AAC3B;AAEA,SAAgB,wBAAwB,OAAyD;CAC/F,MAAM,QAAS,MACZ;CACH,OAAO,OAAO,YAAY,QAAQ,QAAQ,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,QAAQ,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;AAClG"}
|
package/dist/renderable.d.ts
CHANGED
|
@@ -1,27 +1,32 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { RENDERABLE } from "./renderable-protocol.js";
|
|
2
|
+
import { CompiledBinding, CompiledRenderValue } from "./compiled/types.js";
|
|
3
|
+
import { DirectComponent, Fragment } from "./direct-dom.js";
|
|
4
|
+
//#region src/renderable.d.ts
|
|
4
5
|
type Props = Record<string, unknown>;
|
|
5
|
-
|
|
6
|
+
type RenderablePropsInput = Props | CompiledBinding<Props>;
|
|
6
7
|
type RenderableInternals = {
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
readonly identity: unknown;
|
|
9
|
+
readonly input: RenderablePropsInput;
|
|
10
|
+
readonly reconcile: boolean;
|
|
11
|
+
readonly construct: (input: RenderablePropsInput) => CompiledRenderValue;
|
|
9
12
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
interface CompiledRenderable {
|
|
14
|
+
readonly props: Props;
|
|
15
|
+
readonly [RENDERABLE]: RenderableInternals;
|
|
13
16
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
declare function createRenderable(input: RenderablePropsInput, construct: (input: RenderablePropsInput) => CompiledRenderValue, identity?: unknown, reconcile?: boolean): CompiledRenderable;
|
|
18
|
+
declare function isRenderable(value: unknown): value is CompiledRenderable;
|
|
19
|
+
declare function createReactElement(type: string | typeof Fragment | DirectComponent | CompiledRenderable, props: Props | null, ...children: CompiledRenderValue[]): CompiledRenderable;
|
|
20
|
+
declare function renderableToArray(value: unknown): [CompiledRenderable];
|
|
21
|
+
declare function renderableMarker(value: unknown): undefined;
|
|
22
|
+
declare function cloneRenderable(value: unknown, overrides?: RenderablePropsInput | null, childrenOverride?: CompiledRenderValue | CompiledBinding<CompiledRenderValue>): CompiledRenderValue;
|
|
23
|
+
declare function cloneRenderableComponent(props: Record<string, unknown>): CompiledRenderValue;
|
|
24
|
+
declare function keyedFragmentComponent(props: Record<string, unknown>): CompiledRenderValue;
|
|
25
|
+
declare function renderableProps(input: RenderablePropsInput): Record<string, unknown>;
|
|
26
|
+
declare function renderableChildren(input: RenderablePropsInput): CompiledRenderValue;
|
|
27
|
+
declare function renderableRef(input: RenderablePropsInput): unknown;
|
|
28
|
+
declare function forwardedRef(props: Record<string, unknown>): unknown;
|
|
29
|
+
declare function dynamicIntrinsicComponent(props: Record<string, unknown>): CompiledRenderValue;
|
|
30
|
+
//#endregion
|
|
31
|
+
export { CompiledRenderable, RenderablePropsInput, cloneRenderable, cloneRenderableComponent, createReactElement, createRenderable, dynamicIntrinsicComponent, forwardedRef, isRenderable, keyedFragmentComponent, renderableChildren, renderableMarker, renderableProps, renderableRef, renderableToArray };
|
|
27
32
|
//# sourceMappingURL=renderable.d.ts.map
|
package/dist/renderable.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderable.d.ts","
|
|
1
|
+
{"version":3,"file":"renderable.d.ts","names":[],"sources":["../src/renderable.ts"],"mappings":";;;;KAgBK,QAAQ;KACD,uBAAuB,QAAQ,gBAAgB;KAEtD;WACM;WACA,OAAO;WACP;WACA,YAAY,OAAO,yBAAyB;;UAGtC;WACN,OAAO;YACN,aAAa;;iBAGT,iBACd,OAAO,sBACP,YAAY,OAAO,yBAAyB,qBAC5C,oBACA,sBACC;iBAca,aAAa,iBAAiB,SAAS;iBAIvC,mBACd,sBAAsB,WAAW,kBAAkB,oBACnD,OAAO,iBACJ,UAAU,wBACZ;iBAsBa,kBAAkB,kBAAkB;iBASpC,iBAAiB;iBASjB,gBACd,gBACA,YAAY,6BACZ,mBAAmB,sBAAsB,gBAAgB,uBACxD;iBAea,yBAAyB,OAAO,0BAA0B;iBAY1D,uBAAuB,OAAO,0BAA0B;iBAIxD,gBAAgB,OAAO,uBAAuB;iBAW9C,mBAAmB,OAAO,uBAAuB;iBAIjD,cAAc,OAAO;iBAIrB,aAAa,OAAO;iBAIpB,0BAA0B,OAAO,0BAA0B"}
|