@next-bricks/presentational 1.20.1 → 1.21.1
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/bricks.json +48 -33
- package/dist/chunks/1120.a1539fd9.js +2 -0
- package/dist/chunks/1120.a1539fd9.js.map +1 -0
- package/dist/chunks/114.1cbe662e.js +2 -0
- package/dist/chunks/{114.1c7311ae.js.map → 114.1cbe662e.js.map} +1 -1
- package/dist/chunks/1215.7e9cfce1.js +2 -0
- package/dist/chunks/1215.7e9cfce1.js.map +1 -0
- package/dist/chunks/1632.72e283f7.js +2 -0
- package/dist/chunks/1632.72e283f7.js.map +1 -0
- package/dist/chunks/1889.4559a6f7.js +2 -0
- package/dist/chunks/1889.4559a6f7.js.map +1 -0
- package/dist/chunks/2449.216a2777.js +2 -0
- package/dist/chunks/2449.216a2777.js.map +1 -0
- package/dist/chunks/2510.c0cb41a1.js +2 -0
- package/dist/chunks/2510.c0cb41a1.js.map +1 -0
- package/dist/chunks/2593.1ae05d1e.js +2 -0
- package/dist/chunks/2593.1ae05d1e.js.map +1 -0
- package/dist/chunks/{3171.ec7ebf74.js → 3171.91e2c51e.js} +2 -2
- package/dist/chunks/{3171.ec7ebf74.js.map → 3171.91e2c51e.js.map} +1 -1
- package/dist/chunks/3699.6f60864f.js +3 -0
- package/dist/chunks/3699.6f60864f.js.map +1 -0
- package/dist/chunks/3897.510e7cbb.js +3 -0
- package/dist/chunks/3897.510e7cbb.js.LICENSE.txt +9 -0
- package/dist/chunks/3897.510e7cbb.js.map +1 -0
- package/dist/chunks/3900.47f48f41.js +2 -0
- package/dist/chunks/3900.47f48f41.js.map +1 -0
- package/dist/chunks/4190.ed091f3e.js +2 -0
- package/dist/chunks/4190.ed091f3e.js.map +1 -0
- package/dist/chunks/4306.3e1ac1d3.js +2 -0
- package/dist/chunks/4306.3e1ac1d3.js.map +1 -0
- package/dist/chunks/4609.4b23d329.js +2 -0
- package/dist/chunks/4609.4b23d329.js.map +1 -0
- package/dist/chunks/4735.eefcc091.js +2 -0
- package/dist/chunks/4735.eefcc091.js.map +1 -0
- package/dist/chunks/{4765.eb562592.js → 4765.9d03b0af.js} +2 -2
- package/dist/chunks/{4765.eb562592.js.map → 4765.9d03b0af.js.map} +1 -1
- package/dist/chunks/{7218.0fbf3fe9.js → 4837.3ae6253e.js} +2 -2
- package/dist/chunks/{7218.0fbf3fe9.js.map → 4837.3ae6253e.js.map} +1 -1
- package/dist/chunks/5032.380eece1.js +2 -0
- package/dist/chunks/5032.380eece1.js.map +1 -0
- package/dist/chunks/5065.3c2dbb83.js +2 -0
- package/dist/chunks/5065.3c2dbb83.js.map +1 -0
- package/dist/chunks/5498.8bf3dbd7.js +2 -0
- package/dist/chunks/5498.8bf3dbd7.js.map +1 -0
- package/dist/chunks/{5552.4b9552ba.js → 5552.965f0567.js} +2 -2
- package/dist/chunks/{5552.4b9552ba.js.map → 5552.965f0567.js.map} +1 -1
- package/dist/chunks/{7146.29dad417.js → 7146.2edec8bc.js} +2 -2
- package/dist/chunks/{7146.29dad417.js.map → 7146.2edec8bc.js.map} +1 -1
- package/dist/chunks/{4837.dc61e345.js → 7218.4acefe69.js} +2 -2
- package/dist/chunks/{4837.dc61e345.js.map → 7218.4acefe69.js.map} +1 -1
- package/dist/chunks/7733.4dfd8892.js +2 -0
- package/dist/chunks/{7733.e71133ff.js.map → 7733.4dfd8892.js.map} +1 -1
- package/dist/chunks/{8097.f5a73244.js → 8097.c5283514.js} +2 -2
- package/dist/chunks/{8097.f5a73244.js.map → 8097.c5283514.js.map} +1 -1
- package/dist/chunks/8263.2d81f44c.js +2 -0
- package/dist/chunks/8263.2d81f44c.js.map +1 -0
- package/dist/chunks/8311.ac832586.js +2 -0
- package/dist/chunks/8311.ac832586.js.map +1 -0
- package/dist/chunks/8755.320dc44a.js +2 -0
- package/dist/chunks/8755.320dc44a.js.map +1 -0
- package/dist/chunks/8757.4825c77f.js +2 -0
- package/dist/chunks/8757.4825c77f.js.map +1 -0
- package/dist/chunks/948.e1790690.js +3 -0
- package/dist/chunks/948.e1790690.js.map +1 -0
- package/dist/chunks/code-wrapper.be0d1487.js +3 -0
- package/dist/chunks/code-wrapper.be0d1487.js.map +1 -0
- package/dist/chunks/{eo-alert.0f3e7944.js → eo-alert.625d5099.js} +3 -3
- package/dist/chunks/{eo-alert.0f3e7944.js.map → eo-alert.625d5099.js.map} +1 -1
- package/dist/chunks/eo-card-item.da90013a.js +3 -0
- package/dist/chunks/{eo-card-item.6feda942.js.map → eo-card-item.da90013a.js.map} +1 -1
- package/dist/chunks/eo-carousel-text.8188b7b7.js +2 -0
- package/dist/chunks/{eo-carousel-text.b0e3ca7c.js.map → eo-carousel-text.8188b7b7.js.map} +1 -1
- package/dist/chunks/eo-code-block.f5ffef62.js +2 -0
- package/dist/chunks/eo-code-block.f5ffef62.js.map +1 -0
- package/dist/chunks/eo-code-display.c457657a.js +2 -0
- package/dist/chunks/eo-code-display.c457657a.js.map +1 -0
- package/dist/chunks/eo-current-time.c203517c.js +2 -0
- package/dist/chunks/{eo-current-time.28667a90.js.map → eo-current-time.c203517c.js.map} +1 -1
- package/dist/chunks/{eo-descriptions.4ce01d04.js → eo-descriptions.84bd1dfe.js} +3 -3
- package/dist/chunks/{eo-descriptions.4ce01d04.js.map → eo-descriptions.84bd1dfe.js.map} +1 -1
- package/dist/chunks/eo-divider.7273176b.js +3 -0
- package/dist/chunks/{eo-divider.f669534e.js.map → eo-divider.7273176b.js.map} +1 -1
- package/dist/chunks/eo-humanize-time.42af69a7.js +2 -0
- package/dist/chunks/{eo-humanize-time.6d09bec0.js.map → eo-humanize-time.42af69a7.js.map} +1 -1
- package/dist/chunks/{eo-info-card-item.844117a4.js → eo-info-card-item.554cba4f.js} +3 -3
- package/dist/chunks/{eo-info-card-item.844117a4.js.map → eo-info-card-item.554cba4f.js.map} +1 -1
- package/dist/chunks/{eo-loading-step.f189dd21.js → eo-loading-step.604d6e34.js} +3 -3
- package/dist/chunks/{eo-loading-step.f189dd21.js.map → eo-loading-step.604d6e34.js.map} +1 -1
- package/dist/chunks/eo-pagination.8f5dcfce.js +3 -0
- package/dist/chunks/eo-pagination.8f5dcfce.js.LICENSE.txt +5 -0
- package/dist/chunks/{eo-pagination.5f8f5ec7.js.map → eo-pagination.8f5dcfce.js.map} +1 -1
- package/dist/chunks/eo-statistics-card.3ef146cb.js +2 -0
- package/dist/chunks/{eo-statistics-card.c6317452.js.map → eo-statistics-card.3ef146cb.js.map} +1 -1
- package/dist/chunks/main.e70d2fce.js +2 -0
- package/dist/chunks/main.e70d2fce.js.map +1 -0
- package/dist/examples.json +15 -12
- package/dist/index.0205acd1.js +2 -0
- package/dist/index.0205acd1.js.map +1 -0
- package/dist/manifest.json +349 -259
- package/dist/types.json +660 -525
- package/dist-types/bootstrap.d.ts +2 -0
- package/dist-types/code-block/index.d.ts +36 -0
- package/dist-types/code-block/index.spec.d.ts +2 -0
- package/dist-types/code-wrapper/index.d.ts +32 -0
- package/dist-types/code-wrapper/index.spec.d.ts +1 -0
- package/docs/eo-code-block.md +15 -0
- package/package.json +3 -3
- package/dist/chunks/114.1c7311ae.js +0 -2
- package/dist/chunks/1889.39e890ab.js +0 -2
- package/dist/chunks/1889.39e890ab.js.map +0 -1
- package/dist/chunks/4306.0c3d1cb1.js +0 -2
- package/dist/chunks/4306.0c3d1cb1.js.map +0 -1
- package/dist/chunks/5746.69eae993.js +0 -3
- package/dist/chunks/5746.69eae993.js.map +0 -1
- package/dist/chunks/7082.2b6f2b19.js +0 -2
- package/dist/chunks/7082.2b6f2b19.js.map +0 -1
- package/dist/chunks/7733.e71133ff.js +0 -2
- package/dist/chunks/9140.13b890b2.js +0 -3
- package/dist/chunks/9140.13b890b2.js.map +0 -1
- package/dist/chunks/eo-card-item.6feda942.js +0 -3
- package/dist/chunks/eo-carousel-text.b0e3ca7c.js +0 -2
- package/dist/chunks/eo-code-display.a3897397.js +0 -2
- package/dist/chunks/eo-code-display.a3897397.js.map +0 -1
- package/dist/chunks/eo-current-time.28667a90.js +0 -2
- package/dist/chunks/eo-divider.f669534e.js +0 -3
- package/dist/chunks/eo-humanize-time.6d09bec0.js +0 -2
- package/dist/chunks/eo-pagination.5f8f5ec7.js +0 -3
- package/dist/chunks/eo-statistics-card.c6317452.js +0 -2
- package/dist/chunks/main.76111566.js +0 -2
- package/dist/chunks/main.76111566.js.map +0 -1
- package/dist/index.88406423.js +0 -2
- package/dist/index.88406423.js.map +0 -1
- /package/dist/chunks/{5746.69eae993.js.LICENSE.txt → 3699.6f60864f.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9140.13b890b2.js.LICENSE.txt → 948.e1790690.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-alert.0f3e7944.js.LICENSE.txt → code-wrapper.be0d1487.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-card-item.6feda942.js.LICENSE.txt → eo-alert.625d5099.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-descriptions.4ce01d04.js.LICENSE.txt → eo-card-item.da90013a.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-divider.f669534e.js.LICENSE.txt → eo-descriptions.84bd1dfe.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-info-card-item.844117a4.js.LICENSE.txt → eo-divider.7273176b.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-loading-step.f189dd21.js.LICENSE.txt → eo-info-card-item.554cba4f.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-pagination.5f8f5ec7.js.LICENSE.txt → eo-loading-step.604d6e34.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/3897.510e7cbb.js","mappings":"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,OACA,KACA,SACA,QACA,SACA,OACA,KACA,SACA,SACA,QACA,SACA,SACA,SACA,OACA,OACA,MACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,QACA,QACA,QACA,SACA,MACA,QACA,SACA,OACA,SACA,SACA,QACA,OACA,OACA,SACA,MACA,SACA,SACA,QACA,SACA,MACA,OACA,SACA,SACA,SACA,KACA,SACA,QACA,QACA,SACA,SACA,OACA,QACA,KACA,OACA,QACA,SACA,OACA,MACA,SACA,SACA,QACA,SACA,OACA,OACA,SACA,SACA,OACA,OACA,SACA,QACA,OACA,QACA,MACA,OACA,MACA,OACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,MACA,OACA,SACA,MACA,QC1GWC,GAAyB,CACpCC,KAAM,IACNC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,IAAK,IACLC,OAAQ,IACRC,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,KAAM,IACNC,IAAK,IACLC,OAAQ,IACRC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,IAAK,IACLC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACR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","sources":["webpack:///../../node_modules/space-separated-tokens/index.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","webpack:///../../node_modules/inline-style-parser/index.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///../../node_modules/@shikijs/engine-oniguruma/dist/index.mjs","webpack:///../../node_modules/react/jsx-runtime.js","webpack:///../../node_modules/comma-separated-tokens/index.js","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../node_modules/@shikijs/themes/dist/dark-plus.mjs","webpack:///../../node_modules/estree-util-is-identifier-name/lib/index.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/util/schema.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/util/merge.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/normalize.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/util/info.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/util/types.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/util/defined-info.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/util/create.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/xlink.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/xml.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/util/case-sensitive-transform.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/util/case-insensitive-transform.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/xmlns.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/aria.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/html.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/svg.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/index.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/find.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/node_modules/property-information/lib/hast-to-react.js","webpack:///../../node_modules/style-to-object/esm/index.mjs","webpack:///../../node_modules/unist-util-position/lib/index.js","webpack:///../../node_modules/unist-util-stringify-position/lib/index.js","webpack:///../../node_modules/vfile-message/lib/index.js","webpack:///../../node_modules/hast-util-to-jsx-runtime/lib/index.js","webpack:///../../node_modules/@shikijs/themes/dist/light-plus.mjs","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2311.js","webpack:///../../node_modules/hast-util-whitespace/lib/index.js","webpack:///../../node_modules/@shikijs/types/dist/index.mjs","webpack:///../../node_modules/@shikijs/vscode-textmate/dist/index.js","webpack:///../../node_modules/html-void-elements/index.js","webpack:///../../node_modules/property-information/lib/util/schema.js","webpack:///../../node_modules/property-information/lib/util/merge.js","webpack:///../../node_modules/property-information/lib/normalize.js","webpack:///../../node_modules/property-information/lib/util/info.js","webpack:///../../node_modules/property-information/lib/util/types.js","webpack:///../../node_modules/property-information/lib/util/defined-info.js","webpack:///../../node_modules/property-information/lib/util/create.js","webpack:///../../node_modules/property-information/lib/aria.js","webpack:///../../node_modules/property-information/lib/util/case-sensitive-transform.js","webpack:///../../node_modules/property-information/lib/util/case-insensitive-transform.js","webpack:///../../node_modules/property-information/lib/html.js","webpack:///../../node_modules/property-information/lib/svg.js","webpack:///../../node_modules/property-information/lib/xlink.js","webpack:///../../node_modules/property-information/lib/xmlns.js","webpack:///../../node_modules/property-information/lib/xml.js","webpack:///../../node_modules/property-information/index.js","webpack:///../../node_modules/zwitch/index.js","webpack:///../../node_modules/stringify-entities/lib/core.js","webpack:///../../node_modules/stringify-entities/lib/util/to-hexadecimal.js","webpack:///../../node_modules/stringify-entities/lib/util/to-decimal.js","webpack:///../../node_modules/character-entities-legacy/index.js","webpack:///../../node_modules/character-entities-html4/index.js","webpack:///../../node_modules/stringify-entities/lib/constant/dangerous.js","webpack:///../../node_modules/stringify-entities/lib/util/to-named.js","webpack:///../../node_modules/stringify-entities/lib/util/format-smart.js","webpack:///../../node_modules/stringify-entities/lib/index.js","webpack:///../../node_modules/hast-util-to-html/lib/handle/comment.js","webpack:///../../node_modules/ccount/index.js","webpack:///../../node_modules/property-information/lib/find.js","webpack:///../../node_modules/hast-util-to-html/lib/omission/util/siblings.js","webpack:///../../node_modules/hast-util-to-html/lib/omission/omission.js","webpack:///../../node_modules/hast-util-to-html/lib/omission/closing.js","webpack:///../../node_modules/hast-util-to-html/lib/omission/opening.js","webpack:///../../node_modules/hast-util-to-html/lib/handle/element.js","webpack:///../../node_modules/hast-util-to-html/lib/handle/text.js","webpack:///../../node_modules/hast-util-to-html/lib/handle/index.js","webpack:///../../node_modules/hast-util-to-html/lib/handle/doctype.js","webpack:///../../node_modules/hast-util-to-html/lib/handle/raw.js","webpack:///../../node_modules/hast-util-to-html/lib/handle/root.js","webpack:///../../node_modules/hast-util-to-html/lib/index.js","webpack:///../../node_modules/@shikijs/core/dist/index.mjs","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack:///../../node_modules/hast-util-to-string/lib/index.js","webpack:///../../node_modules/style-to-object/cjs/index.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js"],"sourcesContent":["/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\n}","class ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ShikiError\";\n }\n}\n\nfunction getHeapMax() {\n return 2147483648;\n}\nfunction _emscripten_get_now() {\n return typeof performance !== \"undefined\" ? performance.now() : Date.now();\n}\nconst alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;\nasync function main(init) {\n let wasmMemory;\n let buffer;\n const binding = {};\n function updateGlobalBufferAndViews(buf) {\n buffer = buf;\n binding.HEAPU8 = new Uint8Array(buf);\n binding.HEAPU32 = new Uint32Array(buf);\n }\n function _emscripten_memcpy_big(dest, src, num) {\n binding.HEAPU8.copyWithin(dest, src, src + num);\n }\n function emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n } catch {\n }\n }\n function _emscripten_resize_heap(requestedSize) {\n const oldSize = binding.HEAPU8.length;\n requestedSize = requestedSize >>> 0;\n const maxHeapSize = getHeapMax();\n if (requestedSize > maxHeapSize)\n return false;\n for (let cutDown = 1; cutDown <= 4; cutDown *= 2) {\n let overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n const newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n const replacement = emscripten_realloc_buffer(newSize);\n if (replacement)\n return true;\n }\n return false;\n }\n const UTF8Decoder = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf8\") : void 0;\n function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead = 1024) {\n const endIdx = idx + maxBytesToRead;\n let endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n }\n let str = \"\";\n while (idx < endPtr) {\n let u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n const u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) === 192) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);\n continue;\n }\n const u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) === 224) {\n u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n } else {\n u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n } else {\n const ch = u0 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n }\n }\n return str;\n }\n function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(binding.HEAPU8, ptr, maxBytesToRead) : \"\";\n }\n const asmLibraryArg = {\n emscripten_get_now: _emscripten_get_now,\n emscripten_memcpy_big: _emscripten_memcpy_big,\n emscripten_resize_heap: _emscripten_resize_heap,\n fd_write: () => 0\n };\n async function createWasm() {\n const info = {\n env: asmLibraryArg,\n wasi_snapshot_preview1: asmLibraryArg\n };\n const exports = await init(info);\n wasmMemory = exports.memory;\n updateGlobalBufferAndViews(wasmMemory.buffer);\n Object.assign(binding, exports);\n binding.UTF8ToString = UTF8ToString;\n }\n await createWasm();\n return binding;\n}\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nlet onigBinding = null;\nfunction throwLastOnigError(onigBinding2) {\n throw new ShikiError(onigBinding2.UTF8ToString(onigBinding2.getLastOnigError()));\n}\nclass UtfString {\n constructor(str) {\n __publicField(this, \"utf16Length\");\n __publicField(this, \"utf8Length\");\n __publicField(this, \"utf16Value\");\n __publicField(this, \"utf8Value\");\n __publicField(this, \"utf16OffsetToUtf8\");\n __publicField(this, \"utf8OffsetToUtf16\");\n const utf16Length = str.length;\n const utf8Length = UtfString._utf8ByteLength(str);\n const computeIndicesMapping = utf8Length !== utf16Length;\n const utf16OffsetToUtf8 = computeIndicesMapping ? new Uint32Array(utf16Length + 1) : null;\n if (computeIndicesMapping)\n utf16OffsetToUtf8[utf16Length] = utf8Length;\n const utf8OffsetToUtf16 = computeIndicesMapping ? new Uint32Array(utf8Length + 1) : null;\n if (computeIndicesMapping)\n utf8OffsetToUtf16[utf8Length] = utf16Length;\n const utf8Value = new Uint8Array(utf8Length);\n let i8 = 0;\n for (let i16 = 0; i16 < utf16Length; i16++) {\n const charCode = str.charCodeAt(i16);\n let codePoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 55296 && charCode <= 56319) {\n if (i16 + 1 < utf16Length) {\n const nextCharCode = str.charCodeAt(i16 + 1);\n if (nextCharCode >= 56320 && nextCharCode <= 57343) {\n codePoint = (charCode - 55296 << 10) + 65536 | nextCharCode - 56320;\n wasSurrogatePair = true;\n }\n }\n }\n if (computeIndicesMapping) {\n utf16OffsetToUtf8[i16] = i8;\n if (wasSurrogatePair)\n utf16OffsetToUtf8[i16 + 1] = i8;\n if (codePoint <= 127) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n } else if (codePoint <= 2047) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n } else if (codePoint <= 65535) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n } else {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n utf8OffsetToUtf16[i8 + 3] = i16;\n }\n }\n if (codePoint <= 127) {\n utf8Value[i8++] = codePoint;\n } else if (codePoint <= 2047) {\n utf8Value[i8++] = 192 | (codePoint & 1984) >>> 6;\n utf8Value[i8++] = 128 | (codePoint & 63) >>> 0;\n } else if (codePoint <= 65535) {\n utf8Value[i8++] = 224 | (codePoint & 61440) >>> 12;\n utf8Value[i8++] = 128 | (codePoint & 4032) >>> 6;\n utf8Value[i8++] = 128 | (codePoint & 63) >>> 0;\n } else {\n utf8Value[i8++] = 240 | (codePoint & 1835008) >>> 18;\n utf8Value[i8++] = 128 | (codePoint & 258048) >>> 12;\n utf8Value[i8++] = 128 | (codePoint & 4032) >>> 6;\n utf8Value[i8++] = 128 | (codePoint & 63) >>> 0;\n }\n if (wasSurrogatePair)\n i16++;\n }\n this.utf16Length = utf16Length;\n this.utf8Length = utf8Length;\n this.utf16Value = str;\n this.utf8Value = utf8Value;\n this.utf16OffsetToUtf8 = utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utf8OffsetToUtf16;\n }\n static _utf8ByteLength(str) {\n let result = 0;\n for (let i = 0, len = str.length; i < len; i++) {\n const charCode = str.charCodeAt(i);\n let codepoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 55296 && charCode <= 56319) {\n if (i + 1 < len) {\n const nextCharCode = str.charCodeAt(i + 1);\n if (nextCharCode >= 56320 && nextCharCode <= 57343) {\n codepoint = (charCode - 55296 << 10) + 65536 | nextCharCode - 56320;\n wasSurrogatePair = true;\n }\n }\n }\n if (codepoint <= 127)\n result += 1;\n else if (codepoint <= 2047)\n result += 2;\n else if (codepoint <= 65535)\n result += 3;\n else\n result += 4;\n if (wasSurrogatePair)\n i++;\n }\n return result;\n }\n createString(onigBinding2) {\n const result = onigBinding2.omalloc(this.utf8Length);\n onigBinding2.HEAPU8.set(this.utf8Value, result);\n return result;\n }\n}\nconst _OnigString = class _OnigString {\n constructor(str) {\n __publicField(this, \"id\", ++_OnigString.LAST_ID);\n __publicField(this, \"_onigBinding\");\n __publicField(this, \"content\");\n __publicField(this, \"utf16Length\");\n __publicField(this, \"utf8Length\");\n __publicField(this, \"utf16OffsetToUtf8\");\n __publicField(this, \"utf8OffsetToUtf16\");\n __publicField(this, \"ptr\");\n if (!onigBinding)\n throw new ShikiError(\"Must invoke loadWasm first.\");\n this._onigBinding = onigBinding;\n this.content = str;\n const utfString = new UtfString(str);\n this.utf16Length = utfString.utf16Length;\n this.utf8Length = utfString.utf8Length;\n this.utf16OffsetToUtf8 = utfString.utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utfString.utf8OffsetToUtf16;\n if (this.utf8Length < 1e4 && !_OnigString._sharedPtrInUse) {\n if (!_OnigString._sharedPtr)\n _OnigString._sharedPtr = onigBinding.omalloc(1e4);\n _OnigString._sharedPtrInUse = true;\n onigBinding.HEAPU8.set(utfString.utf8Value, _OnigString._sharedPtr);\n this.ptr = _OnigString._sharedPtr;\n } else {\n this.ptr = utfString.createString(onigBinding);\n }\n }\n convertUtf8OffsetToUtf16(utf8Offset) {\n if (this.utf8OffsetToUtf16) {\n if (utf8Offset < 0)\n return 0;\n if (utf8Offset > this.utf8Length)\n return this.utf16Length;\n return this.utf8OffsetToUtf16[utf8Offset];\n }\n return utf8Offset;\n }\n convertUtf16OffsetToUtf8(utf16Offset) {\n if (this.utf16OffsetToUtf8) {\n if (utf16Offset < 0)\n return 0;\n if (utf16Offset > this.utf16Length)\n return this.utf8Length;\n return this.utf16OffsetToUtf8[utf16Offset];\n }\n return utf16Offset;\n }\n dispose() {\n if (this.ptr === _OnigString._sharedPtr)\n _OnigString._sharedPtrInUse = false;\n else\n this._onigBinding.ofree(this.ptr);\n }\n};\n__publicField(_OnigString, \"LAST_ID\", 0);\n__publicField(_OnigString, \"_sharedPtr\", 0);\n// a pointer to a string of 10000 bytes\n__publicField(_OnigString, \"_sharedPtrInUse\", false);\nlet OnigString = _OnigString;\nclass OnigScanner {\n constructor(patterns) {\n __publicField(this, \"_onigBinding\");\n __publicField(this, \"_ptr\");\n if (!onigBinding)\n throw new ShikiError(\"Must invoke loadWasm first.\");\n const strPtrsArr = [];\n const strLenArr = [];\n for (let i = 0, len = patterns.length; i < len; i++) {\n const utfString = new UtfString(patterns[i]);\n strPtrsArr[i] = utfString.createString(onigBinding);\n strLenArr[i] = utfString.utf8Length;\n }\n const strPtrsPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strPtrsArr, strPtrsPtr / 4);\n const strLenPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strLenArr, strLenPtr / 4);\n const scannerPtr = onigBinding.createOnigScanner(strPtrsPtr, strLenPtr, patterns.length);\n for (let i = 0, len = patterns.length; i < len; i++)\n onigBinding.ofree(strPtrsArr[i]);\n onigBinding.ofree(strLenPtr);\n onigBinding.ofree(strPtrsPtr);\n if (scannerPtr === 0)\n throwLastOnigError(onigBinding);\n this._onigBinding = onigBinding;\n this._ptr = scannerPtr;\n }\n dispose() {\n this._onigBinding.freeOnigScanner(this._ptr);\n }\n findNextMatchSync(string, startPosition, arg) {\n let options = 0 /* None */;\n if (typeof arg === \"number\") {\n options = arg;\n }\n if (typeof string === \"string\") {\n string = new OnigString(string);\n const result = this._findNextMatchSync(string, startPosition, false, options);\n string.dispose();\n return result;\n }\n return this._findNextMatchSync(string, startPosition, false, options);\n }\n _findNextMatchSync(string, startPosition, debugCall, options) {\n const onigBinding2 = this._onigBinding;\n const resultPtr = onigBinding2.findNextOnigScannerMatch(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n if (resultPtr === 0) {\n return null;\n }\n const HEAPU32 = onigBinding2.HEAPU32;\n let offset = resultPtr / 4;\n const index = HEAPU32[offset++];\n const count = HEAPU32[offset++];\n const captureIndices = [];\n for (let i = 0; i < count; i++) {\n const beg = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n const end = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n captureIndices[i] = {\n start: beg,\n end,\n length: end - beg\n };\n }\n return {\n index,\n captureIndices\n };\n }\n}\nfunction isInstantiatorOptionsObject(dataOrOptions) {\n return typeof dataOrOptions.instantiator === \"function\";\n}\nfunction isInstantiatorModule(dataOrOptions) {\n return typeof dataOrOptions.default === \"function\";\n}\nfunction isDataOptionsObject(dataOrOptions) {\n return typeof dataOrOptions.data !== \"undefined\";\n}\nfunction isResponse(dataOrOptions) {\n return typeof Response !== \"undefined\" && dataOrOptions instanceof Response;\n}\nfunction isArrayBuffer(data) {\n return typeof ArrayBuffer !== \"undefined\" && (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) || typeof Buffer !== \"undefined\" && Buffer.isBuffer?.(data) || typeof SharedArrayBuffer !== \"undefined\" && data instanceof SharedArrayBuffer || typeof Uint32Array !== \"undefined\" && data instanceof Uint32Array;\n}\nlet initPromise;\nfunction loadWasm(options) {\n if (initPromise)\n return initPromise;\n async function _load() {\n onigBinding = await main(async (info) => {\n let instance = options;\n instance = await instance;\n if (typeof instance === \"function\")\n instance = await instance(info);\n if (typeof instance === \"function\")\n instance = await instance(info);\n if (isInstantiatorOptionsObject(instance)) {\n instance = await instance.instantiator(info);\n } else if (isInstantiatorModule(instance)) {\n instance = await instance.default(info);\n } else {\n if (isDataOptionsObject(instance))\n instance = instance.data;\n if (isResponse(instance)) {\n if (typeof WebAssembly.instantiateStreaming === \"function\")\n instance = await _makeResponseStreamingLoader(instance)(info);\n else\n instance = await _makeResponseNonStreamingLoader(instance)(info);\n } else if (isArrayBuffer(instance)) {\n instance = await _makeArrayBufferLoader(instance)(info);\n } else if (instance instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance)(info);\n } else if (\"default\" in instance && instance.default instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance.default)(info);\n }\n }\n if (\"instance\" in instance)\n instance = instance.instance;\n if (\"exports\" in instance)\n instance = instance.exports;\n return instance;\n });\n }\n initPromise = _load();\n return initPromise;\n}\nfunction _makeArrayBufferLoader(data) {\n return (importObject) => WebAssembly.instantiate(data, importObject);\n}\nfunction _makeResponseStreamingLoader(data) {\n return (importObject) => WebAssembly.instantiateStreaming(data, importObject);\n}\nfunction _makeResponseNonStreamingLoader(data) {\n return async (importObject) => {\n const arrayBuffer = await data.arrayBuffer();\n return WebAssembly.instantiate(arrayBuffer, importObject);\n };\n}\n\nlet _defaultWasmLoader;\nfunction setDefaultWasmLoader(_loader) {\n _defaultWasmLoader = _loader;\n}\nfunction getDefaultWasmLoader() {\n return _defaultWasmLoader;\n}\nasync function createOnigurumaEngine(options) {\n if (options)\n await loadWasm(options);\n return {\n createScanner(patterns) {\n return new OnigScanner(patterns.map((p) => typeof p === \"string\" ? p : p.source));\n },\n createString(s) {\n return new OnigString(s);\n }\n };\n}\n\nexport { createOnigurumaEngine, getDefaultWasmLoader, loadWasm, setDefaultWasmLoader };\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","/* Theme: dark-plus */\nexport default Object.freeze(JSON.parse(\"{\\\"colors\\\":{\\\"actionBar.toggledBackground\\\":\\\"#383a49\\\",\\\"activityBarBadge.background\\\":\\\"#007ACC\\\",\\\"checkbox.border\\\":\\\"#6B6B6B\\\",\\\"editor.background\\\":\\\"#1E1E1E\\\",\\\"editor.foreground\\\":\\\"#D4D4D4\\\",\\\"editor.inactiveSelectionBackground\\\":\\\"#3A3D41\\\",\\\"editor.selectionHighlightBackground\\\":\\\"#ADD6FF26\\\",\\\"editorIndentGuide.activeBackground1\\\":\\\"#707070\\\",\\\"editorIndentGuide.background1\\\":\\\"#404040\\\",\\\"input.placeholderForeground\\\":\\\"#A6A6A6\\\",\\\"list.activeSelectionIconForeground\\\":\\\"#FFF\\\",\\\"list.dropBackground\\\":\\\"#383B3D\\\",\\\"menu.background\\\":\\\"#252526\\\",\\\"menu.border\\\":\\\"#454545\\\",\\\"menu.foreground\\\":\\\"#CCCCCC\\\",\\\"menu.selectionBackground\\\":\\\"#0078d4\\\",\\\"menu.separatorBackground\\\":\\\"#454545\\\",\\\"ports.iconRunningProcessForeground\\\":\\\"#369432\\\",\\\"sideBarSectionHeader.background\\\":\\\"#0000\\\",\\\"sideBarSectionHeader.border\\\":\\\"#ccc3\\\",\\\"sideBarTitle.foreground\\\":\\\"#BBBBBB\\\",\\\"statusBarItem.remoteBackground\\\":\\\"#16825D\\\",\\\"statusBarItem.remoteForeground\\\":\\\"#FFF\\\",\\\"tab.lastPinnedBorder\\\":\\\"#ccc3\\\",\\\"tab.selectedBackground\\\":\\\"#222222\\\",\\\"tab.selectedForeground\\\":\\\"#ffffffa0\\\",\\\"terminal.inactiveSelectionBackground\\\":\\\"#3A3D41\\\",\\\"widget.border\\\":\\\"#303031\\\"},\\\"displayName\\\":\\\"Dark Plus\\\",\\\"name\\\":\\\"dark-plus\\\",\\\"semanticHighlighting\\\":true,\\\"semanticTokenColors\\\":{\\\"customLiteral\\\":\\\"#DCDCAA\\\",\\\"newOperator\\\":\\\"#C586C0\\\",\\\"numberLiteral\\\":\\\"#b5cea8\\\",\\\"stringLiteral\\\":\\\"#ce9178\\\"},\\\"tokenColors\\\":[{\\\"scope\\\":[\\\"meta.embedded\\\",\\\"source.groovy.embedded\\\",\\\"string meta.image.inline.markdown\\\",\\\"variable.legacy.builtin.python\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#D4D4D4\\\"}},{\\\"scope\\\":\\\"emphasis\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"italic\\\"}},{\\\"scope\\\":\\\"strong\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"bold\\\"}},{\\\"scope\\\":\\\"header\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#000080\\\"}},{\\\"scope\\\":\\\"comment\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#6A9955\\\"}},{\\\"scope\\\":\\\"constant.language\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":[\\\"constant.numeric\\\",\\\"variable.other.enummember\\\",\\\"keyword.operator.plus.exponent\\\",\\\"keyword.operator.minus.exponent\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"}},{\\\"scope\\\":\\\"constant.regexp\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#646695\\\"}},{\\\"scope\\\":\\\"entity.name.tag\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":[\\\"entity.name.tag.css\\\",\\\"entity.name.tag.less\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#d7ba7d\\\"}},{\\\"scope\\\":\\\"entity.other.attribute-name\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#9cdcfe\\\"}},{\\\"scope\\\":[\\\"entity.other.attribute-name.class.css\\\",\\\"source.css entity.other.attribute-name.class\\\",\\\"entity.other.attribute-name.id.css\\\",\\\"entity.other.attribute-name.parent-selector.css\\\",\\\"entity.other.attribute-name.parent.less\\\",\\\"source.css entity.other.attribute-name.pseudo-class\\\",\\\"entity.other.attribute-name.pseudo-element.css\\\",\\\"source.css.less entity.other.attribute-name.id\\\",\\\"entity.other.attribute-name.scss\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#d7ba7d\\\"}},{\\\"scope\\\":\\\"invalid\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#f44747\\\"}},{\\\"scope\\\":\\\"markup.underline\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"underline\\\"}},{\\\"scope\\\":\\\"markup.bold\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"bold\\\",\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":\\\"markup.heading\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"bold\\\",\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":\\\"markup.italic\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"italic\\\"}},{\\\"scope\\\":\\\"markup.strikethrough\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"strikethrough\\\"}},{\\\"scope\\\":\\\"markup.inserted\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"}},{\\\"scope\\\":\\\"markup.deleted\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"}},{\\\"scope\\\":\\\"markup.changed\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":\\\"punctuation.definition.quote.begin.markdown\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#6A9955\\\"}},{\\\"scope\\\":\\\"punctuation.definition.list.begin.markdown\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#6796e6\\\"}},{\\\"scope\\\":\\\"markup.inline.raw\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"}},{\\\"scope\\\":\\\"punctuation.definition.tag\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#808080\\\"}},{\\\"scope\\\":[\\\"meta.preprocessor\\\",\\\"entity.name.function.preprocessor\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":\\\"meta.preprocessor.string\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"}},{\\\"scope\\\":\\\"meta.preprocessor.numeric\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"}},{\\\"scope\\\":\\\"meta.structure.dictionary.key.python\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#9cdcfe\\\"}},{\\\"scope\\\":\\\"meta.diff.header\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":\\\"storage\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":\\\"storage.type\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":[\\\"storage.modifier\\\",\\\"keyword.operator.noexcept\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":[\\\"string\\\",\\\"meta.embedded.assembly\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"}},{\\\"scope\\\":\\\"string.tag\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"}},{\\\"scope\\\":\\\"string.value\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#ce9178\\\"}},{\\\"scope\\\":\\\"string.regexp\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#d16969\\\"}},{\\\"scope\\\":[\\\"punctuation.definition.template-expression.begin\\\",\\\"punctuation.definition.template-expression.end\\\",\\\"punctuation.section.embedded\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":[\\\"meta.template.expression\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#d4d4d4\\\"}},{\\\"scope\\\":[\\\"support.type.vendored.property-name\\\",\\\"support.type.property-name\\\",\\\"source.css variable\\\",\\\"source.coffee.embedded\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#9cdcfe\\\"}},{\\\"scope\\\":\\\"keyword\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":\\\"keyword.control\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":\\\"keyword.operator\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#d4d4d4\\\"}},{\\\"scope\\\":[\\\"keyword.operator.new\\\",\\\"keyword.operator.expression\\\",\\\"keyword.operator.cast\\\",\\\"keyword.operator.sizeof\\\",\\\"keyword.operator.alignof\\\",\\\"keyword.operator.typeid\\\",\\\"keyword.operator.alignas\\\",\\\"keyword.operator.instanceof\\\",\\\"keyword.operator.logical.python\\\",\\\"keyword.operator.wordlike\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":\\\"keyword.other.unit\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"}},{\\\"scope\\\":[\\\"punctuation.section.embedded.begin.php\\\",\\\"punctuation.section.embedded.end.php\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":\\\"support.function.git-rebase\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#9cdcfe\\\"}},{\\\"scope\\\":\\\"constant.sha.git-rebase\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#b5cea8\\\"}},{\\\"scope\\\":[\\\"storage.modifier.import.java\\\",\\\"variable.language.wildcard.java\\\",\\\"storage.modifier.package.java\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#d4d4d4\\\"}},{\\\"scope\\\":\\\"variable.language\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":[\\\"entity.name.function\\\",\\\"support.function\\\",\\\"support.constant.handlebars\\\",\\\"source.powershell variable.other.member\\\",\\\"entity.name.operator.custom-literal\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#DCDCAA\\\"}},{\\\"scope\\\":[\\\"support.class\\\",\\\"support.type\\\",\\\"entity.name.type\\\",\\\"entity.name.namespace\\\",\\\"entity.other.attribute\\\",\\\"entity.name.scope-resolution\\\",\\\"entity.name.class\\\",\\\"storage.type.numeric.go\\\",\\\"storage.type.byte.go\\\",\\\"storage.type.boolean.go\\\",\\\"storage.type.string.go\\\",\\\"storage.type.uintptr.go\\\",\\\"storage.type.error.go\\\",\\\"storage.type.rune.go\\\",\\\"storage.type.cs\\\",\\\"storage.type.generic.cs\\\",\\\"storage.type.modifier.cs\\\",\\\"storage.type.variable.cs\\\",\\\"storage.type.annotation.java\\\",\\\"storage.type.generic.java\\\",\\\"storage.type.java\\\",\\\"storage.type.object.array.java\\\",\\\"storage.type.primitive.array.java\\\",\\\"storage.type.primitive.java\\\",\\\"storage.type.token.java\\\",\\\"storage.type.groovy\\\",\\\"storage.type.annotation.groovy\\\",\\\"storage.type.parameters.groovy\\\",\\\"storage.type.generic.groovy\\\",\\\"storage.type.object.array.groovy\\\",\\\"storage.type.primitive.array.groovy\\\",\\\"storage.type.primitive.groovy\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#4EC9B0\\\"}},{\\\"scope\\\":[\\\"meta.type.cast.expr\\\",\\\"meta.type.new.expr\\\",\\\"support.constant.math\\\",\\\"support.constant.dom\\\",\\\"support.constant.json\\\",\\\"entity.other.inherited-class\\\",\\\"punctuation.separator.namespace.ruby\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#4EC9B0\\\"}},{\\\"scope\\\":[\\\"keyword.control\\\",\\\"source.cpp keyword.operator.new\\\",\\\"keyword.operator.delete\\\",\\\"keyword.other.using\\\",\\\"keyword.other.directive.using\\\",\\\"keyword.other.operator\\\",\\\"entity.name.operator\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#C586C0\\\"}},{\\\"scope\\\":[\\\"variable\\\",\\\"meta.definition.variable.name\\\",\\\"support.variable\\\",\\\"entity.name.variable\\\",\\\"constant.other.placeholder\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#9CDCFE\\\"}},{\\\"scope\\\":[\\\"variable.other.constant\\\",\\\"variable.other.enummember\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#4FC1FF\\\"}},{\\\"scope\\\":[\\\"meta.object-literal.key\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#9CDCFE\\\"}},{\\\"scope\\\":[\\\"support.constant.property-value\\\",\\\"support.constant.font-name\\\",\\\"support.constant.media-type\\\",\\\"support.constant.media\\\",\\\"constant.other.color.rgb-value\\\",\\\"constant.other.rgb-value\\\",\\\"support.constant.color\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#CE9178\\\"}},{\\\"scope\\\":[\\\"punctuation.definition.group.regexp\\\",\\\"punctuation.definition.group.assertion.regexp\\\",\\\"punctuation.definition.character-class.regexp\\\",\\\"punctuation.character.set.begin.regexp\\\",\\\"punctuation.character.set.end.regexp\\\",\\\"keyword.operator.negation.regexp\\\",\\\"support.other.parenthesis.regexp\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#CE9178\\\"}},{\\\"scope\\\":[\\\"constant.character.character-class.regexp\\\",\\\"constant.other.character-class.set.regexp\\\",\\\"constant.other.character-class.regexp\\\",\\\"constant.character.set.regexp\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#d16969\\\"}},{\\\"scope\\\":[\\\"keyword.operator.or.regexp\\\",\\\"keyword.control.anchor.regexp\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#DCDCAA\\\"}},{\\\"scope\\\":\\\"keyword.operator.quantifier.regexp\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#d7ba7d\\\"}},{\\\"scope\\\":[\\\"constant.character\\\",\\\"constant.other.option\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#569cd6\\\"}},{\\\"scope\\\":\\\"constant.character.escape\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#d7ba7d\\\"}},{\\\"scope\\\":\\\"entity.name.label\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#C8C8C8\\\"}}],\\\"type\\\":\\\"dark\\\"}\"))\n","/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n * Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @returns {boolean}\n * Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? contReJsx : contRe\n return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n * Identifier to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? nameReJsx : nameRe\n return re.test(name)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n})\n","import {\n boolean,\n number,\n spaceSeparated,\n commaSeparated,\n commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport const svg = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\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 crossOrigin: 'crossorigin',\n dataType: 'datatype',\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 glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\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 navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\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 tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport const html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport const svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\nimport {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nconst valid = /^data[-\\w.:]+$/i\nconst dash = /-[a-z]/g\nconst cap = /[A-Z]/g\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let prop = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * `hast` is close to `React`, but differs in a couple of cases.\n *\n * To get a React property from a hast property, check if it is in\n * `hastToReact`, if it is, then use the corresponding value,\n * otherwise, use the hast property.\n *\n * @type {Record<string, string>}\n */\nexport const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","import StyleToObject from '../cjs/index.js';\n\n// ensure compatibility with rollup umd build\nexport default StyleToObject.default || StyleToObject;\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'end' | 'start'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * @returns {Point | undefined}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n if (\n typeof point.line === 'number' &&\n point.line > 0 &&\n typeof point.column === 'number' &&\n point.column > 0\n ) {\n return {\n line: point.line,\n column: point.column,\n offset:\n typeof point.offset === 'number' && point.offset > -1\n ? point.offset\n : undefined\n }\n }\n }\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * Node.\n * @returns {Position | undefined}\n * Position.\n */\nexport function position(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n if (start && end) {\n return {start, end}\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef Options\n * Configuration.\n * @property {Array<Node> | null | undefined} [ancestors]\n * Stack of (inclusive) ancestor nodes surrounding the message (optional).\n * @property {Error | null | undefined} [cause]\n * Original error cause of the message (optional).\n * @property {Point | Position | null | undefined} [place]\n * Place of message (optional).\n * @property {string | null | undefined} [ruleId]\n * Category of message (optional, example: `'my-rule'`).\n * @property {string | null | undefined} [source]\n * Namespace of who sent the message (optional, example: `'my-package'`).\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {Options | null | undefined} [options]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // eslint-disable-next-line complexity\n constructor(causeOrReason, optionsOrParentOrPlace, origin) {\n super()\n\n if (typeof optionsOrParentOrPlace === 'string') {\n origin = optionsOrParentOrPlace\n optionsOrParentOrPlace = undefined\n }\n\n /** @type {string} */\n let reason = ''\n /** @type {Options} */\n let options = {}\n let legacyCause = false\n\n if (optionsOrParentOrPlace) {\n // Point.\n if (\n 'line' in optionsOrParentOrPlace &&\n 'column' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Position.\n else if (\n 'start' in optionsOrParentOrPlace &&\n 'end' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Node.\n else if ('type' in optionsOrParentOrPlace) {\n options = {\n ancestors: [optionsOrParentOrPlace],\n place: optionsOrParentOrPlace.position\n }\n }\n // Options.\n else {\n options = {...optionsOrParentOrPlace}\n }\n }\n\n if (typeof causeOrReason === 'string') {\n reason = causeOrReason\n }\n // Error.\n else if (!options.cause && causeOrReason) {\n legacyCause = true\n reason = causeOrReason.message\n options.cause = causeOrReason\n }\n\n if (!options.ruleId && !options.source && typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n options.ruleId = origin\n } else {\n options.source = origin.slice(0, index)\n options.ruleId = origin.slice(index + 1)\n }\n }\n\n if (!options.place && options.ancestors && options.ancestors) {\n const parent = options.ancestors[options.ancestors.length - 1]\n\n if (parent) {\n options.place = parent.position\n }\n }\n\n const start =\n options.place && 'start' in options.place\n ? options.place.start\n : options.place\n\n /* eslint-disable no-unused-expressions */\n /**\n * Stack of ancestor nodes surrounding the message.\n *\n * @type {Array<Node> | undefined}\n */\n this.ancestors = options.ancestors || undefined\n\n /**\n * Original error cause of the message.\n *\n * @type {Error | undefined}\n */\n this.cause = options.cause || undefined\n\n /**\n * Starting column of message.\n *\n * @type {number | undefined}\n */\n this.column = start ? start.column : undefined\n\n /**\n * State of problem.\n *\n * * `true` — error, file not usable\n * * `false` — warning, change may be needed\n * * `undefined` — change likely not needed\n *\n * @type {boolean | null | undefined}\n */\n this.fatal = undefined\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | undefined}\n */\n this.file\n\n // Field from `Error`.\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = reason\n\n /**\n * Starting line of error.\n *\n * @type {number | undefined}\n */\n this.line = start ? start.line : undefined\n\n // Field from `Error`.\n /**\n * Serialized positional info of message.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(options.place) || '1:1'\n\n /**\n * Place of message.\n *\n * @type {Point | Position | undefined}\n */\n this.place = options.place || undefined\n\n /**\n * Reason for message, should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | undefined}\n */\n this.ruleId = options.ruleId || undefined\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | undefined}\n */\n this.source = options.source || undefined\n\n // Field from `Error`.\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack =\n legacyCause && options.cause && typeof options.cause.stack === 'string'\n ? options.cause.stack\n : ''\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | undefined}\n */\n this.actual\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | undefined}\n */\n this.expected\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | undefined}\n */\n this.note\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | undefined}\n */\n this.url\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.column = undefined\nVFileMessage.prototype.line = undefined\nVFileMessage.prototype.ancestors = undefined\nVFileMessage.prototype.cause = undefined\nVFileMessage.prototype.fatal = undefined\nVFileMessage.prototype.place = undefined\nVFileMessage.prototype.ruleId = undefined\nVFileMessage.prototype.source = undefined\n","// Register MDX nodes in mdast:\n/// <reference types=\"mdast-util-mdx-expression\" />\n/// <reference types=\"mdast-util-mdx-jsx\" />\n/// <reference types=\"mdast-util-mdxjs-esm\" />\n\n/**\n * @typedef {import('estree').Identifier} Identifier\n * @typedef {import('estree').Literal} Literal\n * @typedef {import('estree').MemberExpression} MemberExpression\n * @typedef {import('estree').Expression} Expression\n * @typedef {import('estree').Program} Program\n *\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('mdast-util-mdx-expression').MdxFlowExpressionHast} MdxFlowExpression\n * @typedef {import('mdast-util-mdx-expression').MdxTextExpressionHast} MdxTextExpression\n *\n * @typedef {import('mdast-util-mdx-jsx').MdxJsxFlowElementHast} MdxJsxFlowElement\n * @typedef {import('mdast-util-mdx-jsx').MdxJsxTextElementHast} MdxJsxTextElement\n *\n * @typedef {import('mdast-util-mdxjs-esm').MdxjsEsmHast} MdxjsEsm\n *\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {import('unist').Position} Position\n *\n * @typedef {import('./components.js').Components} Components\n */\n\n/**\n * @typedef {JSX.Element | string | null | undefined} Child\n * Child.\n *\n * @callback Create\n * Create something in development or production.\n * @param {Nodes} node\n * hast node.\n * @param {unknown} type\n * Fragment symbol or tag name.\n * @param {Props} props\n * Properties and children.\n * @param {string | undefined} key\n * Key.\n * @returns {JSX.Element}\n * Result.\n *\n * @callback CreateEvaluater\n * Create an evaluator that turns ESTree ASTs from embedded MDX into values.\n * @returns {Evaluater}\n * Evaluater.\n *\n * @typedef {'html' | 'react'} ElementAttributeNameCase\n * Casing to use for attribute names.\n *\n * HTML casing is for example `class`, `stroke-linecap`, `xml:lang`.\n * React casing is for example `className`, `strokeLinecap`, `xmlLang`.\n *\n * @callback EvaluateExpression\n * Turn an MDX expression into a value.\n * @param {Expression} expression\n * ESTree expression.\n * @returns {unknown}\n * Result of expression.\n *\n * @callback EvaluateProgram\n * Turn an MDX program (export/import statements) into a value.\n * @param {Program} expression\n * ESTree program.\n * @returns {unknown}\n * Result of program;\n * should likely be `undefined` as ESM changes the scope but doesn’t yield\n * something.\n *\n * @typedef Evaluater\n * Evaluator that turns ESTree ASTs from embedded MDX into values.\n * @property {EvaluateExpression} evaluateExpression\n * Evaluate an expression.\n * @property {EvaluateProgram} evaluateProgram\n * Evaluate a program.\n *\n * @typedef {[string, Value]} Field\n * Property field.\n *\n * @typedef {unknown} Fragment\n * Represent the children, typically a symbol.\n *\n * @callback Jsx\n * Create a production element.\n * @param {unknown} type\n * Element type: `Fragment` symbol, tag name (`string`), component.\n * @param {Props} props\n * Element props, `children`, and maybe `node`.\n * @param {string | undefined} [key]\n * Dynamicly generated key to use.\n * @returns {JSX.Element}\n * Element from your framework.\n *\n * @callback JsxDev\n * Create a development element.\n * @param {unknown} type\n * Element type: `Fragment` symbol, tag name (`string`), component.\n * @param {Props} props\n * Element props, `children`, and maybe `node`.\n * @param {string | undefined} key\n * Dynamicly generated key to use.\n * @param {boolean} isStaticChildren\n * Whether two or more children are passed (in an array), which is whether\n * `jsxs` or `jsx` would be used.\n * @param {Source} source\n * Info about source.\n * @param {undefined} self\n * Nothing (this is used by frameworks that have components, we don’t).\n * @returns {JSX.Element}\n * Element from your framework.\n *\n * @typedef {{children?: Array<Child> | Child, node?: Element | MdxJsxFlowElement | MdxJsxTextElement | undefined, [prop: string]: Array<Child> | Child | Element | MdxJsxFlowElement | MdxJsxTextElement | Value | undefined}} Props\n * Properties and children.\n *\n * @typedef RegularFields\n * Configuration.\n * @property {Partial<Components> | null | undefined} [components]\n * Components to use (optional).\n * @property {CreateEvaluater | null | undefined} [createEvaluater]\n * Create an evaluator that turns ESTree ASTs into values (optional).\n * @property {ElementAttributeNameCase | null | undefined} [elementAttributeNameCase='react']\n * Specify casing to use for attribute names (default: `'react'`).\n * @property {string | null | undefined} [filePath]\n * File path to the original source file (optional).\n *\n * Passed in source info to `jsxDEV` when using the automatic runtime with\n * `development: true`.\n * @property {boolean | null | undefined} [ignoreInvalidStyle=false]\n * Ignore invalid CSS in `style` props (default: `false`);\n * the default behavior is to throw an error.\n * @property {boolean | null | undefined} [passKeys=true]\n * Generate keys to optimize frameworks that support them (default: `true`).\n *\n * > 👉 **Note**: Solid currently fails if keys are passed.\n * @property {boolean | null | undefined} [passNode=false]\n * Pass the hast element node to components (default: `false`).\n * @property {Space | null | undefined} [space='html']\n * Whether `tree` is in the `'html'` or `'svg'` space (default: `'html'`).\n *\n * When an `<svg>` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n * @property {StylePropertyNameCase | null | undefined} [stylePropertyNameCase='dom']\n * Specify casing to use for property names in `style` objects (default:\n * `'dom'`).\n * @property {boolean | null | undefined} [tableCellAlignToStyle=true]\n * Turn obsolete `align` props on `td` and `th` into CSS `style` props\n * (default: `true`).\n *\n * @typedef RuntimeDevelopment\n * Runtime fields when development is on.\n * @property {Fragment} Fragment\n * Fragment.\n * @property {true} development\n * Whether to use `jsxDEV` (when on) or `jsx` and `jsxs` (when off).\n * @property {Jsx | null | undefined} [jsx]\n * Dynamic JSX (optional).\n * @property {JsxDev} jsxDEV\n * Development JSX.\n * @property {Jsx | null | undefined} [jsxs]\n * Static JSX (optional).\n *\n * @typedef RuntimeProduction\n * Runtime fields when development is off.\n * @property {Fragment} Fragment\n * Fragment.\n * @property {false | null | undefined} [development]\n * Whether to use `jsxDEV` (when on) or `jsx` and `jsxs` (when off) (optional).\n * @property {Jsx} jsx\n * Dynamic JSX.\n * @property {JsxDev | null | undefined} [jsxDEV]\n * Development JSX (optional).\n * @property {Jsx} jsxs\n * Static JSX.\n *\n * @typedef RuntimeUnknown\n * Runtime fields when development might be on or off.\n * @property {Fragment} Fragment\n * Fragment.\n * @property {boolean} development\n * Whether to use `jsxDEV` (when on) or `jsx` and `jsxs` (when off).\n * @property {Jsx | null | undefined} [jsx]\n * Dynamic JSX (optional).\n * @property {JsxDev | null | undefined} [jsxDEV]\n * Development JSX (optional).\n * @property {Jsx | null | undefined} [jsxs]\n * Static JSX (optional).\n *\n * @typedef Source\n * Info about source.\n * @property {number | undefined} columnNumber\n * Column where thing starts (0-indexed).\n * @property {string | undefined} fileName\n * Name of source file.\n * @property {number | undefined} lineNumber\n * Line where thing starts (1-indexed).\n *\n * @typedef {'html' | 'svg'} Space\n * Namespace.\n *\n * > 👉 **Note**: hast is not XML.\n * > It supports SVG as embedded in HTML.\n * > It does not support the features available in XML.\n * > Passing SVG might break but fragments of modern SVG should be fine.\n * > Use `xast` if you need to support SVG as XML.\n *\n * @typedef State\n * Info passed around.\n * @property {unknown} Fragment\n * Fragment symbol.\n * @property {Array<Parents>} ancestors\n * Stack of parents.\n * @property {Partial<Components>} components\n * Components to swap.\n * @property {Create} create\n * Create something in development or production.\n * @property {ElementAttributeNameCase} elementAttributeNameCase\n * Casing to use for attribute names.\n * @property {Evaluater | undefined} evaluater\n * Evaluator that turns ESTree ASTs into values.\n * @property {string | undefined} filePath\n * File path.\n * @property {boolean} ignoreInvalidStyle\n * Ignore invalid CSS in `style` props.\n * @property {boolean} passKeys\n * Generate keys to optimize frameworks that support them.\n * @property {boolean} passNode\n * Pass `node` to components.\n * @property {Schema} schema\n * Current schema.\n * @property {StylePropertyNameCase} stylePropertyNameCase\n * Casing to use for property names in `style` objects.\n * @property {boolean} tableCellAlignToStyle\n * Turn obsolete `align` props on `td` and `th` into CSS `style` props.\n *\n * @typedef {Record<string, string>} Style\n * Style map.\n *\n * @typedef {'css' | 'dom'} StylePropertyNameCase\n * Casing to use for property names in `style` objects.\n *\n * CSS casing is for example `background-color` and `-webkit-line-clamp`.\n * DOM casing is for example `backgroundColor` and `WebkitLineClamp`.\n *\n * @typedef {Style | boolean | number | string} Value\n * Primitive property value and `Style` map.\n */\n\n/**\n * @typedef {RuntimeDevelopment & RegularFields} Development\n * Configuration (development).\n * @typedef {Development | Production | Unknown} Options\n * Configuration.\n * @typedef {RegularFields & RuntimeProduction} Production\n * Configuration (production).\n * @typedef {RegularFields & RuntimeUnknown} Unknown\n * Configuration (production or development).\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {name as isIdentifierName} from 'estree-util-is-identifier-name'\nimport {whitespace} from 'hast-util-whitespace'\nimport {find, hastToReact, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport styleToObject from 'style-to-object'\nimport {pointStart} from 'unist-util-position'\nimport {VFileMessage} from 'vfile-message'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Map<string, number>} */\nconst emptyMap = new Map()\n\nconst cap = /[A-Z]/g\nconst dashSomething = /-([a-z])/g\n\n// `react-dom` triggers a warning for *any* white space in tables.\n// To follow GFM, `mdast-util-to-hast` injects line endings between elements.\n// Other tools might do so too, but they don’t do here, so we remove all of\n// that.\n\n// See: <https://github.com/facebook/react/pull/7081>.\n// See: <https://github.com/facebook/react/pull/7515>.\n// See: <https://github.com/remarkjs/remark-react/issues/64>.\n// See: <https://github.com/rehypejs/rehype-react/pull/29>.\n// See: <https://github.com/rehypejs/rehype-react/pull/32>.\n// See: <https://github.com/rehypejs/rehype-react/pull/45>.\nconst tableElements = new Set(['table', 'tbody', 'thead', 'tfoot', 'tr'])\n\nconst tableCellElement = new Set(['td', 'th'])\n\nconst docs = 'https://github.com/syntax-tree/hast-util-to-jsx-runtime'\n\n/**\n * Transform a hast tree to preact, react, solid, svelte, vue, etc.,\n * with an automatic JSX runtime.\n *\n * @param {Nodes} tree\n * Tree to transform.\n * @param {Options} options\n * Configuration (required).\n * @returns {JSX.Element}\n * JSX element.\n */\n\nexport function toJsxRuntime(tree, options) {\n if (!options || options.Fragment === undefined) {\n throw new TypeError('Expected `Fragment` in options')\n }\n\n const filePath = options.filePath || undefined\n /** @type {Create} */\n let create\n\n if (options.development) {\n if (typeof options.jsxDEV !== 'function') {\n throw new TypeError(\n 'Expected `jsxDEV` in options when `development: true`'\n )\n }\n\n create = developmentCreate(filePath, options.jsxDEV)\n } else {\n if (typeof options.jsx !== 'function') {\n throw new TypeError('Expected `jsx` in production options')\n }\n\n if (typeof options.jsxs !== 'function') {\n throw new TypeError('Expected `jsxs` in production options')\n }\n\n create = productionCreate(filePath, options.jsx, options.jsxs)\n }\n\n /** @type {State} */\n const state = {\n Fragment: options.Fragment,\n ancestors: [],\n components: options.components || {},\n create,\n elementAttributeNameCase: options.elementAttributeNameCase || 'react',\n evaluater: options.createEvaluater ? options.createEvaluater() : undefined,\n filePath,\n ignoreInvalidStyle: options.ignoreInvalidStyle || false,\n passKeys: options.passKeys !== false,\n passNode: options.passNode || false,\n schema: options.space === 'svg' ? svg : html,\n stylePropertyNameCase: options.stylePropertyNameCase || 'dom',\n tableCellAlignToStyle: options.tableCellAlignToStyle !== false\n }\n\n const result = one(state, tree, undefined)\n\n // JSX element.\n if (result && typeof result !== 'string') {\n return result\n }\n\n // Text node or something that turned into nothing.\n return state.create(\n tree,\n state.Fragment,\n {children: result || undefined},\n undefined\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around.\n * @param {Nodes} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction one(state, node, key) {\n if (node.type === 'element') {\n return element(state, node, key)\n }\n\n if (node.type === 'mdxFlowExpression' || node.type === 'mdxTextExpression') {\n return mdxExpression(state, node)\n }\n\n if (node.type === 'mdxJsxFlowElement' || node.type === 'mdxJsxTextElement') {\n return mdxJsxElement(state, node, key)\n }\n\n if (node.type === 'mdxjsEsm') {\n return mdxEsm(state, node)\n }\n\n if (node.type === 'root') {\n return root(state, node, key)\n }\n\n if (node.type === 'text') {\n return text(state, node)\n }\n}\n\n/**\n * Handle element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction element(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.tagName.toLowerCase() === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type = findComponentFromName(state, node.tagName, false)\n const props = createElementProps(state, node)\n let children = createChildren(state, node)\n\n if (tableElements.has(node.tagName)) {\n children = children.filter(function (child) {\n return typeof child === 'string' ? !whitespace(child) : true\n })\n }\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle MDX expression.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxFlowExpression | MdxTextExpression} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxExpression(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n const program = node.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateExpression(expression.expression)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX ESM.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxjsEsm} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxEsm(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateProgram(node.data.estree)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX JSX.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElement | MdxJsxTextElement} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxJsxElement(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.name === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type =\n node.name === null\n ? state.Fragment\n : findComponentFromName(state, node.name, true)\n const props = createJsxElementProps(state, node)\n const children = createChildren(state, node)\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle root.\n *\n * @param {State} state\n * Info passed around.\n * @param {Root} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction root(state, node, key) {\n /** @type {Props} */\n const props = {}\n\n addChildren(props, createChildren(state, node))\n\n return state.create(node, state.Fragment, props, key)\n}\n\n/**\n * Handle text.\n *\n * @param {State} _\n * Info passed around.\n * @param {Text} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction text(_, node) {\n return node.value\n}\n\n/**\n * Add `node` to props.\n *\n * @param {State} state\n * Info passed around.\n * @param {Props} props\n * Props.\n * @param {unknown} type\n * Type.\n * @param {Element | MdxJsxFlowElement | MdxJsxTextElement} node\n * Node.\n * @returns {undefined}\n * Nothing.\n */\nfunction addNode(state, props, type, node) {\n // If this is swapped out for a component:\n if (typeof type !== 'string' && type !== state.Fragment && state.passNode) {\n props.node = node\n }\n}\n\n/**\n * Add children to props.\n *\n * @param {Props} props\n * Props.\n * @param {Array<Child>} children\n * Children.\n * @returns {undefined}\n * Nothing.\n */\nfunction addChildren(props, children) {\n if (children.length > 0) {\n const value = children.length > 1 ? children : children[0]\n\n if (value) {\n props.children = value\n }\n }\n}\n\n/**\n * @param {string | undefined} _\n * Path to file.\n * @param {Jsx} jsx\n * Dynamic.\n * @param {Jsx} jsxs\n * Static.\n * @returns {Create}\n * Create a production element.\n */\nfunction productionCreate(_, jsx, jsxs) {\n return create\n /** @type {Create} */\n function create(_, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const fn = isStaticChildren ? jsxs : jsx\n return key ? fn(type, props, key) : fn(type, props)\n }\n}\n\n/**\n * @param {string | undefined} filePath\n * Path to file.\n * @param {JsxDev} jsxDEV\n * Development.\n * @returns {Create}\n * Create a development element.\n */\nfunction developmentCreate(filePath, jsxDEV) {\n return create\n /** @type {Create} */\n function create(node, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const point = pointStart(node)\n return jsxDEV(\n type,\n props,\n key,\n isStaticChildren,\n {\n columnNumber: point ? point.column - 1 : undefined,\n fileName: filePath,\n lineNumber: point ? point.line : undefined\n },\n undefined\n )\n }\n}\n\n/**\n * Create props from an element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current element.\n * @returns {Props}\n * Props.\n */\nfunction createElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n /** @type {string | undefined} */\n let alignValue\n /** @type {string} */\n let prop\n\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(state, prop, node.properties[prop])\n\n if (result) {\n const [key, value] = result\n\n if (\n state.tableCellAlignToStyle &&\n key === 'align' &&\n typeof value === 'string' &&\n tableCellElement.has(node.tagName)\n ) {\n alignValue = value\n } else {\n props[key] = value\n }\n }\n }\n }\n\n if (alignValue) {\n // Assume style is an object.\n const style = /** @type {Style} */ (props.style || (props.style = {}))\n style[state.stylePropertyNameCase === 'css' ? 'text-align' : 'textAlign'] =\n alignValue\n }\n\n return props\n}\n\n/**\n * Create props from a JSX element.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElement | MdxJsxTextElement} node\n * Current JSX element.\n * @returns {Props}\n * Props.\n */\nfunction createJsxElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n\n for (const attribute of node.attributes) {\n if (attribute.type === 'mdxJsxExpressionAttribute') {\n if (attribute.data && attribute.data.estree && state.evaluater) {\n const program = attribute.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n const objectExpression = expression.expression\n assert(objectExpression.type === 'ObjectExpression')\n const property = objectExpression.properties[0]\n assert(property.type === 'SpreadElement')\n\n Object.assign(\n props,\n state.evaluater.evaluateExpression(property.argument)\n )\n } else {\n crashEstree(state, node.position)\n }\n } else {\n // For JSX, the author is responsible of passing in the correct values.\n const name = attribute.name\n /** @type {unknown} */\n let value\n\n if (attribute.value && typeof attribute.value === 'object') {\n if (\n attribute.value.data &&\n attribute.value.data.estree &&\n state.evaluater\n ) {\n const program = attribute.value.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n value = state.evaluater.evaluateExpression(expression.expression)\n } else {\n crashEstree(state, node.position)\n }\n } else {\n value = attribute.value === null ? true : attribute.value\n }\n\n // Assume a prop.\n props[name] = /** @type {Props[keyof Props]} */ (value)\n }\n }\n\n return props\n}\n\n/**\n * Create children.\n *\n * @param {State} state\n * Info passed around.\n * @param {Parents} node\n * Current element.\n * @returns {Array<Child>}\n * Children.\n */\nfunction createChildren(state, node) {\n /** @type {Array<Child>} */\n const children = []\n let index = -1\n /** @type {Map<string, number>} */\n // Note: test this when Solid doesn’t want to merge my upcoming PR.\n /* c8 ignore next */\n const countsByName = state.passKeys ? new Map() : emptyMap\n\n while (++index < node.children.length) {\n const child = node.children[index]\n /** @type {string | undefined} */\n let key\n\n if (state.passKeys) {\n const name =\n child.type === 'element'\n ? child.tagName\n : child.type === 'mdxJsxFlowElement' ||\n child.type === 'mdxJsxTextElement'\n ? child.name\n : undefined\n\n if (name) {\n const count = countsByName.get(name) || 0\n key = name + '-' + count\n countsByName.set(name, count + 1)\n }\n }\n\n const result = one(state, child, key)\n if (result !== undefined) children.push(result)\n }\n\n return children\n}\n\n/**\n * Handle a property.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} prop\n * Key.\n * @param {Array<number | string> | boolean | number | string | null | undefined} value\n * hast property value.\n * @returns {Field | undefined}\n * Field for runtime, optional.\n */\nfunction createProperty(state, prop, value) {\n const info = find(state.schema, prop)\n\n // Ignore nullish and `NaN` values.\n if (\n value === null ||\n value === undefined ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n // React only accepts `style` as object.\n if (info.property === 'style') {\n let styleObject =\n typeof value === 'object' ? value : parseStyle(state, String(value))\n\n if (state.stylePropertyNameCase === 'css') {\n styleObject = transformStylesToCssCasing(styleObject)\n }\n\n return ['style', styleObject]\n }\n\n return [\n state.elementAttributeNameCase === 'react' && info.space\n ? hastToReact[info.property] || info.property\n : info.attribute,\n value\n ]\n}\n\n/**\n * Parse a CSS declaration to an object.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} value\n * CSS declarations.\n * @returns {Style}\n * Properties.\n * @throws\n * Throws `VFileMessage` when CSS cannot be parsed.\n */\nfunction parseStyle(state, value) {\n /** @type {Style} */\n const result = {}\n\n try {\n // @ts-expect-error: `style-to-object` types are broken.\n styleToObject(value, replacer)\n } catch (error) {\n if (!state.ignoreInvalidStyle) {\n const cause = /** @type {Error} */ (error)\n const message = new VFileMessage('Cannot parse `style` attribute', {\n ancestors: state.ancestors,\n cause,\n ruleId: 'style',\n source: 'hast-util-to-jsx-runtime'\n })\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-parse-style-attribute'\n\n throw message\n }\n }\n\n return result\n\n /**\n * Add a CSS property (normal, so with dashes) to `result` as a DOM CSS\n * property.\n *\n * @param {string} name\n * Key.\n * @param {string} value\n * Value\n * @returns {undefined}\n * Nothing.\n */\n function replacer(name, value) {\n let key = name\n\n if (key.slice(0, 2) !== '--') {\n if (key.slice(0, 4) === '-ms-') key = 'ms-' + key.slice(4)\n key = key.replace(dashSomething, toCamel)\n }\n\n result[key] = value\n }\n}\n\n/**\n * Create a JSX name from a string.\n *\n * @param {State} state\n * To do.\n * @param {string} name\n * Name.\n * @param {boolean} allowExpression\n * Allow member expressions and identifiers.\n * @returns {unknown}\n * To do.\n */\nfunction findComponentFromName(state, name, allowExpression) {\n /** @type {Identifier | Literal | MemberExpression} */\n let result\n\n if (!allowExpression) {\n result = {type: 'Literal', value: name}\n } else if (name.includes('.')) {\n const identifiers = name.split('.')\n let index = -1\n /** @type {Identifier | Literal | MemberExpression | undefined} */\n let node\n\n while (++index < identifiers.length) {\n /** @type {Identifier | Literal} */\n const prop = isIdentifierName(identifiers[index])\n ? {type: 'Identifier', name: identifiers[index]}\n : {type: 'Literal', value: identifiers[index]}\n node = node\n ? {\n type: 'MemberExpression',\n object: node,\n property: prop,\n computed: Boolean(index && prop.type === 'Literal'),\n optional: false\n }\n : prop\n }\n\n assert(node, 'always a result')\n result = node\n } else {\n result =\n isIdentifierName(name) && !/^[a-z]/.test(name)\n ? {type: 'Identifier', name}\n : {type: 'Literal', value: name}\n }\n\n // Only literals can be passed in `components` currently.\n // No identifiers / member expressions.\n if (result.type === 'Literal') {\n const name = /** @type {keyof JSX.IntrinsicElements} */ (result.value)\n\n return own.call(state.components, name) ? state.components[name] : name\n }\n\n // Assume component.\n if (state.evaluater) {\n return state.evaluater.evaluateExpression(result)\n }\n\n crashEstree(state)\n}\n\n/**\n * @param {State} state\n * @param {Position | undefined} [place]\n * @returns {never}\n */\nfunction crashEstree(state, place) {\n const message = new VFileMessage(\n 'Cannot handle MDX estrees without `createEvaluater`',\n {\n ancestors: state.ancestors,\n place,\n ruleId: 'mdx-estree',\n source: 'hast-util-to-jsx-runtime'\n }\n )\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-handle-mdx-estrees-without-createevaluater'\n\n throw message\n}\n\n/**\n * Transform a DOM casing style object to a CSS casing style object.\n *\n * @param {Style} domCasing\n * @returns {Style}\n */\nfunction transformStylesToCssCasing(domCasing) {\n /** @type {Style} */\n const cssCasing = {}\n /** @type {string} */\n let from\n\n for (from in domCasing) {\n if (own.call(domCasing, from)) {\n cssCasing[transformStyleToCssCasing(from)] = domCasing[from]\n }\n }\n\n return cssCasing\n}\n\n/**\n * Transform a DOM casing style field to a CSS casing style field.\n *\n * @param {string} from\n * @returns {string}\n */\nfunction transformStyleToCssCasing(from) {\n let to = from.replace(cap, toDash)\n // Handle `ms-xxx` -> `-ms-xxx`.\n if (to.slice(0, 3) === 'ms-') to = '-' + to\n return to\n}\n\n/**\n * Make `$1` capitalized.\n *\n * @param {string} _\n * Whatever.\n * @param {string} $1\n * Single ASCII alphabetical.\n * @returns {string}\n * Capitalized `$1`.\n */\nfunction toCamel(_, $1) {\n return $1.toUpperCase()\n}\n\n/**\n * Make `$0` dash cased.\n *\n * @param {string} $0\n * Capitalized ASCII leter.\n * @returns {string}\n * Dash and lower letter.\n */\nfunction toDash($0) {\n return '-' + $0.toLowerCase()\n}\n","/* Theme: light-plus */\nexport default Object.freeze(JSON.parse(\"{\\\"colors\\\":{\\\"actionBar.toggledBackground\\\":\\\"#dddddd\\\",\\\"activityBarBadge.background\\\":\\\"#007ACC\\\",\\\"checkbox.border\\\":\\\"#919191\\\",\\\"diffEditor.unchangedRegionBackground\\\":\\\"#f8f8f8\\\",\\\"editor.background\\\":\\\"#FFFFFF\\\",\\\"editor.foreground\\\":\\\"#000000\\\",\\\"editor.inactiveSelectionBackground\\\":\\\"#E5EBF1\\\",\\\"editor.selectionHighlightBackground\\\":\\\"#ADD6FF80\\\",\\\"editorIndentGuide.activeBackground1\\\":\\\"#939393\\\",\\\"editorIndentGuide.background1\\\":\\\"#D3D3D3\\\",\\\"editorSuggestWidget.background\\\":\\\"#F3F3F3\\\",\\\"input.placeholderForeground\\\":\\\"#767676\\\",\\\"list.activeSelectionIconForeground\\\":\\\"#FFF\\\",\\\"list.focusAndSelectionOutline\\\":\\\"#90C2F9\\\",\\\"list.hoverBackground\\\":\\\"#E8E8E8\\\",\\\"menu.border\\\":\\\"#D4D4D4\\\",\\\"notebook.cellBorderColor\\\":\\\"#E8E8E8\\\",\\\"notebook.selectedCellBackground\\\":\\\"#c8ddf150\\\",\\\"ports.iconRunningProcessForeground\\\":\\\"#369432\\\",\\\"searchEditor.textInputBorder\\\":\\\"#CECECE\\\",\\\"settings.numberInputBorder\\\":\\\"#CECECE\\\",\\\"settings.textInputBorder\\\":\\\"#CECECE\\\",\\\"sideBarSectionHeader.background\\\":\\\"#0000\\\",\\\"sideBarSectionHeader.border\\\":\\\"#61616130\\\",\\\"sideBarTitle.foreground\\\":\\\"#6F6F6F\\\",\\\"statusBarItem.errorBackground\\\":\\\"#c72e0f\\\",\\\"statusBarItem.remoteBackground\\\":\\\"#16825D\\\",\\\"statusBarItem.remoteForeground\\\":\\\"#FFF\\\",\\\"tab.lastPinnedBorder\\\":\\\"#61616130\\\",\\\"tab.selectedBackground\\\":\\\"#ffffffa5\\\",\\\"tab.selectedForeground\\\":\\\"#333333b3\\\",\\\"terminal.inactiveSelectionBackground\\\":\\\"#E5EBF1\\\",\\\"widget.border\\\":\\\"#d4d4d4\\\"},\\\"displayName\\\":\\\"Light Plus\\\",\\\"name\\\":\\\"light-plus\\\",\\\"semanticHighlighting\\\":true,\\\"semanticTokenColors\\\":{\\\"customLiteral\\\":\\\"#795E26\\\",\\\"newOperator\\\":\\\"#AF00DB\\\",\\\"numberLiteral\\\":\\\"#098658\\\",\\\"stringLiteral\\\":\\\"#a31515\\\"},\\\"tokenColors\\\":[{\\\"scope\\\":[\\\"meta.embedded\\\",\\\"source.groovy.embedded\\\",\\\"string meta.image.inline.markdown\\\",\\\"variable.legacy.builtin.python\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#000000ff\\\"}},{\\\"scope\\\":\\\"emphasis\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"italic\\\"}},{\\\"scope\\\":\\\"strong\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"bold\\\"}},{\\\"scope\\\":\\\"meta.diff.header\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#000080\\\"}},{\\\"scope\\\":\\\"comment\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#008000\\\"}},{\\\"scope\\\":\\\"constant.language\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#0000ff\\\"}},{\\\"scope\\\":[\\\"constant.numeric\\\",\\\"variable.other.enummember\\\",\\\"keyword.operator.plus.exponent\\\",\\\"keyword.operator.minus.exponent\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#098658\\\"}},{\\\"scope\\\":\\\"constant.regexp\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#811f3f\\\"}},{\\\"scope\\\":\\\"entity.name.tag\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#800000\\\"}},{\\\"scope\\\":\\\"entity.name.selector\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#800000\\\"}},{\\\"scope\\\":\\\"entity.other.attribute-name\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#e50000\\\"}},{\\\"scope\\\":[\\\"entity.other.attribute-name.class.css\\\",\\\"source.css entity.other.attribute-name.class\\\",\\\"entity.other.attribute-name.id.css\\\",\\\"entity.other.attribute-name.parent-selector.css\\\",\\\"entity.other.attribute-name.parent.less\\\",\\\"source.css entity.other.attribute-name.pseudo-class\\\",\\\"entity.other.attribute-name.pseudo-element.css\\\",\\\"source.css.less entity.other.attribute-name.id\\\",\\\"entity.other.attribute-name.scss\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#800000\\\"}},{\\\"scope\\\":\\\"invalid\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#cd3131\\\"}},{\\\"scope\\\":\\\"markup.underline\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"underline\\\"}},{\\\"scope\\\":\\\"markup.bold\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"bold\\\",\\\"foreground\\\":\\\"#000080\\\"}},{\\\"scope\\\":\\\"markup.heading\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"bold\\\",\\\"foreground\\\":\\\"#800000\\\"}},{\\\"scope\\\":\\\"markup.italic\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"italic\\\"}},{\\\"scope\\\":\\\"markup.strikethrough\\\",\\\"settings\\\":{\\\"fontStyle\\\":\\\"strikethrough\\\"}},{\\\"scope\\\":\\\"markup.inserted\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#098658\\\"}},{\\\"scope\\\":\\\"markup.deleted\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#a31515\\\"}},{\\\"scope\\\":\\\"markup.changed\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#0451a5\\\"}},{\\\"scope\\\":[\\\"punctuation.definition.quote.begin.markdown\\\",\\\"punctuation.definition.list.begin.markdown\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#0451a5\\\"}},{\\\"scope\\\":\\\"markup.inline.raw\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#800000\\\"}},{\\\"scope\\\":\\\"punctuation.definition.tag\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#800000\\\"}},{\\\"scope\\\":[\\\"meta.preprocessor\\\",\\\"entity.name.function.preprocessor\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#0000ff\\\"}},{\\\"scope\\\":\\\"meta.preprocessor.string\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#a31515\\\"}},{\\\"scope\\\":\\\"meta.preprocessor.numeric\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#098658\\\"}},{\\\"scope\\\":\\\"meta.structure.dictionary.key.python\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#0451a5\\\"}},{\\\"scope\\\":\\\"storage\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#0000ff\\\"}},{\\\"scope\\\":\\\"storage.type\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#0000ff\\\"}},{\\\"scope\\\":[\\\"storage.modifier\\\",\\\"keyword.operator.noexcept\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#0000ff\\\"}},{\\\"scope\\\":[\\\"string\\\",\\\"meta.embedded.assembly\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#a31515\\\"}},{\\\"scope\\\":[\\\"string.comment.buffered.block.pug\\\",\\\"string.quoted.pug\\\",\\\"string.interpolated.pug\\\",\\\"string.unquoted.plain.in.yaml\\\",\\\"string.unquoted.plain.out.yaml\\\",\\\"string.unquoted.block.yaml\\\",\\\"string.quoted.single.yaml\\\",\\\"string.quoted.double.xml\\\",\\\"string.quoted.single.xml\\\",\\\"string.unquoted.cdata.xml\\\",\\\"string.quoted.double.html\\\",\\\"string.quoted.single.html\\\",\\\"string.unquoted.html\\\",\\\"string.quoted.single.handlebars\\\",\\\"string.quoted.double.handlebars\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#0000ff\\\"}},{\\\"scope\\\":\\\"string.regexp\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#811f3f\\\"}},{\\\"scope\\\":[\\\"punctuation.definition.template-expression.begin\\\",\\\"punctuation.definition.template-expression.end\\\",\\\"punctuation.section.embedded\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#0000ff\\\"}},{\\\"scope\\\":[\\\"meta.template.expression\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#000000\\\"}},{\\\"scope\\\":[\\\"support.constant.property-value\\\",\\\"support.constant.font-name\\\",\\\"support.constant.media-type\\\",\\\"support.constant.media\\\",\\\"constant.other.color.rgb-value\\\",\\\"constant.other.rgb-value\\\",\\\"support.constant.color\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#0451a5\\\"}},{\\\"scope\\\":[\\\"support.type.vendored.property-name\\\",\\\"support.type.property-name\\\",\\\"source.css variable\\\",\\\"source.coffee.embedded\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#e50000\\\"}},{\\\"scope\\\":[\\\"support.type.property-name.json\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#0451a5\\\"}},{\\\"scope\\\":\\\"keyword\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#0000ff\\\"}},{\\\"scope\\\":\\\"keyword.control\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#0000ff\\\"}},{\\\"scope\\\":\\\"keyword.operator\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#000000\\\"}},{\\\"scope\\\":[\\\"keyword.operator.new\\\",\\\"keyword.operator.expression\\\",\\\"keyword.operator.cast\\\",\\\"keyword.operator.sizeof\\\",\\\"keyword.operator.alignof\\\",\\\"keyword.operator.typeid\\\",\\\"keyword.operator.alignas\\\",\\\"keyword.operator.instanceof\\\",\\\"keyword.operator.logical.python\\\",\\\"keyword.operator.wordlike\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#0000ff\\\"}},{\\\"scope\\\":\\\"keyword.other.unit\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#098658\\\"}},{\\\"scope\\\":[\\\"punctuation.section.embedded.begin.php\\\",\\\"punctuation.section.embedded.end.php\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#800000\\\"}},{\\\"scope\\\":\\\"support.function.git-rebase\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#0451a5\\\"}},{\\\"scope\\\":\\\"constant.sha.git-rebase\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#098658\\\"}},{\\\"scope\\\":[\\\"storage.modifier.import.java\\\",\\\"variable.language.wildcard.java\\\",\\\"storage.modifier.package.java\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#000000\\\"}},{\\\"scope\\\":\\\"variable.language\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#0000ff\\\"}},{\\\"scope\\\":[\\\"entity.name.function\\\",\\\"support.function\\\",\\\"support.constant.handlebars\\\",\\\"source.powershell variable.other.member\\\",\\\"entity.name.operator.custom-literal\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#795E26\\\"}},{\\\"scope\\\":[\\\"support.class\\\",\\\"support.type\\\",\\\"entity.name.type\\\",\\\"entity.name.namespace\\\",\\\"entity.other.attribute\\\",\\\"entity.name.scope-resolution\\\",\\\"entity.name.class\\\",\\\"storage.type.numeric.go\\\",\\\"storage.type.byte.go\\\",\\\"storage.type.boolean.go\\\",\\\"storage.type.string.go\\\",\\\"storage.type.uintptr.go\\\",\\\"storage.type.error.go\\\",\\\"storage.type.rune.go\\\",\\\"storage.type.cs\\\",\\\"storage.type.generic.cs\\\",\\\"storage.type.modifier.cs\\\",\\\"storage.type.variable.cs\\\",\\\"storage.type.annotation.java\\\",\\\"storage.type.generic.java\\\",\\\"storage.type.java\\\",\\\"storage.type.object.array.java\\\",\\\"storage.type.primitive.array.java\\\",\\\"storage.type.primitive.java\\\",\\\"storage.type.token.java\\\",\\\"storage.type.groovy\\\",\\\"storage.type.annotation.groovy\\\",\\\"storage.type.parameters.groovy\\\",\\\"storage.type.generic.groovy\\\",\\\"storage.type.object.array.groovy\\\",\\\"storage.type.primitive.array.groovy\\\",\\\"storage.type.primitive.groovy\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#267f99\\\"}},{\\\"scope\\\":[\\\"meta.type.cast.expr\\\",\\\"meta.type.new.expr\\\",\\\"support.constant.math\\\",\\\"support.constant.dom\\\",\\\"support.constant.json\\\",\\\"entity.other.inherited-class\\\",\\\"punctuation.separator.namespace.ruby\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#267f99\\\"}},{\\\"scope\\\":[\\\"keyword.control\\\",\\\"source.cpp keyword.operator.new\\\",\\\"source.cpp keyword.operator.delete\\\",\\\"keyword.other.using\\\",\\\"keyword.other.directive.using\\\",\\\"keyword.other.operator\\\",\\\"entity.name.operator\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#AF00DB\\\"}},{\\\"scope\\\":[\\\"variable\\\",\\\"meta.definition.variable.name\\\",\\\"support.variable\\\",\\\"entity.name.variable\\\",\\\"constant.other.placeholder\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#001080\\\"}},{\\\"scope\\\":[\\\"variable.other.constant\\\",\\\"variable.other.enummember\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#0070C1\\\"}},{\\\"scope\\\":[\\\"meta.object-literal.key\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#001080\\\"}},{\\\"scope\\\":[\\\"support.constant.property-value\\\",\\\"support.constant.font-name\\\",\\\"support.constant.media-type\\\",\\\"support.constant.media\\\",\\\"constant.other.color.rgb-value\\\",\\\"constant.other.rgb-value\\\",\\\"support.constant.color\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#0451a5\\\"}},{\\\"scope\\\":[\\\"punctuation.definition.group.regexp\\\",\\\"punctuation.definition.group.assertion.regexp\\\",\\\"punctuation.definition.character-class.regexp\\\",\\\"punctuation.character.set.begin.regexp\\\",\\\"punctuation.character.set.end.regexp\\\",\\\"keyword.operator.negation.regexp\\\",\\\"support.other.parenthesis.regexp\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#d16969\\\"}},{\\\"scope\\\":[\\\"constant.character.character-class.regexp\\\",\\\"constant.other.character-class.set.regexp\\\",\\\"constant.other.character-class.regexp\\\",\\\"constant.character.set.regexp\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#811f3f\\\"}},{\\\"scope\\\":\\\"keyword.operator.quantifier.regexp\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#000000\\\"}},{\\\"scope\\\":[\\\"keyword.operator.or.regexp\\\",\\\"keyword.control.anchor.regexp\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#EE0000\\\"}},{\\\"scope\\\":[\\\"constant.character\\\",\\\"constant.other.option\\\"],\\\"settings\\\":{\\\"foreground\\\":\\\"#0000ff\\\"}},{\\\"scope\\\":\\\"constant.character.escape\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#EE0000\\\"}},{\\\"scope\\\":\\\"entity.name.label\\\",\\\"settings\\\":{\\\"foreground\\\":\\\"#000000\\\"}}],\\\"type\\\":\\\"light\\\"}\"))\n","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2311(e, t, n, r, o, i) {\n var a,\n c,\n u,\n s,\n f,\n l,\n p,\n d = Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"),\n m = Object.defineProperty,\n h = Object.create,\n y = [h(null), h(null)],\n v = t.length;\n function g(t, n, r) {\n return function (o, i) {\n n && (i = o, o = e);\n for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []);\n return r ? i : o;\n };\n }\n function b(e, t, n, r) {\n if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, n, r, o, i, u, s, f, l, p) {\n function d(e) {\n if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var h = [].concat(t[0]),\n v = t[3],\n w = !u,\n D = 1 === o,\n S = 3 === o,\n j = 4 === o,\n E = 2 === o;\n function I(t, n, r) {\n return function (o, i) {\n return n && (i = o, o = e), r && r(o), P[t].call(o, i);\n };\n }\n if (!w) {\n var P = {},\n k = [],\n F = S ? \"get\" : j || D ? \"set\" : \"value\";\n if (f ? (l || D ? P = {\n get: setFunctionName(function () {\n return v(this);\n }, r, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : P[F] = v, l || setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) {\n if ((c = y[+s][r]) && 7 != (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\");\n y[+s][r] = o < 3 ? 1 : o;\n }\n }\n for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) {\n var z = b(h[O], \"A decorator\", \"be\", !0),\n A = n ? h[O - 1] : void 0,\n H = {},\n K = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o],\n name: r,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw Error(\"attempted to call addInitializer after decoration was finished\");\n b(t, \"An initializer\", \"be\", !0), i.push(t);\n }.bind(null, H)\n };\n if (w) c = z.call(A, N, K), H.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (K[\"static\"] = s, K[\"private\"] = f, c = K.access = {\n has: f ? p.bind() : function (e) {\n return r in e;\n }\n }, j || (c.get = f ? E ? function (e) {\n return d(e), P.value;\n } : I(\"get\", 0, d) : function (e) {\n return e[r];\n }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) {\n e[r] = t;\n }), N = z.call(A, D ? {\n get: P.get,\n set: P.set\n } : P[F], K), H.v = 1, D) {\n if (\"object\" == _typeof(N) && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\");\n } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N);\n }\n return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N;\n }\n function w(e) {\n return m(e, d, {\n configurable: !0,\n enumerable: !0,\n value: a\n });\n }\n return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function l(e) {\n e && f.push(g(e));\n }, p = function p(t, r) {\n for (var i = 0; i < n.length; i++) {\n var a = n[i],\n c = a[1],\n l = 7 & c;\n if ((8 & c) == t && !l == r) {\n var p = a[2],\n d = !!a[3],\n m = 16 & c;\n applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) {\n return checkInRHS(t) === e;\n } : o);\n }\n }\n }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), {\n e: c,\n get c() {\n var n = [];\n return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)];\n }\n };\n}","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","class ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ShikiError\";\n }\n}\n\nexport { ShikiError };\n","// src/utils.ts\nfunction clone(something) {\n return doClone(something);\n}\nfunction doClone(something) {\n if (Array.isArray(something)) {\n return cloneArray(something);\n }\n if (something instanceof RegExp) {\n return something;\n }\n if (typeof something === \"object\") {\n return cloneObj(something);\n }\n return something;\n}\nfunction cloneArray(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = doClone(arr[i]);\n }\n return r;\n}\nfunction cloneObj(obj) {\n let r = {};\n for (let key in obj) {\n r[key] = doClone(obj[key]);\n }\n return r;\n}\nfunction mergeObjects(target, ...sources) {\n sources.forEach((source) => {\n for (let key in source) {\n target[key] = source[key];\n }\n });\n return target;\n}\nfunction basename(path) {\n const idx = ~path.lastIndexOf(\"/\") || ~path.lastIndexOf(\"\\\\\");\n if (idx === 0) {\n return path;\n } else if (~idx === path.length - 1) {\n return basename(path.substring(0, path.length - 1));\n } else {\n return path.substr(~idx + 1);\n }\n}\nvar CAPTURING_REGEX_SOURCE = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g;\nvar RegexSource = class {\n static hasCaptures(regexSource) {\n if (regexSource === null) {\n return false;\n }\n CAPTURING_REGEX_SOURCE.lastIndex = 0;\n return CAPTURING_REGEX_SOURCE.test(regexSource);\n }\n static replaceCaptures(regexSource, captureSource, captureIndices) {\n return regexSource.replace(CAPTURING_REGEX_SOURCE, (match, index, commandIndex, command) => {\n let capture = captureIndices[parseInt(index || commandIndex, 10)];\n if (capture) {\n let result = captureSource.substring(capture.start, capture.end);\n while (result[0] === \".\") {\n result = result.substring(1);\n }\n switch (command) {\n case \"downcase\":\n return result.toLowerCase();\n case \"upcase\":\n return result.toUpperCase();\n default:\n return result;\n }\n } else {\n return match;\n }\n });\n }\n};\nfunction strcmp(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n}\nfunction strArrCmp(a, b) {\n if (a === null && b === null) {\n return 0;\n }\n if (!a) {\n return -1;\n }\n if (!b) {\n return 1;\n }\n let len1 = a.length;\n let len2 = b.length;\n if (len1 === len2) {\n for (let i = 0; i < len1; i++) {\n let res = strcmp(a[i], b[i]);\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n }\n return len1 - len2;\n}\nfunction isValidHexColor(hex) {\n if (/^#[0-9a-f]{6}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{8}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{3}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{4}$/i.test(hex)) {\n return true;\n }\n return false;\n}\nfunction escapeRegExpCharacters(value) {\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, \"\\\\$&\");\n}\nvar CachedFn = class {\n constructor(fn) {\n this.fn = fn;\n }\n cache = /* @__PURE__ */ new Map();\n get(key) {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n const value = this.fn(key);\n this.cache.set(key, value);\n return value;\n }\n};\n\n// src/theme.ts\nvar Theme = class {\n constructor(_colorMap, _defaults, _root) {\n this._colorMap = _colorMap;\n this._defaults = _defaults;\n this._root = _root;\n }\n static createFromRawTheme(source, colorMap) {\n return this.createFromParsedTheme(parseTheme(source), colorMap);\n }\n static createFromParsedTheme(source, colorMap) {\n return resolveParsedThemeRules(source, colorMap);\n }\n _cachedMatchRoot = new CachedFn(\n (scopeName) => this._root.match(scopeName)\n );\n getColorMap() {\n return this._colorMap.getColorMap();\n }\n getDefaults() {\n return this._defaults;\n }\n match(scopePath) {\n if (scopePath === null) {\n return this._defaults;\n }\n const scopeName = scopePath.scopeName;\n const matchingTrieElements = this._cachedMatchRoot.get(scopeName);\n const effectiveRule = matchingTrieElements.find(\n (v) => _scopePathMatchesParentScopes(scopePath.parent, v.parentScopes)\n );\n if (!effectiveRule) {\n return null;\n }\n return new StyleAttributes(\n effectiveRule.fontStyle,\n effectiveRule.foreground,\n effectiveRule.background\n );\n }\n};\nvar ScopeStack = class _ScopeStack {\n constructor(parent, scopeName) {\n this.parent = parent;\n this.scopeName = scopeName;\n }\n static push(path, scopeNames) {\n for (const name of scopeNames) {\n path = new _ScopeStack(path, name);\n }\n return path;\n }\n static from(...segments) {\n let result = null;\n for (let i = 0; i < segments.length; i++) {\n result = new _ScopeStack(result, segments[i]);\n }\n return result;\n }\n push(scopeName) {\n return new _ScopeStack(this, scopeName);\n }\n getSegments() {\n let item = this;\n const result = [];\n while (item) {\n result.push(item.scopeName);\n item = item.parent;\n }\n result.reverse();\n return result;\n }\n toString() {\n return this.getSegments().join(\" \");\n }\n extends(other) {\n if (this === other) {\n return true;\n }\n if (this.parent === null) {\n return false;\n }\n return this.parent.extends(other);\n }\n getExtensionIfDefined(base) {\n const result = [];\n let item = this;\n while (item && item !== base) {\n result.push(item.scopeName);\n item = item.parent;\n }\n return item === base ? result.reverse() : void 0;\n }\n};\nfunction _scopePathMatchesParentScopes(scopePath, parentScopes) {\n if (parentScopes.length === 0) {\n return true;\n }\n for (let index = 0; index < parentScopes.length; index++) {\n let scopePattern = parentScopes[index];\n let scopeMustMatch = false;\n if (scopePattern === \">\") {\n if (index === parentScopes.length - 1) {\n return false;\n }\n scopePattern = parentScopes[++index];\n scopeMustMatch = true;\n }\n while (scopePath) {\n if (_matchesScope(scopePath.scopeName, scopePattern)) {\n break;\n }\n if (scopeMustMatch) {\n return false;\n }\n scopePath = scopePath.parent;\n }\n if (!scopePath) {\n return false;\n }\n scopePath = scopePath.parent;\n }\n return true;\n}\nfunction _matchesScope(scopeName, scopePattern) {\n return scopePattern === scopeName || scopeName.startsWith(scopePattern) && scopeName[scopePattern.length] === \".\";\n}\nvar StyleAttributes = class {\n constructor(fontStyle, foregroundId, backgroundId) {\n this.fontStyle = fontStyle;\n this.foregroundId = foregroundId;\n this.backgroundId = backgroundId;\n }\n};\nfunction parseTheme(source) {\n if (!source) {\n return [];\n }\n if (!source.settings || !Array.isArray(source.settings)) {\n return [];\n }\n let settings = source.settings;\n let result = [], resultLen = 0;\n for (let i = 0, len = settings.length; i < len; i++) {\n let entry = settings[i];\n if (!entry.settings) {\n continue;\n }\n let scopes;\n if (typeof entry.scope === \"string\") {\n let _scope = entry.scope;\n _scope = _scope.replace(/^[,]+/, \"\");\n _scope = _scope.replace(/[,]+$/, \"\");\n scopes = _scope.split(\",\");\n } else if (Array.isArray(entry.scope)) {\n scopes = entry.scope;\n } else {\n scopes = [\"\"];\n }\n let fontStyle = -1 /* NotSet */;\n if (typeof entry.settings.fontStyle === \"string\") {\n fontStyle = 0 /* None */;\n let segments = entry.settings.fontStyle.split(\" \");\n for (let j = 0, lenJ = segments.length; j < lenJ; j++) {\n let segment = segments[j];\n switch (segment) {\n case \"italic\":\n fontStyle = fontStyle | 1 /* Italic */;\n break;\n case \"bold\":\n fontStyle = fontStyle | 2 /* Bold */;\n break;\n case \"underline\":\n fontStyle = fontStyle | 4 /* Underline */;\n break;\n case \"strikethrough\":\n fontStyle = fontStyle | 8 /* Strikethrough */;\n break;\n }\n }\n }\n let foreground = null;\n if (typeof entry.settings.foreground === \"string\" && isValidHexColor(entry.settings.foreground)) {\n foreground = entry.settings.foreground;\n }\n let background = null;\n if (typeof entry.settings.background === \"string\" && isValidHexColor(entry.settings.background)) {\n background = entry.settings.background;\n }\n for (let j = 0, lenJ = scopes.length; j < lenJ; j++) {\n let _scope = scopes[j].trim();\n let segments = _scope.split(\" \");\n let scope = segments[segments.length - 1];\n let parentScopes = null;\n if (segments.length > 1) {\n parentScopes = segments.slice(0, segments.length - 1);\n parentScopes.reverse();\n }\n result[resultLen++] = new ParsedThemeRule(\n scope,\n parentScopes,\n i,\n fontStyle,\n foreground,\n background\n );\n }\n }\n return result;\n}\nvar ParsedThemeRule = class {\n constructor(scope, parentScopes, index, fontStyle, foreground, background) {\n this.scope = scope;\n this.parentScopes = parentScopes;\n this.index = index;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n};\nvar FontStyle = /* @__PURE__ */ ((FontStyle2) => {\n FontStyle2[FontStyle2[\"NotSet\"] = -1] = \"NotSet\";\n FontStyle2[FontStyle2[\"None\"] = 0] = \"None\";\n FontStyle2[FontStyle2[\"Italic\"] = 1] = \"Italic\";\n FontStyle2[FontStyle2[\"Bold\"] = 2] = \"Bold\";\n FontStyle2[FontStyle2[\"Underline\"] = 4] = \"Underline\";\n FontStyle2[FontStyle2[\"Strikethrough\"] = 8] = \"Strikethrough\";\n return FontStyle2;\n})(FontStyle || {});\nfunction resolveParsedThemeRules(parsedThemeRules, _colorMap) {\n parsedThemeRules.sort((a, b) => {\n let r = strcmp(a.scope, b.scope);\n if (r !== 0) {\n return r;\n }\n r = strArrCmp(a.parentScopes, b.parentScopes);\n if (r !== 0) {\n return r;\n }\n return a.index - b.index;\n });\n let defaultFontStyle = 0 /* None */;\n let defaultForeground = \"#000000\";\n let defaultBackground = \"#ffffff\";\n while (parsedThemeRules.length >= 1 && parsedThemeRules[0].scope === \"\") {\n let incomingDefaults = parsedThemeRules.shift();\n if (incomingDefaults.fontStyle !== -1 /* NotSet */) {\n defaultFontStyle = incomingDefaults.fontStyle;\n }\n if (incomingDefaults.foreground !== null) {\n defaultForeground = incomingDefaults.foreground;\n }\n if (incomingDefaults.background !== null) {\n defaultBackground = incomingDefaults.background;\n }\n }\n let colorMap = new ColorMap(_colorMap);\n let defaults = new StyleAttributes(defaultFontStyle, colorMap.getId(defaultForeground), colorMap.getId(defaultBackground));\n let root = new ThemeTrieElement(new ThemeTrieElementRule(0, null, -1 /* NotSet */, 0, 0), []);\n for (let i = 0, len = parsedThemeRules.length; i < len; i++) {\n let rule = parsedThemeRules[i];\n root.insert(0, rule.scope, rule.parentScopes, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n }\n return new Theme(colorMap, defaults, root);\n}\nvar ColorMap = class {\n _isFrozen;\n _lastColorId;\n _id2color;\n _color2id;\n constructor(_colorMap) {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = /* @__PURE__ */ Object.create(null);\n if (Array.isArray(_colorMap)) {\n this._isFrozen = true;\n for (let i = 0, len = _colorMap.length; i < len; i++) {\n this._color2id[_colorMap[i]] = i;\n this._id2color[i] = _colorMap[i];\n }\n } else {\n this._isFrozen = false;\n }\n }\n getId(color) {\n if (color === null) {\n return 0;\n }\n color = color.toUpperCase();\n let value = this._color2id[color];\n if (value) {\n return value;\n }\n if (this._isFrozen) {\n throw new Error(`Missing color in color map - ${color}`);\n }\n value = ++this._lastColorId;\n this._color2id[color] = value;\n this._id2color[value] = color;\n return value;\n }\n getColorMap() {\n return this._id2color.slice(0);\n }\n};\nvar emptyParentScopes = Object.freeze([]);\nvar ThemeTrieElementRule = class _ThemeTrieElementRule {\n scopeDepth;\n parentScopes;\n fontStyle;\n foreground;\n background;\n constructor(scopeDepth, parentScopes, fontStyle, foreground, background) {\n this.scopeDepth = scopeDepth;\n this.parentScopes = parentScopes || emptyParentScopes;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n clone() {\n return new _ThemeTrieElementRule(this.scopeDepth, this.parentScopes, this.fontStyle, this.foreground, this.background);\n }\n static cloneArr(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = arr[i].clone();\n }\n return r;\n }\n acceptOverwrite(scopeDepth, fontStyle, foreground, background) {\n if (this.scopeDepth > scopeDepth) {\n console.log(\"how did this happen?\");\n } else {\n this.scopeDepth = scopeDepth;\n }\n if (fontStyle !== -1 /* NotSet */) {\n this.fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n this.foreground = foreground;\n }\n if (background !== 0) {\n this.background = background;\n }\n }\n};\nvar ThemeTrieElement = class _ThemeTrieElement {\n constructor(_mainRule, rulesWithParentScopes = [], _children = {}) {\n this._mainRule = _mainRule;\n this._children = _children;\n this._rulesWithParentScopes = rulesWithParentScopes;\n }\n _rulesWithParentScopes;\n static _cmpBySpecificity(a, b) {\n if (a.scopeDepth !== b.scopeDepth) {\n return b.scopeDepth - a.scopeDepth;\n }\n let aParentIndex = 0;\n let bParentIndex = 0;\n while (true) {\n if (a.parentScopes[aParentIndex] === \">\") {\n aParentIndex++;\n }\n if (b.parentScopes[bParentIndex] === \">\") {\n bParentIndex++;\n }\n if (aParentIndex >= a.parentScopes.length || bParentIndex >= b.parentScopes.length) {\n break;\n }\n const parentScopeLengthDiff = b.parentScopes[bParentIndex].length - a.parentScopes[aParentIndex].length;\n if (parentScopeLengthDiff !== 0) {\n return parentScopeLengthDiff;\n }\n aParentIndex++;\n bParentIndex++;\n }\n return b.parentScopes.length - a.parentScopes.length;\n }\n match(scope) {\n if (scope !== \"\") {\n let dotIndex = scope.indexOf(\".\");\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = \"\";\n } else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n if (this._children.hasOwnProperty(head)) {\n return this._children[head].match(tail);\n }\n }\n const rules = this._rulesWithParentScopes.concat(this._mainRule);\n rules.sort(_ThemeTrieElement._cmpBySpecificity);\n return rules;\n }\n insert(scopeDepth, scope, parentScopes, fontStyle, foreground, background) {\n if (scope === \"\") {\n this._doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background);\n return;\n }\n let dotIndex = scope.indexOf(\".\");\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = \"\";\n } else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n let child;\n if (this._children.hasOwnProperty(head)) {\n child = this._children[head];\n } else {\n child = new _ThemeTrieElement(this._mainRule.clone(), ThemeTrieElementRule.cloneArr(this._rulesWithParentScopes));\n this._children[head] = child;\n }\n child.insert(scopeDepth + 1, tail, parentScopes, fontStyle, foreground, background);\n }\n _doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background) {\n if (parentScopes === null) {\n this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n for (let i = 0, len = this._rulesWithParentScopes.length; i < len; i++) {\n let rule = this._rulesWithParentScopes[i];\n if (strArrCmp(rule.parentScopes, parentScopes) === 0) {\n rule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n }\n if (fontStyle === -1 /* NotSet */) {\n fontStyle = this._mainRule.fontStyle;\n }\n if (foreground === 0) {\n foreground = this._mainRule.foreground;\n }\n if (background === 0) {\n background = this._mainRule.background;\n }\n this._rulesWithParentScopes.push(new ThemeTrieElementRule(scopeDepth, parentScopes, fontStyle, foreground, background));\n }\n};\n\n// src/encodedTokenAttributes.ts\nvar EncodedTokenMetadata = class _EncodedTokenMetadata {\n static toBinaryStr(encodedTokenAttributes) {\n return encodedTokenAttributes.toString(2).padStart(32, \"0\");\n }\n static print(encodedTokenAttributes) {\n const languageId = _EncodedTokenMetadata.getLanguageId(encodedTokenAttributes);\n const tokenType = _EncodedTokenMetadata.getTokenType(encodedTokenAttributes);\n const fontStyle = _EncodedTokenMetadata.getFontStyle(encodedTokenAttributes);\n const foreground = _EncodedTokenMetadata.getForeground(encodedTokenAttributes);\n const background = _EncodedTokenMetadata.getBackground(encodedTokenAttributes);\n console.log({\n languageId,\n tokenType,\n fontStyle,\n foreground,\n background\n });\n }\n static getLanguageId(encodedTokenAttributes) {\n return (encodedTokenAttributes & 255 /* LANGUAGEID_MASK */) >>> 0 /* LANGUAGEID_OFFSET */;\n }\n static getTokenType(encodedTokenAttributes) {\n return (encodedTokenAttributes & 768 /* TOKEN_TYPE_MASK */) >>> 8 /* TOKEN_TYPE_OFFSET */;\n }\n static containsBalancedBrackets(encodedTokenAttributes) {\n return (encodedTokenAttributes & 1024 /* BALANCED_BRACKETS_MASK */) !== 0;\n }\n static getFontStyle(encodedTokenAttributes) {\n return (encodedTokenAttributes & 30720 /* FONT_STYLE_MASK */) >>> 11 /* FONT_STYLE_OFFSET */;\n }\n static getForeground(encodedTokenAttributes) {\n return (encodedTokenAttributes & 16744448 /* FOREGROUND_MASK */) >>> 15 /* FOREGROUND_OFFSET */;\n }\n static getBackground(encodedTokenAttributes) {\n return (encodedTokenAttributes & 4278190080 /* BACKGROUND_MASK */) >>> 24 /* BACKGROUND_OFFSET */;\n }\n /**\n * Updates the fields in `metadata`.\n * A value of `0`, `NotSet` or `null` indicates that the corresponding field should be left as is.\n */\n static set(encodedTokenAttributes, languageId, tokenType, containsBalancedBrackets, fontStyle, foreground, background) {\n let _languageId = _EncodedTokenMetadata.getLanguageId(encodedTokenAttributes);\n let _tokenType = _EncodedTokenMetadata.getTokenType(encodedTokenAttributes);\n let _containsBalancedBracketsBit = _EncodedTokenMetadata.containsBalancedBrackets(encodedTokenAttributes) ? 1 : 0;\n let _fontStyle = _EncodedTokenMetadata.getFontStyle(encodedTokenAttributes);\n let _foreground = _EncodedTokenMetadata.getForeground(encodedTokenAttributes);\n let _background = _EncodedTokenMetadata.getBackground(encodedTokenAttributes);\n if (languageId !== 0) {\n _languageId = languageId;\n }\n if (tokenType !== 8 /* NotSet */) {\n _tokenType = fromOptionalTokenType(tokenType);\n }\n if (containsBalancedBrackets !== null) {\n _containsBalancedBracketsBit = containsBalancedBrackets ? 1 : 0;\n }\n if (fontStyle !== -1 /* NotSet */) {\n _fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n _foreground = foreground;\n }\n if (background !== 0) {\n _background = background;\n }\n return (_languageId << 0 /* LANGUAGEID_OFFSET */ | _tokenType << 8 /* TOKEN_TYPE_OFFSET */ | _containsBalancedBracketsBit << 10 /* BALANCED_BRACKETS_OFFSET */ | _fontStyle << 11 /* FONT_STYLE_OFFSET */ | _foreground << 15 /* FOREGROUND_OFFSET */ | _background << 24 /* BACKGROUND_OFFSET */) >>> 0;\n }\n};\nfunction toOptionalTokenType(standardType) {\n return standardType;\n}\nfunction fromOptionalTokenType(standardType) {\n return standardType;\n}\n\n// src/matcher.ts\nfunction createMatchers(selector, matchesName) {\n const results = [];\n const tokenizer = newTokenizer(selector);\n let token = tokenizer.next();\n while (token !== null) {\n let priority = 0;\n if (token.length === 2 && token.charAt(1) === \":\") {\n switch (token.charAt(0)) {\n case \"R\":\n priority = 1;\n break;\n case \"L\":\n priority = -1;\n break;\n default:\n console.log(`Unknown priority ${token} in scope selector`);\n }\n token = tokenizer.next();\n }\n let matcher = parseConjunction();\n results.push({ matcher, priority });\n if (token !== \",\") {\n break;\n }\n token = tokenizer.next();\n }\n return results;\n function parseOperand() {\n if (token === \"-\") {\n token = tokenizer.next();\n const expressionToNegate = parseOperand();\n return (matcherInput) => !!expressionToNegate && !expressionToNegate(matcherInput);\n }\n if (token === \"(\") {\n token = tokenizer.next();\n const expressionInParents = parseInnerExpression();\n if (token === \")\") {\n token = tokenizer.next();\n }\n return expressionInParents;\n }\n if (isIdentifier(token)) {\n const identifiers = [];\n do {\n identifiers.push(token);\n token = tokenizer.next();\n } while (isIdentifier(token));\n return (matcherInput) => matchesName(identifiers, matcherInput);\n }\n return null;\n }\n function parseConjunction() {\n const matchers = [];\n let matcher = parseOperand();\n while (matcher) {\n matchers.push(matcher);\n matcher = parseOperand();\n }\n return (matcherInput) => matchers.every((matcher2) => matcher2(matcherInput));\n }\n function parseInnerExpression() {\n const matchers = [];\n let matcher = parseConjunction();\n while (matcher) {\n matchers.push(matcher);\n if (token === \"|\" || token === \",\") {\n do {\n token = tokenizer.next();\n } while (token === \"|\" || token === \",\");\n } else {\n break;\n }\n matcher = parseConjunction();\n }\n return (matcherInput) => matchers.some((matcher2) => matcher2(matcherInput));\n }\n}\nfunction isIdentifier(token) {\n return !!token && !!token.match(/[\\w\\.:]+/);\n}\nfunction newTokenizer(input) {\n let regex = /([LR]:|[\\w\\.:][\\w\\.:\\-]*|[\\,\\|\\-\\(\\)])/g;\n let match = regex.exec(input);\n return {\n next: () => {\n if (!match) {\n return null;\n }\n const res = match[0];\n match = regex.exec(input);\n return res;\n }\n };\n}\n\n// src/onigLib.ts\nvar FindOption = /* @__PURE__ */ ((FindOption2) => {\n FindOption2[FindOption2[\"None\"] = 0] = \"None\";\n FindOption2[FindOption2[\"NotBeginString\"] = 1] = \"NotBeginString\";\n FindOption2[FindOption2[\"NotEndString\"] = 2] = \"NotEndString\";\n FindOption2[FindOption2[\"NotBeginPosition\"] = 4] = \"NotBeginPosition\";\n FindOption2[FindOption2[\"DebugCall\"] = 8] = \"DebugCall\";\n return FindOption2;\n})(FindOption || {});\nfunction disposeOnigString(str) {\n if (typeof str.dispose === \"function\") {\n str.dispose();\n }\n}\n\n// src/grammar/grammarDependencies.ts\nvar TopLevelRuleReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n toKey() {\n return this.scopeName;\n }\n};\nvar TopLevelRepositoryRuleReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n toKey() {\n return `${this.scopeName}#${this.ruleName}`;\n }\n};\nvar ExternalReferenceCollector = class {\n _references = [];\n _seenReferenceKeys = /* @__PURE__ */ new Set();\n get references() {\n return this._references;\n }\n visitedRule = /* @__PURE__ */ new Set();\n add(reference) {\n const key = reference.toKey();\n if (this._seenReferenceKeys.has(key)) {\n return;\n }\n this._seenReferenceKeys.add(key);\n this._references.push(reference);\n }\n};\nvar ScopeDependencyProcessor = class {\n constructor(repo, initialScopeName) {\n this.repo = repo;\n this.initialScopeName = initialScopeName;\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\n seenFullScopeRequests = /* @__PURE__ */ new Set();\n seenPartialScopeRequests = /* @__PURE__ */ new Set();\n Q;\n processQueue() {\n const q = this.Q;\n this.Q = [];\n const deps = new ExternalReferenceCollector();\n for (const dep of q) {\n collectReferencesOfReference(dep, this.initialScopeName, this.repo, deps);\n }\n for (const dep of deps.references) {\n if (dep instanceof TopLevelRuleReference) {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n continue;\n }\n this.seenFullScopeRequests.add(dep.scopeName);\n this.Q.push(dep);\n } else {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n continue;\n }\n if (this.seenPartialScopeRequests.has(dep.toKey())) {\n continue;\n }\n this.seenPartialScopeRequests.add(dep.toKey());\n this.Q.push(dep);\n }\n }\n }\n};\nfunction collectReferencesOfReference(reference, baseGrammarScopeName, repo, result) {\n const selfGrammar = repo.lookup(reference.scopeName);\n if (!selfGrammar) {\n if (reference.scopeName === baseGrammarScopeName) {\n throw new Error(`No grammar provided for <${baseGrammarScopeName}>`);\n }\n return;\n }\n const baseGrammar = repo.lookup(baseGrammarScopeName);\n if (reference instanceof TopLevelRuleReference) {\n collectExternalReferencesInTopLevelRule({ baseGrammar, selfGrammar }, result);\n } else {\n collectExternalReferencesInTopLevelRepositoryRule(\n reference.ruleName,\n { baseGrammar, selfGrammar, repository: selfGrammar.repository },\n result\n );\n }\n const injections = repo.injections(reference.scopeName);\n if (injections) {\n for (const injection of injections) {\n result.add(new TopLevelRuleReference(injection));\n }\n }\n}\nfunction collectExternalReferencesInTopLevelRepositoryRule(ruleName, context, result) {\n if (context.repository && context.repository[ruleName]) {\n const rule = context.repository[ruleName];\n collectExternalReferencesInRules([rule], context, result);\n }\n}\nfunction collectExternalReferencesInTopLevelRule(context, result) {\n if (context.selfGrammar.patterns && Array.isArray(context.selfGrammar.patterns)) {\n collectExternalReferencesInRules(\n context.selfGrammar.patterns,\n { ...context, repository: context.selfGrammar.repository },\n result\n );\n }\n if (context.selfGrammar.injections) {\n collectExternalReferencesInRules(\n Object.values(context.selfGrammar.injections),\n { ...context, repository: context.selfGrammar.repository },\n result\n );\n }\n}\nfunction collectExternalReferencesInRules(rules, context, result) {\n for (const rule of rules) {\n if (result.visitedRule.has(rule)) {\n continue;\n }\n result.visitedRule.add(rule);\n const patternRepository = rule.repository ? mergeObjects({}, context.repository, rule.repository) : context.repository;\n if (Array.isArray(rule.patterns)) {\n collectExternalReferencesInRules(rule.patterns, { ...context, repository: patternRepository }, result);\n }\n const include = rule.include;\n if (!include) {\n continue;\n }\n const reference = parseInclude(include);\n switch (reference.kind) {\n case 0 /* Base */:\n collectExternalReferencesInTopLevelRule({ ...context, selfGrammar: context.baseGrammar }, result);\n break;\n case 1 /* Self */:\n collectExternalReferencesInTopLevelRule(context, result);\n break;\n case 2 /* RelativeReference */:\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { ...context, repository: patternRepository }, result);\n break;\n case 3 /* TopLevelReference */:\n case 4 /* TopLevelRepositoryReference */:\n const selfGrammar = reference.scopeName === context.selfGrammar.scopeName ? context.selfGrammar : reference.scopeName === context.baseGrammar.scopeName ? context.baseGrammar : void 0;\n if (selfGrammar) {\n const newContext = { baseGrammar: context.baseGrammar, selfGrammar, repository: patternRepository };\n if (reference.kind === 4 /* TopLevelRepositoryReference */) {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, newContext, result);\n } else {\n collectExternalReferencesInTopLevelRule(newContext, result);\n }\n } else {\n if (reference.kind === 4 /* TopLevelRepositoryReference */) {\n result.add(new TopLevelRepositoryRuleReference(reference.scopeName, reference.ruleName));\n } else {\n result.add(new TopLevelRuleReference(reference.scopeName));\n }\n }\n break;\n }\n }\n}\nvar BaseReference = class {\n kind = 0 /* Base */;\n};\nvar SelfReference = class {\n kind = 1 /* Self */;\n};\nvar RelativeReference = class {\n constructor(ruleName) {\n this.ruleName = ruleName;\n }\n kind = 2 /* RelativeReference */;\n};\nvar TopLevelReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n kind = 3 /* TopLevelReference */;\n};\nvar TopLevelRepositoryReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n kind = 4 /* TopLevelRepositoryReference */;\n};\nfunction parseInclude(include) {\n if (include === \"$base\") {\n return new BaseReference();\n } else if (include === \"$self\") {\n return new SelfReference();\n }\n const indexOfSharp = include.indexOf(\"#\");\n if (indexOfSharp === -1) {\n return new TopLevelReference(include);\n } else if (indexOfSharp === 0) {\n return new RelativeReference(include.substring(1));\n } else {\n const scopeName = include.substring(0, indexOfSharp);\n const ruleName = include.substring(indexOfSharp + 1);\n return new TopLevelRepositoryReference(scopeName, ruleName);\n }\n}\n\n// src/rule.ts\nvar HAS_BACK_REFERENCES = /\\\\(\\d+)/;\nvar BACK_REFERENCING_END = /\\\\(\\d+)/g;\nvar ruleIdSymbol = Symbol(\"RuleId\");\nvar endRuleId = -1;\nvar whileRuleId = -2;\nfunction ruleIdFromNumber(id) {\n return id;\n}\nfunction ruleIdToNumber(id) {\n return id;\n}\nvar Rule = class {\n $location;\n id;\n _nameIsCapturing;\n _name;\n _contentNameIsCapturing;\n _contentName;\n constructor($location, id, name, contentName) {\n this.$location = $location;\n this.id = id;\n this._name = name || null;\n this._nameIsCapturing = RegexSource.hasCaptures(this._name);\n this._contentName = contentName || null;\n this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);\n }\n get debugName() {\n const location = this.$location ? `${basename(this.$location.filename)}:${this.$location.line}` : \"unknown\";\n return `${this.constructor.name}#${this.id} @ ${location}`;\n }\n getName(lineText, captureIndices) {\n if (!this._nameIsCapturing || this._name === null || lineText === null || captureIndices === null) {\n return this._name;\n }\n return RegexSource.replaceCaptures(this._name, lineText, captureIndices);\n }\n getContentName(lineText, captureIndices) {\n if (!this._contentNameIsCapturing || this._contentName === null) {\n return this._contentName;\n }\n return RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);\n }\n};\nvar CaptureRule = class extends Rule {\n retokenizeCapturedWithRuleId;\n constructor($location, id, name, contentName, retokenizeCapturedWithRuleId) {\n super($location, id, name, contentName);\n this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;\n }\n dispose() {\n }\n collectPatterns(grammar, out) {\n throw new Error(\"Not supported!\");\n }\n compile(grammar, endRegexSource) {\n throw new Error(\"Not supported!\");\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n throw new Error(\"Not supported!\");\n }\n};\nvar MatchRule = class extends Rule {\n _match;\n captures;\n _cachedCompiledPatterns;\n constructor($location, id, name, match, captures) {\n super($location, id, name, null);\n this._match = new RegExpSource(match, this.id);\n this.captures = captures;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugMatchRegExp() {\n return `${this._match.source}`;\n }\n collectPatterns(grammar, out) {\n out.push(this._match);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar IncludeOnlyRule = class extends Rule {\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, patterns) {\n super($location, id, name, contentName);\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n collectPatterns(grammar, out) {\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, out);\n }\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar BeginEndRule = class extends Rule {\n _begin;\n beginCaptures;\n _end;\n endHasBackReferences;\n endCaptures;\n applyEndPatternLast;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this._end = new RegExpSource(end ? end : \"\\uFFFF\", -1);\n this.endHasBackReferences = this._end.hasBackReferences;\n this.endCaptures = endCaptures;\n this.applyEndPatternLast = applyEndPatternLast || false;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugEndRegExp() {\n return `${this._end.source}`;\n }\n getEndWithResolvedBackReferences(lineText, captureIndices) {\n return this._end.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);\n } else {\n this._cachedCompiledPatterns.unshift(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n }\n if (this._end.hasBackReferences) {\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length() - 1, endRegexSource);\n } else {\n this._cachedCompiledPatterns.setSource(0, endRegexSource);\n }\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar BeginWhileRule = class extends Rule {\n _begin;\n beginCaptures;\n whileCaptures;\n _while;\n whileHasBackReferences;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n _cachedCompiledWhilePatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this.whileCaptures = whileCaptures;\n this._while = new RegExpSource(_while, whileRuleId);\n this.whileHasBackReferences = this._while.hasBackReferences;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n this._cachedCompiledWhilePatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n if (this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns.dispose();\n this._cachedCompiledWhilePatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugWhileRegExp() {\n return `${this._while.source}`;\n }\n getWhileWithResolvedBackReferences(lineText, captureIndices) {\n return this._while.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n }\n return this._cachedCompiledPatterns;\n }\n compileWhile(grammar, endRegexSource) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compile(grammar);\n }\n compileWhileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledWhilePatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns = new RegExpSourceList();\n this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);\n }\n if (this._while.hasBackReferences) {\n this._cachedCompiledWhilePatterns.setSource(0, endRegexSource ? endRegexSource : \"\\uFFFF\");\n }\n return this._cachedCompiledWhilePatterns;\n }\n};\nvar RuleFactory = class _RuleFactory {\n static createCaptureRule(helper, $location, name, contentName, retokenizeCapturedWithRuleId) {\n return helper.registerRule((id) => {\n return new CaptureRule($location, id, name, contentName, retokenizeCapturedWithRuleId);\n });\n }\n static getCompiledRuleId(desc, helper, repository) {\n if (!desc.id) {\n helper.registerRule((id) => {\n desc.id = id;\n if (desc.match) {\n return new MatchRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.match,\n _RuleFactory._compileCaptures(desc.captures, helper, repository)\n );\n }\n if (typeof desc.begin === \"undefined\") {\n if (desc.repository) {\n repository = mergeObjects({}, repository, desc.repository);\n }\n let patterns = desc.patterns;\n if (typeof patterns === \"undefined\" && desc.include) {\n patterns = [{ include: desc.include }];\n }\n return new IncludeOnlyRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n _RuleFactory._compilePatterns(patterns, helper, repository)\n );\n }\n if (desc.while) {\n return new BeginWhileRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n desc.begin,\n _RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository),\n desc.while,\n _RuleFactory._compileCaptures(desc.whileCaptures || desc.captures, helper, repository),\n _RuleFactory._compilePatterns(desc.patterns, helper, repository)\n );\n }\n return new BeginEndRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n desc.begin,\n _RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository),\n desc.end,\n _RuleFactory._compileCaptures(desc.endCaptures || desc.captures, helper, repository),\n desc.applyEndPatternLast,\n _RuleFactory._compilePatterns(desc.patterns, helper, repository)\n );\n });\n }\n return desc.id;\n }\n static _compileCaptures(captures, helper, repository) {\n let r = [];\n if (captures) {\n let maximumCaptureId = 0;\n for (const captureId in captures) {\n if (captureId === \"$vscodeTextmateLocation\") {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n if (numericCaptureId > maximumCaptureId) {\n maximumCaptureId = numericCaptureId;\n }\n }\n for (let i = 0; i <= maximumCaptureId; i++) {\n r[i] = null;\n }\n for (const captureId in captures) {\n if (captureId === \"$vscodeTextmateLocation\") {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n let retokenizeCapturedWithRuleId = 0;\n if (captures[captureId].patterns) {\n retokenizeCapturedWithRuleId = _RuleFactory.getCompiledRuleId(captures[captureId], helper, repository);\n }\n r[numericCaptureId] = _RuleFactory.createCaptureRule(helper, captures[captureId].$vscodeTextmateLocation, captures[captureId].name, captures[captureId].contentName, retokenizeCapturedWithRuleId);\n }\n }\n return r;\n }\n static _compilePatterns(patterns, helper, repository) {\n let r = [];\n if (patterns) {\n for (let i = 0, len = patterns.length; i < len; i++) {\n const pattern = patterns[i];\n let ruleId = -1;\n if (pattern.include) {\n const reference = parseInclude(pattern.include);\n switch (reference.kind) {\n case 0 /* Base */:\n case 1 /* Self */:\n ruleId = _RuleFactory.getCompiledRuleId(repository[pattern.include], helper, repository);\n break;\n case 2 /* RelativeReference */:\n let localIncludedRule = repository[reference.ruleName];\n if (localIncludedRule) {\n ruleId = _RuleFactory.getCompiledRuleId(localIncludedRule, helper, repository);\n } else {\n }\n break;\n case 3 /* TopLevelReference */:\n case 4 /* TopLevelRepositoryReference */:\n const externalGrammarName = reference.scopeName;\n const externalGrammarInclude = reference.kind === 4 /* TopLevelRepositoryReference */ ? reference.ruleName : null;\n const externalGrammar = helper.getExternalGrammar(externalGrammarName, repository);\n if (externalGrammar) {\n if (externalGrammarInclude) {\n let externalIncludedRule = externalGrammar.repository[externalGrammarInclude];\n if (externalIncludedRule) {\n ruleId = _RuleFactory.getCompiledRuleId(externalIncludedRule, helper, externalGrammar.repository);\n } else {\n }\n } else {\n ruleId = _RuleFactory.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);\n }\n } else {\n }\n break;\n }\n } else {\n ruleId = _RuleFactory.getCompiledRuleId(pattern, helper, repository);\n }\n if (ruleId !== -1) {\n const rule = helper.getRule(ruleId);\n let skipRule = false;\n if (rule instanceof IncludeOnlyRule || rule instanceof BeginEndRule || rule instanceof BeginWhileRule) {\n if (rule.hasMissingPatterns && rule.patterns.length === 0) {\n skipRule = true;\n }\n }\n if (skipRule) {\n continue;\n }\n r.push(ruleId);\n }\n }\n }\n return {\n patterns: r,\n hasMissingPatterns: (patterns ? patterns.length : 0) !== r.length\n };\n }\n};\nvar RegExpSource = class _RegExpSource {\n source;\n ruleId;\n hasAnchor;\n hasBackReferences;\n _anchorCache;\n constructor(regExpSource, ruleId) {\n if (regExpSource && typeof regExpSource === \"string\") {\n const len = regExpSource.length;\n let lastPushedPos = 0;\n let output = [];\n let hasAnchor = false;\n for (let pos = 0; pos < len; pos++) {\n const ch = regExpSource.charAt(pos);\n if (ch === \"\\\\\") {\n if (pos + 1 < len) {\n const nextCh = regExpSource.charAt(pos + 1);\n if (nextCh === \"z\") {\n output.push(regExpSource.substring(lastPushedPos, pos));\n output.push(\"$(?!\\\\n)(?<!\\\\n)\");\n lastPushedPos = pos + 2;\n } else if (nextCh === \"A\" || nextCh === \"G\") {\n hasAnchor = true;\n }\n pos++;\n }\n }\n }\n this.hasAnchor = hasAnchor;\n if (lastPushedPos === 0) {\n this.source = regExpSource;\n } else {\n output.push(regExpSource.substring(lastPushedPos, len));\n this.source = output.join(\"\");\n }\n } else {\n this.hasAnchor = false;\n this.source = regExpSource;\n }\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n } else {\n this._anchorCache = null;\n }\n this.ruleId = ruleId;\n if (typeof this.source === \"string\") {\n this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\n } else {\n this.hasBackReferences = false;\n }\n }\n clone() {\n return new _RegExpSource(this.source, this.ruleId);\n }\n setSource(newSource) {\n if (this.source === newSource) {\n return;\n }\n this.source = newSource;\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n }\n resolveBackReferences(lineText, captureIndices) {\n if (typeof this.source !== \"string\") {\n throw new Error(\"This method should only be called if the source is a string\");\n }\n let capturedValues = captureIndices.map((capture) => {\n return lineText.substring(capture.start, capture.end);\n });\n BACK_REFERENCING_END.lastIndex = 0;\n return this.source.replace(BACK_REFERENCING_END, (match, g1) => {\n return escapeRegExpCharacters(capturedValues[parseInt(g1, 10)] || \"\");\n });\n }\n _buildAnchorCache() {\n if (typeof this.source !== \"string\") {\n throw new Error(\"This method should only be called if the source is a string\");\n }\n let A0_G0_result = [];\n let A0_G1_result = [];\n let A1_G0_result = [];\n let A1_G1_result = [];\n let pos, len, ch, nextCh;\n for (pos = 0, len = this.source.length; pos < len; pos++) {\n ch = this.source.charAt(pos);\n A0_G0_result[pos] = ch;\n A0_G1_result[pos] = ch;\n A1_G0_result[pos] = ch;\n A1_G1_result[pos] = ch;\n if (ch === \"\\\\\") {\n if (pos + 1 < len) {\n nextCh = this.source.charAt(pos + 1);\n if (nextCh === \"A\") {\n A0_G0_result[pos + 1] = \"\\uFFFF\";\n A0_G1_result[pos + 1] = \"\\uFFFF\";\n A1_G0_result[pos + 1] = \"A\";\n A1_G1_result[pos + 1] = \"A\";\n } else if (nextCh === \"G\") {\n A0_G0_result[pos + 1] = \"\\uFFFF\";\n A0_G1_result[pos + 1] = \"G\";\n A1_G0_result[pos + 1] = \"\\uFFFF\";\n A1_G1_result[pos + 1] = \"G\";\n } else {\n A0_G0_result[pos + 1] = nextCh;\n A0_G1_result[pos + 1] = nextCh;\n A1_G0_result[pos + 1] = nextCh;\n A1_G1_result[pos + 1] = nextCh;\n }\n pos++;\n }\n }\n }\n return {\n A0_G0: A0_G0_result.join(\"\"),\n A0_G1: A0_G1_result.join(\"\"),\n A1_G0: A1_G0_result.join(\"\"),\n A1_G1: A1_G1_result.join(\"\")\n };\n }\n resolveAnchors(allowA, allowG) {\n if (!this.hasAnchor || !this._anchorCache || typeof this.source !== \"string\") {\n return this.source;\n }\n if (allowA) {\n if (allowG) {\n return this._anchorCache.A1_G1;\n } else {\n return this._anchorCache.A1_G0;\n }\n } else {\n if (allowG) {\n return this._anchorCache.A0_G1;\n } else {\n return this._anchorCache.A0_G0;\n }\n }\n }\n};\nvar RegExpSourceList = class {\n _items;\n _hasAnchors;\n _cached;\n _anchorCache;\n constructor() {\n this._items = [];\n this._hasAnchors = false;\n this._cached = null;\n this._anchorCache = {\n A0_G0: null,\n A0_G1: null,\n A1_G0: null,\n A1_G1: null\n };\n }\n dispose() {\n this._disposeCaches();\n }\n _disposeCaches() {\n if (this._cached) {\n this._cached.dispose();\n this._cached = null;\n }\n if (this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0.dispose();\n this._anchorCache.A0_G0 = null;\n }\n if (this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1.dispose();\n this._anchorCache.A0_G1 = null;\n }\n if (this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0.dispose();\n this._anchorCache.A1_G0 = null;\n }\n if (this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1.dispose();\n this._anchorCache.A1_G1 = null;\n }\n }\n push(item) {\n this._items.push(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n unshift(item) {\n this._items.unshift(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n length() {\n return this._items.length;\n }\n setSource(index, newSource) {\n if (this._items[index].source !== newSource) {\n this._disposeCaches();\n this._items[index].setSource(newSource);\n }\n }\n compile(onigLib) {\n if (!this._cached) {\n let regExps = this._items.map((e) => e.source);\n this._cached = new CompiledRule(onigLib, regExps, this._items.map((e) => e.ruleId));\n }\n return this._cached;\n }\n compileAG(onigLib, allowA, allowG) {\n if (!this._hasAnchors) {\n return this.compile(onigLib);\n } else {\n if (allowA) {\n if (allowG) {\n if (!this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G1;\n } else {\n if (!this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G0;\n }\n } else {\n if (allowG) {\n if (!this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G1;\n } else {\n if (!this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G0;\n }\n }\n }\n }\n _resolveAnchors(onigLib, allowA, allowG) {\n let regExps = this._items.map((e) => e.resolveAnchors(allowA, allowG));\n return new CompiledRule(onigLib, regExps, this._items.map((e) => e.ruleId));\n }\n};\nvar CompiledRule = class {\n constructor(onigLib, regExps, rules) {\n this.regExps = regExps;\n this.rules = rules;\n this.scanner = onigLib.createOnigScanner(regExps);\n }\n scanner;\n dispose() {\n if (typeof this.scanner.dispose === \"function\") {\n this.scanner.dispose();\n }\n }\n toString() {\n const r = [];\n for (let i = 0, len = this.rules.length; i < len; i++) {\n r.push(\" - \" + this.rules[i] + \": \" + this.regExps[i]);\n }\n return r.join(\"\\n\");\n }\n findNextMatchSync(string, startPosition, options) {\n const result = this.scanner.findNextMatchSync(string, startPosition, options);\n if (!result) {\n return null;\n }\n return {\n ruleId: this.rules[result.index],\n captureIndices: result.captureIndices\n };\n }\n};\n\n// src/grammar/basicScopesAttributeProvider.ts\nvar BasicScopeAttributes = class {\n constructor(languageId, tokenType) {\n this.languageId = languageId;\n this.tokenType = tokenType;\n }\n};\nvar BasicScopeAttributesProvider = class _BasicScopeAttributesProvider {\n _defaultAttributes;\n _embeddedLanguagesMatcher;\n constructor(initialLanguageId, embeddedLanguages) {\n this._defaultAttributes = new BasicScopeAttributes(initialLanguageId, 8 /* NotSet */);\n this._embeddedLanguagesMatcher = new ScopeMatcher(Object.entries(embeddedLanguages || {}));\n }\n getDefaultAttributes() {\n return this._defaultAttributes;\n }\n getBasicScopeAttributes(scopeName) {\n if (scopeName === null) {\n return _BasicScopeAttributesProvider._NULL_SCOPE_METADATA;\n }\n return this._getBasicScopeAttributes.get(scopeName);\n }\n static _NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n _getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\n /**\n * Given a produced TM scope, return the language that token describes or null if unknown.\n * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null\n */\n _scopeToLanguage(scope) {\n return this._embeddedLanguagesMatcher.match(scope) || 0;\n }\n _toStandardTokenType(scopeName) {\n const m = scopeName.match(_BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 8 /* NotSet */;\n }\n switch (m[1]) {\n case \"comment\":\n return 1 /* Comment */;\n case \"string\":\n return 2 /* String */;\n case \"regex\":\n return 3 /* RegEx */;\n case \"meta.embedded\":\n return 0 /* Other */;\n }\n throw new Error(\"Unexpected match for standard token type!\");\n }\n static STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\n};\nvar ScopeMatcher = class {\n values;\n scopesRegExp;\n constructor(values) {\n if (values.length === 0) {\n this.values = null;\n this.scopesRegExp = null;\n } else {\n this.values = new Map(values);\n const escapedScopes = values.map(\n ([scopeName, value]) => escapeRegExpCharacters(scopeName)\n );\n escapedScopes.sort();\n escapedScopes.reverse();\n this.scopesRegExp = new RegExp(\n `^((${escapedScopes.join(\")|(\")}))($|\\\\.)`,\n \"\"\n );\n }\n }\n match(scope) {\n if (!this.scopesRegExp) {\n return void 0;\n }\n const m = scope.match(this.scopesRegExp);\n if (!m) {\n return void 0;\n }\n return this.values.get(m[1]);\n }\n};\n\n// src/debug.ts\nvar DebugFlags = {\n InDebugMode: typeof process !== \"undefined\" && !!process.env[\"VSCODE_TEXTMATE_DEBUG\"]\n};\nvar UseOnigurumaFindOptions = false;\n\n// src/grammar/tokenizeString.ts\nvar TokenizeStringResult = class {\n constructor(stack, stoppedEarly) {\n this.stack = stack;\n this.stoppedEarly = stoppedEarly;\n }\n};\nfunction _tokenizeString(grammar, lineText, isFirstLine, linePos, stack, lineTokens, checkWhileConditions, timeLimit) {\n const lineLength = lineText.content.length;\n let STOP = false;\n let anchorPosition = -1;\n if (checkWhileConditions) {\n const whileCheckResult = _checkWhileConditions(\n grammar,\n lineText,\n isFirstLine,\n linePos,\n stack,\n lineTokens\n );\n stack = whileCheckResult.stack;\n linePos = whileCheckResult.linePos;\n isFirstLine = whileCheckResult.isFirstLine;\n anchorPosition = whileCheckResult.anchorPosition;\n }\n const startTime = Date.now();\n while (!STOP) {\n if (timeLimit !== 0) {\n const elapsedTime = Date.now() - startTime;\n if (elapsedTime > timeLimit) {\n return new TokenizeStringResult(stack, true);\n }\n }\n scanNext();\n }\n return new TokenizeStringResult(stack, false);\n function scanNext() {\n if (false) {\n console.log(\"\");\n console.log(\n `@@scanNext ${linePos}: |${lineText.content.substr(linePos).replace(/\\n$/, \"\\\\n\")}|`\n );\n }\n const r = matchRuleOrInjections(\n grammar,\n lineText,\n isFirstLine,\n linePos,\n stack,\n anchorPosition\n );\n if (!r) {\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n const captureIndices = r.captureIndices;\n const matchedRuleId = r.matchedRuleId;\n const hasAdvanced = captureIndices && captureIndices.length > 0 ? captureIndices[0].end > linePos : false;\n if (matchedRuleId === endRuleId) {\n const poppedRule = stack.getRule(grammar);\n if (false) {\n console.log(\n \" popping \" + poppedRule.debugName + \" - \" + poppedRule.debugEndRegExp\n );\n }\n lineTokens.produce(stack, captureIndices[0].start);\n stack = stack.withContentNameScopesList(stack.nameScopesList);\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n poppedRule.endCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n const popped = stack;\n stack = stack.parent;\n anchorPosition = popped.getAnchorPos();\n if (!hasAdvanced && popped.getEnterPos() === linePos) {\n if (false) {\n console.error(\n \"[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing\"\n );\n }\n stack = popped;\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else {\n const _rule = grammar.getRule(matchedRuleId);\n lineTokens.produce(stack, captureIndices[0].start);\n const beforePush = stack;\n const scopeName = _rule.getName(lineText.content, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(\n scopeName,\n grammar\n );\n stack = stack.push(\n matchedRuleId,\n linePos,\n anchorPosition,\n captureIndices[0].end === lineLength,\n null,\n nameScopesList,\n nameScopesList\n );\n if (_rule instanceof BeginEndRule) {\n const pushedRule = _rule;\n if (false) {\n console.log(\n \" pushing \" + pushedRule.debugName + \" - \" + pushedRule.debugBeginRegExp\n );\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n pushedRule.beginCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(\n lineText.content,\n captureIndices\n );\n const contentNameScopesList = nameScopesList.pushAttributed(\n contentName,\n grammar\n );\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.endHasBackReferences) {\n stack = stack.withEndRule(\n pushedRule.getEndWithResolvedBackReferences(\n lineText.content,\n captureIndices\n )\n );\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n if (false) {\n console.error(\n \"[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"\n );\n }\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else if (_rule instanceof BeginWhileRule) {\n const pushedRule = _rule;\n if (false) {\n console.log(\" pushing \" + pushedRule.debugName);\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n pushedRule.beginCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(\n lineText.content,\n captureIndices\n );\n const contentNameScopesList = nameScopesList.pushAttributed(\n contentName,\n grammar\n );\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.whileHasBackReferences) {\n stack = stack.withEndRule(\n pushedRule.getWhileWithResolvedBackReferences(\n lineText.content,\n captureIndices\n )\n );\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n if (false) {\n console.error(\n \"[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"\n );\n }\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else {\n const matchingRule = _rule;\n if (false) {\n console.log(\n \" matched \" + matchingRule.debugName + \" - \" + matchingRule.debugMatchRegExp\n );\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n matchingRule.captures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n stack = stack.pop();\n if (!hasAdvanced) {\n if (false) {\n console.error(\n \"[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping\"\n );\n }\n stack = stack.safePop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n }\n if (captureIndices[0].end > linePos) {\n linePos = captureIndices[0].end;\n isFirstLine = false;\n }\n }\n}\nfunction _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens) {\n let anchorPosition = stack.beginRuleCapturedEOL ? 0 : -1;\n const whileRules = [];\n for (let node = stack; node; node = node.pop()) {\n const nodeRule = node.getRule(grammar);\n if (nodeRule instanceof BeginWhileRule) {\n whileRules.push({\n rule: nodeRule,\n stack: node\n });\n }\n }\n for (let whileRule = whileRules.pop(); whileRule; whileRule = whileRules.pop()) {\n const { ruleScanner, findOptions } = prepareRuleWhileSearch(whileRule.rule, grammar, whileRule.stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (false) {\n console.log(\" scanning for while rule\");\n console.log(ruleScanner.toString());\n }\n if (r) {\n const matchedRuleId = r.ruleId;\n if (matchedRuleId !== whileRuleId) {\n stack = whileRule.stack.pop();\n break;\n }\n if (r.captureIndices && r.captureIndices.length) {\n lineTokens.produce(whileRule.stack, r.captureIndices[0].start);\n handleCaptures(grammar, lineText, isFirstLine, whileRule.stack, lineTokens, whileRule.rule.whileCaptures, r.captureIndices);\n lineTokens.produce(whileRule.stack, r.captureIndices[0].end);\n anchorPosition = r.captureIndices[0].end;\n if (r.captureIndices[0].end > linePos) {\n linePos = r.captureIndices[0].end;\n isFirstLine = false;\n }\n }\n } else {\n if (false) {\n console.log(\" popping \" + whileRule.rule.debugName + \" - \" + whileRule.rule.debugWhileRegExp);\n }\n stack = whileRule.stack.pop();\n break;\n }\n }\n return { stack, linePos, anchorPosition, isFirstLine };\n}\nfunction matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const matchResult = matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n const injections = grammar.getInjections();\n if (injections.length === 0) {\n return matchResult;\n }\n const injectionResult = matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!injectionResult) {\n return matchResult;\n }\n if (!matchResult) {\n return injectionResult;\n }\n const matchResultScore = matchResult.captureIndices[0].start;\n const injectionResultScore = injectionResult.captureIndices[0].start;\n if (injectionResultScore < matchResultScore || injectionResult.priorityMatch && injectionResultScore === matchResultScore) {\n return injectionResult;\n }\n return matchResult;\n}\nfunction matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const rule = stack.getRule(grammar);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n return {\n captureIndices: r.captureIndices,\n matchedRuleId: r.ruleId\n };\n }\n return null;\n}\nfunction matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n let bestMatchRating = Number.MAX_VALUE;\n let bestMatchCaptureIndices = null;\n let bestMatchRuleId;\n let bestMatchResultPriority = 0;\n const scopes = stack.contentNameScopesList.getScopeNames();\n for (let i = 0, len = injections.length; i < len; i++) {\n const injection = injections[i];\n if (!injection.matcher(scopes)) {\n continue;\n }\n const rule = grammar.getRule(injection.ruleId);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, null, isFirstLine, linePos === anchorPosition);\n const matchResult = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (!matchResult) {\n continue;\n }\n if (false) {\n console.log(` matched injection: ${injection.debugSelector}`);\n console.log(ruleScanner.toString());\n }\n const matchRating = matchResult.captureIndices[0].start;\n if (matchRating >= bestMatchRating) {\n continue;\n }\n bestMatchRating = matchRating;\n bestMatchCaptureIndices = matchResult.captureIndices;\n bestMatchRuleId = matchResult.ruleId;\n bestMatchResultPriority = injection.priority;\n if (bestMatchRating === linePos) {\n break;\n }\n }\n if (bestMatchCaptureIndices) {\n return {\n priorityMatch: bestMatchResultPriority === -1,\n captureIndices: bestMatchCaptureIndices,\n matchedRuleId: bestMatchRuleId\n };\n }\n return null;\n}\nfunction prepareRuleSearch(rule, grammar, endRegexSource, allowA, allowG) {\n if (UseOnigurumaFindOptions) {\n const ruleScanner2 = rule.compile(grammar, endRegexSource);\n const findOptions = getFindOptions(allowA, allowG);\n return { ruleScanner: ruleScanner2, findOptions };\n }\n const ruleScanner = rule.compileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* None */ };\n}\nfunction prepareRuleWhileSearch(rule, grammar, endRegexSource, allowA, allowG) {\n if (UseOnigurumaFindOptions) {\n const ruleScanner2 = rule.compileWhile(grammar, endRegexSource);\n const findOptions = getFindOptions(allowA, allowG);\n return { ruleScanner: ruleScanner2, findOptions };\n }\n const ruleScanner = rule.compileWhileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* None */ };\n}\nfunction getFindOptions(allowA, allowG) {\n let options = 0 /* None */;\n if (!allowA) {\n options |= 1 /* NotBeginString */;\n }\n if (!allowG) {\n options |= 4 /* NotBeginPosition */;\n }\n return options;\n}\nfunction handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, captures, captureIndices) {\n if (captures.length === 0) {\n return;\n }\n const lineTextContent = lineText.content;\n const len = Math.min(captures.length, captureIndices.length);\n const localStack = [];\n const maxEnd = captureIndices[0].end;\n for (let i = 0; i < len; i++) {\n const captureRule = captures[i];\n if (captureRule === null) {\n continue;\n }\n const captureIndex = captureIndices[i];\n if (captureIndex.length === 0) {\n continue;\n }\n if (captureIndex.start > maxEnd) {\n break;\n }\n while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n if (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, captureIndex.start);\n } else {\n lineTokens.produce(stack, captureIndex.start);\n }\n if (captureRule.retokenizeCapturedWithRuleId) {\n const scopeName = captureRule.getName(lineTextContent, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n const contentName = captureRule.getContentName(lineTextContent, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n const stackClone = stack.push(captureRule.retokenizeCapturedWithRuleId, captureIndex.start, -1, false, null, nameScopesList, contentNameScopesList);\n const onigSubStr = grammar.createOnigString(lineTextContent.substring(0, captureIndex.end));\n _tokenizeString(\n grammar,\n onigSubStr,\n isFirstLine && captureIndex.start === 0,\n captureIndex.start,\n stackClone,\n lineTokens,\n false,\n /* no time limit */\n 0\n );\n disposeOnigString(onigSubStr);\n continue;\n }\n const captureRuleScopeName = captureRule.getName(lineTextContent, captureIndices);\n if (captureRuleScopeName !== null) {\n const base = localStack.length > 0 ? localStack[localStack.length - 1].scopes : stack.contentNameScopesList;\n const captureRuleScopesList = base.pushAttributed(captureRuleScopeName, grammar);\n localStack.push(new LocalStackElement(captureRuleScopesList, captureIndex.end));\n }\n }\n while (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n}\nvar LocalStackElement = class {\n scopes;\n endPos;\n constructor(scopes, endPos) {\n this.scopes = scopes;\n this.endPos = endPos;\n }\n};\n\n// src/grammar/grammar.ts\nfunction createGrammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib) {\n return new Grammar(\n scopeName,\n grammar,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors,\n grammarRepository,\n onigLib\n );\n}\nfunction collectInjections(result, selector, rule, ruleFactoryHelper, grammar) {\n const matchers = createMatchers(selector, nameMatcher);\n const ruleId = RuleFactory.getCompiledRuleId(rule, ruleFactoryHelper, grammar.repository);\n for (const matcher of matchers) {\n result.push({\n debugSelector: selector,\n matcher: matcher.matcher,\n ruleId,\n grammar,\n priority: matcher.priority\n });\n }\n}\nfunction nameMatcher(identifers, scopes) {\n if (scopes.length < identifers.length) {\n return false;\n }\n let lastIndex = 0;\n return identifers.every((identifier) => {\n for (let i = lastIndex; i < scopes.length; i++) {\n if (scopesAreMatching(scopes[i], identifier)) {\n lastIndex = i + 1;\n return true;\n }\n }\n return false;\n });\n}\nfunction scopesAreMatching(thisScopeName, scopeName) {\n if (!thisScopeName) {\n return false;\n }\n if (thisScopeName === scopeName) {\n return true;\n }\n const len = scopeName.length;\n return thisScopeName.length > len && thisScopeName.substr(0, len) === scopeName && thisScopeName[len] === \".\";\n}\nvar Grammar = class {\n constructor(_rootScopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, _onigLib) {\n this._rootScopeName = _rootScopeName;\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._onigLib = _onigLib;\n this._basicScopeAttributesProvider = new BasicScopeAttributesProvider(\n initialLanguage,\n embeddedLanguages\n );\n this._rootId = -1;\n this._lastRuleId = 0;\n this._ruleId2desc = [null];\n this._includedGrammars = {};\n this._grammarRepository = grammarRepository;\n this._grammar = initGrammar(grammar, null);\n this._injections = null;\n this._tokenTypeMatchers = [];\n if (tokenTypes) {\n for (const selector of Object.keys(tokenTypes)) {\n const matchers = createMatchers(selector, nameMatcher);\n for (const matcher of matchers) {\n this._tokenTypeMatchers.push({\n matcher: matcher.matcher,\n type: tokenTypes[selector]\n });\n }\n }\n }\n }\n _rootId;\n _lastRuleId;\n _ruleId2desc;\n _includedGrammars;\n _grammarRepository;\n _grammar;\n _injections;\n _basicScopeAttributesProvider;\n _tokenTypeMatchers;\n get themeProvider() {\n return this._grammarRepository;\n }\n dispose() {\n for (const rule of this._ruleId2desc) {\n if (rule) {\n rule.dispose();\n }\n }\n }\n createOnigScanner(sources) {\n return this._onigLib.createOnigScanner(sources);\n }\n createOnigString(sources) {\n return this._onigLib.createOnigString(sources);\n }\n getMetadataForScope(scope) {\n return this._basicScopeAttributesProvider.getBasicScopeAttributes(scope);\n }\n _collectInjections() {\n const grammarRepository = {\n lookup: (scopeName2) => {\n if (scopeName2 === this._rootScopeName) {\n return this._grammar;\n }\n return this.getExternalGrammar(scopeName2);\n },\n injections: (scopeName2) => {\n return this._grammarRepository.injections(scopeName2);\n }\n };\n const result = [];\n const scopeName = this._rootScopeName;\n const grammar = grammarRepository.lookup(scopeName);\n if (grammar) {\n const rawInjections = grammar.injections;\n if (rawInjections) {\n for (let expression in rawInjections) {\n collectInjections(\n result,\n expression,\n rawInjections[expression],\n this,\n grammar\n );\n }\n }\n const injectionScopeNames = this._grammarRepository.injections(scopeName);\n if (injectionScopeNames) {\n injectionScopeNames.forEach((injectionScopeName) => {\n const injectionGrammar = this.getExternalGrammar(injectionScopeName);\n if (injectionGrammar) {\n const selector = injectionGrammar.injectionSelector;\n if (selector) {\n collectInjections(\n result,\n selector,\n injectionGrammar,\n this,\n injectionGrammar\n );\n }\n }\n });\n }\n }\n result.sort((i1, i2) => i1.priority - i2.priority);\n return result;\n }\n getInjections() {\n if (this._injections === null) {\n this._injections = this._collectInjections();\n }\n return this._injections;\n }\n registerRule(factory) {\n const id = ++this._lastRuleId;\n const result = factory(ruleIdFromNumber(id));\n this._ruleId2desc[id] = result;\n return result;\n }\n getRule(ruleId) {\n return this._ruleId2desc[ruleIdToNumber(ruleId)];\n }\n getExternalGrammar(scopeName, repository) {\n if (this._includedGrammars[scopeName]) {\n return this._includedGrammars[scopeName];\n } else if (this._grammarRepository) {\n const rawIncludedGrammar = this._grammarRepository.lookup(scopeName);\n if (rawIncludedGrammar) {\n this._includedGrammars[scopeName] = initGrammar(\n rawIncludedGrammar,\n repository && repository.$base\n );\n return this._includedGrammars[scopeName];\n }\n }\n return void 0;\n }\n tokenizeLine(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, false, timeLimit);\n return {\n tokens: r.lineTokens.getResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly\n };\n }\n tokenizeLine2(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, true, timeLimit);\n return {\n tokens: r.lineTokens.getBinaryResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly\n };\n }\n _tokenize(lineText, prevState, emitBinaryTokens, timeLimit) {\n if (this._rootId === -1) {\n this._rootId = RuleFactory.getCompiledRuleId(\n this._grammar.repository.$self,\n this,\n this._grammar.repository\n );\n this.getInjections();\n }\n let isFirstLine;\n if (!prevState || prevState === StateStackImpl.NULL) {\n isFirstLine = true;\n const rawDefaultMetadata = this._basicScopeAttributesProvider.getDefaultAttributes();\n const defaultStyle = this.themeProvider.getDefaults();\n const defaultMetadata = EncodedTokenMetadata.set(\n 0,\n rawDefaultMetadata.languageId,\n rawDefaultMetadata.tokenType,\n null,\n defaultStyle.fontStyle,\n defaultStyle.foregroundId,\n defaultStyle.backgroundId\n );\n const rootScopeName = this.getRule(this._rootId).getName(\n null,\n null\n );\n let scopeList;\n if (rootScopeName) {\n scopeList = AttributedScopeStack.createRootAndLookUpScopeName(\n rootScopeName,\n defaultMetadata,\n this\n );\n } else {\n scopeList = AttributedScopeStack.createRoot(\n \"unknown\",\n defaultMetadata\n );\n }\n prevState = new StateStackImpl(\n null,\n this._rootId,\n -1,\n -1,\n false,\n null,\n scopeList,\n scopeList\n );\n } else {\n isFirstLine = false;\n prevState.reset();\n }\n lineText = lineText + \"\\n\";\n const onigLineText = this.createOnigString(lineText);\n const lineLength = onigLineText.content.length;\n const lineTokens = new LineTokens(\n emitBinaryTokens,\n lineText,\n this._tokenTypeMatchers,\n this.balancedBracketSelectors\n );\n const r = _tokenizeString(\n this,\n onigLineText,\n isFirstLine,\n 0,\n prevState,\n lineTokens,\n true,\n timeLimit\n );\n disposeOnigString(onigLineText);\n return {\n lineLength,\n lineTokens,\n ruleStack: r.stack,\n stoppedEarly: r.stoppedEarly\n };\n }\n};\nfunction initGrammar(grammar, base) {\n grammar = clone(grammar);\n grammar.repository = grammar.repository || {};\n grammar.repository.$self = {\n $vscodeTextmateLocation: grammar.$vscodeTextmateLocation,\n patterns: grammar.patterns,\n name: grammar.scopeName\n };\n grammar.repository.$base = base || grammar.repository.$self;\n return grammar;\n}\nvar AttributedScopeStack = class _AttributedScopeStack {\n /**\n * Invariant:\n * ```\n * if (parent && !scopePath.extends(parent.scopePath)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, scopePath, tokenAttributes) {\n this.parent = parent;\n this.scopePath = scopePath;\n this.tokenAttributes = tokenAttributes;\n }\n static fromExtension(namesScopeList, contentNameScopesList) {\n let current = namesScopeList;\n let scopeNames = namesScopeList?.scopePath ?? null;\n for (const frame of contentNameScopesList) {\n scopeNames = ScopeStack.push(scopeNames, frame.scopeNames);\n current = new _AttributedScopeStack(current, scopeNames, frame.encodedTokenAttributes);\n }\n return current;\n }\n static createRoot(scopeName, tokenAttributes) {\n return new _AttributedScopeStack(null, new ScopeStack(null, scopeName), tokenAttributes);\n }\n static createRootAndLookUpScopeName(scopeName, tokenAttributes, grammar) {\n const rawRootMetadata = grammar.getMetadataForScope(scopeName);\n const scopePath = new ScopeStack(null, scopeName);\n const rootStyle = grammar.themeProvider.themeMatch(scopePath);\n const resolvedTokenAttributes = _AttributedScopeStack.mergeAttributes(\n tokenAttributes,\n rawRootMetadata,\n rootStyle\n );\n return new _AttributedScopeStack(null, scopePath, resolvedTokenAttributes);\n }\n get scopeName() {\n return this.scopePath.scopeName;\n }\n toString() {\n return this.getScopeNames().join(\" \");\n }\n equals(other) {\n return _AttributedScopeStack.equals(this, other);\n }\n static equals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (a.scopeName !== b.scopeName || a.tokenAttributes !== b.tokenAttributes) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n static mergeAttributes(existingTokenAttributes, basicScopeAttributes, styleAttributes) {\n let fontStyle = -1 /* NotSet */;\n let foreground = 0;\n let background = 0;\n if (styleAttributes !== null) {\n fontStyle = styleAttributes.fontStyle;\n foreground = styleAttributes.foregroundId;\n background = styleAttributes.backgroundId;\n }\n return EncodedTokenMetadata.set(\n existingTokenAttributes,\n basicScopeAttributes.languageId,\n basicScopeAttributes.tokenType,\n null,\n fontStyle,\n foreground,\n background\n );\n }\n pushAttributed(scopePath, grammar) {\n if (scopePath === null) {\n return this;\n }\n if (scopePath.indexOf(\" \") === -1) {\n return _AttributedScopeStack._pushAttributed(this, scopePath, grammar);\n }\n const scopes = scopePath.split(/ /g);\n let result = this;\n for (const scope of scopes) {\n result = _AttributedScopeStack._pushAttributed(result, scope, grammar);\n }\n return result;\n }\n static _pushAttributed(target, scopeName, grammar) {\n const rawMetadata = grammar.getMetadataForScope(scopeName);\n const newPath = target.scopePath.push(scopeName);\n const scopeThemeMatchResult = grammar.themeProvider.themeMatch(newPath);\n const metadata = _AttributedScopeStack.mergeAttributes(\n target.tokenAttributes,\n rawMetadata,\n scopeThemeMatchResult\n );\n return new _AttributedScopeStack(target, newPath, metadata);\n }\n getScopeNames() {\n return this.scopePath.getSegments();\n }\n getExtensionIfDefined(base) {\n const result = [];\n let self = this;\n while (self && self !== base) {\n result.push({\n encodedTokenAttributes: self.tokenAttributes,\n scopeNames: self.scopePath.getExtensionIfDefined(self.parent?.scopePath ?? null)\n });\n self = self.parent;\n }\n return self === base ? result.reverse() : void 0;\n }\n};\nvar StateStackImpl = class _StateStackImpl {\n /**\n * Invariant:\n * ```\n * if (contentNameScopesList !== nameScopesList && contentNameScopesList?.parent !== nameScopesList) {\n * \tthrow new Error();\n * }\n * if (this.parent && !nameScopesList.extends(this.parent.contentNameScopesList)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n this.parent = parent;\n this.ruleId = ruleId;\n this.beginRuleCapturedEOL = beginRuleCapturedEOL;\n this.endRule = endRule;\n this.nameScopesList = nameScopesList;\n this.contentNameScopesList = contentNameScopesList;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\n _stackElementBrand = void 0;\n // TODO remove me\n static NULL = new _StateStackImpl(\n null,\n 0,\n 0,\n 0,\n false,\n null,\n null,\n null\n );\n /**\n * The position on the current line where this state was pushed.\n * This is relevant only while tokenizing a line, to detect endless loops.\n * Its value is meaningless across lines.\n */\n _enterPos;\n /**\n * The captured anchor position when this stack element was pushed.\n * This is relevant only while tokenizing a line, to restore the anchor position when popping.\n * Its value is meaningless across lines.\n */\n _anchorPos;\n /**\n * The depth of the stack.\n */\n depth;\n equals(other) {\n if (other === null) {\n return false;\n }\n return _StateStackImpl._equals(this, other);\n }\n static _equals(a, b) {\n if (a === b) {\n return true;\n }\n if (!this._structuralEquals(a, b)) {\n return false;\n }\n return AttributedScopeStack.equals(a.contentNameScopesList, b.contentNameScopesList);\n }\n /**\n * A structural equals check. Does not take into account `scopes`.\n */\n static _structuralEquals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (a.depth !== b.depth || a.ruleId !== b.ruleId || a.endRule !== b.endRule) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n clone() {\n return this;\n }\n static _reset(el) {\n while (el) {\n el._enterPos = -1;\n el._anchorPos = -1;\n el = el.parent;\n }\n }\n reset() {\n _StateStackImpl._reset(this);\n }\n pop() {\n return this.parent;\n }\n safePop() {\n if (this.parent) {\n return this.parent;\n }\n return this;\n }\n push(ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n return new _StateStackImpl(\n this,\n ruleId,\n enterPos,\n anchorPos,\n beginRuleCapturedEOL,\n endRule,\n nameScopesList,\n contentNameScopesList\n );\n }\n getEnterPos() {\n return this._enterPos;\n }\n getAnchorPos() {\n return this._anchorPos;\n }\n getRule(grammar) {\n return grammar.getRule(this.ruleId);\n }\n toString() {\n const r = [];\n this._writeString(r, 0);\n return \"[\" + r.join(\",\") + \"]\";\n }\n _writeString(res, outIndex) {\n if (this.parent) {\n outIndex = this.parent._writeString(res, outIndex);\n }\n res[outIndex++] = `(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`;\n return outIndex;\n }\n withContentNameScopesList(contentNameScopeStack) {\n if (this.contentNameScopesList === contentNameScopeStack) {\n return this;\n }\n return this.parent.push(\n this.ruleId,\n this._enterPos,\n this._anchorPos,\n this.beginRuleCapturedEOL,\n this.endRule,\n this.nameScopesList,\n contentNameScopeStack\n );\n }\n withEndRule(endRule) {\n if (this.endRule === endRule) {\n return this;\n }\n return new _StateStackImpl(\n this.parent,\n this.ruleId,\n this._enterPos,\n this._anchorPos,\n this.beginRuleCapturedEOL,\n endRule,\n this.nameScopesList,\n this.contentNameScopesList\n );\n }\n // Used to warn of endless loops\n hasSameRuleAs(other) {\n let el = this;\n while (el && el._enterPos === other._enterPos) {\n if (el.ruleId === other.ruleId) {\n return true;\n }\n el = el.parent;\n }\n return false;\n }\n toStateStackFrame() {\n return {\n ruleId: ruleIdToNumber(this.ruleId),\n beginRuleCapturedEOL: this.beginRuleCapturedEOL,\n endRule: this.endRule,\n nameScopesList: this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList ?? null) ?? [],\n contentNameScopesList: this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList) ?? []\n };\n }\n static pushFrame(self, frame) {\n const namesScopeList = AttributedScopeStack.fromExtension(self?.nameScopesList ?? null, frame.nameScopesList);\n return new _StateStackImpl(\n self,\n ruleIdFromNumber(frame.ruleId),\n frame.enterPos ?? -1,\n frame.anchorPos ?? -1,\n frame.beginRuleCapturedEOL,\n frame.endRule,\n namesScopeList,\n AttributedScopeStack.fromExtension(namesScopeList, frame.contentNameScopesList)\n );\n }\n};\nvar BalancedBracketSelectors = class {\n balancedBracketScopes;\n unbalancedBracketScopes;\n allowAny = false;\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.balancedBracketScopes = balancedBracketScopes.flatMap(\n (selector) => {\n if (selector === \"*\") {\n this.allowAny = true;\n return [];\n }\n return createMatchers(selector, nameMatcher).map((m) => m.matcher);\n }\n );\n this.unbalancedBracketScopes = unbalancedBracketScopes.flatMap(\n (selector) => createMatchers(selector, nameMatcher).map((m) => m.matcher)\n );\n }\n get matchesAlways() {\n return this.allowAny && this.unbalancedBracketScopes.length === 0;\n }\n get matchesNever() {\n return this.balancedBracketScopes.length === 0 && !this.allowAny;\n }\n match(scopes) {\n for (const excluder of this.unbalancedBracketScopes) {\n if (excluder(scopes)) {\n return false;\n }\n }\n for (const includer of this.balancedBracketScopes) {\n if (includer(scopes)) {\n return true;\n }\n }\n return this.allowAny;\n }\n};\nvar LineTokens = class {\n constructor(emitBinaryTokens, lineText, tokenTypeOverrides, balancedBracketSelectors) {\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._emitBinaryTokens = emitBinaryTokens;\n this._tokenTypeOverrides = tokenTypeOverrides;\n if (false) {\n this._lineText = lineText;\n } else {\n this._lineText = null;\n }\n this._tokens = [];\n this._binaryTokens = [];\n this._lastTokenEndIndex = 0;\n }\n _emitBinaryTokens;\n /**\n * defined only if `false`.\n */\n _lineText;\n /**\n * used only if `_emitBinaryTokens` is false.\n */\n _tokens;\n /**\n * used only if `_emitBinaryTokens` is true.\n */\n _binaryTokens;\n _lastTokenEndIndex;\n _tokenTypeOverrides;\n produce(stack, endIndex) {\n this.produceFromScopes(stack.contentNameScopesList, endIndex);\n }\n produceFromScopes(scopesList, endIndex) {\n if (this._lastTokenEndIndex >= endIndex) {\n return;\n }\n if (this._emitBinaryTokens) {\n let metadata = scopesList?.tokenAttributes ?? 0;\n let containsBalancedBrackets = false;\n if (this.balancedBracketSelectors?.matchesAlways) {\n containsBalancedBrackets = true;\n }\n if (this._tokenTypeOverrides.length > 0 || this.balancedBracketSelectors && !this.balancedBracketSelectors.matchesAlways && !this.balancedBracketSelectors.matchesNever) {\n const scopes2 = scopesList?.getScopeNames() ?? [];\n for (const tokenType of this._tokenTypeOverrides) {\n if (tokenType.matcher(scopes2)) {\n metadata = EncodedTokenMetadata.set(\n metadata,\n 0,\n toOptionalTokenType(tokenType.type),\n null,\n -1 /* NotSet */,\n 0,\n 0\n );\n }\n }\n if (this.balancedBracketSelectors) {\n containsBalancedBrackets = this.balancedBracketSelectors.match(scopes2);\n }\n }\n if (containsBalancedBrackets) {\n metadata = EncodedTokenMetadata.set(\n metadata,\n 0,\n 8 /* NotSet */,\n containsBalancedBrackets,\n -1 /* NotSet */,\n 0,\n 0\n );\n }\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {\n this._lastTokenEndIndex = endIndex;\n return;\n }\n this._binaryTokens.push(this._lastTokenEndIndex);\n this._binaryTokens.push(metadata);\n this._lastTokenEndIndex = endIndex;\n return;\n }\n const scopes = scopesList?.getScopeNames() ?? [];\n this._tokens.push({\n startIndex: this._lastTokenEndIndex,\n endIndex,\n // value: lineText.substring(lastTokenEndIndex, endIndex),\n scopes\n });\n this._lastTokenEndIndex = endIndex;\n }\n getResult(stack, lineLength) {\n if (this._tokens.length > 0 && this._tokens[this._tokens.length - 1].startIndex === lineLength - 1) {\n this._tokens.pop();\n }\n if (this._tokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._tokens[this._tokens.length - 1].startIndex = 0;\n }\n return this._tokens;\n }\n getBinaryResult(stack, lineLength) {\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 2] === lineLength - 1) {\n this._binaryTokens.pop();\n this._binaryTokens.pop();\n }\n if (this._binaryTokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._binaryTokens[this._binaryTokens.length - 2] = 0;\n }\n const result = new Uint32Array(this._binaryTokens.length);\n for (let i = 0, len = this._binaryTokens.length; i < len; i++) {\n result[i] = this._binaryTokens[i];\n }\n return result;\n }\n};\n\n// src/registry.ts\nvar SyncRegistry = class {\n constructor(theme, _onigLib) {\n this._onigLib = _onigLib;\n this._theme = theme;\n }\n _grammars = /* @__PURE__ */ new Map();\n _rawGrammars = /* @__PURE__ */ new Map();\n _injectionGrammars = /* @__PURE__ */ new Map();\n _theme;\n dispose() {\n for (const grammar of this._grammars.values()) {\n grammar.dispose();\n }\n }\n setTheme(theme) {\n this._theme = theme;\n }\n getColorMap() {\n return this._theme.getColorMap();\n }\n /**\n * Add `grammar` to registry and return a list of referenced scope names\n */\n addGrammar(grammar, injectionScopeNames) {\n this._rawGrammars.set(grammar.scopeName, grammar);\n if (injectionScopeNames) {\n this._injectionGrammars.set(grammar.scopeName, injectionScopeNames);\n }\n }\n /**\n * Lookup a raw grammar.\n */\n lookup(scopeName) {\n return this._rawGrammars.get(scopeName);\n }\n /**\n * Returns the injections for the given grammar\n */\n injections(targetScope) {\n return this._injectionGrammars.get(targetScope);\n }\n /**\n * Get the default theme settings\n */\n getDefaults() {\n return this._theme.getDefaults();\n }\n /**\n * Match a scope in the theme.\n */\n themeMatch(scopePath) {\n return this._theme.match(scopePath);\n }\n /**\n * Lookup a grammar.\n */\n grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n if (!this._grammars.has(scopeName)) {\n let rawGrammar = this._rawGrammars.get(scopeName);\n if (!rawGrammar) {\n return null;\n }\n this._grammars.set(scopeName, createGrammar(\n scopeName,\n rawGrammar,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors,\n this,\n this._onigLib\n ));\n }\n return this._grammars.get(scopeName);\n }\n};\n\n// src/index.ts\nvar Registry = class {\n _options;\n _syncRegistry;\n _ensureGrammarCache;\n constructor(options) {\n this._options = options;\n this._syncRegistry = new SyncRegistry(\n Theme.createFromRawTheme(options.theme, options.colorMap),\n options.onigLib\n );\n this._ensureGrammarCache = /* @__PURE__ */ new Map();\n }\n dispose() {\n this._syncRegistry.dispose();\n }\n /**\n * Change the theme. Once called, no previous `ruleStack` should be used anymore.\n */\n setTheme(theme, colorMap) {\n this._syncRegistry.setTheme(Theme.createFromRawTheme(theme, colorMap));\n }\n /**\n * Returns a lookup array for color ids.\n */\n getColorMap() {\n return this._syncRegistry.getColorMap();\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithEmbeddedLanguages(initialScopeName, initialLanguage, embeddedLanguages) {\n return this.loadGrammarWithConfiguration(initialScopeName, initialLanguage, { embeddedLanguages });\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithConfiguration(initialScopeName, initialLanguage, configuration) {\n return this._loadGrammar(\n initialScopeName,\n initialLanguage,\n configuration.embeddedLanguages,\n configuration.tokenTypes,\n new BalancedBracketSelectors(\n configuration.balancedBracketSelectors || [],\n configuration.unbalancedBracketSelectors || []\n )\n );\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n */\n loadGrammar(initialScopeName) {\n return this._loadGrammar(initialScopeName, 0, null, null, null);\n }\n _loadGrammar(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n const dependencyProcessor = new ScopeDependencyProcessor(this._syncRegistry, initialScopeName);\n while (dependencyProcessor.Q.length > 0) {\n dependencyProcessor.Q.map((request) => this._loadSingleGrammar(request.scopeName));\n dependencyProcessor.processQueue();\n }\n return this._grammarForScopeName(\n initialScopeName,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors\n );\n }\n _loadSingleGrammar(scopeName) {\n if (!this._ensureGrammarCache.has(scopeName)) {\n this._doLoadSingleGrammar(scopeName);\n this._ensureGrammarCache.set(scopeName, true);\n }\n }\n _doLoadSingleGrammar(scopeName) {\n const grammar = this._options.loadGrammar(scopeName);\n if (grammar) {\n const injections = typeof this._options.getInjections === \"function\" ? this._options.getInjections(scopeName) : void 0;\n this._syncRegistry.addGrammar(grammar, injections);\n }\n }\n /**\n * Adds a rawGrammar.\n */\n addGrammar(rawGrammar, injections = [], initialLanguage = 0, embeddedLanguages = null) {\n this._syncRegistry.addGrammar(rawGrammar, injections);\n return this._grammarForScopeName(rawGrammar.scopeName, initialLanguage, embeddedLanguages);\n }\n /**\n * Get the grammar for `scopeName`. The grammar must first be created via `loadGrammar` or `addGrammar`.\n */\n _grammarForScopeName(scopeName, initialLanguage = 0, embeddedLanguages = null, tokenTypes = null, balancedBracketSelectors = null) {\n return this._syncRegistry.grammarForScopeName(\n scopeName,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors\n );\n }\n};\nvar INITIAL = StateStackImpl.NULL;\nexport {\n EncodedTokenMetadata,\n FindOption,\n FontStyle,\n INITIAL,\n Registry,\n Theme,\n disposeOnigString\n};\n","/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray<Schema>} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record<string, Info>} */\n const property = {}\n /** @type {Record<string, string>} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray<keyof typeof types>} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record<string, string> | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray<string> | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record<string, number | null>} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record<string, Info>} */\n const properties = {}\n /** @type {Record<string, string>} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n },\n space: 'html',\n transform: caseInsensitiveTransform\n})\n","import {caseSensitiveTransform} from './util/case-sensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n boolean,\n commaOrSpaceSeparated,\n commaSeparated,\n number,\n spaceSeparated\n} from './util/types.js'\n\nexport const svg = create({\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\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 crossOrigin: 'crossorigin',\n dataType: 'datatype',\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 glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\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 navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\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 tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n },\n space: 'svg',\n transform: caseSensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n },\n space: 'xlink',\n transform(_, property) {\n return 'xlink:' + property.slice(5).toLowerCase()\n }\n})\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n properties: {xmlnsXLink: null, xmlns: null},\n space: 'xmlns',\n transform: caseInsensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n properties: {xmlBase: null, xmlLang: null, xmlSpace: null},\n space: 'xml',\n transform(_, property) {\n return 'xml:' + property.slice(3).toLowerCase()\n }\n})\n","// Note: types exposed from `index.d.ts`.\nimport {merge} from './lib/util/merge.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\nimport {xlink} from './lib/xlink.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {xml} from './lib/xml.js'\n\nexport {hastToReact} from './lib/hast-to-react.js'\n\nexport const html = merge([aria, htmlBase, xlink, xmlns, xml], 'html')\n\nexport {find} from './lib/find.js'\nexport {normalize} from './lib/normalize.js'\n\nexport const svg = merge([aria, svgBase, xlink, xmlns, xml], 'svg')\n","/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @param {string} key\n * Field to switch on.\n * @param {Options<Invalid, Unknown, Handlers>} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters<Handlers[keyof Handlers]>): ReturnType<Handlers[keyof Handlers]>, (...parameters: Parameters<Unknown>): ReturnType<Unknown>}}\n */\nexport function zwitch(key, options) {\n const settings = options || {}\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid\n const handlers = one.handlers\n\n if (value && own.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key])\n // @ts-expect-error Indexable.\n fn = own.call(handlers, id) ? handlers[id] : one.unknown\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n // @ts-expect-error: matches!\n return one\n}\n","/**\n * @typedef CoreOptions\n * @property {ReadonlyArray<string>} [subset=[]]\n * Whether to only escape the given subset of characters.\n * @property {boolean} [escapeOnly=false]\n * Whether to only escape possibly dangerous characters.\n * Those characters are `\"`, `&`, `'`, `<`, `>`, and `` ` ``.\n *\n * @typedef FormatOptions\n * @property {(code: number, next: number, options: CoreWithFormatOptions) => string} format\n * Format strategy.\n *\n * @typedef {CoreOptions & FormatOptions & import('./util/format-smart.js').FormatSmartOptions} CoreWithFormatOptions\n */\n\nconst defaultSubsetRegex = /[\"&'<>`]/g\nconst surrogatePairsRegex = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g\nconst controlCharactersRegex =\n // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n /[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g\nconst regexEscapeRegex = /[|\\\\{}()[\\]^$+*?.]/g\n\n/** @type {WeakMap<ReadonlyArray<string>, RegExp>} */\nconst subsetToRegexCache = new WeakMap()\n\n/**\n * Encode certain characters in `value`.\n *\n * @param {string} value\n * @param {CoreWithFormatOptions} options\n * @returns {string}\n */\nexport function core(value, options) {\n value = value.replace(\n options.subset\n ? charactersToExpressionCached(options.subset)\n : defaultSubsetRegex,\n basic\n )\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(surrogatePairsRegex, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(controlCharactersRegex, basic)\n )\n\n /**\n * @param {string} pair\n * @param {number} index\n * @param {string} all\n */\n function surrogate(pair, index, all) {\n return options.format(\n (pair.charCodeAt(0) - 0xd800) * 0x400 +\n pair.charCodeAt(1) -\n 0xdc00 +\n 0x10000,\n all.charCodeAt(index + 2),\n options\n )\n }\n\n /**\n * @param {string} character\n * @param {number} index\n * @param {string} all\n */\n function basic(character, index, all) {\n return options.format(\n character.charCodeAt(0),\n all.charCodeAt(index + 1),\n options\n )\n }\n}\n\n/**\n * A wrapper function that caches the result of `charactersToExpression` with a WeakMap.\n * This can improve performance when tooling calls `charactersToExpression` repeatedly\n * with the same subset.\n *\n * @param {ReadonlyArray<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpressionCached(subset) {\n let cached = subsetToRegexCache.get(subset)\n\n if (!cached) {\n cached = charactersToExpression(subset)\n subsetToRegexCache.set(subset, cached)\n }\n\n return cached\n}\n\n/**\n * @param {ReadonlyArray<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpression(subset) {\n /** @type {Array<string>} */\n const groups = []\n let index = -1\n\n while (++index < subset.length) {\n groups.push(subset[index].replace(regexEscapeRegex, '\\\\$&'))\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\n","const hexadecimalRegex = /[\\dA-Fa-f]/\n\n/**\n * Configurable ways to encode characters as hexadecimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nexport function toHexadecimal(code, next, omit) {\n const value = '&#x' + code.toString(16).toUpperCase()\n return omit && next && !hexadecimalRegex.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n","const decimalRegex = /\\d/\n\n/**\n * Configurable ways to encode characters as decimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nexport function toDecimal(code, next, omit) {\n const value = '&#' + String(code)\n return omit && next && !decimalRegex.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n","/**\n * List of legacy HTML named character references that don’t need a trailing semicolon.\n *\n * @type {Array<string>}\n */\nexport const characterEntitiesLegacy = [\n 'AElig',\n 'AMP',\n 'Aacute',\n 'Acirc',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Auml',\n 'COPY',\n 'Ccedil',\n 'ETH',\n 'Eacute',\n 'Ecirc',\n 'Egrave',\n 'Euml',\n 'GT',\n 'Iacute',\n 'Icirc',\n 'Igrave',\n 'Iuml',\n 'LT',\n 'Ntilde',\n 'Oacute',\n 'Ocirc',\n 'Ograve',\n 'Oslash',\n 'Otilde',\n 'Ouml',\n 'QUOT',\n 'REG',\n 'THORN',\n 'Uacute',\n 'Ucirc',\n 'Ugrave',\n 'Uuml',\n 'Yacute',\n 'aacute',\n 'acirc',\n 'acute',\n 'aelig',\n 'agrave',\n 'amp',\n 'aring',\n 'atilde',\n 'auml',\n 'brvbar',\n 'ccedil',\n 'cedil',\n 'cent',\n 'copy',\n 'curren',\n 'deg',\n 'divide',\n 'eacute',\n 'ecirc',\n 'egrave',\n 'eth',\n 'euml',\n 'frac12',\n 'frac14',\n 'frac34',\n 'gt',\n 'iacute',\n 'icirc',\n 'iexcl',\n 'igrave',\n 'iquest',\n 'iuml',\n 'laquo',\n 'lt',\n 'macr',\n 'micro',\n 'middot',\n 'nbsp',\n 'not',\n 'ntilde',\n 'oacute',\n 'ocirc',\n 'ograve',\n 'ordf',\n 'ordm',\n 'oslash',\n 'otilde',\n 'ouml',\n 'para',\n 'plusmn',\n 'pound',\n 'quot',\n 'raquo',\n 'reg',\n 'sect',\n 'shy',\n 'sup1',\n 'sup2',\n 'sup3',\n 'szlig',\n 'thorn',\n 'times',\n 'uacute',\n 'ucirc',\n 'ugrave',\n 'uml',\n 'uuml',\n 'yacute',\n 'yen',\n 'yuml'\n]\n","/**\n * Map of named character references from HTML 4.\n *\n * @type {Record<string, string>}\n */\nexport const characterEntitiesHtml4 = {\n nbsp: ' ',\n iexcl: '¡',\n cent: '¢',\n pound: '£',\n curren: '¤',\n yen: '¥',\n brvbar: '¦',\n sect: '§',\n uml: '¨',\n copy: '©',\n ordf: 'ª',\n laquo: '«',\n not: '¬',\n shy: '',\n reg: '®',\n macr: '¯',\n deg: '°',\n plusmn: '±',\n sup2: '²',\n sup3: '³',\n acute: '´',\n micro: 'µ',\n para: '¶',\n middot: '·',\n cedil: '¸',\n sup1: '¹',\n ordm: 'º',\n raquo: '»',\n frac14: '¼',\n frac12: '½',\n frac34: '¾',\n iquest: '¿',\n Agrave: 'À',\n Aacute: 'Á',\n Acirc: 'Â',\n Atilde: 'Ã',\n Auml: 'Ä',\n Aring: 'Å',\n AElig: 'Æ',\n Ccedil: 'Ç',\n Egrave: 'È',\n Eacute: 'É',\n Ecirc: 'Ê',\n Euml: 'Ë',\n Igrave: 'Ì',\n Iacute: 'Í',\n Icirc: 'Î',\n Iuml: 'Ï',\n ETH: 'Ð',\n Ntilde: 'Ñ',\n Ograve: 'Ò',\n Oacute: 'Ó',\n Ocirc: 'Ô',\n Otilde: 'Õ',\n Ouml: 'Ö',\n times: '×',\n Oslash: 'Ø',\n Ugrave: 'Ù',\n Uacute: 'Ú',\n Ucirc: 'Û',\n Uuml: 'Ü',\n Yacute: 'Ý',\n THORN: 'Þ',\n szlig: 'ß',\n agrave: 'à',\n aacute: 'á',\n acirc: 'â',\n atilde: 'ã',\n auml: 'ä',\n aring: 'å',\n aelig: 'æ',\n ccedil: 'ç',\n egrave: 'è',\n eacute: 'é',\n ecirc: 'ê',\n euml: 'ë',\n igrave: 'ì',\n iacute: 'í',\n icirc: 'î',\n iuml: 'ï',\n eth: 'ð',\n ntilde: 'ñ',\n ograve: 'ò',\n oacute: 'ó',\n ocirc: 'ô',\n otilde: 'õ',\n ouml: 'ö',\n divide: '÷',\n oslash: 'ø',\n ugrave: 'ù',\n uacute: 'ú',\n ucirc: 'û',\n uuml: 'ü',\n yacute: 'ý',\n thorn: 'þ',\n yuml: 'ÿ',\n fnof: 'ƒ',\n Alpha: 'Α',\n Beta: 'Β',\n Gamma: 'Γ',\n Delta: 'Δ',\n Epsilon: 'Ε',\n Zeta: 'Ζ',\n Eta: 'Η',\n Theta: 'Θ',\n Iota: 'Ι',\n Kappa: 'Κ',\n Lambda: 'Λ',\n Mu: 'Μ',\n Nu: 'Ν',\n Xi: 'Ξ',\n Omicron: 'Ο',\n Pi: 'Π',\n Rho: 'Ρ',\n Sigma: 'Σ',\n Tau: 'Τ',\n Upsilon: 'Υ',\n Phi: 'Φ',\n Chi: 'Χ',\n Psi: 'Ψ',\n Omega: 'Ω',\n alpha: 'α',\n beta: 'β',\n gamma: 'γ',\n delta: 'δ',\n epsilon: 'ε',\n zeta: 'ζ',\n eta: 'η',\n theta: 'θ',\n iota: 'ι',\n kappa: 'κ',\n lambda: 'λ',\n mu: 'μ',\n nu: 'ν',\n xi: 'ξ',\n omicron: 'ο',\n pi: 'π',\n rho: 'ρ',\n sigmaf: 'ς',\n sigma: 'σ',\n tau: 'τ',\n upsilon: 'υ',\n phi: 'φ',\n chi: 'χ',\n psi: 'ψ',\n omega: 'ω',\n thetasym: 'ϑ',\n upsih: 'ϒ',\n piv: 'ϖ',\n bull: '•',\n hellip: '…',\n prime: '′',\n Prime: '″',\n oline: '‾',\n frasl: '⁄',\n weierp: '℘',\n image: 'ℑ',\n real: 'ℜ',\n trade: '™',\n alefsym: 'ℵ',\n larr: '←',\n uarr: '↑',\n rarr: '→',\n darr: '↓',\n harr: '↔',\n crarr: '↵',\n lArr: '⇐',\n uArr: '⇑',\n rArr: '⇒',\n dArr: '⇓',\n hArr: '⇔',\n forall: '∀',\n part: '∂',\n exist: '∃',\n empty: '∅',\n nabla: '∇',\n isin: '∈',\n notin: '∉',\n ni: '∋',\n prod: '∏',\n sum: '∑',\n minus: '−',\n lowast: '∗',\n radic: '√',\n prop: '∝',\n infin: '∞',\n ang: '∠',\n and: '∧',\n or: '∨',\n cap: '∩',\n cup: '∪',\n int: '∫',\n there4: '∴',\n sim: '∼',\n cong: '≅',\n asymp: '≈',\n ne: '≠',\n equiv: '≡',\n le: '≤',\n ge: '≥',\n sub: '⊂',\n sup: '⊃',\n nsub: '⊄',\n sube: '⊆',\n supe: '⊇',\n oplus: '⊕',\n otimes: '⊗',\n perp: '⊥',\n sdot: '⋅',\n lceil: '⌈',\n rceil: '⌉',\n lfloor: '⌊',\n rfloor: '⌋',\n lang: '〈',\n rang: '〉',\n loz: '◊',\n spades: '♠',\n clubs: '♣',\n hearts: '♥',\n diams: '♦',\n quot: '\"',\n amp: '&',\n lt: '<',\n gt: '>',\n OElig: 'Œ',\n oelig: 'œ',\n Scaron: 'Š',\n scaron: 'š',\n Yuml: 'Ÿ',\n circ: 'ˆ',\n tilde: '˜',\n ensp: ' ',\n emsp: ' ',\n thinsp: ' ',\n zwnj: '',\n zwj: '',\n lrm: '',\n rlm: '',\n ndash: '–',\n mdash: '—',\n lsquo: '‘',\n rsquo: '’',\n sbquo: '‚',\n ldquo: '“',\n rdquo: '”',\n bdquo: '„',\n dagger: '†',\n Dagger: '‡',\n permil: '‰',\n lsaquo: '‹',\n rsaquo: '›',\n euro: '€'\n}\n","/**\n * List of legacy (that don’t need a trailing `;`) named references which could,\n * depending on what follows them, turn into a different meaning\n *\n * @type {Array<string>}\n */\nexport const dangerous = [\n 'cent',\n 'copy',\n 'divide',\n 'gt',\n 'lt',\n 'not',\n 'para',\n 'times'\n]\n","import {characterEntitiesLegacy} from 'character-entities-legacy'\nimport {characterEntitiesHtml4} from 'character-entities-html4'\nimport {dangerous} from '../constant/dangerous.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * `characterEntitiesHtml4` but inverted.\n *\n * @type {Record<string, string>}\n */\nconst characters = {}\n\n/** @type {string} */\nlet key\n\nfor (key in characterEntitiesHtml4) {\n if (own.call(characterEntitiesHtml4, key)) {\n characters[characterEntitiesHtml4[key]] = key\n }\n}\n\nconst notAlphanumericRegex = /[^\\dA-Za-z]/\n\n/**\n * Configurable ways to encode characters as named references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @param {boolean|undefined} attribute\n * @returns {string}\n */\nexport function toNamed(code, next, omit, attribute) {\n const character = String.fromCharCode(code)\n\n if (own.call(characters, character)) {\n const name = characters[character]\n const value = '&' + name\n\n if (\n omit &&\n characterEntitiesLegacy.includes(name) &&\n !dangerous.includes(name) &&\n (!attribute ||\n (next &&\n next !== 61 /* `=` */ &&\n notAlphanumericRegex.test(String.fromCharCode(next))))\n ) {\n return value\n }\n\n return value + ';'\n }\n\n return ''\n}\n","/**\n * @typedef FormatSmartOptions\n * @property {boolean} [useNamedReferences=false]\n * Prefer named character references (`&`) where possible.\n * @property {boolean} [useShortestReferences=false]\n * Prefer the shortest possible reference, if that results in less bytes.\n * **Note**: `useNamedReferences` can be omitted when using `useShortestReferences`.\n * @property {boolean} [omitOptionalSemicolons=false]\n * Whether to omit semicolons when possible.\n * **Note**: This creates what HTML calls “parse errors” but is otherwise still valid HTML — don’t use this except when building a minifier.\n * Omitting semicolons is possible for certain named and numeric references in some cases.\n * @property {boolean} [attribute=false]\n * Create character references which don’t fail in attributes.\n * **Note**: `attribute` only applies when operating dangerously with\n * `omitOptionalSemicolons: true`.\n */\n\nimport {toHexadecimal} from './to-hexadecimal.js'\nimport {toDecimal} from './to-decimal.js'\nimport {toNamed} from './to-named.js'\n\n/**\n * Configurable ways to encode a character yielding pretty or small results.\n *\n * @param {number} code\n * @param {number} next\n * @param {FormatSmartOptions} options\n * @returns {string}\n */\nexport function formatSmart(code, next, options) {\n let numeric = toHexadecimal(code, next, options.omitOptionalSemicolons)\n /** @type {string|undefined} */\n let named\n\n if (options.useNamedReferences || options.useShortestReferences) {\n named = toNamed(\n code,\n next,\n options.omitOptionalSemicolons,\n options.attribute\n )\n }\n\n // Use the shortest numeric reference when requested.\n // A simple algorithm would use decimal for all code points under 100, as\n // those are shorter than hexadecimal:\n //\n // * `c` vs `c` (decimal shorter)\n // * `d` vs `d` (equal)\n //\n // However, because we take `next` into consideration when `omit` is used,\n // And it would be possible that decimals are shorter on bigger values as\n // well if `next` is hexadecimal but not decimal, we instead compare both.\n if (\n (options.useShortestReferences || !named) &&\n options.useShortestReferences\n ) {\n const decimal = toDecimal(code, next, options.omitOptionalSemicolons)\n\n if (decimal.length < numeric.length) {\n numeric = decimal\n }\n }\n\n return named &&\n (!options.useShortestReferences || named.length < numeric.length)\n ? named\n : numeric\n}\n","/**\n * @typedef {import('./core.js').CoreOptions & import('./util/format-smart.js').FormatSmartOptions} Options\n * @typedef {import('./core.js').CoreOptions} LightOptions\n */\n\nimport {core} from './core.js'\nimport {formatSmart} from './util/format-smart.js'\nimport {formatBasic} from './util/format-basic.js'\n\n/**\n * Encode special characters in `value`.\n *\n * @param {string} value\n * Value to encode.\n * @param {Options} [options]\n * Configuration.\n * @returns {string}\n * Encoded value.\n */\nexport function stringifyEntities(value, options) {\n return core(value, Object.assign({format: formatSmart}, options))\n}\n\n/**\n * Encode special characters in `value` as hexadecimals.\n *\n * @param {string} value\n * Value to encode.\n * @param {LightOptions} [options]\n * Configuration.\n * @returns {string}\n * Encoded value.\n */\nexport function stringifyEntitiesLight(value, options) {\n return core(value, Object.assign({format: formatBasic}, options))\n}\n","/**\n * @import {Comment, Parents} from 'hast'\n * @import {State} from '../index.js'\n */\n\nimport {stringifyEntities} from 'stringify-entities'\n\nconst htmlCommentRegex = /^>|^->|<!--|-->|--!>|<!-$/g\n\n// Declare arrays as variables so it can be cached by `stringifyEntities`\nconst bogusCommentEntitySubset = ['>']\nconst commentEntitySubset = ['<', '>']\n\n/**\n * Serialize a comment.\n *\n * @param {Comment} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function comment(node, _1, _2, state) {\n // See: <https://html.spec.whatwg.org/multipage/syntax.html#comments>\n return state.settings.bogusComments\n ? '<?' +\n stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: bogusCommentEntitySubset\n })\n ) +\n '>'\n : '<!--' + node.value.replace(htmlCommentRegex, encode) + '-->'\n\n /**\n * @param {string} $0\n */\n function encode($0) {\n return stringifyEntities(\n $0,\n Object.assign({}, state.settings.characterReferences, {\n subset: commentEntitySubset\n })\n )\n }\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @import {Schema} from 'property-information'\n */\n\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\nimport {normalize} from './normalize.js'\n\nconst cap = /[A-Z]/g\nconst dash = /-[a-z]/g\nconst valid = /^data[-\\w.:]+$/i\n\n/**\n * Look up info on a property.\n *\n * In most cases the given `schema` contains info on the property.\n * All standard,\n * most legacy,\n * and some non-standard properties are supported.\n * For these cases,\n * the returned `Info` has hints about the value of the property.\n *\n * `name` can also be a valid data attribute or property,\n * in which case an `Info` object with the correctly cased `attribute` and\n * `property` is returned.\n *\n * `name` can be an unknown attribute,\n * in which case an `Info` object with `attribute` and `property` set to the\n * given name is returned.\n * It is not recommended to provide unsupported legacy or recently specced\n * properties.\n *\n *\n * @param {Schema} schema\n * Schema;\n * either the `html` or `svg` export.\n * @param {string} value\n * An attribute-like or property-like name;\n * it will be passed through `normalize` to hopefully find the correct info.\n * @returns {Info}\n * Info.\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let property = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n property = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(property, value)\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Kebab.\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Camel.\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * @import {Parents, RootContent} from 'hast'\n */\n\nimport {whitespace} from 'hast-util-whitespace'\n\nexport const siblingAfter = siblings(1)\nexport const siblingBefore = siblings(-1)\n\n/** @type {Array<RootContent>} */\nconst emptyChildren = []\n\n/**\n * Factory to check siblings in a direction.\n *\n * @param {number} increment\n */\nfunction siblings(increment) {\n return sibling\n\n /**\n * Find applicable siblings in a direction.\n *\n * @template {Parents} Parent\n * Parent type.\n * @param {Parent | undefined} parent\n * Parent.\n * @param {number | undefined} index\n * Index of child in `parent`.\n * @param {boolean | undefined} [includeWhitespace=false]\n * Whether to include whitespace (default: `false`).\n * @returns {Parent extends {children: Array<infer Child>} ? Child | undefined : never}\n * Child of parent.\n */\n function sibling(parent, index, includeWhitespace) {\n const siblings = parent ? parent.children : emptyChildren\n let offset = (index || 0) + increment\n let next = siblings[offset]\n\n if (!includeWhitespace) {\n while (next && whitespace(next)) {\n offset += increment\n next = siblings[offset]\n }\n }\n\n // @ts-expect-error: it’s a correct child.\n return next\n }\n}\n","/**\n * @import {Element, Parents} from 'hast'\n */\n\n/**\n * @callback OmitHandle\n * Check if a tag can be omitted.\n * @param {Element} element\n * Element to check.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether to omit a tag.\n *\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Factory to check if a given node can have a tag omitted.\n *\n * @param {Record<string, OmitHandle>} handlers\n * Omission handlers, where each key is a tag name, and each value is the\n * corresponding handler.\n * @returns {OmitHandle}\n * Whether to omit a tag of an element.\n */\nexport function omission(handlers) {\n return omit\n\n /**\n * Check if a given node can have a tag omitted.\n *\n * @type {OmitHandle}\n */\n function omit(node, index, parent) {\n return (\n own.call(handlers, node.tagName) &&\n handlers[node.tagName](node, index, parent)\n )\n }\n}\n","/**\n * @import {Element, Parents} from 'hast'\n */\n\nimport {whitespace} from 'hast-util-whitespace'\nimport {siblingAfter} from './util/siblings.js'\nimport {omission} from './omission.js'\n\nexport const closing = omission({\n body,\n caption: headOrColgroupOrCaption,\n colgroup: headOrColgroupOrCaption,\n dd,\n dt,\n head: headOrColgroupOrCaption,\n html,\n li,\n optgroup,\n option,\n p,\n rp: rubyElement,\n rt: rubyElement,\n tbody,\n td: cells,\n tfoot,\n th: cells,\n thead,\n tr\n})\n\n/**\n * Macro for `</head>`, `</colgroup>`, and `</caption>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction headOrColgroupOrCaption(_, index, parent) {\n const next = siblingAfter(parent, index, true)\n return (\n !next ||\n (next.type !== 'comment' &&\n !(next.type === 'text' && whitespace(next.value.charAt(0))))\n )\n}\n\n/**\n * Whether to omit `</html>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction html(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</body>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction body(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</p>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction p(_, index, parent) {\n const next = siblingAfter(parent, index)\n return next\n ? next.type === 'element' &&\n (next.tagName === 'address' ||\n next.tagName === 'article' ||\n next.tagName === 'aside' ||\n next.tagName === 'blockquote' ||\n next.tagName === 'details' ||\n next.tagName === 'div' ||\n next.tagName === 'dl' ||\n next.tagName === 'fieldset' ||\n next.tagName === 'figcaption' ||\n next.tagName === 'figure' ||\n next.tagName === 'footer' ||\n next.tagName === 'form' ||\n next.tagName === 'h1' ||\n next.tagName === 'h2' ||\n next.tagName === 'h3' ||\n next.tagName === 'h4' ||\n next.tagName === 'h5' ||\n next.tagName === 'h6' ||\n next.tagName === 'header' ||\n next.tagName === 'hgroup' ||\n next.tagName === 'hr' ||\n next.tagName === 'main' ||\n next.tagName === 'menu' ||\n next.tagName === 'nav' ||\n next.tagName === 'ol' ||\n next.tagName === 'p' ||\n next.tagName === 'pre' ||\n next.tagName === 'section' ||\n next.tagName === 'table' ||\n next.tagName === 'ul')\n : !parent ||\n // Confusing parent.\n !(\n parent.type === 'element' &&\n (parent.tagName === 'a' ||\n parent.tagName === 'audio' ||\n parent.tagName === 'del' ||\n parent.tagName === 'ins' ||\n parent.tagName === 'map' ||\n parent.tagName === 'noscript' ||\n parent.tagName === 'video')\n )\n}\n\n/**\n * Whether to omit `</li>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction li(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || (next.type === 'element' && next.tagName === 'li')\n}\n\n/**\n * Whether to omit `</dt>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dt(_, index, parent) {\n const next = siblingAfter(parent, index)\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd')\n )\n}\n\n/**\n * Whether to omit `</dd>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dd(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd'))\n )\n}\n\n/**\n * Whether to omit `</rt>` or `</rp>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction rubyElement(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'rp' || next.tagName === 'rt'))\n )\n}\n\n/**\n * Whether to omit `</optgroup>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction optgroup(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || (next.type === 'element' && next.tagName === 'optgroup')\n}\n\n/**\n * Whether to omit `</option>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction option(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'option' || next.tagName === 'optgroup'))\n )\n}\n\n/**\n * Whether to omit `</thead>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction thead(_, index, parent) {\n const next = siblingAfter(parent, index)\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot')\n )\n}\n\n/**\n * Whether to omit `</tbody>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tbody(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot'))\n )\n}\n\n/**\n * Whether to omit `</tfoot>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tfoot(_, index, parent) {\n return !siblingAfter(parent, index)\n}\n\n/**\n * Whether to omit `</tr>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tr(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || (next.type === 'element' && next.tagName === 'tr')\n}\n\n/**\n * Whether to omit `</td>` or `</th>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction cells(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'td' || next.tagName === 'th'))\n )\n}\n","/**\n * @import {Element, Parents} from 'hast'\n */\n\nimport {whitespace} from 'hast-util-whitespace'\nimport {siblingAfter, siblingBefore} from './util/siblings.js'\nimport {closing} from './closing.js'\nimport {omission} from './omission.js'\n\nexport const opening = omission({\n body,\n colgroup,\n head,\n html,\n tbody\n})\n\n/**\n * Whether to omit `<html>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction html(node) {\n const head = siblingAfter(node, -1)\n return !head || head.type !== 'comment'\n}\n\n/**\n * Whether to omit `<head>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction head(node) {\n /** @type {Set<string>} */\n const seen = new Set()\n\n // Whether `srcdoc` or not,\n // make sure the content model at least doesn’t have too many `base`s/`title`s.\n for (const child of node.children) {\n if (\n child.type === 'element' &&\n (child.tagName === 'base' || child.tagName === 'title')\n ) {\n if (seen.has(child.tagName)) return false\n seen.add(child.tagName)\n }\n }\n\n // “May be omitted if the element is empty,\n // or if the first thing inside the head element is an element.”\n const child = node.children[0]\n return !child || child.type === 'element'\n}\n\n/**\n * Whether to omit `<body>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction body(node) {\n const head = siblingAfter(node, -1, true)\n\n return (\n !head ||\n (head.type !== 'comment' &&\n !(head.type === 'text' && whitespace(head.value.charAt(0))) &&\n !(\n head.type === 'element' &&\n (head.tagName === 'meta' ||\n head.tagName === 'link' ||\n head.tagName === 'script' ||\n head.tagName === 'style' ||\n head.tagName === 'template')\n ))\n )\n}\n\n/**\n * Whether to omit `<colgroup>`.\n * The spec describes some logic for the opening tag, but it’s easier to\n * implement in the closing tag, to the same effect, so we handle it there\n * instead.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction colgroup(node, index, parent) {\n const previous = siblingBefore(parent, index)\n const head = siblingAfter(node, -1, true)\n\n // Previous colgroup was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n previous.tagName === 'colgroup' &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'col')\n}\n\n/**\n * Whether to omit `<tbody>`.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction tbody(node, index, parent) {\n const previous = siblingBefore(parent, index)\n const head = siblingAfter(node, -1)\n\n // Previous table section was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n (previous.tagName === 'thead' || previous.tagName === 'tbody') &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'tr')\n}\n","/**\n * @import {Element, Parents, Properties} from 'hast'\n * @import {State} from '../index.js'\n */\n\nimport {ccount} from 'ccount'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {find, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringifyEntities} from 'stringify-entities'\nimport {closing} from '../omission/closing.js'\nimport {opening} from '../omission/opening.js'\n\n/**\n * Maps of subsets.\n *\n * Each value is a matrix of tuples.\n * The value at `0` causes parse errors, the value at `1` is valid.\n * Of both, the value at `0` is unsafe, and the value at `1` is safe.\n *\n * @type {Record<'double' | 'name' | 'single' | 'unquoted', Array<[Array<string>, Array<string>]>>}\n */\nconst constants = {\n // See: <https://html.spec.whatwg.org/#attribute-name-state>.\n name: [\n ['\\t\\n\\f\\r &/=>'.split(''), '\\t\\n\\f\\r \"&\\'/=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'/<=>'.split(''), '\\0\\t\\n\\f\\r \"&\\'/<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(unquoted)-state>.\n unquoted: [\n ['\\t\\n\\f\\r &>'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'<=>`'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(single-quoted)-state>.\n single: [\n [\"&'\".split(''), '\"&\\'`'.split('')],\n [\"\\0&'\".split(''), '\\0\"&\\'`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(double-quoted)-state>.\n double: [\n ['\"&'.split(''), '\"&\\'`'.split('')],\n ['\\0\"&'.split(''), '\\0\"&\\'`'.split('')]\n ]\n}\n\n/**\n * Serialize an element node.\n *\n * @param {Element} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function element(node, index, parent, state) {\n const schema = state.schema\n const omit = schema.space === 'svg' ? false : state.settings.omitOptionalTags\n let selfClosing =\n schema.space === 'svg'\n ? state.settings.closeEmptyElements\n : state.settings.voids.includes(node.tagName.toLowerCase())\n /** @type {Array<string>} */\n const parts = []\n /** @type {string} */\n let last\n\n if (schema.space === 'html' && node.tagName === 'svg') {\n state.schema = svg\n }\n\n const attributes = serializeAttributes(state, node.properties)\n\n const content = state.all(\n schema.space === 'html' && node.tagName === 'template' ? node.content : node\n )\n\n state.schema = schema\n\n // If the node is categorised as void, but it has children, remove the\n // categorisation.\n // This enables for example `menuitem`s, which are void in W3C HTML but not\n // void in WHATWG HTML, to be stringified properly.\n // Note: `menuitem` has since been removed from the HTML spec, and so is no\n // longer void.\n if (content) selfClosing = false\n\n if (attributes || !omit || !opening(node, index, parent)) {\n parts.push('<', node.tagName, attributes ? ' ' + attributes : '')\n\n if (\n selfClosing &&\n (schema.space === 'svg' || state.settings.closeSelfClosing)\n ) {\n last = attributes.charAt(attributes.length - 1)\n if (\n !state.settings.tightSelfClosing ||\n last === '/' ||\n (last && last !== '\"' && last !== \"'\")\n ) {\n parts.push(' ')\n }\n\n parts.push('/')\n }\n\n parts.push('>')\n }\n\n parts.push(content)\n\n if (!selfClosing && (!omit || !closing(node, index, parent))) {\n parts.push('</' + node.tagName + '>')\n }\n\n return parts.join('')\n}\n\n/**\n * @param {State} state\n * @param {Properties | null | undefined} properties\n * @returns {string}\n */\nfunction serializeAttributes(state, properties) {\n /** @type {Array<string>} */\n const values = []\n let index = -1\n /** @type {string} */\n let key\n\n if (properties) {\n for (key in properties) {\n if (properties[key] !== null && properties[key] !== undefined) {\n const value = serializeAttribute(state, key, properties[key])\n if (value) values.push(value)\n }\n }\n }\n\n while (++index < values.length) {\n const last = state.settings.tightAttributes\n ? values[index].charAt(values[index].length - 1)\n : undefined\n\n // In tight mode, don’t add a space after quoted attributes.\n if (index !== values.length - 1 && last !== '\"' && last !== \"'\") {\n values[index] += ' '\n }\n }\n\n return values.join('')\n}\n\n/**\n * @param {State} state\n * @param {string} key\n * @param {Properties[keyof Properties]} value\n * @returns {string}\n */\nfunction serializeAttribute(state, key, value) {\n const info = find(state.schema, key)\n const x =\n state.settings.allowParseErrors && state.schema.space === 'html' ? 0 : 1\n const y = state.settings.allowDangerousCharacters ? 0 : 1\n let quote = state.quote\n /** @type {string | undefined} */\n let result\n\n if (info.overloadedBoolean && (value === info.attribute || value === '')) {\n value = true\n } else if (\n (info.boolean || info.overloadedBoolean) &&\n (typeof value !== 'string' || value === info.attribute || value === '')\n ) {\n value = Boolean(value)\n }\n\n if (\n value === null ||\n value === undefined ||\n value === false ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return ''\n }\n\n const name = stringifyEntities(\n info.attribute,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: constants.name[x][y]\n })\n )\n\n // No value.\n // There is currently only one boolean property in SVG: `[download]` on\n // `<a>`.\n // This property does not seem to work in browsers (Firefox, Safari, Chrome),\n // so I can’t test if dropping the value works.\n // But I assume that it should:\n //\n // ```html\n // <!doctype html>\n // <svg viewBox=\"0 0 100 100\">\n // <a href=https://example.com download>\n // <circle cx=50 cy=40 r=35 />\n // </a>\n // </svg>\n // ```\n //\n // See: <https://github.com/wooorm/property-information/blob/main/lib/svg.js>\n if (value === true) return name\n\n // `spaces` doesn’t accept a second argument, but it’s given here just to\n // keep the code cleaner.\n value = Array.isArray(value)\n ? (info.commaSeparated ? commas : spaces)(value, {\n padLeft: !state.settings.tightCommaSeparatedLists\n })\n : String(value)\n\n if (state.settings.collapseEmptyAttributes && !value) return name\n\n // Check unquoted value.\n if (state.settings.preferUnquoted) {\n result = stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n attribute: true,\n subset: constants.unquoted[x][y]\n })\n )\n }\n\n // If we don’t want unquoted, or if `value` contains character references when\n // unquoted…\n if (result !== value) {\n // If the alternative is less common than `quote`, switch.\n if (\n state.settings.quoteSmart &&\n ccount(value, quote) > ccount(value, state.alternative)\n ) {\n quote = state.alternative\n }\n\n result =\n quote +\n stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: (quote === \"'\" ? constants.single : constants.double)[x][y],\n attribute: true\n })\n ) +\n quote\n }\n\n // Don’t add a `=` for unquoted empties.\n return name + (result ? '=' + result : result)\n}\n","/**\n * @import {Parents, Text} from 'hast'\n * @import {Raw} from 'mdast-util-to-hast'\n * @import {State} from '../index.js'\n */\n\nimport {stringifyEntities} from 'stringify-entities'\n\n// Declare array as variable so it can be cached by `stringifyEntities`\nconst textEntitySubset = ['<', '&']\n\n/**\n * Serialize a text node.\n *\n * @param {Raw | Text} node\n * Node to handle.\n * @param {number | undefined} _\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function text(node, _, parent, state) {\n // Check if content of `node` should be escaped.\n return parent &&\n parent.type === 'element' &&\n (parent.tagName === 'script' || parent.tagName === 'style')\n ? node.value\n : stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: textEntitySubset\n })\n )\n}\n","/**\n * @import {Nodes, Parents} from 'hast'\n * @import {State} from '../index.js'\n */\n\nimport {zwitch} from 'zwitch'\nimport {comment} from './comment.js'\nimport {doctype} from './doctype.js'\nimport {element} from './element.js'\nimport {raw} from './raw.js'\nimport {root} from './root.js'\nimport {text} from './text.js'\n\n/**\n * @type {(node: Nodes, index: number | undefined, parent: Parents | undefined, state: State) => string}\n */\nexport const handle = zwitch('type', {\n invalid,\n unknown,\n handlers: {comment, doctype, element, raw, root, text}\n})\n\n/**\n * Fail when a non-node is found in the tree.\n *\n * @param {unknown} node\n * Unknown value.\n * @returns {never}\n * Never.\n */\nfunction invalid(node) {\n throw new Error('Expected node, not `' + node + '`')\n}\n\n/**\n * Fail when a node with an unknown type is found in the tree.\n *\n * @param {unknown} node_\n * Unknown node.\n * @returns {never}\n * Never.\n */\nfunction unknown(node_) {\n // `type` is guaranteed by runtime JS.\n const node = /** @type {Nodes} */ (node_)\n throw new Error('Cannot compile unknown node `' + node.type + '`')\n}\n","/**\n * @import {Doctype, Parents} from 'hast'\n * @import {State} from '../index.js'\n */\n\n/**\n * Serialize a doctype.\n *\n * @param {Doctype} _1\n * Node to handle.\n * @param {number | undefined} _2\n * Index of `node` in `parent.\n * @param {Parents | undefined} _3\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function doctype(_1, _2, _3, state) {\n return (\n '<!' +\n (state.settings.upperDoctype ? 'DOCTYPE' : 'doctype') +\n (state.settings.tightDoctype ? '' : ' ') +\n 'html>'\n )\n}\n","/**\n * @import {Parents} from 'hast'\n * @import {Raw} from 'mdast-util-to-hast'\n * @import {State} from '../index.js'\n */\n\nimport {text} from './text.js'\n\n/**\n * Serialize a raw node.\n *\n * @param {Raw} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function raw(node, index, parent, state) {\n return state.settings.allowDangerousHtml\n ? node.value\n : text(node, index, parent, state)\n}\n","/**\n * @import {Parents, Root} from 'hast'\n * @import {State} from '../index.js'\n */\n\n/**\n * Serialize a root.\n *\n * @param {Root} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function root(node, _1, _2, state) {\n return state.all(node)\n}\n","/**\n * @import {Nodes, Parents, RootContent} from 'hast'\n * @import {Schema} from 'property-information'\n * @import {Options as StringifyEntitiesOptions} from 'stringify-entities'\n */\n\n/**\n * @typedef {Omit<StringifyEntitiesOptions, 'attribute' | 'escapeOnly' | 'subset'>} CharacterReferences\n *\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [allowDangerousCharacters=false]\n * Do not encode some characters which cause XSS vulnerabilities in older\n * browsers (default: `false`).\n *\n * > ⚠️ **Danger**: only set this if you completely trust the content.\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Allow `raw` nodes and insert them as raw HTML (default: `false`).\n *\n * When `false`, `Raw` nodes are encoded.\n *\n * > ⚠️ **Danger**: only set this if you completely trust the content.\n * @property {boolean | null | undefined} [allowParseErrors=false]\n * Do not encode characters which cause parse errors (even though they work),\n * to save bytes (default: `false`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {boolean | null | undefined} [bogusComments=false]\n * Use “bogus comments” instead of comments to save byes: `<?charlie>`\n * instead of `<!--charlie-->` (default: `false`).\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {CharacterReferences | null | undefined} [characterReferences]\n * Configure how to serialize character references (optional).\n * @property {boolean | null | undefined} [closeEmptyElements=false]\n * Close SVG elements without any content with slash (`/`) on the opening tag\n * instead of an end tag: `<circle />` instead of `<circle></circle>`\n * (default: `false`).\n *\n * See `tightSelfClosing` to control whether a space is used before the\n * slash.\n *\n * Not used in the HTML space.\n * @property {boolean | null | undefined} [closeSelfClosing=false]\n * Close self-closing nodes with an extra slash (`/`): `<img />` instead of\n * `<img>` (default: `false`).\n *\n * See `tightSelfClosing` to control whether a space is used before the\n * slash.\n *\n * Not used in the SVG space.\n * @property {boolean | null | undefined} [collapseEmptyAttributes=false]\n * Collapse empty attributes: get `class` instead of `class=\"\"` (default:\n * `false`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: boolean attributes (such as `hidden`) are always collapsed.\n * @property {boolean | null | undefined} [omitOptionalTags=false]\n * Omit optional opening and closing tags (default: `false`).\n *\n * For example, in `<ol><li>one</li><li>two</li></ol>`, both `</li>` closing\n * tags can be omitted.\n * The first because it’s followed by another `li`, the last because it’s\n * followed by nothing.\n *\n * Not used in the SVG space.\n * @property {boolean | null | undefined} [preferUnquoted=false]\n * Leave attributes unquoted if that results in less bytes (default: `false`).\n *\n * Not used in the SVG space.\n * @property {boolean | null | undefined} [quoteSmart=false]\n * Use the other quote if that results in less bytes (default: `false`).\n * @property {Quote | null | undefined} [quote='\"']\n * Preferred quote to use (default: `'\"'`).\n * @property {Space | null | undefined} [space='html']\n * When an `<svg>` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it (default: `'html'`).\n *\n * > 👉 **Note**: hast is not XML.\n * > It supports SVG as embedded in HTML.\n * > It does not support the features available in XML.\n * > Passing SVG might break but fragments of modern SVG should be fine.\n * > Use [`xast`][xast] if you need to support SVG as XML.\n * @property {boolean | null | undefined} [tightAttributes=false]\n * Join attributes together, without whitespace, if possible: get\n * `class=\"a b\"title=\"c d\"` instead of `class=\"a b\" title=\"c d\"` to save\n * bytes (default: `false`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {boolean | null | undefined} [tightCommaSeparatedLists=false]\n * Join known comma-separated attribute values with just a comma (`,`),\n * instead of padding them on the right as well (`,␠`, where `␠` represents a\n * space) (default: `false`).\n * @property {boolean | null | undefined} [tightDoctype=false]\n * Drop unneeded spaces in doctypes: `<!doctypehtml>` instead of\n * `<!doctype html>` to save bytes (default: `false`).\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {boolean | null | undefined} [tightSelfClosing=false]\n * Do not use an extra space when closing self-closing elements: `<img/>`\n * instead of `<img />` (default: `false`).\n *\n * > 👉 **Note**: only used if `closeSelfClosing: true` or\n * > `closeEmptyElements: true`.\n * @property {boolean | null | undefined} [upperDoctype=false]\n * Use a `<!DOCTYPE…` instead of `<!doctype…` (default: `false`).\n *\n * Useless except for XHTML.\n * @property {ReadonlyArray<string> | null | undefined} [voids]\n * Tag names of elements to serialize without closing tag (default: `html-void-elements`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass this, because\n * > hast is not for XML, and HTML will not add more void elements.\n *\n * @typedef {'\"' | \"'\"} Quote\n * HTML quotes for attribute values.\n *\n * @typedef {Omit<Required<{[key in keyof Options]: Exclude<Options[key], null | undefined>}>, 'space' | 'quote'>} Settings\n *\n * @typedef {'html' | 'svg'} Space\n * Namespace.\n *\n * @typedef State\n * Info passed around about the current state.\n * @property {(node: Parents | undefined) => string} all\n * Serialize the children of a parent node.\n * @property {Quote} alternative\n * Alternative quote.\n * @property {(node: Nodes, index: number | undefined, parent: Parents | undefined) => string} one\n * Serialize one node.\n * @property {Quote} quote\n * Preferred quote.\n * @property {Schema} schema\n * Current schema.\n * @property {Settings} settings\n * User configuration.\n */\n\nimport {htmlVoidElements} from 'html-void-elements'\nimport {html, svg} from 'property-information'\nimport {handle} from './handle/index.js'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/** @type {CharacterReferences} */\nconst emptyCharacterReferences = {}\n\n/** @type {Array<never>} */\nconst emptyChildren = []\n\n/**\n * Serialize hast as HTML.\n *\n * @param {Array<RootContent> | Nodes} tree\n * Tree to serialize.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized HTML.\n */\nexport function toHtml(tree, options) {\n const options_ = options || emptyOptions\n const quote = options_.quote || '\"'\n const alternative = quote === '\"' ? \"'\" : '\"'\n\n if (quote !== '\"' && quote !== \"'\") {\n throw new Error('Invalid quote `' + quote + '`, expected `\\'` or `\"`')\n }\n\n /** @type {State} */\n const state = {\n one,\n all,\n settings: {\n omitOptionalTags: options_.omitOptionalTags || false,\n allowParseErrors: options_.allowParseErrors || false,\n allowDangerousCharacters: options_.allowDangerousCharacters || false,\n quoteSmart: options_.quoteSmart || false,\n preferUnquoted: options_.preferUnquoted || false,\n tightAttributes: options_.tightAttributes || false,\n upperDoctype: options_.upperDoctype || false,\n tightDoctype: options_.tightDoctype || false,\n bogusComments: options_.bogusComments || false,\n tightCommaSeparatedLists: options_.tightCommaSeparatedLists || false,\n tightSelfClosing: options_.tightSelfClosing || false,\n collapseEmptyAttributes: options_.collapseEmptyAttributes || false,\n allowDangerousHtml: options_.allowDangerousHtml || false,\n voids: options_.voids || htmlVoidElements,\n characterReferences:\n options_.characterReferences || emptyCharacterReferences,\n closeSelfClosing: options_.closeSelfClosing || false,\n closeEmptyElements: options_.closeEmptyElements || false\n },\n schema: options_.space === 'svg' ? svg : html,\n quote,\n alternative\n }\n\n return state.one(\n Array.isArray(tree) ? {type: 'root', children: tree} : tree,\n undefined,\n undefined\n )\n}\n\n/**\n * Serialize a node.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Nodes} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {string}\n * Serialized node.\n */\nfunction one(node, index, parent) {\n return handle(node, index, parent, this)\n}\n\n/**\n * Serialize all children of `parent`.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Parents | undefined} parent\n * Parent whose children to serialize.\n * @returns {string}\n */\nexport function all(parent) {\n /** @type {Array<string>} */\n const results = []\n const children = (parent && parent.children) || emptyChildren\n let index = -1\n\n while (++index < children.length) {\n results[index] = this.one(children[index], index, parent)\n }\n\n return results.join('')\n}\n","import { ShikiError as ShikiError$1 } from '@shikijs/types';\nexport * from '@shikijs/types';\nimport { FontStyle, INITIAL, EncodedTokenMetadata, Registry as Registry$1, Theme } from '@shikijs/vscode-textmate';\nimport { toHtml } from 'hast-util-to-html';\n\nfunction resolveColorReplacements(theme, options) {\n const replacements = typeof theme === \"string\" ? {} : { ...theme.colorReplacements };\n const themeName = typeof theme === \"string\" ? theme : theme.name;\n for (const [key, value] of Object.entries(options?.colorReplacements || {})) {\n if (typeof value === \"string\")\n replacements[key] = value;\n else if (key === themeName)\n Object.assign(replacements, value);\n }\n return replacements;\n}\nfunction applyColorReplacements(color, replacements) {\n if (!color)\n return color;\n return replacements?.[color?.toLowerCase()] || color;\n}\n\nfunction toArray(x) {\n return Array.isArray(x) ? x : [x];\n}\nasync function normalizeGetter(p) {\n return Promise.resolve(typeof p === \"function\" ? p() : p).then((r) => r.default || r);\n}\nfunction isPlainLang(lang) {\n return !lang || [\"plaintext\", \"txt\", \"text\", \"plain\"].includes(lang);\n}\nfunction isSpecialLang(lang) {\n return lang === \"ansi\" || isPlainLang(lang);\n}\nfunction isNoneTheme(theme) {\n return theme === \"none\";\n}\nfunction isSpecialTheme(theme) {\n return isNoneTheme(theme);\n}\n\nfunction addClassToHast(node, className) {\n if (!className)\n return node;\n node.properties ||= {};\n node.properties.class ||= [];\n if (typeof node.properties.class === \"string\")\n node.properties.class = node.properties.class.split(/\\s+/g);\n if (!Array.isArray(node.properties.class))\n node.properties.class = [];\n const targets = Array.isArray(className) ? className : className.split(/\\s+/g);\n for (const c of targets) {\n if (c && !node.properties.class.includes(c))\n node.properties.class.push(c);\n }\n return node;\n}\n\nfunction splitLines(code, preserveEnding = false) {\n const parts = code.split(/(\\r?\\n)/g);\n let index = 0;\n const lines = [];\n for (let i = 0; i < parts.length; i += 2) {\n const line = preserveEnding ? parts[i] + (parts[i + 1] || \"\") : parts[i];\n lines.push([line, index]);\n index += parts[i].length;\n index += parts[i + 1]?.length || 0;\n }\n return lines;\n}\nfunction createPositionConverter(code) {\n const lines = splitLines(code, true).map(([line]) => line);\n function indexToPos(index) {\n if (index === code.length) {\n return {\n line: lines.length - 1,\n character: lines[lines.length - 1].length\n };\n }\n let character = index;\n let line = 0;\n for (const lineText of lines) {\n if (character < lineText.length)\n break;\n character -= lineText.length;\n line++;\n }\n return { line, character };\n }\n function posToIndex(line, character) {\n let index = 0;\n for (let i = 0; i < line; i++)\n index += lines[i].length;\n index += character;\n return index;\n }\n return {\n lines,\n indexToPos,\n posToIndex\n };\n}\nfunction guessEmbeddedLanguages(code, _lang, highlighter) {\n const langs = /* @__PURE__ */ new Set();\n for (const match of code.matchAll(/lang=[\"']([\\w-]+)[\"']/g)) {\n langs.add(match[1]);\n }\n for (const match of code.matchAll(/(?:```|~~~)([\\w-]+)/g)) {\n langs.add(match[1]);\n }\n for (const match of code.matchAll(/\\\\begin\\{([\\w-]+)\\}/g)) {\n langs.add(match[1]);\n }\n if (!highlighter)\n return Array.from(langs);\n const bundle = highlighter.getBundledLanguages();\n return Array.from(langs).filter((l) => l && bundle[l]);\n}\n\nconst DEFAULT_COLOR_LIGHT_DARK = \"light-dark()\";\nconst COLOR_KEYS = [\"color\", \"background-color\"];\n\nfunction splitToken(token, offsets) {\n let lastOffset = 0;\n const tokens = [];\n for (const offset of offsets) {\n if (offset > lastOffset) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset, offset),\n offset: token.offset + lastOffset\n });\n }\n lastOffset = offset;\n }\n if (lastOffset < token.content.length) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset),\n offset: token.offset + lastOffset\n });\n }\n return tokens;\n}\nfunction splitTokens(tokens, breakpoints) {\n const sorted = Array.from(breakpoints instanceof Set ? breakpoints : new Set(breakpoints)).sort((a, b) => a - b);\n if (!sorted.length)\n return tokens;\n return tokens.map((line) => {\n return line.flatMap((token) => {\n const breakpointsInToken = sorted.filter((i) => token.offset < i && i < token.offset + token.content.length).map((i) => i - token.offset).sort((a, b) => a - b);\n if (!breakpointsInToken.length)\n return token;\n return splitToken(token, breakpointsInToken);\n });\n });\n}\nfunction flatTokenVariants(merged, variantsOrder, cssVariablePrefix, defaultColor, colorsRendering = \"css-vars\") {\n const token = {\n content: merged.content,\n explanation: merged.explanation,\n offset: merged.offset\n };\n const styles = variantsOrder.map((t) => getTokenStyleObject(merged.variants[t]));\n const styleKeys = new Set(styles.flatMap((t) => Object.keys(t)));\n const mergedStyles = {};\n const varKey = (idx, key) => {\n const keyName = key === \"color\" ? \"\" : key === \"background-color\" ? \"-bg\" : `-${key}`;\n return cssVariablePrefix + variantsOrder[idx] + (key === \"color\" ? \"\" : keyName);\n };\n styles.forEach((cur, idx) => {\n for (const key of styleKeys) {\n const value = cur[key] || \"inherit\";\n if (idx === 0 && defaultColor && COLOR_KEYS.includes(key)) {\n if (defaultColor === DEFAULT_COLOR_LIGHT_DARK && styles.length > 1) {\n const lightIndex = variantsOrder.findIndex((t) => t === \"light\");\n const darkIndex = variantsOrder.findIndex((t) => t === \"dark\");\n if (lightIndex === -1 || darkIndex === -1)\n throw new ShikiError$1('When using `defaultColor: \"light-dark()\"`, you must provide both `light` and `dark` themes');\n const lightValue = styles[lightIndex][key] || \"inherit\";\n const darkValue = styles[darkIndex][key] || \"inherit\";\n mergedStyles[key] = `light-dark(${lightValue}, ${darkValue})`;\n if (colorsRendering === \"css-vars\")\n mergedStyles[varKey(idx, key)] = value;\n } else {\n mergedStyles[key] = value;\n }\n } else {\n if (colorsRendering === \"css-vars\")\n mergedStyles[varKey(idx, key)] = value;\n }\n }\n });\n token.htmlStyle = mergedStyles;\n return token;\n}\nfunction getTokenStyleObject(token) {\n const styles = {};\n if (token.color)\n styles.color = token.color;\n if (token.bgColor)\n styles[\"background-color\"] = token.bgColor;\n if (token.fontStyle) {\n if (token.fontStyle & FontStyle.Italic)\n styles[\"font-style\"] = \"italic\";\n if (token.fontStyle & FontStyle.Bold)\n styles[\"font-weight\"] = \"bold\";\n const decorations = [];\n if (token.fontStyle & FontStyle.Underline)\n decorations.push(\"underline\");\n if (token.fontStyle & FontStyle.Strikethrough)\n decorations.push(\"line-through\");\n if (decorations.length)\n styles[\"text-decoration\"] = decorations.join(\" \");\n }\n return styles;\n}\nfunction stringifyTokenStyle(token) {\n if (typeof token === \"string\")\n return token;\n return Object.entries(token).map(([key, value]) => `${key}:${value}`).join(\";\");\n}\n\nconst _grammarStateMap = /* @__PURE__ */ new WeakMap();\nfunction setLastGrammarStateToMap(keys, state) {\n _grammarStateMap.set(keys, state);\n}\nfunction getLastGrammarStateFromMap(keys) {\n return _grammarStateMap.get(keys);\n}\nclass GrammarState {\n /**\n * Theme to Stack mapping\n */\n _stacks = {};\n lang;\n get themes() {\n return Object.keys(this._stacks);\n }\n get theme() {\n return this.themes[0];\n }\n get _stack() {\n return this._stacks[this.theme];\n }\n /**\n * Static method to create a initial grammar state.\n */\n static initial(lang, themes) {\n return new GrammarState(\n Object.fromEntries(toArray(themes).map((theme) => [theme, INITIAL])),\n lang\n );\n }\n constructor(...args) {\n if (args.length === 2) {\n const [stacksMap, lang] = args;\n this.lang = lang;\n this._stacks = stacksMap;\n } else {\n const [stack, lang, theme] = args;\n this.lang = lang;\n this._stacks = { [theme]: stack };\n }\n }\n /**\n * Get the internal stack object.\n * @internal\n */\n getInternalStack(theme = this.theme) {\n return this._stacks[theme];\n }\n getScopes(theme = this.theme) {\n return getScopes(this._stacks[theme]);\n }\n toJSON() {\n return {\n lang: this.lang,\n theme: this.theme,\n themes: this.themes,\n scopes: this.getScopes()\n };\n }\n}\nfunction getScopes(stack) {\n const scopes = [];\n const visited = /* @__PURE__ */ new Set();\n function pushScope(stack2) {\n if (visited.has(stack2))\n return;\n visited.add(stack2);\n const name = stack2?.nameScopesList?.scopeName;\n if (name)\n scopes.push(name);\n if (stack2.parent)\n pushScope(stack2.parent);\n }\n pushScope(stack);\n return scopes;\n}\nfunction getGrammarStack(state, theme) {\n if (!(state instanceof GrammarState))\n throw new ShikiError$1(\"Invalid grammar state\");\n return state.getInternalStack(theme);\n}\n\nfunction transformerDecorations() {\n const map = /* @__PURE__ */ new WeakMap();\n function getContext(shiki) {\n if (!map.has(shiki.meta)) {\n let normalizePosition = function(p) {\n if (typeof p === \"number\") {\n if (p < 0 || p > shiki.source.length)\n throw new ShikiError$1(`Invalid decoration offset: ${p}. Code length: ${shiki.source.length}`);\n return {\n ...converter.indexToPos(p),\n offset: p\n };\n } else {\n const line = converter.lines[p.line];\n if (line === void 0)\n throw new ShikiError$1(`Invalid decoration position ${JSON.stringify(p)}. Lines length: ${converter.lines.length}`);\n let character = p.character;\n if (character < 0)\n character = line.length + character;\n if (character < 0 || character > line.length)\n throw new ShikiError$1(`Invalid decoration position ${JSON.stringify(p)}. Line ${p.line} length: ${line.length}`);\n return {\n ...p,\n character,\n offset: converter.posToIndex(p.line, character)\n };\n }\n };\n const converter = createPositionConverter(shiki.source);\n const decorations = (shiki.options.decorations || []).map((d) => ({\n ...d,\n start: normalizePosition(d.start),\n end: normalizePosition(d.end)\n }));\n verifyIntersections(decorations);\n map.set(shiki.meta, {\n decorations,\n converter,\n source: shiki.source\n });\n }\n return map.get(shiki.meta);\n }\n return {\n name: \"shiki:decorations\",\n tokens(tokens) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const breakpoints = ctx.decorations.flatMap((d) => [d.start.offset, d.end.offset]);\n const splitted = splitTokens(tokens, breakpoints);\n return splitted;\n },\n code(codeEl) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const lines = Array.from(codeEl.children).filter((i) => i.type === \"element\" && i.tagName === \"span\");\n if (lines.length !== ctx.converter.lines.length)\n throw new ShikiError$1(`Number of lines in code element (${lines.length}) does not match the number of lines in the source (${ctx.converter.lines.length}). Failed to apply decorations.`);\n function applyLineSection(line, start, end, decoration) {\n const lineEl = lines[line];\n let text = \"\";\n let startIndex = -1;\n let endIndex = -1;\n if (start === 0)\n startIndex = 0;\n if (end === 0)\n endIndex = 0;\n if (end === Number.POSITIVE_INFINITY)\n endIndex = lineEl.children.length;\n if (startIndex === -1 || endIndex === -1) {\n for (let i = 0; i < lineEl.children.length; i++) {\n text += stringify(lineEl.children[i]);\n if (startIndex === -1 && text.length === start)\n startIndex = i + 1;\n if (endIndex === -1 && text.length === end)\n endIndex = i + 1;\n }\n }\n if (startIndex === -1)\n throw new ShikiError$1(`Failed to find start index for decoration ${JSON.stringify(decoration.start)}`);\n if (endIndex === -1)\n throw new ShikiError$1(`Failed to find end index for decoration ${JSON.stringify(decoration.end)}`);\n const children = lineEl.children.slice(startIndex, endIndex);\n if (!decoration.alwaysWrap && children.length === lineEl.children.length) {\n applyDecoration(lineEl, decoration, \"line\");\n } else if (!decoration.alwaysWrap && children.length === 1 && children[0].type === \"element\") {\n applyDecoration(children[0], decoration, \"token\");\n } else {\n const wrapper = {\n type: \"element\",\n tagName: \"span\",\n properties: {},\n children\n };\n applyDecoration(wrapper, decoration, \"wrapper\");\n lineEl.children.splice(startIndex, children.length, wrapper);\n }\n }\n function applyLine(line, decoration) {\n lines[line] = applyDecoration(lines[line], decoration, \"line\");\n }\n function applyDecoration(el, decoration, type) {\n const properties = decoration.properties || {};\n const transform = decoration.transform || ((i) => i);\n el.tagName = decoration.tagName || \"span\";\n el.properties = {\n ...el.properties,\n ...properties,\n class: el.properties.class\n };\n if (decoration.properties?.class)\n addClassToHast(el, decoration.properties.class);\n el = transform(el, type) || el;\n return el;\n }\n const lineApplies = [];\n const sorted = ctx.decorations.sort((a, b) => b.start.offset - a.start.offset || a.end.offset - b.end.offset);\n for (const decoration of sorted) {\n const { start, end } = decoration;\n if (start.line === end.line) {\n applyLineSection(start.line, start.character, end.character, decoration);\n } else if (start.line < end.line) {\n applyLineSection(start.line, start.character, Number.POSITIVE_INFINITY, decoration);\n for (let i = start.line + 1; i < end.line; i++)\n lineApplies.unshift(() => applyLine(i, decoration));\n applyLineSection(end.line, 0, end.character, decoration);\n }\n }\n lineApplies.forEach((i) => i());\n }\n };\n}\nfunction verifyIntersections(items) {\n for (let i = 0; i < items.length; i++) {\n const foo = items[i];\n if (foo.start.offset > foo.end.offset)\n throw new ShikiError$1(`Invalid decoration range: ${JSON.stringify(foo.start)} - ${JSON.stringify(foo.end)}`);\n for (let j = i + 1; j < items.length; j++) {\n const bar = items[j];\n const isFooHasBarStart = foo.start.offset <= bar.start.offset && bar.start.offset < foo.end.offset;\n const isFooHasBarEnd = foo.start.offset < bar.end.offset && bar.end.offset <= foo.end.offset;\n const isBarHasFooStart = bar.start.offset <= foo.start.offset && foo.start.offset < bar.end.offset;\n const isBarHasFooEnd = bar.start.offset < foo.end.offset && foo.end.offset <= bar.end.offset;\n if (isFooHasBarStart || isFooHasBarEnd || isBarHasFooStart || isBarHasFooEnd) {\n if (isFooHasBarStart && isFooHasBarEnd)\n continue;\n if (isBarHasFooStart && isBarHasFooEnd)\n continue;\n if (isBarHasFooStart && foo.start.offset === foo.end.offset)\n continue;\n if (isFooHasBarEnd && bar.start.offset === bar.end.offset)\n continue;\n throw new ShikiError$1(`Decorations ${JSON.stringify(foo.start)} and ${JSON.stringify(bar.start)} intersect.`);\n }\n }\n }\n}\nfunction stringify(el) {\n if (el.type === \"text\")\n return el.value;\n if (el.type === \"element\")\n return el.children.map(stringify).join(\"\");\n return \"\";\n}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations()\n];\nfunction getTransformers(options) {\n const transformers = sortTransformersByEnforcement(options.transformers || []);\n return [\n ...transformers.pre,\n ...transformers.normal,\n ...transformers.post,\n ...builtInTransformers\n ];\n}\nfunction sortTransformersByEnforcement(transformers) {\n const pre = [];\n const post = [];\n const normal = [];\n for (const transformer of transformers) {\n switch (transformer.enforce) {\n case \"pre\":\n pre.push(transformer);\n break;\n case \"post\":\n post.push(transformer);\n break;\n default:\n normal.push(transformer);\n }\n }\n return { pre, post, normal };\n}\n\n// src/colors.ts\nvar namedColors = [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"brightBlack\",\n \"brightRed\",\n \"brightGreen\",\n \"brightYellow\",\n \"brightBlue\",\n \"brightMagenta\",\n \"brightCyan\",\n \"brightWhite\"\n];\n\n// src/decorations.ts\nvar decorations = {\n 1: \"bold\",\n 2: \"dim\",\n 3: \"italic\",\n 4: \"underline\",\n 7: \"reverse\",\n 8: \"hidden\",\n 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B\", position);\n if (nextEscape !== -1) {\n if (value[nextEscape + 1] === \"[\") {\n const nextClose = value.indexOf(\"m\", nextEscape);\n if (nextClose !== -1) {\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n }\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence) {\n const colorMode = sequence.shift();\n if (colorMode === \"2\") {\n const rgb = sequence.splice(0, 3).map((x) => Number.parseInt(x));\n if (rgb.length !== 3 || rgb.some((x) => Number.isNaN(x)))\n return;\n return {\n type: \"rgb\",\n rgb\n };\n } else if (colorMode === \"5\") {\n const index = sequence.shift();\n if (index) {\n return { type: \"table\", index: Number(index) };\n }\n }\n}\nfunction parseSequence(sequence) {\n const commands = [];\n while (sequence.length > 0) {\n const code = sequence.shift();\n if (!code)\n continue;\n const codeInt = Number.parseInt(code);\n if (Number.isNaN(codeInt))\n continue;\n if (codeInt === 0) {\n commands.push({ type: \"resetAll\" });\n } else if (codeInt <= 9) {\n const decoration = decorations[codeInt];\n if (decoration) {\n commands.push({\n type: \"setDecoration\",\n value: decorations[codeInt]\n });\n }\n } else if (codeInt <= 29) {\n const decoration = decorations[codeInt - 20];\n if (decoration) {\n commands.push({\n type: \"resetDecoration\",\n value: decoration\n });\n if (decoration === \"dim\") {\n commands.push({\n type: \"resetDecoration\",\n value: \"bold\"\n });\n }\n }\n } else if (codeInt <= 37) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 30] }\n });\n } else if (codeInt === 38) {\n const color = parseColor(sequence);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n } else if (codeInt === 39) {\n commands.push({\n type: \"resetForegroundColor\"\n });\n } else if (codeInt <= 47) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 40] }\n });\n } else if (codeInt === 48) {\n const color = parseColor(sequence);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\n });\n } else if (codeInt === 53) {\n commands.push({\n type: \"setDecoration\",\n value: \"overline\"\n });\n } else if (codeInt === 55) {\n commands.push({\n type: \"resetDecoration\",\n value: \"overline\"\n });\n } else if (codeInt >= 90 && codeInt <= 97) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 90 + 8] }\n });\n } else if (codeInt >= 100 && codeInt <= 107) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 100 + 8] }\n });\n }\n }\n return commands;\n}\nfunction createAnsiSequenceParser() {\n let foreground = null;\n let background = null;\n let decorations2 = /* @__PURE__ */ new Set();\n return {\n parse(value) {\n const tokens = [];\n let position = 0;\n do {\n const findResult = findSequence(value, position);\n const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position);\n if (text.length > 0) {\n tokens.push({\n value: text,\n foreground,\n background,\n decorations: new Set(decorations2)\n });\n }\n if (findResult.sequence) {\n const commands = parseSequence(findResult.sequence);\n for (const styleToken of commands) {\n if (styleToken.type === \"resetAll\") {\n foreground = null;\n background = null;\n decorations2.clear();\n } else if (styleToken.type === \"resetForegroundColor\") {\n foreground = null;\n } else if (styleToken.type === \"resetBackgroundColor\") {\n background = null;\n } else if (styleToken.type === \"resetDecoration\") {\n decorations2.delete(styleToken.value);\n }\n }\n for (const styleToken of commands) {\n if (styleToken.type === \"setForegroundColor\") {\n foreground = styleToken.value;\n } else if (styleToken.type === \"setBackgroundColor\") {\n background = styleToken.value;\n } else if (styleToken.type === \"setDecoration\") {\n decorations2.add(styleToken.value);\n }\n }\n }\n position = findResult.position;\n } while (position < value.length);\n return tokens;\n }\n };\n}\n\n// src/palette.ts\nvar defaultNamedColorsMap = {\n black: \"#000000\",\n red: \"#bb0000\",\n green: \"#00bb00\",\n yellow: \"#bbbb00\",\n blue: \"#0000bb\",\n magenta: \"#ff00ff\",\n cyan: \"#00bbbb\",\n white: \"#eeeeee\",\n brightBlack: \"#555555\",\n brightRed: \"#ff5555\",\n brightGreen: \"#00ff00\",\n brightYellow: \"#ffff55\",\n brightBlue: \"#5555ff\",\n brightMagenta: \"#ff55ff\",\n brightCyan: \"#55ffff\",\n brightWhite: \"#ffffff\"\n};\nfunction createColorPalette(namedColorsMap = defaultNamedColorsMap) {\n function namedColor(name) {\n return namedColorsMap[name];\n }\n function rgbColor(rgb) {\n return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, \"0\")).join(\"\")}`;\n }\n let colorTable;\n function getColorTable() {\n if (colorTable) {\n return colorTable;\n }\n colorTable = [];\n for (let i = 0; i < namedColors.length; i++) {\n colorTable.push(namedColor(namedColors[i]));\n }\n let levels = [0, 95, 135, 175, 215, 255];\n for (let r = 0; r < 6; r++) {\n for (let g = 0; g < 6; g++) {\n for (let b = 0; b < 6; b++) {\n colorTable.push(rgbColor([levels[r], levels[g], levels[b]]));\n }\n }\n }\n let level = 8;\n for (let i = 0; i < 24; i++, level += 10) {\n colorTable.push(rgbColor([level, level, level]));\n }\n return colorTable;\n }\n function tableColor(index) {\n return getColorTable()[index];\n }\n function value(color) {\n switch (color.type) {\n case \"named\":\n return namedColor(color.name);\n case \"rgb\":\n return rgbColor(color.rgb);\n case \"table\":\n return tableColor(color.index);\n }\n }\n return {\n value\n };\n}\n\nfunction tokenizeAnsiWithTheme(theme, fileContents, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const lines = splitLines(fileContents);\n const colorPalette = createColorPalette(\n Object.fromEntries(\n namedColors.map((name) => [\n name,\n theme.colors?.[`terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`]\n ])\n )\n );\n const parser = createAnsiSequenceParser();\n return lines.map(\n (line) => parser.parse(line[0]).map((token) => {\n let color;\n let bgColor;\n if (token.decorations.has(\"reverse\")) {\n color = token.background ? colorPalette.value(token.background) : theme.bg;\n bgColor = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n } else {\n color = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n bgColor = token.background ? colorPalette.value(token.background) : void 0;\n }\n color = applyColorReplacements(color, colorReplacements);\n bgColor = applyColorReplacements(bgColor, colorReplacements);\n if (token.decorations.has(\"dim\"))\n color = dimColor(color);\n let fontStyle = FontStyle.None;\n if (token.decorations.has(\"bold\"))\n fontStyle |= FontStyle.Bold;\n if (token.decorations.has(\"italic\"))\n fontStyle |= FontStyle.Italic;\n if (token.decorations.has(\"underline\"))\n fontStyle |= FontStyle.Underline;\n if (token.decorations.has(\"strikethrough\"))\n fontStyle |= FontStyle.Strikethrough;\n return {\n content: token.value,\n offset: line[1],\n // TODO: more accurate offset? might need to fork ansi-sequence-parser\n color,\n bgColor,\n fontStyle\n };\n })\n );\n}\nfunction dimColor(color) {\n const hexMatch = color.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);\n if (hexMatch) {\n if (hexMatch[3]) {\n const alpha = Math.round(Number.parseInt(hexMatch[3], 16) / 2).toString(16).padStart(2, \"0\");\n return `#${hexMatch[1]}${hexMatch[2]}${alpha}`;\n } else if (hexMatch[2]) {\n return `#${hexMatch[1]}${hexMatch[2]}80`;\n } else {\n return `#${Array.from(hexMatch[1]).map((x) => `${x}${x}`).join(\"\")}80`;\n }\n }\n const cssVarMatch = color.match(/var\\((--[\\w-]+-ansi-[\\w-]+)\\)/);\n if (cssVarMatch)\n return `var(${cssVarMatch[1]}-dim)`;\n return color;\n}\n\nfunction codeToTokensBase(internal, code, options = {}) {\n const {\n lang = \"text\",\n theme: themeName = internal.getLoadedThemes()[0]\n } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n return splitLines(code).map((line) => [{ content: line[0], offset: line[1] }]);\n const { theme, colorMap } = internal.setTheme(themeName);\n if (lang === \"ansi\")\n return tokenizeAnsiWithTheme(theme, code, options);\n const _grammar = internal.getLanguage(lang);\n if (options.grammarState) {\n if (options.grammarState.lang !== _grammar.name) {\n throw new ShikiError$1(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n }\n if (!options.grammarState.themes.includes(theme.name)) {\n throw new ShikiError$1(`Grammar state themes \"${options.grammarState.themes}\" do not contain highlight theme \"${theme.name}\"`);\n }\n }\n return tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(...args) {\n if (args.length === 2) {\n return getLastGrammarStateFromMap(args[1]);\n }\n const [internal, code, options = {}] = args;\n const {\n lang = \"text\",\n theme: themeName = internal.getLoadedThemes()[0]\n } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n throw new ShikiError$1(\"Plain language does not have grammar state\");\n if (lang === \"ansi\")\n throw new ShikiError$1(\"ANSI language does not have grammar state\");\n const { theme, colorMap } = internal.setTheme(themeName);\n const _grammar = internal.getLanguage(lang);\n return new GrammarState(\n _tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack,\n _grammar.name,\n theme.name\n );\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const result = _tokenizeWithTheme(code, grammar, theme, colorMap, options);\n const grammarState = new GrammarState(\n _tokenizeWithTheme(code, grammar, theme, colorMap, options).stateStack,\n grammar.name,\n theme.name\n );\n setLastGrammarStateToMap(result.tokens, grammarState);\n return result.tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const {\n tokenizeMaxLineLength = 0,\n tokenizeTimeLimit = 500\n } = options;\n const lines = splitLines(code);\n let stateStack = options.grammarState ? getGrammarStack(options.grammarState, theme.name) ?? INITIAL : options.grammarContextCode != null ? _tokenizeWithTheme(\n options.grammarContextCode,\n grammar,\n theme,\n colorMap,\n {\n ...options,\n grammarState: void 0,\n grammarContextCode: void 0\n }\n ).stateStack : INITIAL;\n let actual = [];\n const final = [];\n for (let i = 0, len = lines.length; i < len; i++) {\n const [line, lineOffset] = lines[i];\n if (line === \"\") {\n actual = [];\n final.push([]);\n continue;\n }\n if (tokenizeMaxLineLength > 0 && line.length >= tokenizeMaxLineLength) {\n actual = [];\n final.push([{\n content: line,\n offset: lineOffset,\n color: \"\",\n fontStyle: 0\n }]);\n continue;\n }\n let resultWithScopes;\n let tokensWithScopes;\n let tokensWithScopesIndex;\n if (options.includeExplanation) {\n resultWithScopes = grammar.tokenizeLine(line, stateStack, tokenizeTimeLimit);\n tokensWithScopes = resultWithScopes.tokens;\n tokensWithScopesIndex = 0;\n }\n const result = grammar.tokenizeLine2(line, stateStack, tokenizeTimeLimit);\n const tokensLength = result.tokens.length / 2;\n for (let j = 0; j < tokensLength; j++) {\n const startIndex = result.tokens[2 * j];\n const nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length;\n if (startIndex === nextStartIndex)\n continue;\n const metadata = result.tokens[2 * j + 1];\n const color = applyColorReplacements(\n colorMap[EncodedTokenMetadata.getForeground(metadata)],\n colorReplacements\n );\n const fontStyle = EncodedTokenMetadata.getFontStyle(metadata);\n const token = {\n content: line.substring(startIndex, nextStartIndex),\n offset: lineOffset + startIndex,\n color,\n fontStyle\n };\n if (options.includeExplanation) {\n const themeSettingsSelectors = [];\n if (options.includeExplanation !== \"scopeName\") {\n for (const setting of theme.settings) {\n let selectors;\n switch (typeof setting.scope) {\n case \"string\":\n selectors = setting.scope.split(/,/).map((scope) => scope.trim());\n break;\n case \"object\":\n selectors = setting.scope;\n break;\n default:\n continue;\n }\n themeSettingsSelectors.push({\n settings: setting,\n selectors: selectors.map((selector) => selector.split(/ /))\n });\n }\n }\n token.explanation = [];\n let offset = 0;\n while (startIndex + offset < nextStartIndex) {\n const tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n const tokenWithScopesText = line.substring(\n tokenWithScopes.startIndex,\n tokenWithScopes.endIndex\n );\n offset += tokenWithScopesText.length;\n token.explanation.push({\n content: tokenWithScopesText,\n scopes: options.includeExplanation === \"scopeName\" ? explainThemeScopesNameOnly(\n tokenWithScopes.scopes\n ) : explainThemeScopesFull(\n themeSettingsSelectors,\n tokenWithScopes.scopes\n )\n });\n tokensWithScopesIndex += 1;\n }\n }\n actual.push(token);\n }\n final.push(actual);\n actual = [];\n stateStack = result.ruleStack;\n }\n return {\n tokens: final,\n stateStack\n };\n}\nfunction explainThemeScopesNameOnly(scopes) {\n return scopes.map((scope) => ({ scopeName: scope }));\n}\nfunction explainThemeScopesFull(themeSelectors, scopes) {\n const result = [];\n for (let i = 0, len = scopes.length; i < len; i++) {\n const scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(themeSelectors, scope, scopes.slice(0, i))\n };\n }\n return result;\n}\nfunction matchesOne(selector, scope) {\n return selector === scope || scope.substring(0, selector.length) === selector && scope[selector.length] === \".\";\n}\nfunction matches(selectors, scope, parentScopes) {\n if (!matchesOne(selectors[selectors.length - 1], scope))\n return false;\n let selectorParentIndex = selectors.length - 2;\n let parentIndex = parentScopes.length - 1;\n while (selectorParentIndex >= 0 && parentIndex >= 0) {\n if (matchesOne(selectors[selectorParentIndex], parentScopes[parentIndex]))\n selectorParentIndex -= 1;\n parentIndex -= 1;\n }\n if (selectorParentIndex === -1)\n return true;\n return false;\n}\nfunction explainThemeScope(themeSettingsSelectors, scope, parentScopes) {\n const result = [];\n for (const { selectors, settings } of themeSettingsSelectors) {\n for (const selectorPieces of selectors) {\n if (matches(selectorPieces, scope, parentScopes)) {\n result.push(settings);\n break;\n }\n }\n }\n return result;\n}\n\nfunction codeToTokensWithThemes(internal, code, options) {\n const themes = Object.entries(options.themes).filter((i) => i[1]).map((i) => ({ color: i[0], theme: i[1] }));\n const themedTokens = themes.map((t) => {\n const tokens2 = codeToTokensBase(internal, code, {\n ...options,\n theme: t.theme\n });\n const state = getLastGrammarStateFromMap(tokens2);\n const theme = typeof t.theme === \"string\" ? t.theme : t.theme.name;\n return {\n tokens: tokens2,\n state,\n theme\n };\n });\n const tokens = syncThemesTokenization(\n ...themedTokens.map((i) => i.tokens)\n );\n const mergedTokens = tokens[0].map(\n (line, lineIdx) => line.map((_token, tokenIdx) => {\n const mergedToken = {\n content: _token.content,\n variants: {},\n offset: _token.offset\n };\n if (\"includeExplanation\" in options && options.includeExplanation) {\n mergedToken.explanation = _token.explanation;\n }\n tokens.forEach((t, themeIdx) => {\n const {\n content: _,\n explanation: __,\n offset: ___,\n ...styles\n } = t[lineIdx][tokenIdx];\n mergedToken.variants[themes[themeIdx].color] = styles;\n });\n return mergedToken;\n })\n );\n const mergedGrammarState = themedTokens[0].state ? new GrammarState(\n Object.fromEntries(themedTokens.map((s) => [s.theme, s.state?.getInternalStack(s.theme)])),\n themedTokens[0].state.lang\n ) : void 0;\n if (mergedGrammarState)\n setLastGrammarStateToMap(mergedTokens, mergedGrammarState);\n return mergedTokens;\n}\nfunction syncThemesTokenization(...themes) {\n const outThemes = themes.map(() => []);\n const count = themes.length;\n for (let i = 0; i < themes[0].length; i++) {\n const lines = themes.map((t) => t[i]);\n const outLines = outThemes.map(() => []);\n outThemes.forEach((t, i2) => t.push(outLines[i2]));\n const indexes = lines.map(() => 0);\n const current = lines.map((l) => l[0]);\n while (current.every((t) => t)) {\n const minLength = Math.min(...current.map((t) => t.content.length));\n for (let n = 0; n < count; n++) {\n const token = current[n];\n if (token.content.length === minLength) {\n outLines[n].push(token);\n indexes[n] += 1;\n current[n] = lines[n][indexes[n]];\n } else {\n outLines[n].push({\n ...token,\n content: token.content.slice(0, minLength)\n });\n current[n] = {\n ...token,\n content: token.content.slice(minLength),\n offset: token.offset + minLength\n };\n }\n }\n }\n }\n return outThemes;\n}\n\nfunction codeToTokens(internal, code, options) {\n let bg;\n let fg;\n let tokens;\n let themeName;\n let rootStyle;\n let grammarState;\n if (\"themes\" in options) {\n const {\n defaultColor = \"light\",\n cssVariablePrefix = \"--shiki-\",\n colorsRendering = \"css-vars\"\n } = options;\n const themes = Object.entries(options.themes).filter((i) => i[1]).map((i) => ({ color: i[0], theme: i[1] })).sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n if (themes.length === 0)\n throw new ShikiError$1(\"`themes` option must not be empty\");\n const themeTokens = codeToTokensWithThemes(\n internal,\n code,\n options\n );\n grammarState = getLastGrammarStateFromMap(themeTokens);\n if (defaultColor && DEFAULT_COLOR_LIGHT_DARK !== defaultColor && !themes.find((t) => t.color === defaultColor))\n throw new ShikiError$1(`\\`themes\\` option must contain the defaultColor key \\`${defaultColor}\\``);\n const themeRegs = themes.map((t) => internal.getTheme(t.theme));\n const themesOrder = themes.map((t) => t.color);\n tokens = themeTokens.map((line) => line.map((token) => flatTokenVariants(token, themesOrder, cssVariablePrefix, defaultColor, colorsRendering)));\n if (grammarState)\n setLastGrammarStateToMap(tokens, grammarState);\n const themeColorReplacements = themes.map((t) => resolveColorReplacements(t.theme, options));\n fg = mapThemeColors(themes, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, \"fg\", colorsRendering);\n bg = mapThemeColors(themes, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, \"bg\", colorsRendering);\n themeName = `shiki-themes ${themeRegs.map((t) => t.name).join(\" \")}`;\n rootStyle = defaultColor ? void 0 : [fg, bg].join(\";\");\n } else if (\"theme\" in options) {\n const colorReplacements = resolveColorReplacements(options.theme, options);\n tokens = codeToTokensBase(\n internal,\n code,\n options\n );\n const _theme = internal.getTheme(options.theme);\n bg = applyColorReplacements(_theme.bg, colorReplacements);\n fg = applyColorReplacements(_theme.fg, colorReplacements);\n themeName = _theme.name;\n grammarState = getLastGrammarStateFromMap(tokens);\n } else {\n throw new ShikiError$1(\"Invalid options, either `theme` or `themes` must be provided\");\n }\n return {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n grammarState\n };\n}\nfunction mapThemeColors(themes, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, property, colorsRendering) {\n return themes.map((t, idx) => {\n const value = applyColorReplacements(themeRegs[idx][property], themeColorReplacements[idx]) || \"inherit\";\n const cssVar = `${cssVariablePrefix + t.color}${property === \"bg\" ? \"-bg\" : \"\"}:${value}`;\n if (idx === 0 && defaultColor) {\n if (defaultColor === DEFAULT_COLOR_LIGHT_DARK && themes.length > 1) {\n const lightIndex = themes.findIndex((t2) => t2.color === \"light\");\n const darkIndex = themes.findIndex((t2) => t2.color === \"dark\");\n if (lightIndex === -1 || darkIndex === -1)\n throw new ShikiError$1('When using `defaultColor: \"light-dark()\"`, you must provide both `light` and `dark` themes');\n const lightValue = applyColorReplacements(themeRegs[lightIndex][property], themeColorReplacements[lightIndex]) || \"inherit\";\n const darkValue = applyColorReplacements(themeRegs[darkIndex][property], themeColorReplacements[darkIndex]) || \"inherit\";\n return `light-dark(${lightValue}, ${darkValue});${cssVar}`;\n }\n return value;\n }\n if (colorsRendering === \"css-vars\") {\n return cssVar;\n }\n return null;\n }).filter((i) => !!i).join(\";\");\n}\n\nfunction codeToHast(internal, code, options, transformerContext = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options)\n}) {\n let input = code;\n for (const transformer of getTransformers(options))\n input = transformer.preprocess?.call(transformerContext, input, options) || input;\n let {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n grammarState\n } = codeToTokens(internal, input, options);\n const {\n mergeWhitespaces = true,\n mergeSameStyleTokens = false\n } = options;\n if (mergeWhitespaces === true)\n tokens = mergeWhitespaceTokens(tokens);\n else if (mergeWhitespaces === \"never\")\n tokens = splitWhitespaceTokens(tokens);\n if (mergeSameStyleTokens) {\n tokens = mergeAdjacentStyledTokens(tokens);\n }\n const contextSource = {\n ...transformerContext,\n get source() {\n return input;\n }\n };\n for (const transformer of getTransformers(options))\n tokens = transformer.tokens?.call(contextSource, tokens) || tokens;\n return tokensToHast(\n tokens,\n {\n ...options,\n fg,\n bg,\n themeName,\n rootStyle\n },\n contextSource,\n grammarState\n );\n}\nfunction tokensToHast(tokens, options, transformerContext, grammarState = getLastGrammarStateFromMap(tokens)) {\n const transformers = getTransformers(options);\n const lines = [];\n const root = {\n type: \"root\",\n children: []\n };\n const {\n structure = \"classic\",\n tabindex = \"0\"\n } = options;\n let preNode = {\n type: \"element\",\n tagName: \"pre\",\n properties: {\n class: `shiki ${options.themeName || \"\"}`,\n style: options.rootStyle || `background-color:${options.bg};color:${options.fg}`,\n ...tabindex !== false && tabindex != null ? {\n tabindex: tabindex.toString()\n } : {},\n ...Object.fromEntries(\n Array.from(\n Object.entries(options.meta || {})\n ).filter(([key]) => !key.startsWith(\"_\"))\n )\n },\n children: []\n };\n let codeNode = {\n type: \"element\",\n tagName: \"code\",\n properties: {},\n children: lines\n };\n const lineNodes = [];\n const context = {\n ...transformerContext,\n structure,\n addClassToHast,\n get source() {\n return transformerContext.source;\n },\n get tokens() {\n return tokens;\n },\n get options() {\n return options;\n },\n get root() {\n return root;\n },\n get pre() {\n return preNode;\n },\n get code() {\n return codeNode;\n },\n get lines() {\n return lineNodes;\n }\n };\n tokens.forEach((line, idx) => {\n if (idx) {\n if (structure === \"inline\")\n root.children.push({ type: \"element\", tagName: \"br\", properties: {}, children: [] });\n else if (structure === \"classic\")\n lines.push({ type: \"text\", value: \"\\n\" });\n }\n let lineNode = {\n type: \"element\",\n tagName: \"span\",\n properties: { class: \"line\" },\n children: []\n };\n let col = 0;\n for (const token of line) {\n let tokenNode = {\n type: \"element\",\n tagName: \"span\",\n properties: {\n ...token.htmlAttrs\n },\n children: [{ type: \"text\", value: token.content }]\n };\n const style = stringifyTokenStyle(token.htmlStyle || getTokenStyleObject(token));\n if (style)\n tokenNode.properties.style = style;\n for (const transformer of transformers)\n tokenNode = transformer?.span?.call(context, tokenNode, idx + 1, col, lineNode, token) || tokenNode;\n if (structure === \"inline\")\n root.children.push(tokenNode);\n else if (structure === \"classic\")\n lineNode.children.push(tokenNode);\n col += token.content.length;\n }\n if (structure === \"classic\") {\n for (const transformer of transformers)\n lineNode = transformer?.line?.call(context, lineNode, idx + 1) || lineNode;\n lineNodes.push(lineNode);\n lines.push(lineNode);\n }\n });\n if (structure === \"classic\") {\n for (const transformer of transformers)\n codeNode = transformer?.code?.call(context, codeNode) || codeNode;\n preNode.children.push(codeNode);\n for (const transformer of transformers)\n preNode = transformer?.pre?.call(context, preNode) || preNode;\n root.children.push(preNode);\n }\n let result = root;\n for (const transformer of transformers)\n result = transformer?.root?.call(context, result) || result;\n if (grammarState)\n setLastGrammarStateToMap(result, grammarState);\n return result;\n}\nfunction mergeWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n let carryOnContent = \"\";\n let firstOffset = 0;\n line.forEach((token, idx) => {\n const isDecorated = token.fontStyle && (token.fontStyle & FontStyle.Underline || token.fontStyle & FontStyle.Strikethrough);\n const couldMerge = !isDecorated;\n if (couldMerge && token.content.match(/^\\s+$/) && line[idx + 1]) {\n if (!firstOffset)\n firstOffset = token.offset;\n carryOnContent += token.content;\n } else {\n if (carryOnContent) {\n if (couldMerge) {\n newLine.push({\n ...token,\n offset: firstOffset,\n content: carryOnContent + token.content\n });\n } else {\n newLine.push(\n {\n content: carryOnContent,\n offset: firstOffset\n },\n token\n );\n }\n firstOffset = 0;\n carryOnContent = \"\";\n } else {\n newLine.push(token);\n }\n }\n });\n return newLine;\n });\n}\nfunction splitWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n return line.flatMap((token) => {\n if (token.content.match(/^\\s+$/))\n return token;\n const match = token.content.match(/^(\\s*)(.*?)(\\s*)$/);\n if (!match)\n return token;\n const [, leading, content, trailing] = match;\n if (!leading && !trailing)\n return token;\n const expanded = [{\n ...token,\n offset: token.offset + leading.length,\n content\n }];\n if (leading) {\n expanded.unshift({\n content: leading,\n offset: token.offset\n });\n }\n if (trailing) {\n expanded.push({\n content: trailing,\n offset: token.offset + leading.length + content.length\n });\n }\n return expanded;\n });\n });\n}\nfunction mergeAdjacentStyledTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n for (const token of line) {\n if (newLine.length === 0) {\n newLine.push({ ...token });\n continue;\n }\n const prevToken = newLine[newLine.length - 1];\n const prevStyle = stringifyTokenStyle(prevToken.htmlStyle || getTokenStyleObject(prevToken));\n const currentStyle = stringifyTokenStyle(token.htmlStyle || getTokenStyleObject(token));\n const isPrevDecorated = prevToken.fontStyle && (prevToken.fontStyle & FontStyle.Underline || prevToken.fontStyle & FontStyle.Strikethrough);\n const isDecorated = token.fontStyle && (token.fontStyle & FontStyle.Underline || token.fontStyle & FontStyle.Strikethrough);\n if (!isPrevDecorated && !isDecorated && prevStyle === currentStyle) {\n prevToken.content += token.content;\n } else {\n newLine.push({ ...token });\n }\n }\n return newLine;\n });\n}\n\nconst hastToHtml = toHtml;\nfunction codeToHtml(internal, code, options) {\n const context = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options)\n };\n let result = hastToHtml(codeToHast(internal, code, options, context));\n for (const transformer of getTransformers(options))\n result = transformer.postprocess?.call(context, result, options) || result;\n return result;\n}\n\nconst VSCODE_FALLBACK_EDITOR_FG = { light: \"#333333\", dark: \"#bbbbbb\" };\nconst VSCODE_FALLBACK_EDITOR_BG = { light: \"#fffffe\", dark: \"#1e1e1e\" };\nconst RESOLVED_KEY = \"__shiki_resolved\";\nfunction normalizeTheme(rawTheme) {\n if (rawTheme?.[RESOLVED_KEY])\n return rawTheme;\n const theme = {\n ...rawTheme\n };\n if (theme.tokenColors && !theme.settings) {\n theme.settings = theme.tokenColors;\n delete theme.tokenColors;\n }\n theme.type ||= \"dark\";\n theme.colorReplacements = { ...theme.colorReplacements };\n theme.settings ||= [];\n let { bg, fg } = theme;\n if (!bg || !fg) {\n const globalSetting = theme.settings ? theme.settings.find((s) => !s.name && !s.scope) : void 0;\n if (globalSetting?.settings?.foreground)\n fg = globalSetting.settings.foreground;\n if (globalSetting?.settings?.background)\n bg = globalSetting.settings.background;\n if (!fg && theme?.colors?.[\"editor.foreground\"])\n fg = theme.colors[\"editor.foreground\"];\n if (!bg && theme?.colors?.[\"editor.background\"])\n bg = theme.colors[\"editor.background\"];\n if (!fg)\n fg = theme.type === \"light\" ? VSCODE_FALLBACK_EDITOR_FG.light : VSCODE_FALLBACK_EDITOR_FG.dark;\n if (!bg)\n bg = theme.type === \"light\" ? VSCODE_FALLBACK_EDITOR_BG.light : VSCODE_FALLBACK_EDITOR_BG.dark;\n theme.fg = fg;\n theme.bg = bg;\n }\n if (!(theme.settings[0] && theme.settings[0].settings && !theme.settings[0].scope)) {\n theme.settings.unshift({\n settings: {\n foreground: theme.fg,\n background: theme.bg\n }\n });\n }\n let replacementCount = 0;\n const replacementMap = /* @__PURE__ */ new Map();\n function getReplacementColor(value) {\n if (replacementMap.has(value))\n return replacementMap.get(value);\n replacementCount += 1;\n const hex = `#${replacementCount.toString(16).padStart(8, \"0\").toLowerCase()}`;\n if (theme.colorReplacements?.[`#${hex}`])\n return getReplacementColor(value);\n replacementMap.set(value, hex);\n return hex;\n }\n theme.settings = theme.settings.map((setting) => {\n const replaceFg = setting.settings?.foreground && !setting.settings.foreground.startsWith(\"#\");\n const replaceBg = setting.settings?.background && !setting.settings.background.startsWith(\"#\");\n if (!replaceFg && !replaceBg)\n return setting;\n const clone = {\n ...setting,\n settings: {\n ...setting.settings\n }\n };\n if (replaceFg) {\n const replacement = getReplacementColor(setting.settings.foreground);\n theme.colorReplacements[replacement] = setting.settings.foreground;\n clone.settings.foreground = replacement;\n }\n if (replaceBg) {\n const replacement = getReplacementColor(setting.settings.background);\n theme.colorReplacements[replacement] = setting.settings.background;\n clone.settings.background = replacement;\n }\n return clone;\n });\n for (const key of Object.keys(theme.colors || {})) {\n if (key === \"editor.foreground\" || key === \"editor.background\" || key.startsWith(\"terminal.ansi\")) {\n if (!theme.colors[key]?.startsWith(\"#\")) {\n const replacement = getReplacementColor(theme.colors[key]);\n theme.colorReplacements[replacement] = theme.colors[key];\n theme.colors[key] = replacement;\n }\n }\n }\n Object.defineProperty(theme, RESOLVED_KEY, {\n enumerable: false,\n writable: false,\n value: true\n });\n return theme;\n}\n\nasync function resolveLangs(langs) {\n return Array.from(new Set((await Promise.all(\n langs.filter((l) => !isSpecialLang(l)).map(async (lang) => await normalizeGetter(lang).then((r) => Array.isArray(r) ? r : [r]))\n )).flat()));\n}\nasync function resolveThemes(themes) {\n const resolved = await Promise.all(\n themes.map(\n async (theme) => isSpecialTheme(theme) ? null : normalizeTheme(await normalizeGetter(theme))\n )\n );\n return resolved.filter((i) => !!i);\n}\n\nlet _emitDeprecation = 3;\nlet _emitError = false;\nfunction enableDeprecationWarnings(emitDeprecation = true, emitError = false) {\n _emitDeprecation = emitDeprecation;\n _emitError = emitError;\n}\nfunction warnDeprecated(message, version = 3) {\n if (!_emitDeprecation)\n return;\n if (typeof _emitDeprecation === \"number\" && version > _emitDeprecation)\n return;\n if (_emitError) {\n throw new Error(`[SHIKI DEPRECATE]: ${message}`);\n } else {\n console.trace(`[SHIKI DEPRECATE]: ${message}`);\n }\n}\n\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ShikiError\";\n }\n}\n\nclass Registry extends Registry$1 {\n constructor(_resolver, _themes, _langs, _alias = {}) {\n super(_resolver);\n this._resolver = _resolver;\n this._themes = _themes;\n this._langs = _langs;\n this._alias = _alias;\n this._themes.map((t) => this.loadTheme(t));\n this.loadLanguages(this._langs);\n }\n _resolvedThemes = /* @__PURE__ */ new Map();\n _resolvedGrammars = /* @__PURE__ */ new Map();\n _langMap = /* @__PURE__ */ new Map();\n _langGraph = /* @__PURE__ */ new Map();\n _textmateThemeCache = /* @__PURE__ */ new WeakMap();\n _loadedThemesCache = null;\n _loadedLanguagesCache = null;\n getTheme(theme) {\n if (typeof theme === \"string\")\n return this._resolvedThemes.get(theme);\n else\n return this.loadTheme(theme);\n }\n loadTheme(theme) {\n const _theme = normalizeTheme(theme);\n if (_theme.name) {\n this._resolvedThemes.set(_theme.name, _theme);\n this._loadedThemesCache = null;\n }\n return _theme;\n }\n getLoadedThemes() {\n if (!this._loadedThemesCache)\n this._loadedThemesCache = [...this._resolvedThemes.keys()];\n return this._loadedThemesCache;\n }\n // Override and re-implement this method to cache the textmate themes as `TextMateTheme.createFromRawTheme`\n // is expensive. Themes can switch often especially for dual-theme support.\n //\n // The parent class also accepts `colorMap` as the second parameter, but since we don't use that,\n // we omit here so it's easier to cache the themes.\n setTheme(theme) {\n let textmateTheme = this._textmateThemeCache.get(theme);\n if (!textmateTheme) {\n textmateTheme = Theme.createFromRawTheme(theme);\n this._textmateThemeCache.set(theme, textmateTheme);\n }\n this._syncRegistry.setTheme(textmateTheme);\n }\n getGrammar(name) {\n if (this._alias[name]) {\n const resolved = /* @__PURE__ */ new Set([name]);\n while (this._alias[name]) {\n name = this._alias[name];\n if (resolved.has(name))\n throw new ShikiError(`Circular alias \\`${Array.from(resolved).join(\" -> \")} -> ${name}\\``);\n resolved.add(name);\n }\n }\n return this._resolvedGrammars.get(name);\n }\n loadLanguage(lang) {\n if (this.getGrammar(lang.name))\n return;\n const embeddedLazilyBy = new Set(\n [...this._langMap.values()].filter((i) => i.embeddedLangsLazy?.includes(lang.name))\n );\n this._resolver.addLanguage(lang);\n const grammarConfig = {\n balancedBracketSelectors: lang.balancedBracketSelectors || [\"*\"],\n unbalancedBracketSelectors: lang.unbalancedBracketSelectors || []\n };\n this._syncRegistry._rawGrammars.set(lang.scopeName, lang);\n const g = this.loadGrammarWithConfiguration(lang.scopeName, 1, grammarConfig);\n g.name = lang.name;\n this._resolvedGrammars.set(lang.name, g);\n if (lang.aliases) {\n lang.aliases.forEach((alias) => {\n this._alias[alias] = lang.name;\n });\n }\n this._loadedLanguagesCache = null;\n if (embeddedLazilyBy.size) {\n for (const e of embeddedLazilyBy) {\n this._resolvedGrammars.delete(e.name);\n this._loadedLanguagesCache = null;\n this._syncRegistry?._injectionGrammars?.delete(e.scopeName);\n this._syncRegistry?._grammars?.delete(e.scopeName);\n this.loadLanguage(this._langMap.get(e.name));\n }\n }\n }\n dispose() {\n super.dispose();\n this._resolvedThemes.clear();\n this._resolvedGrammars.clear();\n this._langMap.clear();\n this._langGraph.clear();\n this._loadedThemesCache = null;\n }\n loadLanguages(langs) {\n for (const lang of langs)\n this.resolveEmbeddedLanguages(lang);\n const langsGraphArray = Array.from(this._langGraph.entries());\n const missingLangs = langsGraphArray.filter(([_, lang]) => !lang);\n if (missingLangs.length) {\n const dependents = langsGraphArray.filter(([_, lang]) => lang && lang.embeddedLangs?.some((l) => missingLangs.map(([name]) => name).includes(l))).filter((lang) => !missingLangs.includes(lang));\n throw new ShikiError(`Missing languages ${missingLangs.map(([name]) => `\\`${name}\\``).join(\", \")}, required by ${dependents.map(([name]) => `\\`${name}\\``).join(\", \")}`);\n }\n for (const [_, lang] of langsGraphArray)\n this._resolver.addLanguage(lang);\n for (const [_, lang] of langsGraphArray)\n this.loadLanguage(lang);\n }\n getLoadedLanguages() {\n if (!this._loadedLanguagesCache) {\n this._loadedLanguagesCache = [\n .../* @__PURE__ */ new Set([...this._resolvedGrammars.keys(), ...Object.keys(this._alias)])\n ];\n }\n return this._loadedLanguagesCache;\n }\n resolveEmbeddedLanguages(lang) {\n this._langMap.set(lang.name, lang);\n this._langGraph.set(lang.name, lang);\n if (lang.embeddedLangs) {\n for (const embeddedLang of lang.embeddedLangs)\n this._langGraph.set(embeddedLang, this._langMap.get(embeddedLang));\n }\n }\n}\n\nclass Resolver {\n _langs = /* @__PURE__ */ new Map();\n _scopeToLang = /* @__PURE__ */ new Map();\n _injections = /* @__PURE__ */ new Map();\n _onigLib;\n constructor(engine, langs) {\n this._onigLib = {\n createOnigScanner: (patterns) => engine.createScanner(patterns),\n createOnigString: (s) => engine.createString(s)\n };\n langs.forEach((i) => this.addLanguage(i));\n }\n get onigLib() {\n return this._onigLib;\n }\n getLangRegistration(langIdOrAlias) {\n return this._langs.get(langIdOrAlias);\n }\n loadGrammar(scopeName) {\n return this._scopeToLang.get(scopeName);\n }\n addLanguage(l) {\n this._langs.set(l.name, l);\n if (l.aliases) {\n l.aliases.forEach((a) => {\n this._langs.set(a, l);\n });\n }\n this._scopeToLang.set(l.scopeName, l);\n if (l.injectTo) {\n l.injectTo.forEach((i) => {\n if (!this._injections.get(i))\n this._injections.set(i, []);\n this._injections.get(i).push(l.scopeName);\n });\n }\n }\n getInjections(scopeName) {\n const scopeParts = scopeName.split(\".\");\n let injections = [];\n for (let i = 1; i <= scopeParts.length; i++) {\n const subScopeName = scopeParts.slice(0, i).join(\".\");\n injections = [...injections, ...this._injections.get(subScopeName) || []];\n }\n return injections;\n }\n}\n\nlet instancesCount = 0;\nfunction createShikiInternalSync(options) {\n instancesCount += 1;\n if (options.warnings !== false && instancesCount >= 10 && instancesCount % 10 === 0)\n console.warn(`[Shiki] ${instancesCount} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \\`highlighter.dispose()\\` to release unused instances.`);\n let isDisposed = false;\n if (!options.engine)\n throw new ShikiError(\"`engine` option is required for synchronous mode\");\n const langs = (options.langs || []).flat(1);\n const themes = (options.themes || []).flat(1).map(normalizeTheme);\n const resolver = new Resolver(options.engine, langs);\n const _registry = new Registry(resolver, themes, langs, options.langAlias);\n let _lastTheme;\n function getLanguage(name) {\n ensureNotDisposed();\n const _lang = _registry.getGrammar(typeof name === \"string\" ? name : name.name);\n if (!_lang)\n throw new ShikiError(`Language \\`${name}\\` not found, you may need to load it first`);\n return _lang;\n }\n function getTheme(name) {\n if (name === \"none\")\n return { bg: \"\", fg: \"\", name: \"none\", settings: [], type: \"dark\" };\n ensureNotDisposed();\n const _theme = _registry.getTheme(name);\n if (!_theme)\n throw new ShikiError(`Theme \\`${name}\\` not found, you may need to load it first`);\n return _theme;\n }\n function setTheme(name) {\n ensureNotDisposed();\n const theme = getTheme(name);\n if (_lastTheme !== name) {\n _registry.setTheme(theme);\n _lastTheme = name;\n }\n const colorMap = _registry.getColorMap();\n return {\n theme,\n colorMap\n };\n }\n function getLoadedThemes() {\n ensureNotDisposed();\n return _registry.getLoadedThemes();\n }\n function getLoadedLanguages() {\n ensureNotDisposed();\n return _registry.getLoadedLanguages();\n }\n function loadLanguageSync(...langs2) {\n ensureNotDisposed();\n _registry.loadLanguages(langs2.flat(1));\n }\n async function loadLanguage(...langs2) {\n return loadLanguageSync(await resolveLangs(langs2));\n }\n function loadThemeSync(...themes2) {\n ensureNotDisposed();\n for (const theme of themes2.flat(1)) {\n _registry.loadTheme(theme);\n }\n }\n async function loadTheme(...themes2) {\n ensureNotDisposed();\n return loadThemeSync(await resolveThemes(themes2));\n }\n function ensureNotDisposed() {\n if (isDisposed)\n throw new ShikiError(\"Shiki instance has been disposed\");\n }\n function dispose() {\n if (isDisposed)\n return;\n isDisposed = true;\n _registry.dispose();\n instancesCount -= 1;\n }\n return {\n setTheme,\n getTheme,\n getLanguage,\n getLoadedThemes,\n getLoadedLanguages,\n loadLanguage,\n loadLanguageSync,\n loadTheme,\n loadThemeSync,\n dispose,\n [Symbol.dispose]: dispose\n };\n}\n\nasync function createShikiInternal(options) {\n if (!options.engine) {\n warnDeprecated(\"`engine` option is required. Use `createOnigurumaEngine` or `createJavaScriptRegexEngine` to create an engine.\");\n }\n const [\n themes,\n langs,\n engine\n ] = await Promise.all([\n resolveThemes(options.themes || []),\n resolveLangs(options.langs || []),\n options.engine\n ]);\n return createShikiInternalSync({\n ...options,\n themes,\n langs,\n engine\n });\n}\n\nasync function createHighlighterCore(options) {\n const internal = await createShikiInternal(options);\n return {\n getLastGrammarState: (...args) => getLastGrammarState(internal, ...args),\n codeToTokensBase: (code, options2) => codeToTokensBase(internal, code, options2),\n codeToTokensWithThemes: (code, options2) => codeToTokensWithThemes(internal, code, options2),\n codeToTokens: (code, options2) => codeToTokens(internal, code, options2),\n codeToHast: (code, options2) => codeToHast(internal, code, options2),\n codeToHtml: (code, options2) => codeToHtml(internal, code, options2),\n getBundledLanguages: () => ({}),\n getBundledThemes: () => ({}),\n ...internal,\n getInternalContext: () => internal\n };\n}\nfunction createHighlighterCoreSync(options) {\n const internal = createShikiInternalSync(options);\n return {\n getLastGrammarState: (...args) => getLastGrammarState(internal, ...args),\n codeToTokensBase: (code, options2) => codeToTokensBase(internal, code, options2),\n codeToTokensWithThemes: (code, options2) => codeToTokensWithThemes(internal, code, options2),\n codeToTokens: (code, options2) => codeToTokens(internal, code, options2),\n codeToHast: (code, options2) => codeToHast(internal, code, options2),\n codeToHtml: (code, options2) => codeToHtml(internal, code, options2),\n getBundledLanguages: () => ({}),\n getBundledThemes: () => ({}),\n ...internal,\n getInternalContext: () => internal\n };\n}\nfunction makeSingletonHighlighterCore(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighterCore2(options) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || []\n });\n return _shiki;\n } else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...options.themes || []),\n s.loadLanguage(...options.langs || [])\n ]);\n return s;\n }\n }\n return getSingletonHighlighterCore2;\n}\nconst getSingletonHighlighterCore = /* @__PURE__ */ makeSingletonHighlighterCore(createHighlighterCore);\n\nfunction createdBundledHighlighter(options) {\n const bundledLanguages = options.langs;\n const bundledThemes = options.themes;\n const engine = options.engine;\n async function createHighlighter(options2) {\n function resolveLang(lang) {\n if (typeof lang === \"string\") {\n if (isSpecialLang(lang))\n return [];\n lang = options2.langAlias?.[lang] || lang;\n const bundle = bundledLanguages[lang];\n if (!bundle)\n throw new ShikiError$1(`Language \\`${lang}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return lang;\n }\n function resolveTheme(theme) {\n if (isSpecialTheme(theme))\n return \"none\";\n if (typeof theme === \"string\") {\n const bundle = bundledThemes[theme];\n if (!bundle)\n throw new ShikiError$1(`Theme \\`${theme}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return theme;\n }\n const _themes = (options2.themes ?? []).map((i) => resolveTheme(i));\n const langs = (options2.langs ?? []).map((i) => resolveLang(i));\n const core = await createHighlighterCore({\n engine: options2.engine ?? engine(),\n ...options2,\n themes: _themes,\n langs\n });\n return {\n ...core,\n loadLanguage(...langs2) {\n return core.loadLanguage(...langs2.map(resolveLang));\n },\n loadTheme(...themes) {\n return core.loadTheme(...themes.map(resolveTheme));\n },\n getBundledLanguages() {\n return bundledLanguages;\n },\n getBundledThemes() {\n return bundledThemes;\n }\n };\n }\n return createHighlighter;\n}\nfunction makeSingletonHighlighter(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighter(options = {}) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || []\n });\n return _shiki;\n } else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...options.themes || []),\n s.loadLanguage(...options.langs || [])\n ]);\n return s;\n }\n }\n return getSingletonHighlighter;\n}\nfunction createSingletonShorthands(createHighlighter, config) {\n const getSingletonHighlighter = makeSingletonHighlighter(createHighlighter);\n async function get(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: \"theme\" in options ? [options.theme] : Object.values(options.themes)\n });\n const langs = await config?.guessEmbeddedLanguages?.(code, options.lang, shiki);\n if (langs) {\n await shiki.loadLanguage(...langs);\n }\n return shiki;\n }\n return {\n getSingletonHighlighter(options) {\n return getSingletonHighlighter(options);\n },\n async codeToHtml(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToHtml(code, options);\n },\n async codeToHast(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToHast(code, options);\n },\n async codeToTokens(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToTokens(code, options);\n },\n async codeToTokensBase(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToTokensBase(code, options);\n },\n async codeToTokensWithThemes(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToTokensWithThemes(code, options);\n },\n async getLastGrammarState(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: [options.theme]\n });\n return shiki.getLastGrammarState(code, options);\n }\n };\n}\n\nfunction createCssVariablesTheme(options = {}) {\n const {\n name = \"css-variables\",\n variablePrefix = \"--shiki-\",\n fontStyle = true\n } = options;\n const variable = (name2) => {\n if (options.variableDefaults?.[name2])\n return `var(${variablePrefix}${name2}, ${options.variableDefaults[name2]})`;\n return `var(${variablePrefix}${name2})`;\n };\n const theme = {\n name,\n type: \"dark\",\n colors: {\n \"editor.foreground\": variable(\"foreground\"),\n \"editor.background\": variable(\"background\"),\n \"terminal.ansiBlack\": variable(\"ansi-black\"),\n \"terminal.ansiRed\": variable(\"ansi-red\"),\n \"terminal.ansiGreen\": variable(\"ansi-green\"),\n \"terminal.ansiYellow\": variable(\"ansi-yellow\"),\n \"terminal.ansiBlue\": variable(\"ansi-blue\"),\n \"terminal.ansiMagenta\": variable(\"ansi-magenta\"),\n \"terminal.ansiCyan\": variable(\"ansi-cyan\"),\n \"terminal.ansiWhite\": variable(\"ansi-white\"),\n \"terminal.ansiBrightBlack\": variable(\"ansi-bright-black\"),\n \"terminal.ansiBrightRed\": variable(\"ansi-bright-red\"),\n \"terminal.ansiBrightGreen\": variable(\"ansi-bright-green\"),\n \"terminal.ansiBrightYellow\": variable(\"ansi-bright-yellow\"),\n \"terminal.ansiBrightBlue\": variable(\"ansi-bright-blue\"),\n \"terminal.ansiBrightMagenta\": variable(\"ansi-bright-magenta\"),\n \"terminal.ansiBrightCyan\": variable(\"ansi-bright-cyan\"),\n \"terminal.ansiBrightWhite\": variable(\"ansi-bright-white\")\n },\n tokenColors: [\n {\n scope: [\n \"keyword.operator.accessor\",\n \"meta.group.braces.round.function.arguments\",\n \"meta.template.expression\",\n \"markup.fenced_code meta.embedded.block\"\n ],\n settings: {\n foreground: variable(\"foreground\")\n }\n },\n {\n scope: \"emphasis\",\n settings: {\n fontStyle: \"italic\"\n }\n },\n {\n scope: [\"strong\", \"markup.heading.markdown\", \"markup.bold.markdown\"],\n settings: {\n fontStyle: \"bold\"\n }\n },\n {\n scope: [\"markup.italic.markdown\"],\n settings: {\n fontStyle: \"italic\"\n }\n },\n {\n scope: \"meta.link.inline.markdown\",\n settings: {\n fontStyle: \"underline\",\n foreground: variable(\"token-link\")\n }\n },\n {\n scope: [\"string\", \"markup.fenced_code\", \"markup.inline\"],\n settings: {\n foreground: variable(\"token-string\")\n }\n },\n {\n scope: [\"comment\", \"string.quoted.docstring.multi\"],\n settings: {\n foreground: variable(\"token-comment\")\n }\n },\n {\n scope: [\n \"constant.numeric\",\n \"constant.language\",\n \"constant.other.placeholder\",\n \"constant.character.format.placeholder\",\n \"variable.language.this\",\n \"variable.other.object\",\n \"variable.other.class\",\n \"variable.other.constant\",\n \"meta.property-name\",\n \"meta.property-value\",\n \"support\"\n ],\n settings: {\n foreground: variable(\"token-constant\")\n }\n },\n {\n scope: [\n \"keyword\",\n \"storage.modifier\",\n \"storage.type\",\n \"storage.control.clojure\",\n \"entity.name.function.clojure\",\n \"entity.name.tag.yaml\",\n \"support.function.node\",\n \"support.type.property-name.json\",\n \"punctuation.separator.key-value\",\n \"punctuation.definition.template-expression\"\n ],\n settings: {\n foreground: variable(\"token-keyword\")\n }\n },\n {\n scope: \"variable.parameter.function\",\n settings: {\n foreground: variable(\"token-parameter\")\n }\n },\n {\n scope: [\n \"support.function\",\n \"entity.name.type\",\n \"entity.other.inherited-class\",\n \"meta.function-call\",\n \"meta.instance.constructor\",\n \"entity.other.attribute-name\",\n \"entity.name.function\",\n \"constant.keyword.clojure\"\n ],\n settings: {\n foreground: variable(\"token-function\")\n }\n },\n {\n scope: [\n \"entity.name.tag\",\n \"string.quoted\",\n \"string.regexp\",\n \"string.interpolated\",\n \"string.template\",\n \"string.unquoted.plain.out.yaml\",\n \"keyword.other.template\"\n ],\n settings: {\n foreground: variable(\"token-string-expression\")\n }\n },\n {\n scope: [\n \"punctuation.definition.arguments\",\n \"punctuation.definition.dict\",\n \"punctuation.separator\",\n \"meta.function-call.arguments\"\n ],\n settings: {\n foreground: variable(\"token-punctuation\")\n }\n },\n {\n // [Custom] Markdown links\n scope: [\n \"markup.underline.link\",\n \"punctuation.definition.metadata.markdown\"\n ],\n settings: {\n foreground: variable(\"token-link\")\n }\n },\n {\n // [Custom] Markdown list\n scope: [\"beginning.punctuation.definition.list.markdown\"],\n settings: {\n foreground: variable(\"token-string\")\n }\n },\n {\n // [Custom] Markdown punctuation definition brackets\n scope: [\n \"punctuation.definition.string.begin.markdown\",\n \"punctuation.definition.string.end.markdown\",\n \"string.other.link.title.markdown\",\n \"string.other.link.description.markdown\"\n ],\n settings: {\n foreground: variable(\"token-keyword\")\n }\n },\n {\n // [Custom] Diff\n scope: [\n \"markup.inserted\",\n \"meta.diff.header.to-file\",\n \"punctuation.definition.inserted\"\n ],\n settings: {\n foreground: variable(\"token-inserted\")\n }\n },\n {\n scope: [\n \"markup.deleted\",\n \"meta.diff.header.from-file\",\n \"punctuation.definition.deleted\"\n ],\n settings: {\n foreground: variable(\"token-deleted\")\n }\n },\n {\n scope: [\n \"markup.changed\",\n \"punctuation.definition.changed\"\n ],\n settings: {\n foreground: variable(\"token-changed\")\n }\n }\n ]\n };\n if (!fontStyle) {\n theme.tokenColors = theme.tokenColors?.map((tokenColor) => {\n if (tokenColor.settings?.fontStyle)\n delete tokenColor.settings.fontStyle;\n return tokenColor;\n });\n }\n return theme;\n}\n\nexport { addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createCssVariablesTheme, createHighlighterCore, createHighlighterCoreSync, createPositionConverter, createShikiInternal, createShikiInternalSync, createSingletonShorthands, createdBundledHighlighter, enableDeprecationWarnings, flatTokenVariants, getSingletonHighlighterCore, getTokenStyleObject, guessEmbeddedLanguages, hastToHtml, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, makeSingletonHighlighter, makeSingletonHighlighterCore, normalizeGetter, normalizeTheme, resolveColorReplacements, splitLines, splitToken, splitTokens, stringifyTokenStyle, toArray, tokenizeAnsiWithTheme, tokenizeWithTheme, tokensToHast, transformerDecorations, warnDeprecated };\n","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @import {Nodes, Parents} from 'hast'\n */\n\n/**\n * Get the plain-text value of a hast node.\n *\n * @param {Nodes} node\n * Node to serialize.\n * @returns {string}\n * Serialized node.\n */\nexport function toString(node) {\n // “The concatenation of data of all the Text node descendants of the context\n // object, in tree order.”\n if ('children' in node) {\n return all(node)\n }\n\n // “Context object’s data.”\n return 'value' in node ? node.value : ''\n}\n\n/**\n * @param {Nodes} node\n * Node.\n * @returns {string}\n * Serialized node.\n */\nfunction one(node) {\n if (node.type === 'text') {\n return node.value\n }\n\n return 'children' in node ? all(node) : ''\n}\n\n/**\n * @param {Parents} node\n * Node.\n * @returns {string}\n * Serialized node.\n */\nfunction all(node) {\n let index = -1\n /** @type {Array<string>} */\n const result = []\n\n while (++index < node.children.length) {\n result[index] = one(node.children[index])\n }\n\n return result.join('')\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inline_style_parser_1 = __importDefault(require(\"inline-style-parser\"));\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nfunction StyleToObject(style, iterator) {\n var styleObject = null;\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n var declarations = (0, inline_style_parser_1.default)(style);\n var hasIterator = typeof iterator === 'function';\n declarations.forEach(function (declaration) {\n if (declaration.type !== 'declaration') {\n return;\n }\n var property = declaration.property, value = declaration.value;\n if (hasIterator) {\n iterator(property, value, declaration);\n }\n else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n return styleObject;\n}\nexports.default = StyleToObject;\n//# sourceMappingURL=index.js.map","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldSet2(s, a, r) {\n return s.set(assertClassBrand(s, a), r), r;\n}"],"names":["stringify","values","join","trim","toPropertyKey","t","i","e","Symbol","toPrimitive","call","r","TypeError","String","_assertClassBrand","n","has","arguments","length","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","str","replace","module","exports","style","options","lineno","column","updatePosition","lines","match","lastIndexOf","position","start","line","node","Position","whitespace","this","end","source","prototype","content","errorsList","error","msg","err","Error","reason","filename","silent","push","re","m","exec","slice","comments","rules","c","comment","pos","charAt","type","declaration","prop","val","ret","property","value","decl","decls","declarations","_typeof","o","iterator","constructor","_checkInRHS","Object","ShikiError","message","super","name","_emscripten_get_now","performance","now","Date","alignUp","x","multiple","__defProp","defineProperty","__publicField","obj","key","enumerable","configurable","writable","__defNormalProp","onigBinding","UtfString","utf16Length","utf8Length","_utf8ByteLength","computeIndicesMapping","utf16OffsetToUtf8","Uint32Array","utf8OffsetToUtf16","utf8Value","Uint8Array","i8","i16","charCode","charCodeAt","codePoint","wasSurrogatePair","nextCharCode","utf16Value","result","len","codepoint","createString","onigBinding2","omalloc","HEAPU8","set","_OnigString","LAST_ID","_onigBinding","utfString","_sharedPtrInUse","_sharedPtr","ptr","convertUtf8OffsetToUtf16","utf8Offset","convertUtf16OffsetToUtf8","utf16Offset","dispose","ofree","initPromise","OnigString","OnigScanner","patterns","strPtrsArr","strLenArr","strPtrsPtr","HEAPU32","strLenPtr","scannerPtr","createOnigScanner","UTF8ToString","getLastOnigError","throwLastOnigError","_ptr","freeOnigScanner","findNextMatchSync","string","startPosition","arg","_findNextMatchSync","debugCall","resultPtr","findNextOnigScannerMatch","id","offset","index","count","captureIndices","beg","loadWasm","async","init","wasmMemory","buffer","binding","updateGlobalBufferAndViews","buf","emscripten_realloc_buffer","size","grow","byteLength","UTF8Decoder","TextDecoder","maxBytesToRead","heapOrArray","idx","endIdx","endPtr","decode","subarray","u0","fromCharCode","u1","u2","ch","UTF8ArrayToString","asmLibraryArg","emscripten_get_now","emscripten_memcpy_big","dest","src","num","copyWithin","emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","cutDown","overGrownHeapSize","Math","min","max","fd_write","info","env","wasi_snapshot_preview1","memory","assign","createWasm","main","instance","data","instantiator","default","dataOrOptions","isDataOptionsObject","Response","isResponse","WebAssembly","instantiateStreaming","importObject","arrayBuffer","instantiate","_makeResponseNonStreamingLoader","ArrayBuffer","isView","Buffer","isBuffer","SharedArrayBuffer","isArrayBuffer","Module","_makeArrayBufferLoader","_load","createOnigurumaEngine","createScanner","map","p","s","settings","padRight","padLeft","cssWithMappingToString","list","toString","item","needLayer","concat","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","freeze","JSON","parse","nameRe","nameReJsx","emptyOptions","jsx","test","Schema","normal","space","merge","definitions","normalize","toLowerCase","Info","attribute","boolean","booleanish","overloadedBoolean","number","commaSeparated","spaceSeparated","commaOrSpaceSeparated","mustUseProperty","defined","powers","increment","checks","keys","DefinedInfo","mask","mark","check","own","hasOwnProperty","create","definition","properties","transform","attributes","includes","xlink","_","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","xmlLang","xmlBase","xmlSpace","caseSensitiveTransform","caseInsensitiveTransform","xmlns","xmlnsxlink","xmlnsXLink","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","html","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","autoCapitalize","autoComplete","autoFocus","autoPlay","capture","charSet","checked","cite","className","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","defer","dir","dirName","disabled","download","draggable","encType","enterKeyHint","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","kind","label","lang","language","loading","loop","low","manifest","maxLength","method","minLength","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","pattern","ping","placeholder","playsInline","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scope","scoped","seamless","selected","shape","sizes","slot","span","spellCheck","srcDoc","srcLang","srcSet","step","tabIndex","target","title","translate","typeMustMatch","useMap","width","wrap","align","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","clear","code","codeBase","codeType","color","compact","declare","event","face","frame","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","scheme","scrolling","standby","summary","text","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","results","security","unselectable","svg","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","begin","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","d","defaultAction","descent","diffuseConstant","direction","display","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","fill","filter","filterRes","filterUnits","focusable","focusHighlight","format","fr","from","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","mode","numOctaves","observer","opacity","operator","order","orient","orientation","origin","overflow","overlay","path","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","to","unicode","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y","y1","y2","yChannelSelector","z","zoomAndPan","valid","dash","cap","kebab","$0","camelcase","toUpperCase","hastToReact","pointStart","point","VFileMessage","causeOrReason","optionsOrParentOrPlace","legacyCause","place","ancestors","cause","ruleId","indexOf","parent","fatal","file","stack","actual","expected","note","url","emptyMap","Map","dashSomething","tableElements","Set","tableCellElement","docs","toJsxRuntime","tree","Fragment","filePath","development","jsxDEV","props","isStaticChildren","Array","isArray","children","columnNumber","fileName","lineNumber","developmentCreate","jsxs","fn","state","components","elementAttributeNameCase","evaluater","createEvaluater","ignoreInvalidStyle","passKeys","passNode","schema","stylePropertyNameCase","tableCellAlignToStyle","one","parentSchema","tagName","findComponentFromName","alignValue","createProperty","createElementProps","createChildren","child","addNode","addChildren","pop","estree","expression","body","evaluateExpression","crashEstree","mdxExpression","objectExpression","argument","createJsxElementProps","mdxJsxElement","evaluateProgram","mdxEsm","root","countsByName","get","Type","rest","dashes","find","Number","isNaN","styleObject","toCamel","parseStyle","domCasing","cssCasing","transformStyleToCssCasing","transformStylesToCssCasing","allowExpression","identifiers","split","computed","Boolean","optional","toDash","$1","setFunctionName","description","applyDecs2311","a","u","f","l","metadata","h","v","g","apply","b","applyDec","w","D","S","j","E","I","P","F","getOwnPropertyDescriptor","N","O","A","H","K","addInitializer","bind","access","unshift","splice","checkInRHS","thing","empty","doClone","something","arr","cloneArray","RegExp","cloneObj","mergeObjects","sources","forEach","basename","substring","substr","CAPTURING_REGEX_SOURCE","RegexSource","hasCaptures","regexSource","lastIndex","replaceCaptures","captureSource","commandIndex","command","parseInt","strcmp","strArrCmp","len1","len2","res","isValidHexColor","hex","escapeRegExpCharacters","CachedFn","cache","Theme","_colorMap","_defaults","_root","createFromRawTheme","colorMap","createFromParsedTheme","resultLen","scopes","entry","_scope","segments","lenJ","foreground","parentScopes","reverse","ParsedThemeRule","parseTheme","parsedThemeRules","sort","defaultFontStyle","defaultForeground","defaultBackground","incomingDefaults","shift","ColorMap","defaults","StyleAttributes","getId","ThemeTrieElement","ThemeTrieElementRule","rule","insert","resolveParsedThemeRules","_cachedMatchRoot","scopeName","getColorMap","getDefaults","scopePath","effectiveRule","scopePattern","scopeMustMatch","_matchesScope","_scopePathMatchesParentScopes","ScopeStack","_ScopeStack","scopeNames","getSegments","other","extends","getExtensionIfDefined","base","startsWith","foregroundId","backgroundId","FontStyle","FontStyle2","_isFrozen","_lastColorId","_id2color","_color2id","emptyParentScopes","_ThemeTrieElementRule","scopeDepth","clone","cloneArr","acceptOverwrite","console","log","_ThemeTrieElement","_mainRule","rulesWithParentScopes","_children","_rulesWithParentScopes","_cmpBySpecificity","aParentIndex","bParentIndex","parentScopeLengthDiff","head","tail","dotIndex","_doInsertHere","EncodedTokenMetadata","_EncodedTokenMetadata","toBinaryStr","encodedTokenAttributes","padStart","print","languageId","getLanguageId","tokenType","getTokenType","getFontStyle","getForeground","getBackground","containsBalancedBrackets","_languageId","_tokenType","_containsBalancedBracketsBit","_fontStyle","_foreground","_background","createMatchers","selector","matchesName","tokenizer","input","regex","next","newTokenizer","token","priority","matcher","parseConjunction","parseOperand","expressionToNegate","matcherInput","expressionInParents","matchers","some","matcher2","parseInnerExpression","isIdentifier","every","disposeOnigString","TopLevelRuleReference","toKey","TopLevelRepositoryRuleReference","ruleName","ExternalReferenceCollector","_references","_seenReferenceKeys","references","visitedRule","add","reference","ScopeDependencyProcessor","repo","initialScopeName","seenFullScopeRequests","Q","seenPartialScopeRequests","processQueue","q","deps","dep","collectReferencesOfReference","baseGrammarScopeName","selfGrammar","lookup","baseGrammar","collectExternalReferencesInTopLevelRule","collectExternalReferencesInTopLevelRepositoryRule","repository","injections","injection","context","collectExternalReferencesInRules","patternRepository","include","parseInclude","newContext","BaseReference","SelfReference","RelativeReference","TopLevelReference","TopLevelRepositoryReference","indexOfSharp","HAS_BACK_REFERENCES","BACK_REFERENCING_END","Rule","$location","_nameIsCapturing","_name","_contentNameIsCapturing","_contentName","contentName","debugName","location","getName","lineText","getContentName","CaptureRule","retokenizeCapturedWithRuleId","collectPatterns","grammar","out","compile","endRegexSource","compileAG","allowA","allowG","MatchRule","_match","captures","_cachedCompiledPatterns","RegExpSource","debugMatchRegExp","_getCachedCompiledPatterns","RegExpSourceList","IncludeOnlyRule","hasMissingPatterns","getRule","BeginEndRule","_begin","beginCaptures","_end","endHasBackReferences","endCaptures","applyEndPatternLast","hasBackReferences","debugBeginRegExp","debugEndRegExp","getEndWithResolvedBackReferences","resolveBackReferences","setSource","BeginWhileRule","whileCaptures","_while","whileHasBackReferences","_cachedCompiledWhilePatterns","debugWhileRegExp","getWhileWithResolvedBackReferences","compileWhile","_getCachedCompiledWhilePatterns","compileWhileAG","RuleFactory","_RuleFactory","createCaptureRule","helper","registerRule","getCompiledRuleId","desc","$vscodeTextmateLocation","_compileCaptures","_compilePatterns","while","maximumCaptureId","captureId","numericCaptureId","localIncludedRule","externalGrammarName","externalGrammarInclude","externalGrammar","getExternalGrammar","externalIncludedRule","$self","skipRule","_RegExpSource","hasAnchor","_anchorCache","regExpSource","lastPushedPos","output","nextCh","_buildAnchorCache","newSource","capturedValues","A0_G0_result","A0_G1_result","A1_G0_result","A1_G1_result","A0_G0","A0_G1","A1_G0","A1_G1","resolveAnchors","_items","_hasAnchors","_cached","_disposeCaches","onigLib","regExps","CompiledRule","_resolveAnchors","scanner","BasicScopeAttributes","BasicScopeAttributesProvider","_BasicScopeAttributesProvider","_defaultAttributes","_embeddedLanguagesMatcher","initialLanguageId","embeddedLanguages","ScopeMatcher","entries","getDefaultAttributes","getBasicScopeAttributes","_NULL_SCOPE_METADATA","_getBasicScopeAttributes","static","_scopeToLanguage","standardTokenType","_toStandardTokenType","STANDARD_TOKEN_TYPE_REGEXP","scopesRegExp","escapedScopes","TokenizeStringResult","process","stoppedEarly","_tokenizeString","isFirstLine","linePos","lineTokens","checkWhileConditions","timeLimit","lineLength","STOP","anchorPosition","whileCheckResult","beginRuleCapturedEOL","whileRules","nodeRule","whileRule","ruleScanner","findOptions","prepareRuleWhileSearch","endRule","produce","handleCaptures","_checkWhileConditions","startTime","scanNext","matchResult","prepareRuleSearch","matchedRuleId","matchRule","getInjections","injectionResult","bestMatchRuleId","bestMatchRating","MAX_VALUE","bestMatchCaptureIndices","bestMatchResultPriority","contentNameScopesList","getScopeNames","matchRating","priorityMatch","matchInjections","matchResultScore","injectionResultScore","matchRuleOrInjections","hasAdvanced","poppedRule","withContentNameScopesList","nameScopesList","popped","getAnchorPos","getEnterPos","_rule","beforePush","pushAttributed","pushedRule","withEndRule","hasSameRuleAs","safePop","lineTextContent","localStack","maxEnd","captureRule","captureIndex","endPos","produceFromScopes","stackClone","onigSubStr","createOnigString","captureRuleScopeName","captureRuleScopesList","LocalStackElement","collectInjections","ruleFactoryHelper","nameMatcher","debugSelector","identifers","identifier","scopesAreMatching","thisScopeName","Grammar","_rootScopeName","initialLanguage","tokenTypes","balancedBracketSelectors","grammarRepository","_onigLib","_basicScopeAttributesProvider","_rootId","_lastRuleId","_ruleId2desc","_includedGrammars","_grammarRepository","_grammar","initGrammar","_injections","_tokenTypeMatchers","themeProvider","getMetadataForScope","_collectInjections","scopeName2","rawInjections","injectionScopeNames","injectionScopeName","injectionGrammar","injectionSelector","i1","i2","factory","rawIncludedGrammar","$base","tokenizeLine","prevState","_tokenize","tokens","getResult","ruleStack","tokenizeLine2","getBinaryResult","emitBinaryTokens","StateStackImpl","NULL","reset","rawDefaultMetadata","defaultStyle","defaultMetadata","rootScopeName","scopeList","AttributedScopeStack","createRootAndLookUpScopeName","createRoot","onigLineText","LineTokens","_AttributedScopeStack","tokenAttributes","fromExtension","namesScopeList","current","rawRootMetadata","rootStyle","themeMatch","resolvedTokenAttributes","mergeAttributes","equals","existingTokenAttributes","basicScopeAttributes","styleAttributes","_pushAttributed","rawMetadata","newPath","scopeThemeMatchResult","self","_StateStackImpl","enterPos","anchorPos","depth","_enterPos","_anchorPos","_stackElementBrand","_equals","_structuralEquals","_reset","el","_writeString","outIndex","contentNameScopeStack","toStateStackFrame","pushFrame","BalancedBracketSelectors","balancedBracketScopes","unbalancedBracketScopes","allowAny","flatMap","matchesAlways","matchesNever","excluder","includer","tokenTypeOverrides","_emitBinaryTokens","_tokenTypeOverrides","_lineText","_tokens","_binaryTokens","_lastTokenEndIndex","endIndex","scopesList","scopes2","startIndex","SyncRegistry","theme","_theme","_grammars","_rawGrammars","_injectionGrammars","setTheme","addGrammar","targetScope","grammarForScopeName","rawGrammar","createGrammar","_options","_syncRegistry","_ensureGrammarCache","loadGrammarWithEmbeddedLanguages","loadGrammarWithConfiguration","configuration","_loadGrammar","unbalancedBracketSelectors","loadGrammar","dependencyProcessor","request","_loadSingleGrammar","_grammarForScopeName","_doLoadSingleGrammar","INITIAL","htmlVoidElements","normals","blocking","fetchPriority","inert","onBeforeToggle","popover","popoverTarget","popoverTargetAction","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","writingSuggestions","transformOrigin","defaultSubsetRegex","surrogatePairsRegex","controlCharactersRegex","regexEscapeRegex","subsetToRegexCache","WeakMap","hexadecimalRegex","decimalRegex","characterEntitiesLegacy","characterEntitiesHtml4","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","fnof","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","bull","hellip","prime","Prime","oline","frasl","weierp","image","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","rang","loz","spades","clubs","hearts","diams","quot","amp","lt","gt","OElig","oelig","Scaron","scaron","Yuml","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","permil","lsaquo","rsaquo","euro","dangerous","characters","notAlphanumericRegex","formatSmart","named","numeric","omit","toHexadecimal","omitOptionalSemicolons","useNamedReferences","useShortestReferences","character","toNamed","decimal","toDecimal","stringifyEntities","subset","cached","groups","charactersToExpression","charactersToExpressionCached","basic","escapeOnly","pair","all","htmlCommentRegex","bogusCommentEntitySubset","commentEntitySubset","ccount","siblingAfter","siblings","siblingBefore","emptyChildren","includeWhitespace","omission","handlers","closing","caption","headOrColgroupOrCaption","colgroup","dd","dt","li","optgroup","option","rp","rubyElement","rt","tbody","td","cells","tfoot","th","thead","tr","opening","previous","seen","constants","unquoted","single","double","serializeAttribute","allowParseErrors","allowDangerousCharacters","quote","characterReferences","tightCommaSeparatedLists","collapseEmptyAttributes","preferUnquoted","quoteSmart","alternative","textEntitySubset","handle","parameters","invalid","unknown","zwitch","node_","_1","_2","bogusComments","_3","upperDoctype","tightDoctype","omitOptionalTags","selfClosing","closeEmptyElements","voids","parts","last","tightAttributes","serializeAttributes","closeSelfClosing","tightSelfClosing","allowDangerousHtml","emptyCharacterReferences","resolveColorReplacements","replacements","colorReplacements","themeName","applyColorReplacements","normalizeGetter","Promise","resolve","then","isPlainLang","isSpecialLang","isNoneTheme","isSpecialTheme","addClassToHast","class","targets","splitLines","preserveEnding","DEFAULT_COLOR_LIGHT_DARK","COLOR_KEYS","getTokenStyleObject","styles","Italic","Bold","decorations","Underline","Strikethrough","stringifyTokenStyle","_grammarStateMap","setLastGrammarStateToMap","getLastGrammarStateFromMap","GrammarState","_stacks","themes","_stack","initial","fromEntries","args","stacksMap","getInternalStack","getScopes","visited","pushScope","stack2","toJSON","transformerDecorations","getContext","shiki","meta","normalizePosition","converter","indexToPos","posToIndex","createPositionConverter","items","foo","bar","isFooHasBarStart","isFooHasBarEnd","isBarHasFooStart","isBarHasFooEnd","verifyIntersections","splitted","breakpoints","sorted","breakpointsInToken","offsets","lastOffset","splitToken","splitTokens","codeEl","ctx","applyLineSection","decoration","lineEl","POSITIVE_INFINITY","alwaysWrap","wrapper","applyDecoration","applyLine","lineApplies","builtInTransformers","getTransformers","transformers","pre","post","transformer","enforce","sortTransformersByEnforcement","namedColors","findSequence","nextEscape","nextClose","sequence","parseColor","colorMode","rgb","parseSequence","commands","codeInt","defaultNamedColorsMap","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","createColorPalette","namedColorsMap","namedColor","rgbColor","colorTable","levels","level","getColorTable","codeToTokensBase","internal","getLoadedThemes","fileContents","colorPalette","colors","parser","decorations2","findResult","styleToken","delete","createAnsiSequenceParser","bg","fg","hexMatch","round","cssVarMatch","dimColor","None","tokenizeAnsiWithTheme","getLanguage","grammarState","_tokenizeWithTheme","stateStack","tokenizeWithTheme","tokenizeMaxLineLength","tokenizeTimeLimit","getGrammarStack","grammarContextCode","final","lineOffset","resultWithScopes","tokensWithScopes","tokensWithScopesIndex","includeExplanation","tokensLength","nextStartIndex","themeSettingsSelectors","setting","selectors","explanation","tokenWithScopes","tokenWithScopesText","explainThemeScopesFull","themeSelectors","themeMatches","explainThemeScope","matchesOne","matches","selectorParentIndex","parentIndex","selectorPieces","codeToTokensWithThemes","themedTokens","tokens2","outThemes","outLines","indexes","syncThemesTokenization","mergedTokens","lineIdx","_token","tokenIdx","mergedToken","variants","themeIdx","__","___","mergedGrammarState","codeToTokens","defaultColor","cssVariablePrefix","colorsRendering","themeTokens","themeRegs","getTheme","themesOrder","merged","variantsOrder","styleKeys","mergedStyles","varKey","keyName","cur","lightIndex","findIndex","darkIndex","lightValue","darkValue","htmlStyle","flatTokenVariants","themeColorReplacements","mapThemeColors","cssVar","t2","codeToHast","transformerContext","_code","preprocess","mergeWhitespaces","mergeSameStyleTokens","newLine","carryOnContent","firstOffset","couldMerge","mergeWhitespaceTokens","leading","trailing","expanded","splitWhitespaceTokens","prevToken","prevStyle","currentStyle","isPrevDecorated","isDecorated","mergeAdjacentStyledTokens","contextSource","structure","tabindex","preNode","codeNode","lineNodes","lineNode","col","tokenNode","htmlAttrs","tokensToHast","hastToHtml","options_","VSCODE_FALLBACK_EDITOR_FG","light","dark","VSCODE_FALLBACK_EDITOR_BG","RESOLVED_KEY","normalizeTheme","rawTheme","tokenColors","globalSetting","replacementCount","replacementMap","getReplacementColor","replaceFg","replaceBg","replacement","resolveLangs","langs","flat","resolveThemes","_emitDeprecation","_emitError","Registry","_resolver","_themes","_langs","_alias","loadTheme","loadLanguages","_resolvedThemes","_resolvedGrammars","_langMap","_langGraph","_textmateThemeCache","_loadedThemesCache","_loadedLanguagesCache","textmateTheme","getGrammar","resolved","loadLanguage","embeddedLazilyBy","embeddedLangsLazy","addLanguage","grammarConfig","aliases","alias","resolveEmbeddedLanguages","langsGraphArray","missingLangs","dependents","embeddedLangs","getLoadedLanguages","embeddedLang","Resolver","_scopeToLang","engine","getLangRegistration","langIdOrAlias","injectTo","scopeParts","subScopeName","instancesCount","createShikiInternal","trace","warnDeprecated","warnings","warn","isDisposed","resolver","_registry","langAlias","_lastTheme","ensureNotDisposed","loadLanguageSync","langs2","loadThemeSync","themes2","_lang","createShikiInternalSync","createHighlighterCore","getLastGrammarState","options2","codeToHtml","postprocess","getBundledLanguages","getBundledThemes","getInternalContext","createdBundledHighlighter","bundledLanguages","bundledThemes","resolveLang","bundle","resolveTheme","core","createSingletonShorthands","createHighlighter","config","getSingletonHighlighter","_shiki","makeSingletonHighlighter","guessEmbeddedLanguages","_classPrivateFieldGet2","_classPrivateFieldInitSpec","privateMap","_checkPrivateRedeclaration","privateCollection","for","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","ref","__self","__source","defaultProps","$$typeof","_owner","__importDefault","mod","__esModule","inline_style_parser_1","hasIterator","_classPrivateFieldSet2"],"sourceRoot":""}
|