safe-mdx 1.3.2 → 1.3.3

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.
Files changed (77) hide show
  1. package/README.md +14 -14
  2. package/dist/assets/HtmlToJsxConverter-Ds0bTjpw.js +24 -0
  3. package/dist/assets/_commonjsHelpers-CqkleIqs.js +1 -0
  4. package/dist/assets/index-B5fPOjPt.css +1 -0
  5. package/dist/assets/index-B7ATSoRE.js +9 -0
  6. package/dist/assets/index-BwZ2FTRd.js +146 -0
  7. package/dist/assets/index-R1UqLMGJ.js +1 -0
  8. package/dist/assets/index-c0qeY2gs.js +9 -0
  9. package/dist/assets/jsx-runtime-BhZZLbvw.js +9 -0
  10. package/dist/assets/jsx-runtime-NArryeSM.js +1 -0
  11. package/dist/assets/react-Ca6JzGpx.js +1 -0
  12. package/dist/assets/react-dom-BYRHYqYl.js +1 -0
  13. package/dist/html/attributes.d.ts +19 -0
  14. package/dist/html/attributes.d.ts.map +1 -0
  15. package/dist/html/attributes.js +289 -0
  16. package/dist/html/attributes.js.map +1 -0
  17. package/dist/html/convert-attributes.d.ts +6 -0
  18. package/dist/html/convert-attributes.d.ts.map +1 -0
  19. package/dist/html/convert-attributes.js +43 -0
  20. package/dist/html/convert-attributes.js.map +1 -0
  21. package/dist/html/domparser-browser.d.ts +4 -0
  22. package/dist/html/domparser-browser.d.ts.map +1 -0
  23. package/dist/html/domparser-browser.js +7 -0
  24. package/dist/html/domparser-browser.js.map +1 -0
  25. package/dist/html/domparser.d.ts +2 -0
  26. package/dist/html/domparser.d.ts.map +1 -0
  27. package/dist/html/domparser.js +5 -0
  28. package/dist/html/domparser.js.map +1 -0
  29. package/dist/html/html-to-mdx-ast.d.ts +23 -0
  30. package/dist/html/html-to-mdx-ast.d.ts.map +1 -0
  31. package/dist/html/html-to-mdx-ast.js +227 -0
  32. package/dist/html/html-to-mdx-ast.js.map +1 -0
  33. package/dist/html/html-to-mdx-ast.test.d.ts +2 -0
  34. package/dist/html/html-to-mdx-ast.test.d.ts.map +1 -0
  35. package/dist/html/html-to-mdx-ast.test.js +324 -0
  36. package/dist/html/html-to-mdx-ast.test.js.map +1 -0
  37. package/dist/html/remark-mdx-jsx-normalize.d.ts +10 -0
  38. package/dist/html/remark-mdx-jsx-normalize.d.ts.map +1 -0
  39. package/dist/html/remark-mdx-jsx-normalize.js +117 -0
  40. package/dist/html/remark-mdx-jsx-normalize.js.map +1 -0
  41. package/dist/html/valid-html-elements.d.ts +10 -0
  42. package/dist/html/valid-html-elements.d.ts.map +1 -0
  43. package/dist/html/valid-html-elements.js +50 -0
  44. package/dist/html/valid-html-elements.js.map +1 -0
  45. package/dist/index.html +19 -0
  46. package/dist/parse.d.ts +2 -0
  47. package/dist/parse.d.ts.map +1 -1
  48. package/dist/parse.js +2 -0
  49. package/dist/parse.js.map +1 -1
  50. package/dist/safe-mdx.d.ts +1 -1
  51. package/dist/safe-mdx.d.ts.map +1 -1
  52. package/dist/safe-mdx.js +23 -71
  53. package/dist/safe-mdx.js.map +1 -1
  54. package/dist/safe-mdx.test.js +161 -8
  55. package/dist/safe-mdx.test.js.map +1 -1
  56. package/package.json +27 -6
  57. package/src/html/README +17 -0
  58. package/src/html/attributes.ts +297 -0
  59. package/src/html/convert-attributes.ts +59 -0
  60. package/src/html/domparser-browser.ts +6 -0
  61. package/src/html/domparser.ts +5 -0
  62. package/src/html/html-to-mdx-ast.test.ts +365 -0
  63. package/src/html/html-to-mdx-ast.ts +304 -0
  64. package/src/html/remark-mdx-jsx-normalize.ts +128 -0
  65. package/src/html/valid-html-elements.ts +65 -0
  66. package/src/parse.ts +3 -0
  67. package/src/safe-mdx.test.tsx +178 -12
  68. package/src/safe-mdx.tsx +23 -79
  69. package/dist/HtmlToJsxConverter.d.ts +0 -10
  70. package/dist/HtmlToJsxConverter.d.ts.map +0 -1
  71. package/dist/HtmlToJsxConverter.js +0 -22
  72. package/dist/HtmlToJsxConverter.js.map +0 -1
  73. package/dist/plugins.d.ts +0 -12
  74. package/dist/plugins.d.ts.map +0 -1
  75. package/dist/plugins.js +0 -68
  76. package/dist/plugins.js.map +0 -1
  77. package/src/HtmlToJsxConverter.tsx +0 -37
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import dedent from 'dedent';
3
- import { htmlToJsx } from 'html-to-jsx-transform';
4
3
  import { renderToStaticMarkup } from 'react-dom/server';
