@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.
@@ -1 +1 @@
1
- {"version":3,"file":"dom-props.d.ts","sourceRoot":"","sources":["../src/dom-props.ts"],"names":[],"mappings":"AASA,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAUvE,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,CA6JN;AAsHD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI,CAyBN"}
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, ensureDelegatedEventListener, toEventNames, } from "./host-event-binder.js";
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
- const attributeNames = collectAttributeNames(nextProps);
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 (/^on[A-Z]/.test(name) && typeof value === "function") {
76
- if (listeners?.get(name)?.handler === value) {
63
+ if (isReactEventHandlerPropName(name) && typeof value === "function") {
64
+ if (previousProps[name] === value) {
77
65
  continue;
78
66
  }
79
- const handler = value;
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 (/^on/i.test(name)) {
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
- let listeners;
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
- applyAttribute(element, "class", value, path, options);
128
+ applyInitialOrHydrationAttribute(element, "class", value, path, options, useAttributeFastPath);
147
129
  continue;
148
130
  }
149
131
  if (name === "htmlFor") {
150
- applyAttribute(element, "for", value, path, options);
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 (/^on[A-Z]/.test(name) && typeof value === "function") {
158
- const handler = value;
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 (/^on/i.test(name)) {
143
+ if (isEventLikePropName(name)) {
167
144
  continue;
168
145
  }
169
146
  const attributeName = toDomAttributeName(name);
170
147
  if (typeof value === "boolean" && isBooleanishStringAttribute(attributeName)) {
171
- applyAttribute(element, attributeName, value ? "true" : "false", path, options);
148
+ applyInitialOrHydrationAttribute(element, attributeName, value ? "true" : "false", path, options, useAttributeFastPath);
172
149
  continue;
173
150
  }
174
151
  if (typeof value === "boolean" && isDataAttribute(attributeName)) {
175
- applyAttribute(element, attributeName, value ? "true" : "false", path, options);
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
- applyAttribute(element, attributeName, value, path, options);
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 (/^on/i.test(name)) {
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
- /^on/i.test(name) ||
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.toLowerCase() !== "meta") {
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");
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}
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 = base === undefined ? {} : { ...base };
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
- props[name] = source[name];
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) {