@reckona/mreact-compat 0.0.139 → 0.0.141
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/dist/dom-props.d.ts.map +1 -1
- package/dist/dom-props.js +58 -44
- package/dist/dom-props.js.map +1 -1
- package/dist/element.d.ts +1 -0
- package/dist/element.d.ts.map +1 -1
- package/dist/element.js +21 -3
- package/dist/element.js.map +1 -1
- package/dist/event-listeners.d.ts +1 -4
- package/dist/event-listeners.d.ts.map +1 -1
- package/dist/event-listeners.js +2 -1
- package/dist/event-listeners.js.map +1 -1
- package/dist/events.d.ts +2 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +82 -3
- package/dist/events.js.map +1 -1
- package/dist/fiber-child.d.ts.map +1 -1
- package/dist/fiber-child.js +44 -0
- package/dist/fiber-child.js.map +1 -1
- package/dist/fiber-commit.d.ts.map +1 -1
- package/dist/fiber-commit.js +70 -0
- package/dist/fiber-commit.js.map +1 -1
- package/dist/host-event-binder.d.ts +1 -1
- package/dist/host-event-binder.d.ts.map +1 -1
- package/dist/host-event-binder.js +1 -1
- package/dist/host-event-binder.js.map +1 -1
- package/dist/host-reconciler.d.ts.map +1 -1
- package/dist/host-reconciler.js +28 -13
- package/dist/host-reconciler.js.map +1 -1
- package/package.json +3 -3
- package/src/dom-props.ts +119 -51
- package/src/element.ts +33 -4
- package/src/event-listeners.ts +3 -5
- package/src/events.ts +100 -3
- package/src/fiber-child.ts +67 -0
- package/src/fiber-commit.ts +92 -0
- package/src/host-event-binder.ts +2 -0
- package/src/host-reconciler.ts +37 -16
package/dist/dom-props.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-props.d.ts","sourceRoot":"","sources":["../src/dom-props.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dom-props.d.ts","sourceRoot":"","sources":["../src/dom-props.ts"],"names":[],"mappings":"AAMA,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AASvE,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAE7B,wBAAgB,UAAU,CACxB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,IAAI,CAyIN;AAmJD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI,CAyBN"}
|
package/dist/dom-props.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getAppliedProps, setAppliedProps,
|
|
1
|
+
import { getAppliedProps, setAppliedProps, ensureDelegatedEventListenersForProp, } from "./host-event-binder.js";
|
|
2
2
|
import { HOST_OWN_PROPS_META } from "./element.js";
|
|
3
3
|
import { reportRecoverable } from "./hydration.js";
|
|
4
4
|
import { isDangerousHtmlAttribute, isDangerousHtmlOptIn, isSrcsetAttribute, isUnsafeMetaRefreshContent, isUnsafeUrlAttribute, isUrlAttribute, } from "./url-safety.js";
|
|
@@ -10,21 +10,17 @@ export function applyProps(element, props, path, options) {
|
|
|
10
10
|
if (previous === undefined && !preserveHydrationAttributes) {
|
|
11
11
|
if (applyInitialRowProps(element, nextProps)) {
|
|
12
12
|
setAppliedProps(element, {
|
|
13
|
-
attributeNames: collectAttributeNames(nextProps),
|
|
14
13
|
props: nextProps,
|
|
15
14
|
});
|
|
16
15
|
return;
|
|
17
16
|
}
|
|
18
|
-
|
|
17
|
+
applyInitialProps(element, nextProps, path, options);
|
|
19
18
|
setAppliedProps(element, {
|
|
20
|
-
attributeNames,
|
|
21
19
|
props: nextProps,
|
|
22
|
-
...applyInitialProps(element, nextProps, path, options),
|
|
23
20
|
});
|
|
24
21
|
return;
|
|
25
22
|
}
|
|
26
23
|
const previousProps = previous?.props ?? {};
|
|
27
|
-
let listeners = previous?.listeners;
|
|
28
24
|
const previousAttributeNames = previous?.attributeNames ?? collectAttributeNames(previousProps);
|
|
29
25
|
const nextAttributeNames = collectAttributeNames(nextProps);
|
|
30
26
|
if (!preserveHydrationAttributes) {
|
|
@@ -41,14 +37,6 @@ export function applyProps(element, props, path, options) {
|
|
|
41
37
|
}
|
|
42
38
|
}
|
|
43
39
|
}
|
|
44
|
-
if (listeners !== undefined) {
|
|
45
|
-
for (const [name, appliedListener] of listeners) {
|
|
46
|
-
const nextValue = nextProps[name];
|
|
47
|
-
if (nextValue !== appliedListener.handler) {
|
|
48
|
-
listeners.delete(name);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
40
|
for (const name in nextProps) {
|
|
53
41
|
if (!Object.prototype.hasOwnProperty.call(nextProps, name)) {
|
|
54
42
|
continue;
|
|
@@ -57,7 +45,7 @@ export function applyProps(element, props, path, options) {
|
|
|
57
45
|
if (name === "children" || name === "ref" || name === "key") {
|
|
58
46
|
continue;
|
|
59
47
|
}
|
|
60
|
-
if (applyFormValueProp(element, name, value, path, options)) {
|
|
48
|
+
if (isFormValuePropName(name) && applyFormValueProp(element, name, value, path, options)) {
|
|
61
49
|
continue;
|
|
62
50
|
}
|
|
63
51
|
if (name === "className") {
|
|
@@ -72,19 +60,14 @@ export function applyProps(element, props, path, options) {
|
|
|
72
60
|
applyStyle(element, previousProps[name], value, path, options);
|
|
73
61
|
continue;
|
|
74
62
|
}
|
|
75
|
-
if (
|
|
76
|
-
if (
|
|
63
|
+
if (isReactEventHandlerPropName(name) && typeof value === "function") {
|
|
64
|
+
if (previousProps[name] === value) {
|
|
77
65
|
continue;
|
|
78
66
|
}
|
|
79
|
-
|
|
80
|
-
for (const eventName of toEventNames(name)) {
|
|
81
|
-
ensureDelegatedEventListener(options.eventRoot ?? element, eventName);
|
|
82
|
-
}
|
|
83
|
-
listeners ??= new Map();
|
|
84
|
-
listeners.set(name, { handler });
|
|
67
|
+
ensureDelegatedEventListenersForProp(options.eventRoot ?? element, name);
|
|
85
68
|
continue;
|
|
86
69
|
}
|
|
87
|
-
if (
|
|
70
|
+
if (isEventLikePropName(name)) {
|
|
88
71
|
continue;
|
|
89
72
|
}
|
|
90
73
|
const attributeName = toDomAttributeName(name);
|
|
@@ -123,11 +106,10 @@ export function applyProps(element, props, path, options) {
|
|
|
123
106
|
setAppliedProps(element, {
|
|
124
107
|
attributeNames: nextAttributeNames,
|
|
125
108
|
props: nextProps,
|
|
126
|
-
...(listeners === undefined ? {} : { listeners }),
|
|
127
109
|
});
|
|
128
110
|
}
|
|
129
111
|
function applyInitialProps(element, props, path, options) {
|
|
130
|
-
|
|
112
|
+
const useAttributeFastPath = options.hydration === undefined;
|
|
131
113
|
for (const name in props) {
|
|
132
114
|
if (!Object.prototype.hasOwnProperty.call(props, name)) {
|
|
133
115
|
continue;
|
|
@@ -136,43 +118,38 @@ function applyInitialProps(element, props, path, options) {
|
|
|
136
118
|
if (name === "children" || name === "ref" || name === "key") {
|
|
137
119
|
continue;
|
|
138
120
|
}
|
|
139
|
-
if (applyFormValueProp(element, name, value, path, options)) {
|
|
121
|
+
if (isFormValuePropName(name) && applyFormValueProp(element, name, value, path, options)) {
|
|
140
122
|
continue;
|
|
141
123
|
}
|
|
142
124
|
if (value === null || value === undefined) {
|
|
143
125
|
continue;
|
|
144
126
|
}
|
|
145
127
|
if (name === "className") {
|
|
146
|
-
|
|
128
|
+
applyInitialOrHydrationAttribute(element, "class", value, path, options, useAttributeFastPath);
|
|
147
129
|
continue;
|
|
148
130
|
}
|
|
149
131
|
if (name === "htmlFor") {
|
|
150
|
-
|
|
132
|
+
applyInitialOrHydrationAttribute(element, "for", value, path, options, useAttributeFastPath);
|
|
151
133
|
continue;
|
|
152
134
|
}
|
|
153
135
|
if (name === "style") {
|
|
154
136
|
applyStyle(element, undefined, value, path, options);
|
|
155
137
|
continue;
|
|
156
138
|
}
|
|
157
|
-
if (
|
|
158
|
-
|
|
159
|
-
for (const eventName of toEventNames(name)) {
|
|
160
|
-
ensureDelegatedEventListener(options.eventRoot ?? element, eventName);
|
|
161
|
-
}
|
|
162
|
-
listeners ??= new Map();
|
|
163
|
-
listeners.set(name, { handler });
|
|
139
|
+
if (isReactEventHandlerPropName(name) && typeof value === "function") {
|
|
140
|
+
ensureDelegatedEventListenersForProp(options.eventRoot ?? element, name);
|
|
164
141
|
continue;
|
|
165
142
|
}
|
|
166
|
-
if (
|
|
143
|
+
if (isEventLikePropName(name)) {
|
|
167
144
|
continue;
|
|
168
145
|
}
|
|
169
146
|
const attributeName = toDomAttributeName(name);
|
|
170
147
|
if (typeof value === "boolean" && isBooleanishStringAttribute(attributeName)) {
|
|
171
|
-
|
|
148
|
+
applyInitialOrHydrationAttribute(element, attributeName, value ? "true" : "false", path, options, useAttributeFastPath);
|
|
172
149
|
continue;
|
|
173
150
|
}
|
|
174
151
|
if (typeof value === "boolean" && isDataAttribute(attributeName)) {
|
|
175
|
-
|
|
152
|
+
applyInitialOrHydrationAttribute(element, attributeName, value ? "true" : "false", path, options, useAttributeFastPath);
|
|
176
153
|
continue;
|
|
177
154
|
}
|
|
178
155
|
if (value === false) {
|
|
@@ -192,9 +169,8 @@ function applyInitialProps(element, props, path, options) {
|
|
|
192
169
|
}
|
|
193
170
|
continue;
|
|
194
171
|
}
|
|
195
|
-
|
|
172
|
+
applyInitialOrHydrationAttribute(element, attributeName, value, path, options, useAttributeFastPath);
|
|
196
173
|
}
|
|
197
|
-
return listeners === undefined ? {} : { listeners };
|
|
198
174
|
}
|
|
199
175
|
function applyInitialRowProps(element, props) {
|
|
200
176
|
const meta = props[HOST_OWN_PROPS_META];
|
|
@@ -247,7 +223,7 @@ function applyAttribute(element, name, value, path, options) {
|
|
|
247
223
|
}
|
|
248
224
|
return;
|
|
249
225
|
}
|
|
250
|
-
if (
|
|
226
|
+
if (isEventLikePropName(name)) {
|
|
251
227
|
if (element.hasAttribute(name) && !preserveHydrationAttributes) {
|
|
252
228
|
element.removeAttribute(name);
|
|
253
229
|
}
|
|
@@ -292,6 +268,29 @@ function applyAttribute(element, name, value, path, options) {
|
|
|
292
268
|
}
|
|
293
269
|
element.setAttribute(name, stringValue);
|
|
294
270
|
}
|
|
271
|
+
function applyInitialAttribute(element, name, value) {
|
|
272
|
+
if (isDangerousHtmlAttribute(name) && !isDangerousHtmlOptIn(value)) {
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
if (isEventLikePropName(name) || value === null || value === undefined || value === false) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
const stringValue = isDangerousHtmlOptIn(value)
|
|
279
|
+
? value.__html
|
|
280
|
+
: String(value);
|
|
281
|
+
if ((isUrlAttribute(name) || isSrcsetAttribute(name)) &&
|
|
282
|
+
isUnsafeUrlAttribute(name, stringValue)) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
element.setAttribute(name, stringValue);
|
|
286
|
+
}
|
|
287
|
+
function applyInitialOrHydrationAttribute(element, name, value, path, options, useFastPath) {
|
|
288
|
+
if (useFastPath) {
|
|
289
|
+
applyInitialAttribute(element, name, value);
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
applyAttribute(element, name, value, path, options);
|
|
293
|
+
}
|
|
295
294
|
function applyFormValueProp(element, name, value, path, options) {
|
|
296
295
|
if (element instanceof HTMLInputElement && (name === "value" || name === "defaultValue")) {
|
|
297
296
|
const nextValue = value === null || value === undefined ? "" : String(value);
|
|
@@ -333,6 +332,12 @@ function applyFormValueProp(element, name, value, path, options) {
|
|
|
333
332
|
}
|
|
334
333
|
return false;
|
|
335
334
|
}
|
|
335
|
+
function isFormValuePropName(name) {
|
|
336
|
+
return (name === "value" ||
|
|
337
|
+
name === "defaultValue" ||
|
|
338
|
+
name === "checked" ||
|
|
339
|
+
name === "defaultChecked");
|
|
340
|
+
}
|
|
336
341
|
function applyStyle(element, previousStyle, nextStyle, path, options) {
|
|
337
342
|
if (options.preserveHydrationAttributes === true) {
|
|
338
343
|
return;
|
|
@@ -376,7 +381,7 @@ function collectAttributeNames(props) {
|
|
|
376
381
|
if (name === "children" ||
|
|
377
382
|
name === "ref" ||
|
|
378
383
|
name === "key" ||
|
|
379
|
-
|
|
384
|
+
isEventLikePropName(name) ||
|
|
380
385
|
value === null ||
|
|
381
386
|
value === undefined) {
|
|
382
387
|
continue;
|
|
@@ -404,8 +409,17 @@ function pushUniqueAttributeName(names, name) {
|
|
|
404
409
|
names.push(name);
|
|
405
410
|
}
|
|
406
411
|
}
|
|
412
|
+
function isReactEventHandlerPropName(name) {
|
|
413
|
+
const third = name.charCodeAt(2);
|
|
414
|
+
return name.charCodeAt(0) === 111 && name.charCodeAt(1) === 110 && third >= 65 && third <= 90;
|
|
415
|
+
}
|
|
416
|
+
function isEventLikePropName(name) {
|
|
417
|
+
const first = name.charCodeAt(0);
|
|
418
|
+
const second = name.charCodeAt(1);
|
|
419
|
+
return (first === 111 || first === 79) && (second === 110 || second === 78);
|
|
420
|
+
}
|
|
407
421
|
function sanitizeMetaRefreshElementProps(element, props) {
|
|
408
|
-
if (element.tagName.
|
|
422
|
+
if (element.tagName !== "META" && element.tagName !== "meta") {
|
|
409
423
|
return props;
|
|
410
424
|
}
|
|
411
425
|
const httpEquiv = props["http-equiv"] ?? props.httpEquiv ?? element.getAttribute("http-equiv");
|
package/dist/dom-props.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-props.js","sourceRoot":"","sources":["../src/dom-props.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getAppliedProps,\n setAppliedProps,\n type AppliedEventListener,\n type AppliedProps,\n ensureDelegatedEventListener,\n toEventNames,\n} from \"./host-event-binder.js\";\nimport { HOST_OWN_PROPS_META } from \"./element.js\";\nimport { reportRecoverable, type RenderOptions } from \"./hydration.js\";\nimport type { SyntheticEvent } from \"./event-types.js\";\nimport {\n isDangerousHtmlAttribute,\n isDangerousHtmlOptIn,\n isSrcsetAttribute,\n isUnsafeMetaRefreshContent,\n isUnsafeUrlAttribute,\n isUrlAttribute,\n} from \"./url-safety.js\";\nimport {\n serializeClientStyleValue,\n styleNameToCssName,\n type HostElement,\n} from \"./dom-host-rules.js\";\n\nexport function applyProps(\n element: HostElement,\n props: Record<string, unknown>,\n path: string,\n options: RenderOptions,\n): void {\n const preserveHydrationAttributes = options.preserveHydrationAttributes === true;\n const previous = getAppliedProps(element);\n const nextProps = sanitizeMetaRefreshElementProps(element, props);\n\n if (previous === undefined && !preserveHydrationAttributes) {\n if (applyInitialRowProps(element, nextProps)) {\n setAppliedProps(element, {\n attributeNames: collectAttributeNames(nextProps),\n props: nextProps,\n });\n return;\n }\n\n const attributeNames = collectAttributeNames(nextProps);\n setAppliedProps(element, {\n attributeNames,\n props: nextProps,\n ...applyInitialProps(element, nextProps, path, options),\n });\n return;\n }\n\n const previousProps = previous?.props ?? {};\n let listeners = previous?.listeners;\n const previousAttributeNames = previous?.attributeNames ?? collectAttributeNames(previousProps);\n const nextAttributeNames = collectAttributeNames(nextProps);\n\n if (!preserveHydrationAttributes) {\n for (const attributeName of previousAttributeNames) {\n if (!nextAttributeNames.includes(attributeName)) {\n if (attributeName === \"style\") {\n removePreviousStyle(element, previousProps.style, path, options);\n continue;\n }\n\n if (element.hasAttribute(attributeName)) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${attributeName}.`),\n );\n element.removeAttribute(attributeName);\n }\n }\n }\n }\n\n if (listeners !== undefined) {\n for (const [name, appliedListener] of listeners) {\n const nextValue = nextProps[name];\n\n if (nextValue !== appliedListener.handler) {\n listeners.delete(name);\n }\n }\n }\n\n for (const name in nextProps) {\n if (!Object.prototype.hasOwnProperty.call(nextProps, name)) {\n continue;\n }\n\n const value = nextProps[name];\n\n if (name === \"children\" || name === \"ref\" || name === \"key\") {\n continue;\n }\n\n if (applyFormValueProp(element, name, value, path, options)) {\n continue;\n }\n\n if (name === \"className\") {\n applyAttribute(element, \"class\", value, path, options);\n continue;\n }\n\n if (name === \"htmlFor\") {\n applyAttribute(element, \"for\", value, path, options);\n continue;\n }\n\n if (name === \"style\") {\n applyStyle(element, previousProps[name], value, path, options);\n continue;\n }\n\n if (/^on[A-Z]/.test(name) && typeof value === \"function\") {\n if (listeners?.get(name)?.handler === value) {\n continue;\n }\n\n const handler = value as (event: SyntheticEvent) => void;\n for (const eventName of toEventNames(name)) {\n ensureDelegatedEventListener(options.eventRoot ?? element, eventName);\n }\n listeners ??= new Map<string, AppliedEventListener>();\n listeners.set(name, { handler });\n continue;\n }\n\n if (/^on/i.test(name)) {\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (typeof value === \"boolean\" && isBooleanishStringAttribute(attributeName)) {\n applyAttribute(element, attributeName, value ? \"true\" : \"false\", path, options);\n continue;\n }\n\n if (typeof value === \"boolean\" && isDataAttribute(attributeName)) {\n applyAttribute(element, attributeName, value ? \"true\" : \"false\", path, options);\n continue;\n }\n\n if (typeof value === \"boolean\") {\n if (element.hasAttribute(attributeName) !== value) {\n if (!preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${attributeName}.`),\n );\n }\n }\n\n if (preserveHydrationAttributes) {\n continue;\n }\n\n if ((element as unknown as Record<string, unknown>)[name] !== value) {\n (element as unknown as Record<string, unknown>)[name] = value;\n }\n\n if (value) {\n if (!element.hasAttribute(attributeName)) {\n element.setAttribute(attributeName, \"\");\n }\n } else if (element.hasAttribute(attributeName)) {\n element.removeAttribute(attributeName);\n }\n continue;\n }\n\n applyAttribute(element, toDomAttributeName(name), value, path, options);\n }\n\n setAppliedProps(element, {\n attributeNames: nextAttributeNames,\n props: nextProps,\n ...(listeners === undefined ? {} : { listeners }),\n });\n}\n\nfunction applyInitialProps(\n element: HostElement,\n props: Record<string, unknown>,\n path: string,\n options: RenderOptions,\n): Pick<AppliedProps, \"listeners\"> | {} {\n let listeners: Map<string, AppliedEventListener> | undefined;\n\n for (const name in props) {\n if (!Object.prototype.hasOwnProperty.call(props, name)) {\n continue;\n }\n\n const value = props[name];\n\n if (name === \"children\" || name === \"ref\" || name === \"key\") {\n continue;\n }\n\n if (applyFormValueProp(element, name, value, path, options)) {\n continue;\n }\n\n if (value === null || value === undefined) {\n continue;\n }\n\n if (name === \"className\") {\n applyAttribute(element, \"class\", value, path, options);\n continue;\n }\n\n if (name === \"htmlFor\") {\n applyAttribute(element, \"for\", value, path, options);\n continue;\n }\n\n if (name === \"style\") {\n applyStyle(element, undefined, value, path, options);\n continue;\n }\n\n if (/^on[A-Z]/.test(name) && typeof value === \"function\") {\n const handler = value as (event: SyntheticEvent) => void;\n for (const eventName of toEventNames(name)) {\n ensureDelegatedEventListener(options.eventRoot ?? element, eventName);\n }\n listeners ??= new Map<string, AppliedEventListener>();\n listeners.set(name, { handler });\n continue;\n }\n\n if (/^on/i.test(name)) {\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (typeof value === \"boolean\" && isBooleanishStringAttribute(attributeName)) {\n applyAttribute(element, attributeName, value ? \"true\" : \"false\", path, options);\n continue;\n }\n\n if (typeof value === \"boolean\" && isDataAttribute(attributeName)) {\n applyAttribute(element, attributeName, value ? \"true\" : \"false\", path, options);\n continue;\n }\n\n if (value === false) {\n continue;\n }\n\n if (typeof value === \"boolean\") {\n if ((element as unknown as Record<string, unknown>)[name] !== value) {\n (element as unknown as Record<string, unknown>)[name] = value;\n }\n\n if (value) {\n if (!element.hasAttribute(attributeName)) {\n element.setAttribute(attributeName, \"\");\n }\n } else if (element.hasAttribute(attributeName)) {\n element.removeAttribute(attributeName);\n }\n continue;\n }\n\n applyAttribute(element, attributeName, value, path, options);\n }\n\n return listeners === undefined ? {} : { listeners };\n}\n\nfunction applyInitialRowProps(\n element: HostElement,\n props: Record<string, unknown>,\n): boolean {\n const meta = (props as { [HOST_OWN_PROPS_META]?: number })[HOST_OWN_PROPS_META];\n\n if (meta === undefined) {\n return false;\n }\n\n element.setAttribute(\"data-key\", String(props[\"data-key\"]));\n\n if ((meta & 1) !== 0) {\n element.setAttribute(\"class\", \"selected\");\n }\n\n if ((meta & 2) !== 0) {\n element.setAttribute(\"data-selected\", \"true\");\n }\n\n return true;\n}\n\nexport function applyPostChildFormProps(\n element: Element,\n props: Record<string, unknown>,\n): void {\n const value = props.value ?? props.defaultValue;\n\n if (value === undefined || value === null) {\n return;\n }\n\n if (element instanceof HTMLInputElement) {\n element.value = String(value);\n element.setAttribute(\"value\", String(value));\n return;\n }\n\n if (element instanceof HTMLTextAreaElement) {\n element.value = String(value);\n element.textContent = String(value);\n return;\n }\n\n if (element instanceof HTMLSelectElement) {\n const nextValue = String(value);\n for (const option of Array.from(element.options)) {\n option.selected = option.value === nextValue;\n }\n }\n}\n\nfunction applyAttribute(\n element: Element,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n): void {\n const preserveHydrationAttributes = options.preserveHydrationAttributes === true;\n\n // Issue 077: srcdoc and other HTML-bearing attributes require the\n // explicit `{ __html: \"...\" }` opt-in. A plain value -- string,\n // number, boolean -- is treated as if it were null (drop the\n // attribute and log a recoverable mismatch).\n if (isDangerousHtmlAttribute(name) && !isDangerousHtmlOptIn(value)) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Unsafe HTML attribute dropped: ${name}.`),\n );\n }\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n if (/^on/i.test(name)) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n if (value === null || value === undefined || value === false) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${name}.`),\n );\n }\n\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n const stringValue = isDangerousHtmlOptIn(value)\n ? (value as { __html: string }).__html\n : String(value);\n\n // Issue 075: URL attributes are scheme-validated against the same\n // block list used by SSR (packages/server/src/url-safety.ts). If the\n // value is unsafe we treat it as if it were null -- remove the\n // existing attribute, log a recoverable mismatch, and stop. This\n // matches react-dom's sanitizeURL posture.\n if (\n (isUrlAttribute(name) || isSrcsetAttribute(name)) &&\n isUnsafeUrlAttribute(name, stringValue)\n ) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Unsafe URL scheme dropped from ${name}.`),\n );\n }\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n const currentValue = element.getAttribute(name);\n\n if (currentValue !== stringValue && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${name}.`),\n );\n }\n\n if (preserveHydrationAttributes) {\n return;\n }\n\n if (currentValue === stringValue) {\n return;\n }\n\n element.setAttribute(name, stringValue);\n}\n\nfunction applyFormValueProp(\n element: Element,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n): boolean {\n if (element instanceof HTMLInputElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n\n if (element.value !== nextValue) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: value.\"),\n );\n }\n\n element.value = nextValue;\n return true;\n }\n\n if (element instanceof HTMLInputElement && (name === \"checked\" || name === \"defaultChecked\")) {\n const nextChecked = value !== null && value !== undefined && value !== false;\n\n if (element.checked !== nextChecked) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: checked.\"),\n );\n }\n\n element.checked = nextChecked;\n element.defaultChecked = nextChecked;\n if (nextChecked) {\n element.setAttribute(\"checked\", \"\");\n } else {\n element.removeAttribute(\"checked\");\n }\n return true;\n }\n\n if (element instanceof HTMLTextAreaElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n\n if (element.value !== nextValue) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: textarea value.\"),\n );\n }\n\n element.value = nextValue;\n return true;\n }\n\n if (element instanceof HTMLSelectElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? undefined : String(value);\n\n for (const option of Array.from(element.options)) {\n option.selected = nextValue !== undefined && option.value === nextValue;\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction applyStyle(\n element: HostElement,\n previousStyle: unknown,\n nextStyle: unknown,\n path: string,\n options: RenderOptions,\n): void {\n if (options.preserveHydrationAttributes === true) {\n return;\n }\n\n removePreviousStyle(element, previousStyle, path, options);\n\n if (isStyleObject(nextStyle)) {\n for (const [name, value] of Object.entries(nextStyle)) {\n if (value === null || value === undefined || value === false) {\n continue;\n }\n element.style.setProperty(styleNameToCssName(name), serializeClientStyleValue(name, value));\n }\n return;\n }\n\n if (nextStyle !== undefined && nextStyle !== null && nextStyle !== false) {\n element.removeAttribute(\"style\");\n }\n}\n\nfunction removePreviousStyle(\n element: HostElement,\n previousStyle: unknown,\n path: string,\n options: RenderOptions,\n): void {\n if (options.preserveHydrationAttributes === true) {\n return;\n }\n\n if (isStyleObject(previousStyle)) {\n for (const name of Object.keys(previousStyle)) {\n element.style.removeProperty(styleNameToCssName(name));\n }\n return;\n }\n\n if (previousStyle !== undefined && element.hasAttribute(\"style\")) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: style.\"),\n );\n element.removeAttribute(\"style\");\n }\n}\n\nfunction collectAttributeNames(props: Record<string, unknown>): string[] {\n const names: string[] = [];\n\n for (const name in props) {\n if (!Object.prototype.hasOwnProperty.call(props, name)) {\n continue;\n }\n\n const value = props[name];\n\n if (\n name === \"children\" ||\n name === \"ref\" ||\n name === \"key\" ||\n /^on/i.test(name) ||\n value === null ||\n value === undefined\n ) {\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (\n value === false &&\n !isBooleanishStringAttribute(attributeName) &&\n !isDataAttribute(attributeName)\n ) {\n continue;\n }\n\n if (name === \"defaultValue\") {\n pushUniqueAttributeName(names, \"value\");\n continue;\n }\n\n if (name === \"defaultChecked\") {\n pushUniqueAttributeName(names, \"checked\");\n continue;\n }\n\n pushUniqueAttributeName(names, attributeName);\n }\n\n return names;\n}\n\nfunction pushUniqueAttributeName(names: string[], name: string): void {\n if (!names.includes(name)) {\n names.push(name);\n }\n}\n\nfunction sanitizeMetaRefreshElementProps(\n element: Element,\n props: Record<string, unknown>,\n): Record<string, unknown> {\n if (element.tagName.toLowerCase() !== \"meta\") {\n return props;\n }\n\n const httpEquiv = props[\"http-equiv\"] ?? props.httpEquiv ?? element.getAttribute(\"http-equiv\");\n const content = props.content;\n if (typeof httpEquiv !== \"string\" || typeof content !== \"string\") {\n return props;\n }\n if (!isUnsafeMetaRefreshContent(httpEquiv, content)) {\n return props;\n }\n\n const sanitized = { ...props };\n delete sanitized.content;\n return sanitized;\n}\n\nfunction isBooleanishStringAttribute(name: string): boolean {\n const attributeName = toDomAttributeName(name).toLowerCase();\n return attributeName.startsWith(\"aria-\") || BOOLEANISH_STRING_ATTRIBUTES.has(attributeName);\n}\n\nfunction isDataAttribute(name: string): boolean {\n return toDomAttributeName(name).toLowerCase().startsWith(\"data-\");\n}\n\nconst BOOLEANISH_STRING_ATTRIBUTES = new Set<string>([\n \"contenteditable\",\n \"draggable\",\n \"spellcheck\",\n]);\n\nfunction toDomAttributeName(name: string): string {\n return DOM_ATTRIBUTE_ALIASES[name] ?? name;\n}\n\nconst DOM_ATTRIBUTE_ALIASES: Record<string, string> = {\n acceptCharset: \"accept-charset\",\n autoFocus: \"autofocus\",\n autoPlay: \"autoplay\",\n charSet: \"charset\",\n className: \"class\",\n colSpan: \"colspan\",\n contentEditable: \"contenteditable\",\n crossOrigin: \"crossorigin\",\n encType: \"enctype\",\n formAction: \"formaction\",\n frameBorder: \"frameborder\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\",\n maxLength: \"maxlength\",\n minLength: \"minlength\",\n noValidate: \"novalidate\",\n playsInline: \"playsinline\",\n readOnly: \"readonly\",\n rowSpan: \"rowspan\",\n spellCheck: \"spellcheck\",\n srcDoc: \"srcdoc\",\n srcSet: \"srcset\",\n tabIndex: \"tabindex\",\n useMap: \"usemap\",\n alignmentBaseline: \"alignment-baseline\",\n baselineShift: \"baseline-shift\",\n clipPath: \"clip-path\",\n clipRule: \"clip-rule\",\n colorInterpolation: \"color-interpolation\",\n colorInterpolationFilters: \"color-interpolation-filters\",\n colorProfile: \"color-profile\",\n colorRendering: \"color-rendering\",\n dominantBaseline: \"dominant-baseline\",\n enableBackground: \"enable-background\",\n fillOpacity: \"fill-opacity\",\n fillRule: \"fill-rule\",\n floodColor: \"flood-color\",\n floodOpacity: \"flood-opacity\",\n fontFamily: \"font-family\",\n fontSize: \"font-size\",\n fontSizeAdjust: \"font-size-adjust\",\n fontStretch: \"font-stretch\",\n fontStyle: \"font-style\",\n fontVariant: \"font-variant\",\n fontWeight: \"font-weight\",\n glyphOrientationHorizontal: \"glyph-orientation-horizontal\",\n glyphOrientationVertical: \"glyph-orientation-vertical\",\n imageRendering: \"image-rendering\",\n letterSpacing: \"letter-spacing\",\n lightingColor: \"lighting-color\",\n markerEnd: \"marker-end\",\n markerMid: \"marker-mid\",\n markerStart: \"marker-start\",\n overlinePosition: \"overline-position\",\n overlineThickness: \"overline-thickness\",\n paintOrder: \"paint-order\",\n pointerEvents: \"pointer-events\",\n shapeRendering: \"shape-rendering\",\n stopColor: \"stop-color\",\n stopOpacity: \"stop-opacity\",\n strikethroughPosition: \"strikethrough-position\",\n strikethroughThickness: \"strikethrough-thickness\",\n strokeDasharray: \"stroke-dasharray\",\n strokeDashoffset: \"stroke-dashoffset\",\n strokeLinecap: \"stroke-linecap\",\n strokeLinejoin: \"stroke-linejoin\",\n strokeMiterlimit: \"stroke-miterlimit\",\n strokeOpacity: \"stroke-opacity\",\n strokeWidth: \"stroke-width\",\n textAnchor: \"text-anchor\",\n textDecoration: \"text-decoration\",\n textRendering: \"text-rendering\",\n transformOrigin: \"transform-origin\",\n underlinePosition: \"underline-position\",\n underlineThickness: \"underline-thickness\",\n unicodeBidi: \"unicode-bidi\",\n vectorEffect: \"vector-effect\",\n wordSpacing: \"word-spacing\",\n writingMode: \"writing-mode\",\n xHeight: \"x-height\",\n};\n\nfunction isStyleObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"dom-props.js","sourceRoot":"","sources":["../src/dom-props.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getAppliedProps,\n setAppliedProps,\n ensureDelegatedEventListenersForProp,\n} from \"./host-event-binder.js\";\nimport { HOST_OWN_PROPS_META } from \"./element.js\";\nimport { reportRecoverable, type RenderOptions } from \"./hydration.js\";\nimport {\n isDangerousHtmlAttribute,\n isDangerousHtmlOptIn,\n isSrcsetAttribute,\n isUnsafeMetaRefreshContent,\n isUnsafeUrlAttribute,\n isUrlAttribute,\n} from \"./url-safety.js\";\nimport {\n serializeClientStyleValue,\n styleNameToCssName,\n type HostElement,\n} from \"./dom-host-rules.js\";\n\nexport function applyProps(\n element: HostElement,\n props: Record<string, unknown>,\n path: string,\n options: RenderOptions,\n): void {\n const preserveHydrationAttributes = options.preserveHydrationAttributes === true;\n const previous = getAppliedProps(element);\n const nextProps = sanitizeMetaRefreshElementProps(element, props);\n\n if (previous === undefined && !preserveHydrationAttributes) {\n if (applyInitialRowProps(element, nextProps)) {\n setAppliedProps(element, {\n props: nextProps,\n });\n return;\n }\n\n applyInitialProps(element, nextProps, path, options);\n setAppliedProps(element, {\n props: nextProps,\n });\n return;\n }\n\n const previousProps = previous?.props ?? {};\n const previousAttributeNames = previous?.attributeNames ?? collectAttributeNames(previousProps);\n const nextAttributeNames = collectAttributeNames(nextProps);\n\n if (!preserveHydrationAttributes) {\n for (const attributeName of previousAttributeNames) {\n if (!nextAttributeNames.includes(attributeName)) {\n if (attributeName === \"style\") {\n removePreviousStyle(element, previousProps.style, path, options);\n continue;\n }\n\n if (element.hasAttribute(attributeName)) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${attributeName}.`),\n );\n element.removeAttribute(attributeName);\n }\n }\n }\n }\n\n for (const name in nextProps) {\n if (!Object.prototype.hasOwnProperty.call(nextProps, name)) {\n continue;\n }\n\n const value = nextProps[name];\n\n if (name === \"children\" || name === \"ref\" || name === \"key\") {\n continue;\n }\n\n if (isFormValuePropName(name) && applyFormValueProp(element, name, value, path, options)) {\n continue;\n }\n\n if (name === \"className\") {\n applyAttribute(element, \"class\", value, path, options);\n continue;\n }\n\n if (name === \"htmlFor\") {\n applyAttribute(element, \"for\", value, path, options);\n continue;\n }\n\n if (name === \"style\") {\n applyStyle(element, previousProps[name], value, path, options);\n continue;\n }\n\n if (isReactEventHandlerPropName(name) && typeof value === \"function\") {\n if (previousProps[name] === value) {\n continue;\n }\n\n ensureDelegatedEventListenersForProp(options.eventRoot ?? element, name);\n continue;\n }\n\n if (isEventLikePropName(name)) {\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (typeof value === \"boolean\" && isBooleanishStringAttribute(attributeName)) {\n applyAttribute(element, attributeName, value ? \"true\" : \"false\", path, options);\n continue;\n }\n\n if (typeof value === \"boolean\" && isDataAttribute(attributeName)) {\n applyAttribute(element, attributeName, value ? \"true\" : \"false\", path, options);\n continue;\n }\n\n if (typeof value === \"boolean\") {\n if (element.hasAttribute(attributeName) !== value) {\n if (!preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${attributeName}.`),\n );\n }\n }\n\n if (preserveHydrationAttributes) {\n continue;\n }\n\n if ((element as unknown as Record<string, unknown>)[name] !== value) {\n (element as unknown as Record<string, unknown>)[name] = value;\n }\n\n if (value) {\n if (!element.hasAttribute(attributeName)) {\n element.setAttribute(attributeName, \"\");\n }\n } else if (element.hasAttribute(attributeName)) {\n element.removeAttribute(attributeName);\n }\n continue;\n }\n\n applyAttribute(element, toDomAttributeName(name), value, path, options);\n }\n\n setAppliedProps(element, {\n attributeNames: nextAttributeNames,\n props: nextProps,\n });\n}\n\nfunction applyInitialProps(\n element: HostElement,\n props: Record<string, unknown>,\n path: string,\n options: RenderOptions,\n): void {\n const useAttributeFastPath = options.hydration === undefined;\n\n for (const name in props) {\n if (!Object.prototype.hasOwnProperty.call(props, name)) {\n continue;\n }\n\n const value = props[name];\n\n if (name === \"children\" || name === \"ref\" || name === \"key\") {\n continue;\n }\n\n if (isFormValuePropName(name) && applyFormValueProp(element, name, value, path, options)) {\n continue;\n }\n\n if (value === null || value === undefined) {\n continue;\n }\n\n if (name === \"className\") {\n applyInitialOrHydrationAttribute(\n element,\n \"class\",\n value,\n path,\n options,\n useAttributeFastPath,\n );\n continue;\n }\n\n if (name === \"htmlFor\") {\n applyInitialOrHydrationAttribute(\n element,\n \"for\",\n value,\n path,\n options,\n useAttributeFastPath,\n );\n continue;\n }\n\n if (name === \"style\") {\n applyStyle(element, undefined, value, path, options);\n continue;\n }\n\n if (isReactEventHandlerPropName(name) && typeof value === \"function\") {\n ensureDelegatedEventListenersForProp(options.eventRoot ?? element, name);\n continue;\n }\n\n if (isEventLikePropName(name)) {\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (typeof value === \"boolean\" && isBooleanishStringAttribute(attributeName)) {\n applyInitialOrHydrationAttribute(\n element,\n attributeName,\n value ? \"true\" : \"false\",\n path,\n options,\n useAttributeFastPath,\n );\n continue;\n }\n\n if (typeof value === \"boolean\" && isDataAttribute(attributeName)) {\n applyInitialOrHydrationAttribute(\n element,\n attributeName,\n value ? \"true\" : \"false\",\n path,\n options,\n useAttributeFastPath,\n );\n continue;\n }\n\n if (value === false) {\n continue;\n }\n\n if (typeof value === \"boolean\") {\n if ((element as unknown as Record<string, unknown>)[name] !== value) {\n (element as unknown as Record<string, unknown>)[name] = value;\n }\n\n if (value) {\n if (!element.hasAttribute(attributeName)) {\n element.setAttribute(attributeName, \"\");\n }\n } else if (element.hasAttribute(attributeName)) {\n element.removeAttribute(attributeName);\n }\n continue;\n }\n\n applyInitialOrHydrationAttribute(\n element,\n attributeName,\n value,\n path,\n options,\n useAttributeFastPath,\n );\n }\n\n}\n\nfunction applyInitialRowProps(\n element: HostElement,\n props: Record<string, unknown>,\n): boolean {\n const meta = (props as { [HOST_OWN_PROPS_META]?: number })[HOST_OWN_PROPS_META];\n\n if (meta === undefined) {\n return false;\n }\n\n element.setAttribute(\"data-key\", String(props[\"data-key\"]));\n\n if ((meta & 1) !== 0) {\n element.setAttribute(\"class\", \"selected\");\n }\n\n if ((meta & 2) !== 0) {\n element.setAttribute(\"data-selected\", \"true\");\n }\n\n return true;\n}\n\nexport function applyPostChildFormProps(\n element: Element,\n props: Record<string, unknown>,\n): void {\n const value = props.value ?? props.defaultValue;\n\n if (value === undefined || value === null) {\n return;\n }\n\n if (element instanceof HTMLInputElement) {\n element.value = String(value);\n element.setAttribute(\"value\", String(value));\n return;\n }\n\n if (element instanceof HTMLTextAreaElement) {\n element.value = String(value);\n element.textContent = String(value);\n return;\n }\n\n if (element instanceof HTMLSelectElement) {\n const nextValue = String(value);\n for (const option of Array.from(element.options)) {\n option.selected = option.value === nextValue;\n }\n }\n}\n\nfunction applyAttribute(\n element: Element,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n): void {\n const preserveHydrationAttributes = options.preserveHydrationAttributes === true;\n\n // Issue 077: srcdoc and other HTML-bearing attributes require the\n // explicit `{ __html: \"...\" }` opt-in. A plain value -- string,\n // number, boolean -- is treated as if it were null (drop the\n // attribute and log a recoverable mismatch).\n if (isDangerousHtmlAttribute(name) && !isDangerousHtmlOptIn(value)) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Unsafe HTML attribute dropped: ${name}.`),\n );\n }\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n if (isEventLikePropName(name)) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n if (value === null || value === undefined || value === false) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${name}.`),\n );\n }\n\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n const stringValue = isDangerousHtmlOptIn(value)\n ? (value as { __html: string }).__html\n : String(value);\n\n // Issue 075: URL attributes are scheme-validated against the same\n // block list used by SSR (packages/server/src/url-safety.ts). If the\n // value is unsafe we treat it as if it were null -- remove the\n // existing attribute, log a recoverable mismatch, and stop. This\n // matches react-dom's sanitizeURL posture.\n if (\n (isUrlAttribute(name) || isSrcsetAttribute(name)) &&\n isUnsafeUrlAttribute(name, stringValue)\n ) {\n if (element.hasAttribute(name) && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Unsafe URL scheme dropped from ${name}.`),\n );\n }\n if (!preserveHydrationAttributes) {\n element.removeAttribute(name);\n }\n return;\n }\n\n const currentValue = element.getAttribute(name);\n\n if (currentValue !== stringValue && !preserveHydrationAttributes) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(`Hydration attribute mismatch: ${name}.`),\n );\n }\n\n if (preserveHydrationAttributes) {\n return;\n }\n\n if (currentValue === stringValue) {\n return;\n }\n\n element.setAttribute(name, stringValue);\n}\n\nfunction applyInitialAttribute(\n element: Element,\n name: string,\n value: unknown,\n): void {\n if (isDangerousHtmlAttribute(name) && !isDangerousHtmlOptIn(value)) {\n return;\n }\n\n if (isEventLikePropName(name) || value === null || value === undefined || value === false) {\n return;\n }\n\n const stringValue = isDangerousHtmlOptIn(value)\n ? (value as { __html: string }).__html\n : String(value);\n\n if (\n (isUrlAttribute(name) || isSrcsetAttribute(name)) &&\n isUnsafeUrlAttribute(name, stringValue)\n ) {\n return;\n }\n\n element.setAttribute(name, stringValue);\n}\n\nfunction applyInitialOrHydrationAttribute(\n element: Element,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n useFastPath: boolean,\n): void {\n if (useFastPath) {\n applyInitialAttribute(element, name, value);\n return;\n }\n\n applyAttribute(element, name, value, path, options);\n}\n\nfunction applyFormValueProp(\n element: Element,\n name: string,\n value: unknown,\n path: string,\n options: RenderOptions,\n): boolean {\n if (element instanceof HTMLInputElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n\n if (element.value !== nextValue) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: value.\"),\n );\n }\n\n element.value = nextValue;\n return true;\n }\n\n if (element instanceof HTMLInputElement && (name === \"checked\" || name === \"defaultChecked\")) {\n const nextChecked = value !== null && value !== undefined && value !== false;\n\n if (element.checked !== nextChecked) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: checked.\"),\n );\n }\n\n element.checked = nextChecked;\n element.defaultChecked = nextChecked;\n if (nextChecked) {\n element.setAttribute(\"checked\", \"\");\n } else {\n element.removeAttribute(\"checked\");\n }\n return true;\n }\n\n if (element instanceof HTMLTextAreaElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n\n if (element.value !== nextValue) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: textarea value.\"),\n );\n }\n\n element.value = nextValue;\n return true;\n }\n\n if (element instanceof HTMLSelectElement && (name === \"value\" || name === \"defaultValue\")) {\n const nextValue = value === null || value === undefined ? undefined : String(value);\n\n for (const option of Array.from(element.options)) {\n option.selected = nextValue !== undefined && option.value === nextValue;\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction isFormValuePropName(name: string): boolean {\n return (\n name === \"value\" ||\n name === \"defaultValue\" ||\n name === \"checked\" ||\n name === \"defaultChecked\"\n );\n}\n\nfunction applyStyle(\n element: HostElement,\n previousStyle: unknown,\n nextStyle: unknown,\n path: string,\n options: RenderOptions,\n): void {\n if (options.preserveHydrationAttributes === true) {\n return;\n }\n\n removePreviousStyle(element, previousStyle, path, options);\n\n if (isStyleObject(nextStyle)) {\n for (const [name, value] of Object.entries(nextStyle)) {\n if (value === null || value === undefined || value === false) {\n continue;\n }\n element.style.setProperty(styleNameToCssName(name), serializeClientStyleValue(name, value));\n }\n return;\n }\n\n if (nextStyle !== undefined && nextStyle !== null && nextStyle !== false) {\n element.removeAttribute(\"style\");\n }\n}\n\nfunction removePreviousStyle(\n element: HostElement,\n previousStyle: unknown,\n path: string,\n options: RenderOptions,\n): void {\n if (options.preserveHydrationAttributes === true) {\n return;\n }\n\n if (isStyleObject(previousStyle)) {\n for (const name of Object.keys(previousStyle)) {\n element.style.removeProperty(styleNameToCssName(name));\n }\n return;\n }\n\n if (previousStyle !== undefined && element.hasAttribute(\"style\")) {\n reportRecoverable(\n options,\n \"attribute\",\n path,\n new Error(\"Hydration attribute mismatch: style.\"),\n );\n element.removeAttribute(\"style\");\n }\n}\n\nfunction collectAttributeNames(props: Record<string, unknown>): string[] {\n const names: string[] = [];\n\n for (const name in props) {\n if (!Object.prototype.hasOwnProperty.call(props, name)) {\n continue;\n }\n\n const value = props[name];\n\n if (\n name === \"children\" ||\n name === \"ref\" ||\n name === \"key\" ||\n isEventLikePropName(name) ||\n value === null ||\n value === undefined\n ) {\n continue;\n }\n\n const attributeName = toDomAttributeName(name);\n\n if (\n value === false &&\n !isBooleanishStringAttribute(attributeName) &&\n !isDataAttribute(attributeName)\n ) {\n continue;\n }\n\n if (name === \"defaultValue\") {\n pushUniqueAttributeName(names, \"value\");\n continue;\n }\n\n if (name === \"defaultChecked\") {\n pushUniqueAttributeName(names, \"checked\");\n continue;\n }\n\n pushUniqueAttributeName(names, attributeName);\n }\n\n return names;\n}\n\nfunction pushUniqueAttributeName(names: string[], name: string): void {\n if (!names.includes(name)) {\n names.push(name);\n }\n}\n\nfunction isReactEventHandlerPropName(name: string): boolean {\n const third = name.charCodeAt(2);\n return name.charCodeAt(0) === 111 && name.charCodeAt(1) === 110 && third >= 65 && third <= 90;\n}\n\nfunction isEventLikePropName(name: string): boolean {\n const first = name.charCodeAt(0);\n const second = name.charCodeAt(1);\n return (first === 111 || first === 79) && (second === 110 || second === 78);\n}\n\nfunction sanitizeMetaRefreshElementProps(\n element: Element,\n props: Record<string, unknown>,\n): Record<string, unknown> {\n if (element.tagName !== \"META\" && element.tagName !== \"meta\") {\n return props;\n }\n\n const httpEquiv = props[\"http-equiv\"] ?? props.httpEquiv ?? element.getAttribute(\"http-equiv\");\n const content = props.content;\n if (typeof httpEquiv !== \"string\" || typeof content !== \"string\") {\n return props;\n }\n if (!isUnsafeMetaRefreshContent(httpEquiv, content)) {\n return props;\n }\n\n const sanitized = { ...props };\n delete sanitized.content;\n return sanitized;\n}\n\nfunction isBooleanishStringAttribute(name: string): boolean {\n const attributeName = toDomAttributeName(name).toLowerCase();\n return attributeName.startsWith(\"aria-\") || BOOLEANISH_STRING_ATTRIBUTES.has(attributeName);\n}\n\nfunction isDataAttribute(name: string): boolean {\n return toDomAttributeName(name).toLowerCase().startsWith(\"data-\");\n}\n\nconst BOOLEANISH_STRING_ATTRIBUTES = new Set<string>([\n \"contenteditable\",\n \"draggable\",\n \"spellcheck\",\n]);\n\nfunction toDomAttributeName(name: string): string {\n return DOM_ATTRIBUTE_ALIASES[name] ?? name;\n}\n\nconst DOM_ATTRIBUTE_ALIASES: Record<string, string> = {\n acceptCharset: \"accept-charset\",\n autoFocus: \"autofocus\",\n autoPlay: \"autoplay\",\n charSet: \"charset\",\n className: \"class\",\n colSpan: \"colspan\",\n contentEditable: \"contenteditable\",\n crossOrigin: \"crossorigin\",\n encType: \"enctype\",\n formAction: \"formaction\",\n frameBorder: \"frameborder\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\",\n maxLength: \"maxlength\",\n minLength: \"minlength\",\n noValidate: \"novalidate\",\n playsInline: \"playsinline\",\n readOnly: \"readonly\",\n rowSpan: \"rowspan\",\n spellCheck: \"spellcheck\",\n srcDoc: \"srcdoc\",\n srcSet: \"srcset\",\n tabIndex: \"tabindex\",\n useMap: \"usemap\",\n alignmentBaseline: \"alignment-baseline\",\n baselineShift: \"baseline-shift\",\n clipPath: \"clip-path\",\n clipRule: \"clip-rule\",\n colorInterpolation: \"color-interpolation\",\n colorInterpolationFilters: \"color-interpolation-filters\",\n colorProfile: \"color-profile\",\n colorRendering: \"color-rendering\",\n dominantBaseline: \"dominant-baseline\",\n enableBackground: \"enable-background\",\n fillOpacity: \"fill-opacity\",\n fillRule: \"fill-rule\",\n floodColor: \"flood-color\",\n floodOpacity: \"flood-opacity\",\n fontFamily: \"font-family\",\n fontSize: \"font-size\",\n fontSizeAdjust: \"font-size-adjust\",\n fontStretch: \"font-stretch\",\n fontStyle: \"font-style\",\n fontVariant: \"font-variant\",\n fontWeight: \"font-weight\",\n glyphOrientationHorizontal: \"glyph-orientation-horizontal\",\n glyphOrientationVertical: \"glyph-orientation-vertical\",\n imageRendering: \"image-rendering\",\n letterSpacing: \"letter-spacing\",\n lightingColor: \"lighting-color\",\n markerEnd: \"marker-end\",\n markerMid: \"marker-mid\",\n markerStart: \"marker-start\",\n overlinePosition: \"overline-position\",\n overlineThickness: \"overline-thickness\",\n paintOrder: \"paint-order\",\n pointerEvents: \"pointer-events\",\n shapeRendering: \"shape-rendering\",\n stopColor: \"stop-color\",\n stopOpacity: \"stop-opacity\",\n strikethroughPosition: \"strikethrough-position\",\n strikethroughThickness: \"strikethrough-thickness\",\n strokeDasharray: \"stroke-dasharray\",\n strokeDashoffset: \"stroke-dashoffset\",\n strokeLinecap: \"stroke-linecap\",\n strokeLinejoin: \"stroke-linejoin\",\n strokeMiterlimit: \"stroke-miterlimit\",\n strokeOpacity: \"stroke-opacity\",\n strokeWidth: \"stroke-width\",\n textAnchor: \"text-anchor\",\n textDecoration: \"text-decoration\",\n textRendering: \"text-rendering\",\n transformOrigin: \"transform-origin\",\n underlinePosition: \"underline-position\",\n underlineThickness: \"underline-thickness\",\n unicodeBidi: \"unicode-bidi\",\n vectorEffect: \"vector-effect\",\n wordSpacing: \"word-spacing\",\n writingMode: \"writing-mode\",\n xHeight: \"x-height\",\n};\n\nfunction isStyleObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n"]}
|
package/dist/element.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare const SuspenseList: unique symbol;
|
|
|
11
11
|
export declare const Activity: unique symbol;
|
|
12
12
|
export declare const Profiler: unique symbol;
|
|
13
13
|
export declare const HOST_OWN_PROPS_META: unique symbol;
|
|
14
|
+
export declare const HOST_CHILDREN_ONLY_PROPS_META: unique symbol;
|
|
14
15
|
export interface ReactCompatProviderType {
|
|
15
16
|
$$typeof: symbol;
|
|
16
17
|
context: unknown;
|
package/dist/element.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,eAA2C,CAAC;AAClF,eAAO,MAAM,mBAAmB,eAA6C,CAAC;AAC9E,eAAO,MAAM,gBAAgB,eAAkC,CAAC;AAChE,eAAO,MAAM,SAAS,eAA2B,CAAC;AAClD,eAAO,MAAM,SAAS,eAA2B,CAAC;AAClD,eAAO,MAAM,gBAAgB,eAAkC,CAAC;AAChE,eAAO,MAAM,WAAW,eAA6B,CAAC;AAEtD,eAAO,MAAM,QAAQ,eAA+B,CAAC;AACrD,eAAO,MAAM,QAAQ,eAA+B,CAAC;AACrD,eAAO,MAAM,YAAY,eAAoC,CAAC;AAC9D,eAAO,MAAM,QAAQ,eAA+B,CAAC;AACrD,eAAO,MAAM,QAAQ,eAA+B,CAAC;AACrD,eAAO,MAAM,mBAAmB,eAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}
|
package/dist/element.js
CHANGED
|
@@ -12,6 +12,7 @@ export const SuspenseList = Symbol.for("react.suspense_list");
|
|
|
12
12
|
export const Activity = Symbol.for("react.activity");
|
|
13
13
|
export const Profiler = Symbol.for("react.profiler");
|
|
14
14
|
export const HOST_OWN_PROPS_META = Symbol.for("modular.react.host_own_props_meta");
|
|
15
|
+
export const HOST_CHILDREN_ONLY_PROPS_META = Symbol.for("modular.react.host_children_only_props_meta");
|
|
15
16
|
const hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
16
17
|
export function createElement(type, config, ...children) {
|
|
17
18
|
if (typeof type === "string") {
|
|
@@ -136,10 +137,17 @@ export function cloneElement(element, props, ...children) {
|
|
|
136
137
|
};
|
|
137
138
|
}
|
|
138
139
|
function copyElementProps(source, base, omitChildren = false) {
|
|
139
|
-
const props =
|
|
140
|
+
const props = {};
|
|
141
|
+
if (base !== undefined) {
|
|
142
|
+
copyOwnStringElementProps(base, props, omitChildren);
|
|
143
|
+
}
|
|
140
144
|
if (source === null || source === undefined) {
|
|
141
145
|
return props;
|
|
142
146
|
}
|
|
147
|
+
copyOwnStringElementProps(source, props, omitChildren);
|
|
148
|
+
return props;
|
|
149
|
+
}
|
|
150
|
+
function copyOwnStringElementProps(source, target, omitChildren) {
|
|
143
151
|
for (const name in source) {
|
|
144
152
|
if (!hasOwnProperty.call(source, name)) {
|
|
145
153
|
continue;
|
|
@@ -149,10 +157,9 @@ function copyElementProps(source, base, omitChildren = false) {
|
|
|
149
157
|
name !== "__self" &&
|
|
150
158
|
name !== "__source" &&
|
|
151
159
|
(!omitChildren || name !== "children")) {
|
|
152
|
-
|
|
160
|
+
target[name] = source[name];
|
|
153
161
|
}
|
|
154
162
|
}
|
|
155
|
-
return props;
|
|
156
163
|
}
|
|
157
164
|
function normalizeElementType(type) {
|
|
158
165
|
return isReactCompatContextProviderShorthand(type) ? type.Provider : type;
|
|
@@ -185,6 +192,9 @@ function isReactCompatContextProviderShorthand(value) {
|
|
|
185
192
|
function setHostOwnPropsMeta(props) {
|
|
186
193
|
const dataKey = props["data-key"];
|
|
187
194
|
if (typeof dataKey !== "number" || !Number.isSafeInteger(dataKey) || dataKey < 0) {
|
|
195
|
+
if (hostPropsAreChildrenOnly(props)) {
|
|
196
|
+
props[HOST_CHILDREN_ONLY_PROPS_META] = true;
|
|
197
|
+
}
|
|
188
198
|
return;
|
|
189
199
|
}
|
|
190
200
|
let selectedState = 0;
|
|
@@ -222,6 +232,14 @@ function setHostOwnPropsMeta(props) {
|
|
|
222
232
|
props[HOST_OWN_PROPS_META] =
|
|
223
233
|
dataKey * 4 + selectedState;
|
|
224
234
|
}
|
|
235
|
+
function hostPropsAreChildrenOnly(props) {
|
|
236
|
+
for (const name in props) {
|
|
237
|
+
if (hasOwnProperty.call(props, name) && name !== "children") {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return true;
|
|
242
|
+
}
|
|
225
243
|
export const isValidElement = isReactCompatElement;
|
|
226
244
|
export const Children = {
|
|
227
245
|
map(children, fn) {
|