5
4
  import { expect, test } from 'vitest';
6
5
  import { z } from 'zod';
@@ -26,12 +25,6 @@ function render(code, componentPropsSchema, allowClientEsmImports, addMarkdownLi
26
25
  // console.log(JSON.stringify(result, null, 2))
27
26
  return { result, errors: visitor.errors || [], html };
28
27
  }
29
- test('htmlToJsx', () => {
30
- expect(htmlToJsx('<p x="y">')).toMatchInlineSnapshot(`"<p x="y" />"`);
31
- expect(htmlToJsx('<p>text</p>')).toMatchInlineSnapshot(`"<p>text</p>"`);
32
- expect(htmlToJsx('before <p>text</p>')).toMatchInlineSnapshot(`"<>before <p>text</p></>"`);
33
- expect(htmlToJsx('<nonexisting>text</nonexisting>')).toMatchInlineSnapshot(`"<nonexisting>text</nonexisting>"`);
34
- });
35
28
  test('reference links with titles', () => {
36
29
  const code = dedent `
37
30
  > **Heads-up:** Check the [API docs][1] for more info.
@@ -2218,6 +2211,60 @@ test('kitchen sink', () => {
2218
2211
  }
2219
2212
  `);
2220
2213
  });
2214
+ test('mdx jsx with unknown components are ignored', () => {
2215
+ // Note: In MDX, <custom-element> is treated as MDX JSX, not raw HTML
2216
+ // Unknown JSX components are ignored completely (including their content)
2217
+ const code = dedent `
2218
+ # Heading with JSX
2219
+
2220
+ This is a paragraph with some JSX components.
2221
+
2222
+ <div>This is a valid div</div>
2223
+
2224
+ <CustomElement>This unknown component should be ignored</CustomElement>
2225
+
2226
+ <span className="highlight">This span is valid</span>
2227
+
2228
+ <AnotherUnknown>Another unknown component content</AnotherUnknown>
2229
+
2230
+ More text after JSX.
2231
+ `;
2232
+ const { html, result, errors } = render(code);
2233
+ // Check that valid HTML elements are present
2234
+ expect(html).toContain('<div>This is a valid div</div>');
2235
+ expect(html).toContain('<span');
2236
+ expect(html).toContain('This span is valid</span>');
2237
+ // Check that unknown components are completely ignored
2238
+ expect(html).not.toContain('CustomElement');
2239
+ expect(html).not.toContain('AnotherUnknown');
2240
+ expect(html).not.toContain('This unknown component should be ignored');
2241
+ expect(html).not.toContain('Another unknown component content');
2242
+ // Check that errors were generated for unknown components
2243
+ expect(errors).toHaveLength(2);
2244
+ expect(errors[0].message).toContain('Unsupported jsx component CustomElement');
2245
+ expect(errors[1].message).toContain('Unsupported jsx component AnotherUnknown');
2246
+ expect(result).toMatchInlineSnapshot(`
2247
+ <React.Fragment>
2248
+ <h1>
2249
+ Heading with JSX
2250
+ </h1>
2251
+ <p>
2252
+ This is a paragraph with some JSX components.
2253
+ </p>
2254
+ <div>
2255
+ This is a valid div
2256
+ </div>
2257
+ <span
2258
+ className="highlight"
2259
+ >
2260
+ This span is valid
2261
+ </span>
2262
+ <p>
2263
+ More text after JSX.
2264
+ </p>
2265
+ </React.Fragment>
2266
+ `);
2267
+ });
2221
2268
  test('code block rendering', () => {
2222
2269
  const code = dedent `
2223
2270
  `;
@@ -2814,7 +2861,7 @@ test('ESM imports from https URLs', () => {
2814
2861
  expect(visitor.esmImports.get('Modal')).toBe('https://esm.sh/some-ui-library#Modal');
2815
2862
  // Since these are dynamic imports that only work on client, the server render should return null
2816
2863
  const html = renderToStaticMarkup(result);
2817
- expect(html).toMatchInlineSnapshot(`"<h1>Hello</h1>"`);
2864
+ expect(html).toMatchInlineSnapshot(`"<link href="https://esm.sh" rel="dns-prefetch"/><link rel="preconnect" href="https://esm.sh"/><h1>Hello</h1>"`);
2818
2865
  expect(visitor.errors).toEqual([]);
2819
2866
  });
2820
2867
  test('ESM imports error handling', () => {
@@ -3200,4 +3247,110 @@ test('jsx component with complex array props should show clear error message', (
3200
3247
  expect(expressionError.message).toContain('Functions are not supported');
3201
3248
  expect(expressionError.line).toBe(1);
3202
3249
  });
3250
+ test('override renderNode to wrap bold text in colored span', () => {
3251
+ const code = dedent `
3252
+ This is **bold text** and this is regular text.
3253
+
3254
+ Another line with **more bold** content.
3255
+ `;
3256
+ const mdast = mdxParse(code);
3257
+ const visitor = new MdastToJsx({
3258
+ markdown: code,
3259
+ mdast,
3260
+ components,
3261
+ renderNode: (node, transform) => {
3262
+ if (node.type === 'strong') {
3263
+ return (_jsx("span", { style: { color: 'red', fontWeight: 'bold' }, children: node.children?.map(child => transform(child)) }));
3264
+ }
3265
+ // Return undefined to use default rendering
3266
+ return undefined;
3267
+ }
3268
+ });
3269
+ const result = visitor.run();
3270
+ const html = renderToStaticMarkup(result);
3271
+ expect(html).toMatchInlineSnapshot(`"<p>This is <span style="color:red;font-weight:bold">bold text</span> and this is regular text.</p><p>Another line with <span style="color:red;font-weight:bold">more bold</span> content.</p>"`);
3272
+ });
3273
+ test("skip unknown elements in raw HTML content", () => {
3274
+ const { html } = render(`
3275
+ Some text before
3276
+ <html><body>
3277
+ <p>Valid paragraph</p>
3278
+ <unknonw>This content should be preserved</unknonw>
3279
+ <div>Valid div</div>
3280
+ <faketag>Another preserved content</faketag>
3281
+ </body></html>
3282
+ Some text after
3283
+ `);
3284
+ expect(html).toMatchInlineSnapshot(`"<p>Some text before</p><p>Some text after</p>"`);
3285
+ });
3286
+ test("skip unknown elements in complex nested HTML structures", () => {
3287
+ const { html } = render(`
3288
+ # Main Title
3289
+
3290
+ <article>
3291
+ <header>
3292
+ <h1>Article Title</h1>
3293
+ <customheader>
3294
+ <p>This paragraph should be preserved</p>
3295
+ <time>2024-01-01</time>
3296
+ </customheader>
3297
+ </header>
3298
+
3299
+ <section>
3300
+ <blockquote>
3301
+ <p>A famous quote</p>
3302
+ <customcite>
3303
+ <strong>- Author Name</strong>
3304
+ <unknowntag>
3305
+ <em>from a book</em>
3306
+ <span>published in <b>2024</b></span>
3307
+ </unknowntag>
3308
+ </customcite>
3309
+ </blockquote>
3310
+
3311
+ <fakesection>
3312
+ <h2>Nested Heading</h2>
3313
+ <ul>
3314
+ <li>First item with <invalidtag>nested <code>code</code></invalidtag></li>
3315
+ <li>Second item</li>
3316
+ <customli>Third item should show</customli>
3317
+ </ul>
3318
+ </fakesection>
3319
+ </section>
3320
+
3321
+ <footer>
3322
+ <customfooter>
3323
+ <nav>
3324
+ <a href="#top">Back to top</a>
3325
+ <fakelink>
3326
+ <span>Contact us</span>
3327
+ </fakelink>
3328
+ </nav>
3329
+ </customfooter>
3330
+ </footer>
3331
+ </article>
3332
+
3333
+ ## Another Section
3334
+
3335
+ <div>
3336
+ <customelement>
3337
+ <table>
3338
+ <thead>
3339
+ <tr>
3340
+ <th>Header 1</th>
3341
+ <customth>Header 2 content</customth>
3342
+ </tr>
3343
+ </thead>
3344
+ <tbody>
3345
+ <customrow>
3346
+ <td>Cell 1</td>
3347
+ <td>Cell 2</td>
3348
+ </customrow>
3349
+ </tbody>
3350
+ </table>
3351
+ </customelement>
3352
+ </div>
3353
+ `);
3354
+ expect(html).toMatchInlineSnapshot(`"<h1>Main Title</h1><article><header><h1>Article Title</h1></header><section><blockquote><p>A famous quote</p></blockquote></section><footer></footer></article><h2>Another Section</h2><div></div>"`);
3355
+ });
3203
3356
  //# sourceMappingURL=safe-mdx.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-mdx.test.js","sourceRoot":"","sources":["../src/safe-mdx.test.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA2ZZ,CAAC,CACL,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"safe-mdx.test.js","sourceRoot":"","sources":["../src/safe-mdx.test.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "safe-mdx",
3
- "version": "1.3.2",
3
+ "version": "1.3.3",
4
4
  "private": false,
5
5
  "description": "Render MDX in React without eval",
6
6
  "repository": "https://github.com/holocron-hq/safe-mdx",
@@ -15,6 +15,11 @@
15
15
  "types": "./dist/parse.d.ts",
16
16
  "default": "./dist/parse.js"
17
17
  },
18
+ "./domparser": {
19
+ "types": "./dist/html/domparser.d.ts",
20
+ "browser": "./dist/html/domparser-browser.js",
21
+ "default": "./dist/html/domparser.js"
22
+ },
18
23
  "./src/*": "./src/*.tsx",
19
24
  "./package.json": "./package.json"
20
25
  },
@@ -31,35 +36,51 @@
31
36
  "react": "*"
32
37
  },
33
38
  "dependencies": {
39
+ "@babel/parser": "^7.28.0",
40
+ "@babel/types": "^7.28.2",
34
41
  "@standard-schema/spec": "^1.0.0",
35
42
  "collapse-white-space": "^2.1.0",
36
43
  "eval-estree-expression": "^3.0.0",
37
- "html-to-jsx-transform": "^1.0.0",
44
+ "linkedom": "^0.18.12",
38
45
  "remark": "^15.0.1",
39
46
  "remark-frontmatter": "^5.0.0",
40
47
  "remark-gfm": "^4.0.0",
41
48
  "remark-mdx": "^3.0.0",
49
+ "style-to-object": "^1.0.8",
42
50
  "unified": "^11.0.5",
43
- "unist-util-visit": "^5.0.0"
51
+ "unist-util-visit": "^5.0.0",
52
+ "unist-util-visit-parents": "^6.0.1"
44
53
  },
45
54
  "devDependencies": {
46
55
  "@changesets/cli": "^2.28.1",
56
+ "@tailwindcss/typography": "^0.5.16",
57
+ "@tailwindcss/vite": "^4.1.11",
47
58
  "@types/estree-jsx": "^1.0.5",
48
59
  "@types/mdast": "^4.0.0",
49
60
  "@types/node": "^22.15.17",
50
- "@types/react": "^19.1.3",
51
- "@types/react-dom": "^19.1.3",
61
+ "@types/react": "^19.1.8",
62
+ "@types/react-dom": "^19.1.6",
63
+ "@vitejs/plugin-react": "^4.7.0",
52
64
  "@vitest/coverage-v8": "^1.6.0",
53
65
  "dedent": "^1.5.1",
66
+ "importmap-vite-plugin": "^0.0.0",
54
67
  "mdast-util-mdx-jsx": "^3.2.0",
55
68
  "react": "^19.1.0",
56
69
  "react-dom": "^19.1.0",
70
+ "remark-parse": "^11.0.0",
71
+ "remark-stringify": "^11.0.0",
72
+ "tailwindcss": "^4.1.11",
57
73
  "typescript": "5.8.3",
74
+ "vite": "^6.2.6",
58
75
  "vitest": "^3.1.3",
59
76
  "zod": "^3.25.67"
60
77
  },
61
78
  "scripts": {
62
79
  "build": "tsc",
63
- "test": "vitest"
80
+ "test": "vitest",
81
+ "demo": "vite",
82
+ "start": "vite preview",
83
+ "deploy-demo": "vite build && npx -y wrangler pages deploy",
84
+ "demo:build": "vite build"
64
85
  }
65
86
  }
@@ -0,0 +1,17 @@
1
+ Originally taken from https://github.com/leodr/html-to-jsx-transform/tree/main
2
+
3
+
4
+
5
+ Things to remember when deciding between mdxJsxFlowElement or mdxJsxTextElement:
6
+
7
+ ```
8
+ type MdxJsxFlowContent = MdxJsxFlowElement | FlowContent
9
+
10
+ type MdxJsxPhrasingContent = MdxJsxTextElement | PhrasingContent
11
+
12
+ type PhrasingContent = Break | Emphasis | Html | Image | ImageReference
13
+ | InlineCode | Link | LinkReference | Strong | Text
14
+
15
+ type FlowContent =
16
+ Blockquote | Code | Heading | Html | List | ThematicBreak | Content
17
+ ```
@@ -0,0 +1,297 @@
1
+ // The following element listings are taken from the facebook/react repository.
2
+ // https://github.com/facebook/react/blob/main/packages/react-dom/src/shared/DOMProperty.js
3
+
4
+ // A few React string attributes have a different name.
5
+ // This is a mapping from React prop names to the attribute names.
6
+ export const renamedAttributes = new Map([
7
+ ["accept-charset", "acceptCharset"],
8
+ ["class", "className"],
9
+ ["for", "htmlFor"],
10
+ ["http-equiv", "httpEquiv"],
11
+ ]);
12
+
13
+ // These are "enumerated" HTML attributes that accept "true" and "false".
14
+ // In React, we let users pass `true` and `false` even though technically
15
+ // these aren't boolean attributes (they are coerced to strings).
16
+ export const coerceToBooleanAttributes = [
17
+ "allowFullScreen",
18
+ "async",
19
+ "autoFocus",
20
+ "autoPlay",
21
+ "checked",
22
+ "contentEditable",
23
+ "controls",
24
+ "default",
25
+ "defer",
26
+ "disabled",
27
+ "disablePictureInPicture",
28
+ "disableRemotePlayback",
29
+ "draggable",
30
+ "formNoValidate",
31
+ "hidden",
32
+ "itemScope",
33
+ "loop",
34
+ "multiple",
35
+ "muted",
36
+ "noModule",
37
+ "noValidate",
38
+ "open",
39
+ "playsInline",
40
+ "readOnly",
41
+ "required",
42
+ "reversed",
43
+ "scoped",
44
+ "seamless",
45
+ "selected",
46
+ "spellCheck",
47
+ "value",
48
+
49
+ // These accept other values than true and false which are just left as is.
50
+ // true and false will get converted to booleans.
51
+ "capture",
52
+ "download",
53
+ ];
54
+
55
+ // These are "enumerated" SVG attributes that accept "true" and "false".
56
+ // In React, we let users pass `true` and `false` even though technically
57
+ // these aren't boolean attributes (they are coerced to strings).
58
+ // Since these are SVG attributes, their attribute names are case-sensitive.
59
+ export const svgCoerceToBooleanAttributes = [
60
+ "autoReverse",
61
+ "externalResourcesRequired",
62
+ "focusable",
63
+ "preserveAlpha",
64
+ ];
65
+
66
+ // These are HTML attributes that must be positive numbers.
67
+ export const numberAttributes = [
68
+ "border",
69
+ "cellPadding",
70
+ "cellSpacing",
71
+ "cols",
72
+ "marginHeight",
73
+ "marginWidth",
74
+ "maxLength",
75
+ "minLength",
76
+ "rows",
77
+ "rowSpan",
78
+ "size",
79
+ "span",
80
+ "start",
81
+ "tabIndex",
82
+ ];
83
+
84
+ // These properties are SVG and have to be camelized.
85
+ // The second value in the array determines should be converted to a number if
86
+ // possible.
87
+ export const svgCamelizedAttributes = [
88
+ ["accent-height", false],
89
+ ["alignment-baseline", false],
90
+ ["arabic-form", false],
91
+ ["baseline-shift", false],
92
+ ["cap-height", true],
93
+ ["clip-path", false],
94
+ ["clip-rule", false],
95
+ ["color-interpolation-filters", false],
96
+ ["color-interpolation", false],
97
+ ["color-profile", false],
98
+ ["color-rendering", false],
99
+ ["dominant-baseline", false],
100
+ ["enable-background", false],
101
+ ["fill-opacity", false],
102
+ ["fill-rule", false],
103
+ ["flood-color", false],
104
+ ["flood-opacity", false],
105
+ ["font-family", false],
106
+ ["font-size-adjust", true],
107
+ ["font-size", true],
108
+ ["font-stretch", false],
109
+ ["font-style", false],
110
+ ["font-variant", false],
111
+ ["font-weight", true],
112
+ ["glyph-name", false],
113
+ ["glyph-orientation-horizontal", false],
114
+ ["glyph-orientation-vertical", false],
115
+ ["horiz-adv-x", true],
116
+ ["horiz-origin-x", true],
117
+ ["image-rendering", false],
118
+ ["letter-spacing", true],
119
+ ["lighting-color", false],
120
+ ["marker-end", false],
121
+ ["marker-mid", false],
122
+ ["marker-start", false],
123
+ ["overline-position", true],
124
+ ["overline-thickness", true],
125
+ ["paint-order", false],
126
+ ["panose-1", false],
127
+ ["pointer-events", false],
128
+ ["rendering-intent", false],
129
+ ["shape-rendering", false],
130
+ ["stop-color", false],
131
+ ["stop-opacity", false],
132
+ ["strikethrough-position", true],
133
+ ["strikethrough-thickness", true],
134
+ ["stroke-dasharray", false],
135
+ ["stroke-dashoffset", true],
136
+ ["stroke-linecap", false],
137
+ ["stroke-linejoin", false],
138
+ ["stroke-miterlimit", true],
139
+ ["stroke-opacity", false],
140
+ ["stroke-width", true],
141
+ ["text-anchor", false],
142
+ ["text-decoration", false],
143
+ ["text-rendering", false],
144
+ ["underline-position", true],
145
+ ["underline-thickness", true],
146
+ ["unicode-bidi", false],
147
+ ["unicode-range", false],
148
+ ["units-per-em", true],
149
+ ["v-alphabetic", true],
150
+ ["v-hanging", true],
151
+ ["v-ideographic", true],
152
+ ["v-mathematical", true],
153
+ ["vector-effect", false],
154
+ ["vert-adv-y", true],
155
+ ["vert-origin-x", true],
156
+ ["vert-origin-y", true],
157
+ ["word-spacing", true],
158
+ ["writing-mode", false],
159
+ ["x-height", true],
160
+ ["xmlns:xlink", false],
161
+ ];
162
+
163
+ // Supported event attributes in React, taken from
164
+ // https://reactjs.org/docs/events.html
165
+ export const eventHandlerAttributes = [
166
+ "onAbort",
167
+ "onAnimationEnd",
168
+ "onAnimationIteration",
169
+ "onAnimationStart",
170
+ "onBlur",
171
+ "onCanPlay",
172
+ "onCanPlayThrough",
173
+ "onChange",
174
+ "onClick",
175
+ "onCompositionEnd",
176
+ "onCompositionStart",
177
+ "onCompositionUpdate",
178
+ "onContextMenu",
179
+ "onCopy",
180
+ "onCut",
181
+ "onDoubleClick",
182
+ "onDrag",
183
+ "onDragEnd",
184
+ "onDragEnter",
185
+ "onDragExit",
186
+ "onDragLeave",
187
+ "onDragOver",
188
+ "onDragStart",
189
+ "onDrop",
190
+ "onDurationChange",
191
+ "onEmptied",
192
+ "onEncrypted",
193
+ "onEnded",
194
+ "onError",
195
+ "onError",
196
+ "onFocus",
197
+ "onGotPointerCapture",
198
+ "onInput",
199
+ "onInvalid",
200
+ "onKeyDown",
201
+ "onKeyPress",
202
+ "onKeyUp",
203
+ "onLoad",
204
+ "onLoadedData",
205
+ "onLoadedMetadata",
206
+ "onLoadStart",
207
+ "onLostPointerCapture",
208
+ "onMouseDown",
209
+ "onMouseEnter",
210
+ "onMouseLeave",
211
+ "onMouseMove",
212
+ "onMouseOut",
213
+ "onMouseOver",
214
+ "onMouseUp",
215
+ "onPaste",
216
+ "onPause",
217
+ "onPlay",
218
+ "onPlaying",
219
+ "onPointerCancel",
220
+ "onPointerDown",
221
+ "onPointerEnter",
222
+ "onPointerLeave",
223
+ "onPointerMove",
224
+ "onPointerOut",
225
+ "onPointerOver",
226
+ "onPointerUp",
227
+ "onProgress",
228
+ "onRateChange",
229
+ "onReset",
230
+ "onScroll",
231
+ "onSeeked",
232
+ "onSeeking",
233
+ "onSelect",
234
+ "onStalled",
235
+ "onSubmit",
236
+ "onSuspend",
237
+ "onTimeUpdate",
238
+ "onToggle",
239
+ "onTouchCancel",
240
+ "onTouchEnd",
241
+ "onTouchMove",
242
+ "onTouchStart",
243
+ "onTransitionEnd",
244
+ "onVolumeChange",
245
+ "onWaiting",
246
+ "onWheel",
247
+ ];
248
+
249
+ // List of attributes that are lower-cased in HTML but have to be camel-cased in
250
+ // JSX code. Taken from https://reactjs.org/docs/dom-elements.html
251
+ export const lowercasedAttributes = [
252
+ "accessKey",
253
+ "autoComplete",
254
+ "charSet",
255
+ "classID",
256
+ "colSpan",
257
+ "cellSpacing",
258
+ "cellMargin",
259
+ "contextMenu",
260
+ "controlsList",
261
+ "crossOrigin",
262
+ "dateTime",
263
+ "encType",
264
+ "formAction",
265
+ "formEncType",
266
+ "formMethod",
267
+ "formTarget",
268
+ "frameBorder",
269
+ "hrefLang",
270
+ "inputMode",
271
+ "keyParams",
272
+ "keyType",
273
+ "mediaGroup",
274
+ "radioGroup",
275
+ "srcDoc",
276
+ "srcLang",
277
+ "srcSet",
278
+ "useMap",
279
+ ];
280
+
281
+ /**
282
+ * Don't strip the px suffix from these style attributes
283
+ * because they can contain both length (e.g. `13px`) and
284
+ * unitless values (e.g. `3`), which have different
285
+ * meanings.
286
+ *
287
+ * (Background: React automatically adds a `px` to unitless
288
+ * numbers specified in style attributes, so these attributes
289
+ * should not be included in `px` stripping).
290
+ */
291
+ export const styleDontStripPx = [
292
+ "line-height",
293
+ "flex",
294
+ "mask-border-outset",
295
+ "mask-box-outset",
296
+ "mask-border-width",
297
+ ];