diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts
index 07f4bc81d926..bdff6ad071e4 100644
--- a/docs/docusaurus.config.ts
+++ b/docs/docusaurus.config.ts
@@ -191,6 +191,10 @@ const config: Config = {
INSTRUMENTATION_KEY: process.env.INSTRUMENTATION_KEY,
},
scripts: [
+ {
+ src: "/dompurify/purify.min.js",
+ async: false,
+ },
{
src: "/trusted-types-policy.js",
async: false,
diff --git a/docs/package.json b/docs/package.json
index 13f2c6888135..4694c2b957ae 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -87,6 +87,7 @@
"cross-env": "^7.0.3",
"dill-cli": "^0.1.3",
"docusaurus-plugin-sass": "^0.2.5",
+ "dompurify": "^3.2.6",
"dotenv": "^16.4.7",
"dotenv-cli": "^7.4.3",
"eslint": "~8.55.0",
diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml
index 4e134ccce0c2..40bc5b883c50 100644
--- a/docs/pnpm-lock.yaml
+++ b/docs/pnpm-lock.yaml
@@ -92,6 +92,9 @@ importers:
docusaurus-plugin-sass:
specifier: ^0.2.5
version: 0.2.5(@docusaurus/core@3.6.2(@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1))(acorn@8.14.0)(eslint@8.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(sass@1.81.0)(webpack@5.96.1)
+ dompurify:
+ specifier: ^3.2.6
+ version: 3.2.6
dotenv:
specifier: ^16.4.7
version: 16.4.7
@@ -2346,6 +2349,9 @@ packages:
'@types/tmp@0.0.33':
resolution: {integrity: sha512-gVC1InwyVrO326wbBZw+AO3u2vRXz/iRWq9jYhpG4W8LXyIgDv3ZmcLQ5Q4Gs+gFMyqx+viFoFT+l3p61QFCmQ==}
+ '@types/trusted-types@2.0.7':
+ resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
+
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
@@ -3811,6 +3817,9 @@ packages:
dompurify@3.1.6:
resolution: {integrity: sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==}
+ dompurify@3.2.6:
+ resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==}
+
domutils@2.8.0:
resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
@@ -10696,9 +10705,9 @@ snapshots:
'@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint@8.55.0)(typescript@5.5.4)
'@typescript-eslint/parser': 6.7.5(eslint@8.55.0)(typescript@5.5.4)
eslint-config-prettier: 9.0.0(eslint@8.55.0)
- eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-plugin-i@2.29.1)(eslint@8.55.0)
+ eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint@8.55.0))(eslint@8.55.0)
eslint-plugin-eslint-comments: 3.2.0(eslint@8.55.0)
- eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0)
+ eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0)
eslint-plugin-jsdoc: 46.8.2(eslint@8.55.0)
eslint-plugin-promise: 6.1.1(eslint@8.55.0)
eslint-plugin-react: 7.33.2(eslint@8.55.0)
@@ -11646,7 +11655,7 @@ snapshots:
'@types/dompurify@3.2.0':
dependencies:
- dompurify: 3.1.6
+ dompurify: 3.2.6
'@types/eslint-scope@3.7.7':
dependencies:
@@ -11850,6 +11859,9 @@ snapshots:
'@types/tmp@0.0.33': {}
+ '@types/trusted-types@2.0.7':
+ optional: true
+
'@types/unist@2.0.11': {}
'@types/unist@3.0.3': {}
@@ -13621,6 +13633,10 @@ snapshots:
dompurify@3.1.6: {}
+ dompurify@3.2.6:
+ optionalDependencies:
+ '@types/trusted-types': 2.0.7
+
domutils@2.8.0:
dependencies:
dom-serializer: 1.4.1
@@ -13858,19 +13874,19 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-plugin-i@2.29.1)(eslint@8.55.0):
+ eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint@8.55.0))(eslint@8.55.0):
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.3.7(supports-color@8.1.1)
enhanced-resolve: 5.17.1
eslint: 8.55.0
- eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0)
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0)
fast-glob: 3.3.2
get-tsconfig: 4.8.1
is-bun-module: 1.2.1
is-glob: 4.0.3
optionalDependencies:
- eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0)
+ eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0)
transitivePeerDependencies:
- '@typescript-eslint/parser'
- eslint-import-resolver-node
@@ -13898,14 +13914,14 @@ snapshots:
- bluebird
- supports-color
- eslint-module-utils@2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0):
+ eslint-module-utils@2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 6.7.5(eslint@8.55.0)(typescript@5.5.4)
eslint: 8.55.0
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-plugin-i@2.29.1)(eslint@8.55.0)
+ eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint@8.55.0))(eslint@8.55.0)
transitivePeerDependencies:
- supports-color
@@ -13915,13 +13931,13 @@ snapshots:
eslint: 8.55.0
ignore: 5.3.2
- eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0):
+ eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0):
dependencies:
debug: 4.3.7(supports-color@8.1.1)
doctrine: 3.0.0
eslint: 8.55.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.55.0)
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.7.5(eslint@8.55.0)(typescript@5.5.4))(eslint@8.55.0))(eslint@8.55.0))(eslint@8.55.0)
get-tsconfig: 4.8.1
is-glob: 4.0.3
minimatch: 3.1.2
diff --git a/docs/static/dompurify/purify.min.js b/docs/static/dompurify/purify.min.js
new file mode 100644
index 000000000000..6f72325ca46f
--- /dev/null
+++ b/docs/static/dompurify/purify.min.js
@@ -0,0 +1,1431 @@
+/*! @license DOMPurify 3.2.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.6/LICENSE */
+!(function (e, t) {
+ "object" == typeof exports && "undefined" != typeof module
+ ? (module.exports = t())
+ : "function" == typeof define && define.amd
+ ? define(t)
+ : ((e = "undefined" != typeof globalThis ? globalThis : e || self).DOMPurify = t());
+})(this, function () {
+ "use strict";
+ const {
+ entries: e,
+ setPrototypeOf: t,
+ isFrozen: n,
+ getPrototypeOf: o,
+ getOwnPropertyDescriptor: r,
+ } = Object;
+ let { freeze: i, seal: a, create: l } = Object,
+ { apply: c, construct: s } = "undefined" != typeof Reflect && Reflect;
+ i ||
+ (i = function (e) {
+ return e;
+ }),
+ a ||
+ (a = function (e) {
+ return e;
+ }),
+ c ||
+ (c = function (e, t, n) {
+ return e.apply(t, n);
+ }),
+ s ||
+ (s = function (e, t) {
+ return new e(...t);
+ });
+ const u = R(Array.prototype.forEach),
+ m = R(Array.prototype.lastIndexOf),
+ p = R(Array.prototype.pop),
+ f = R(Array.prototype.push),
+ d = R(Array.prototype.splice),
+ h = R(String.prototype.toLowerCase),
+ g = R(String.prototype.toString),
+ T = R(String.prototype.match),
+ y = R(String.prototype.replace),
+ E = R(String.prototype.indexOf),
+ A = R(String.prototype.trim),
+ _ = R(Object.prototype.hasOwnProperty),
+ S = R(RegExp.prototype.test),
+ b =
+ ((N = TypeError),
+ function () {
+ for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++)
+ t[n] = arguments[n];
+ return s(N, t);
+ });
+ var N;
+ function R(e) {
+ return function (t) {
+ t instanceof RegExp && (t.lastIndex = 0);
+ for (var n = arguments.length, o = new Array(n > 1 ? n - 1 : 0), r = 1; r < n; r++)
+ o[r - 1] = arguments[r];
+ return c(e, t, o);
+ };
+ }
+ function w(e, o) {
+ let r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : h;
+ t && t(e, null);
+ let i = o.length;
+ for (; i--; ) {
+ let t = o[i];
+ if ("string" == typeof t) {
+ const e = r(t);
+ e !== t && (n(o) || (o[i] = e), (t = e));
+ }
+ e[t] = !0;
+ }
+ return e;
+ }
+ function O(e) {
+ for (let t = 0; t < e.length; t++) {
+ _(e, t) || (e[t] = null);
+ }
+ return e;
+ }
+ function D(t) {
+ const n = l(null);
+ for (const [o, r] of e(t)) {
+ _(t, o) &&
+ (Array.isArray(r)
+ ? (n[o] = O(r))
+ : r && "object" == typeof r && r.constructor === Object
+ ? (n[o] = D(r))
+ : (n[o] = r));
+ }
+ return n;
+ }
+ function v(e, t) {
+ for (; null !== e; ) {
+ const n = r(e, t);
+ if (n) {
+ if (n.get) return R(n.get);
+ if ("function" == typeof n.value) return R(n.value);
+ }
+ e = o(e);
+ }
+ return function () {
+ return null;
+ };
+ }
+ const L = i([
+ "a",
+ "abbr",
+ "acronym",
+ "address",
+ "area",
+ "article",
+ "aside",
+ "audio",
+ "b",
+ "bdi",
+ "bdo",
+ "big",
+ "blink",
+ "blockquote",
+ "body",
+ "br",
+ "button",
+ "canvas",
+ "caption",
+ "center",
+ "cite",
+ "code",
+ "col",
+ "colgroup",
+ "content",
+ "data",
+ "datalist",
+ "dd",
+ "decorator",
+ "del",
+ "details",
+ "dfn",
+ "dialog",
+ "dir",
+ "div",
+ "dl",
+ "dt",
+ "element",
+ "em",
+ "fieldset",
+ "figcaption",
+ "figure",
+ "font",
+ "footer",
+ "form",
+ "h1",
+ "h2",
+ "h3",
+ "h4",
+ "h5",
+ "h6",
+ "head",
+ "header",
+ "hgroup",
+ "hr",
+ "html",
+ "i",
+ "img",
+ "input",
+ "ins",
+ "kbd",
+ "label",
+ "legend",
+ "li",
+ "main",
+ "map",
+ "mark",
+ "marquee",
+ "menu",
+ "menuitem",
+ "meter",
+ "nav",
+ "nobr",
+ "ol",
+ "optgroup",
+ "option",
+ "output",
+ "p",
+ "picture",
+ "pre",
+ "progress",
+ "q",
+ "rp",
+ "rt",
+ "ruby",
+ "s",
+ "samp",
+ "section",
+ "select",
+ "shadow",
+ "small",
+ "source",
+ "spacer",
+ "span",
+ "strike",
+ "strong",
+ "style",
+ "sub",
+ "summary",
+ "sup",
+ "table",
+ "tbody",
+ "td",
+ "template",
+ "textarea",
+ "tfoot",
+ "th",
+ "thead",
+ "time",
+ "tr",
+ "track",
+ "tt",
+ "u",
+ "ul",
+ "var",
+ "video",
+ "wbr",
+ ]),
+ C = i([
+ "svg",
+ "a",
+ "altglyph",
+ "altglyphdef",
+ "altglyphitem",
+ "animatecolor",
+ "animatemotion",
+ "animatetransform",
+ "circle",
+ "clippath",
+ "defs",
+ "desc",
+ "ellipse",
+ "filter",
+ "font",
+ "g",
+ "glyph",
+ "glyphref",
+ "hkern",
+ "image",
+ "line",
+ "lineargradient",
+ "marker",
+ "mask",
+ "metadata",
+ "mpath",
+ "path",
+ "pattern",
+ "polygon",
+ "polyline",
+ "radialgradient",
+ "rect",
+ "stop",
+ "style",
+ "switch",
+ "symbol",
+ "text",
+ "textpath",
+ "title",
+ "tref",
+ "tspan",
+ "view",
+ "vkern",
+ ]),
+ x = i([
+ "feBlend",
+ "feColorMatrix",
+ "feComponentTransfer",
+ "feComposite",
+ "feConvolveMatrix",
+ "feDiffuseLighting",
+ "feDisplacementMap",
+ "feDistantLight",
+ "feDropShadow",
+ "feFlood",
+ "feFuncA",
+ "feFuncB",
+ "feFuncG",
+ "feFuncR",
+ "feGaussianBlur",
+ "feImage",
+ "feMerge",
+ "feMergeNode",
+ "feMorphology",
+ "feOffset",
+ "fePointLight",
+ "feSpecularLighting",
+ "feSpotLight",
+ "feTile",
+ "feTurbulence",
+ ]),
+ I = i([
+ "animate",
+ "color-profile",
+ "cursor",
+ "discard",
+ "font-face",
+ "font-face-format",
+ "font-face-name",
+ "font-face-src",
+ "font-face-uri",
+ "foreignobject",
+ "hatch",
+ "hatchpath",
+ "mesh",
+ "meshgradient",
+ "meshpatch",
+ "meshrow",
+ "missing-glyph",
+ "script",
+ "set",
+ "solidcolor",
+ "unknown",
+ "use",
+ ]),
+ M = i([
+ "math",
+ "menclose",
+ "merror",
+ "mfenced",
+ "mfrac",
+ "mglyph",
+ "mi",
+ "mlabeledtr",
+ "mmultiscripts",
+ "mn",
+ "mo",
+ "mover",
+ "mpadded",
+ "mphantom",
+ "mroot",
+ "mrow",
+ "ms",
+ "mspace",
+ "msqrt",
+ "mstyle",
+ "msub",
+ "msup",
+ "msubsup",
+ "mtable",
+ "mtd",
+ "mtext",
+ "mtr",
+ "munder",
+ "munderover",
+ "mprescripts",
+ ]),
+ k = i([
+ "maction",
+ "maligngroup",
+ "malignmark",
+ "mlongdiv",
+ "mscarries",
+ "mscarry",
+ "msgroup",
+ "mstack",
+ "msline",
+ "msrow",
+ "semantics",
+ "annotation",
+ "annotation-xml",
+ "mprescripts",
+ "none",
+ ]),
+ U = i(["#text"]),
+ z = i([
+ "accept",
+ "action",
+ "align",
+ "alt",
+ "autocapitalize",
+ "autocomplete",
+ "autopictureinpicture",
+ "autoplay",
+ "background",
+ "bgcolor",
+ "border",
+ "capture",
+ "cellpadding",
+ "cellspacing",
+ "checked",
+ "cite",
+ "class",
+ "clear",
+ "color",
+ "cols",
+ "colspan",
+ "controls",
+ "controlslist",
+ "coords",
+ "crossorigin",
+ "datetime",
+ "decoding",
+ "default",
+ "dir",
+ "disabled",
+ "disablepictureinpicture",
+ "disableremoteplayback",
+ "download",
+ "draggable",
+ "enctype",
+ "enterkeyhint",
+ "face",
+ "for",
+ "headers",
+ "height",
+ "hidden",
+ "high",
+ "href",
+ "hreflang",
+ "id",
+ "inputmode",
+ "integrity",
+ "ismap",
+ "kind",
+ "label",
+ "lang",
+ "list",
+ "loading",
+ "loop",
+ "low",
+ "max",
+ "maxlength",
+ "media",
+ "method",
+ "min",
+ "minlength",
+ "multiple",
+ "muted",
+ "name",
+ "nonce",
+ "noshade",
+ "novalidate",
+ "nowrap",
+ "open",
+ "optimum",
+ "pattern",
+ "placeholder",
+ "playsinline",
+ "popover",
+ "popovertarget",
+ "popovertargetaction",
+ "poster",
+ "preload",
+ "pubdate",
+ "radiogroup",
+ "readonly",
+ "rel",
+ "required",
+ "rev",
+ "reversed",
+ "role",
+ "rows",
+ "rowspan",
+ "spellcheck",
+ "scope",
+ "selected",
+ "shape",
+ "size",
+ "sizes",
+ "span",
+ "srclang",
+ "start",
+ "src",
+ "srcset",
+ "step",
+ "style",
+ "summary",
+ "tabindex",
+ "title",
+ "translate",
+ "type",
+ "usemap",
+ "valign",
+ "value",
+ "width",
+ "wrap",
+ "xmlns",
+ "slot",
+ ]),
+ P = i([
+ "accent-height",
+ "accumulate",
+ "additive",
+ "alignment-baseline",
+ "amplitude",
+ "ascent",
+ "attributename",
+ "attributetype",
+ "azimuth",
+ "basefrequency",
+ "baseline-shift",
+ "begin",
+ "bias",
+ "by",
+ "class",
+ "clip",
+ "clippathunits",
+ "clip-path",
+ "clip-rule",
+ "color",
+ "color-interpolation",
+ "color-interpolation-filters",
+ "color-profile",
+ "color-rendering",
+ "cx",
+ "cy",
+ "d",
+ "dx",
+ "dy",
+ "diffuseconstant",
+ "direction",
+ "display",
+ "divisor",
+ "dur",
+ "edgemode",
+ "elevation",
+ "end",
+ "exponent",
+ "fill",
+ "fill-opacity",
+ "fill-rule",
+ "filter",
+ "filterunits",
+ "flood-color",
+ "flood-opacity",
+ "font-family",
+ "font-size",
+ "font-size-adjust",
+ "font-stretch",
+ "font-style",
+ "font-variant",
+ "font-weight",
+ "fx",
+ "fy",
+ "g1",
+ "g2",
+ "glyph-name",
+ "glyphref",
+ "gradientunits",
+ "gradienttransform",
+ "height",
+ "href",
+ "id",
+ "image-rendering",
+ "in",
+ "in2",
+ "intercept",
+ "k",
+ "k1",
+ "k2",
+ "k3",
+ "k4",
+ "kerning",
+ "keypoints",
+ "keysplines",
+ "keytimes",
+ "lang",
+ "lengthadjust",
+ "letter-spacing",
+ "kernelmatrix",
+ "kernelunitlength",
+ "lighting-color",
+ "local",
+ "marker-end",
+ "marker-mid",
+ "marker-start",
+ "markerheight",
+ "markerunits",
+ "markerwidth",
+ "maskcontentunits",
+ "maskunits",
+ "max",
+ "mask",
+ "media",
+ "method",
+ "mode",
+ "min",
+ "name",
+ "numoctaves",
+ "offset",
+ "operator",
+ "opacity",
+ "order",
+ "orient",
+ "orientation",
+ "origin",
+ "overflow",
+ "paint-order",
+ "path",
+ "pathlength",
+ "patterncontentunits",
+ "patterntransform",
+ "patternunits",
+ "points",
+ "preservealpha",
+ "preserveaspectratio",
+ "primitiveunits",
+ "r",
+ "rx",
+ "ry",
+ "radius",
+ "refx",
+ "refy",
+ "repeatcount",
+ "repeatdur",
+ "restart",
+ "result",
+ "rotate",
+ "scale",
+ "seed",
+ "shape-rendering",
+ "slope",
+ "specularconstant",
+ "specularexponent",
+ "spreadmethod",
+ "startoffset",
+ "stddeviation",
+ "stitchtiles",
+ "stop-color",
+ "stop-opacity",
+ "stroke-dasharray",
+ "stroke-dashoffset",
+ "stroke-linecap",
+ "stroke-linejoin",
+ "stroke-miterlimit",
+ "stroke-opacity",
+ "stroke",
+ "stroke-width",
+ "style",
+ "surfacescale",
+ "systemlanguage",
+ "tabindex",
+ "tablevalues",
+ "targetx",
+ "targety",
+ "transform",
+ "transform-origin",
+ "text-anchor",
+ "text-decoration",
+ "text-rendering",
+ "textlength",
+ "type",
+ "u1",
+ "u2",
+ "unicode",
+ "values",
+ "viewbox",
+ "visibility",
+ "version",
+ "vert-adv-y",
+ "vert-origin-x",
+ "vert-origin-y",
+ "width",
+ "word-spacing",
+ "wrap",
+ "writing-mode",
+ "xchannelselector",
+ "ychannelselector",
+ "x",
+ "x1",
+ "x2",
+ "xmlns",
+ "y",
+ "y1",
+ "y2",
+ "z",
+ "zoomandpan",
+ ]),
+ H = i([
+ "accent",
+ "accentunder",
+ "align",
+ "bevelled",
+ "close",
+ "columnsalign",
+ "columnlines",
+ "columnspan",
+ "denomalign",
+ "depth",
+ "dir",
+ "display",
+ "displaystyle",
+ "encoding",
+ "fence",
+ "frame",
+ "height",
+ "href",
+ "id",
+ "largeop",
+ "length",
+ "linethickness",
+ "lspace",
+ "lquote",
+ "mathbackground",
+ "mathcolor",
+ "mathsize",
+ "mathvariant",
+ "maxsize",
+ "minsize",
+ "movablelimits",
+ "notation",
+ "numalign",
+ "open",
+ "rowalign",
+ "rowlines",
+ "rowspacing",
+ "rowspan",
+ "rspace",
+ "rquote",
+ "scriptlevel",
+ "scriptminsize",
+ "scriptsizemultiplier",
+ "selection",
+ "separator",
+ "separators",
+ "stretchy",
+ "subscriptshift",
+ "supscriptshift",
+ "symmetric",
+ "voffset",
+ "width",
+ "xmlns",
+ ]),
+ F = i(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]),
+ B = a(/\{\{[\w\W]*|[\w\W]*\}\}/gm),
+ W = a(/<%[\w\W]*|[\w\W]*%>/gm),
+ G = a(/\$\{[\w\W]*/gm),
+ Y = a(/^data-[\-\w.\u00B7-\uFFFF]+$/),
+ j = a(/^aria-[\-\w]+$/),
+ X = a(
+ /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,
+ ),
+ q = a(/^(?:\w+script|data):/i),
+ $ = a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),
+ K = a(/^html$/i),
+ V = a(/^[a-z][.\w]*(-[.\w]+)+$/i);
+ var Z = Object.freeze({
+ __proto__: null,
+ ARIA_ATTR: j,
+ ATTR_WHITESPACE: $,
+ CUSTOM_ELEMENT: V,
+ DATA_ATTR: Y,
+ DOCTYPE_NAME: K,
+ ERB_EXPR: W,
+ IS_ALLOWED_URI: X,
+ IS_SCRIPT_OR_DATA: q,
+ MUSTACHE_EXPR: B,
+ TMPLIT_EXPR: G,
+ });
+ const J = 1,
+ Q = 3,
+ ee = 7,
+ te = 8,
+ ne = 9,
+ oe = function () {
+ return "undefined" == typeof window ? null : window;
+ };
+ var re = (function t() {
+ let n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : oe();
+ const o = (e) => t(e);
+ if (
+ ((o.version = "3.2.6"),
+ (o.removed = []),
+ !n || !n.document || n.document.nodeType !== ne || !n.Element)
+ )
+ return (o.isSupported = !1), o;
+ let { document: r } = n;
+ const a = r,
+ c = a.currentScript,
+ {
+ DocumentFragment: s,
+ HTMLTemplateElement: N,
+ Node: R,
+ Element: O,
+ NodeFilter: B,
+ NamedNodeMap: W = n.NamedNodeMap || n.MozNamedAttrMap,
+ HTMLFormElement: G,
+ DOMParser: Y,
+ trustedTypes: j,
+ } = n,
+ q = O.prototype,
+ $ = v(q, "cloneNode"),
+ V = v(q, "remove"),
+ re = v(q, "nextSibling"),
+ ie = v(q, "childNodes"),
+ ae = v(q, "parentNode");
+ if ("function" == typeof N) {
+ const e = r.createElement("template");
+ e.content && e.content.ownerDocument && (r = e.content.ownerDocument);
+ }
+ let le,
+ ce = "";
+ const {
+ implementation: se,
+ createNodeIterator: ue,
+ createDocumentFragment: me,
+ getElementsByTagName: pe,
+ } = r,
+ { importNode: fe } = a;
+ let de = {
+ afterSanitizeAttributes: [],
+ afterSanitizeElements: [],
+ afterSanitizeShadowDOM: [],
+ beforeSanitizeAttributes: [],
+ beforeSanitizeElements: [],
+ beforeSanitizeShadowDOM: [],
+ uponSanitizeAttribute: [],
+ uponSanitizeElement: [],
+ uponSanitizeShadowNode: [],
+ };
+ o.isSupported =
+ "function" == typeof e &&
+ "function" == typeof ae &&
+ se &&
+ void 0 !== se.createHTMLDocument;
+ const {
+ MUSTACHE_EXPR: he,
+ ERB_EXPR: ge,
+ TMPLIT_EXPR: Te,
+ DATA_ATTR: ye,
+ ARIA_ATTR: Ee,
+ IS_SCRIPT_OR_DATA: Ae,
+ ATTR_WHITESPACE: _e,
+ CUSTOM_ELEMENT: Se,
+ } = Z;
+ let { IS_ALLOWED_URI: be } = Z,
+ Ne = null;
+ const Re = w({}, [...L, ...C, ...x, ...M, ...U]);
+ let we = null;
+ const Oe = w({}, [...z, ...P, ...H, ...F]);
+ let De = Object.seal(
+ l(null, {
+ tagNameCheck: { writable: !0, configurable: !1, enumerable: !0, value: null },
+ attributeNameCheck: {
+ writable: !0,
+ configurable: !1,
+ enumerable: !0,
+ value: null,
+ },
+ allowCustomizedBuiltInElements: {
+ writable: !0,
+ configurable: !1,
+ enumerable: !0,
+ value: !1,
+ },
+ }),
+ ),
+ ve = null,
+ Le = null,
+ Ce = !0,
+ xe = !0,
+ Ie = !1,
+ Me = !0,
+ ke = !1,
+ Ue = !0,
+ ze = !1,
+ Pe = !1,
+ He = !1,
+ Fe = !1,
+ Be = !1,
+ We = !1,
+ Ge = !0,
+ Ye = !1,
+ je = !0,
+ Xe = !1,
+ qe = {},
+ $e = null;
+ const Ke = w({}, [
+ "annotation-xml",
+ "audio",
+ "colgroup",
+ "desc",
+ "foreignobject",
+ "head",
+ "iframe",
+ "math",
+ "mi",
+ "mn",
+ "mo",
+ "ms",
+ "mtext",
+ "noembed",
+ "noframes",
+ "noscript",
+ "plaintext",
+ "script",
+ "style",
+ "svg",
+ "template",
+ "thead",
+ "title",
+ "video",
+ "xmp",
+ ]);
+ let Ve = null;
+ const Ze = w({}, ["audio", "video", "img", "source", "image", "track"]);
+ let Je = null;
+ const Qe = w({}, [
+ "alt",
+ "class",
+ "for",
+ "id",
+ "label",
+ "name",
+ "pattern",
+ "placeholder",
+ "role",
+ "summary",
+ "title",
+ "value",
+ "style",
+ "xmlns",
+ ]),
+ et = "http://www.w3.org/1998/Math/MathML",
+ tt = "http://www.w3.org/2000/svg",
+ nt = "http://www.w3.org/1999/xhtml";
+ let ot = nt,
+ rt = !1,
+ it = null;
+ const at = w({}, [et, tt, nt], g);
+ let lt = w({}, ["mi", "mo", "mn", "ms", "mtext"]),
+ ct = w({}, ["annotation-xml"]);
+ const st = w({}, ["title", "style", "font", "a", "script"]);
+ let ut = null;
+ const mt = ["application/xhtml+xml", "text/html"];
+ let pt = null,
+ ft = null;
+ const dt = r.createElement("form"),
+ ht = function (e) {
+ return e instanceof RegExp || e instanceof Function;
+ },
+ gt = function () {
+ let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
+ if (!ft || ft !== e) {
+ if (
+ ((e && "object" == typeof e) || (e = {}),
+ (e = D(e)),
+ (ut =
+ -1 === mt.indexOf(e.PARSER_MEDIA_TYPE)
+ ? "text/html"
+ : e.PARSER_MEDIA_TYPE),
+ (pt = "application/xhtml+xml" === ut ? g : h),
+ (Ne = _(e, "ALLOWED_TAGS") ? w({}, e.ALLOWED_TAGS, pt) : Re),
+ (we = _(e, "ALLOWED_ATTR") ? w({}, e.ALLOWED_ATTR, pt) : Oe),
+ (it = _(e, "ALLOWED_NAMESPACES") ? w({}, e.ALLOWED_NAMESPACES, g) : at),
+ (Je = _(e, "ADD_URI_SAFE_ATTR") ? w(D(Qe), e.ADD_URI_SAFE_ATTR, pt) : Qe),
+ (Ve = _(e, "ADD_DATA_URI_TAGS") ? w(D(Ze), e.ADD_DATA_URI_TAGS, pt) : Ze),
+ ($e = _(e, "FORBID_CONTENTS") ? w({}, e.FORBID_CONTENTS, pt) : Ke),
+ (ve = _(e, "FORBID_TAGS") ? w({}, e.FORBID_TAGS, pt) : D({})),
+ (Le = _(e, "FORBID_ATTR") ? w({}, e.FORBID_ATTR, pt) : D({})),
+ (qe = !!_(e, "USE_PROFILES") && e.USE_PROFILES),
+ (Ce = !1 !== e.ALLOW_ARIA_ATTR),
+ (xe = !1 !== e.ALLOW_DATA_ATTR),
+ (Ie = e.ALLOW_UNKNOWN_PROTOCOLS || !1),
+ (Me = !1 !== e.ALLOW_SELF_CLOSE_IN_ATTR),
+ (ke = e.SAFE_FOR_TEMPLATES || !1),
+ (Ue = !1 !== e.SAFE_FOR_XML),
+ (ze = e.WHOLE_DOCUMENT || !1),
+ (Fe = e.RETURN_DOM || !1),
+ (Be = e.RETURN_DOM_FRAGMENT || !1),
+ (We = e.RETURN_TRUSTED_TYPE || !1),
+ (He = e.FORCE_BODY || !1),
+ (Ge = !1 !== e.SANITIZE_DOM),
+ (Ye = e.SANITIZE_NAMED_PROPS || !1),
+ (je = !1 !== e.KEEP_CONTENT),
+ (Xe = e.IN_PLACE || !1),
+ (be = e.ALLOWED_URI_REGEXP || X),
+ (ot = e.NAMESPACE || nt),
+ (lt = e.MATHML_TEXT_INTEGRATION_POINTS || lt),
+ (ct = e.HTML_INTEGRATION_POINTS || ct),
+ (De = e.CUSTOM_ELEMENT_HANDLING || {}),
+ e.CUSTOM_ELEMENT_HANDLING &&
+ ht(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) &&
+ (De.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),
+ e.CUSTOM_ELEMENT_HANDLING &&
+ ht(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) &&
+ (De.attributeNameCheck = e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),
+ e.CUSTOM_ELEMENT_HANDLING &&
+ "boolean" ==
+ typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements &&
+ (De.allowCustomizedBuiltInElements =
+ e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),
+ ke && (xe = !1),
+ Be && (Fe = !0),
+ qe &&
+ ((Ne = w({}, U)),
+ (we = []),
+ !0 === qe.html && (w(Ne, L), w(we, z)),
+ !0 === qe.svg && (w(Ne, C), w(we, P), w(we, F)),
+ !0 === qe.svgFilters && (w(Ne, x), w(we, P), w(we, F)),
+ !0 === qe.mathMl && (w(Ne, M), w(we, H), w(we, F))),
+ e.ADD_TAGS && (Ne === Re && (Ne = D(Ne)), w(Ne, e.ADD_TAGS, pt)),
+ e.ADD_ATTR && (we === Oe && (we = D(we)), w(we, e.ADD_ATTR, pt)),
+ e.ADD_URI_SAFE_ATTR && w(Je, e.ADD_URI_SAFE_ATTR, pt),
+ e.FORBID_CONTENTS &&
+ ($e === Ke && ($e = D($e)), w($e, e.FORBID_CONTENTS, pt)),
+ je && (Ne["#text"] = !0),
+ ze && w(Ne, ["html", "head", "body"]),
+ Ne.table && (w(Ne, ["tbody"]), delete ve.tbody),
+ e.TRUSTED_TYPES_POLICY)
+ ) {
+ if ("function" != typeof e.TRUSTED_TYPES_POLICY.createHTML)
+ throw b(
+ 'TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.',
+ );
+ if ("function" != typeof e.TRUSTED_TYPES_POLICY.createScriptURL)
+ throw b(
+ 'TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.',
+ );
+ (le = e.TRUSTED_TYPES_POLICY), (ce = le.createHTML(""));
+ } else
+ void 0 === le &&
+ (le = (function (e, t) {
+ if ("object" != typeof e || "function" != typeof e.createPolicy)
+ return null;
+ let n = null;
+ const o = "data-tt-policy-suffix";
+ t && t.hasAttribute(o) && (n = t.getAttribute(o));
+ const r = "dompurify" + (n ? "#" + n : "");
+ try {
+ return e.createPolicy(r, {
+ createHTML: (e) => e,
+ createScriptURL: (e) => e,
+ });
+ } catch (e) {
+ return (
+ console.warn(
+ "TrustedTypes policy " + r + " could not be created.",
+ ),
+ null
+ );
+ }
+ })(j, c)),
+ null !== le && "string" == typeof ce && (ce = le.createHTML(""));
+ i && i(e), (ft = e);
+ }
+ },
+ Tt = w({}, [...C, ...x, ...I]),
+ yt = w({}, [...M, ...k]),
+ Et = function (e) {
+ f(o.removed, { element: e });
+ try {
+ ae(e).removeChild(e);
+ } catch (t) {
+ V(e);
+ }
+ },
+ At = function (e, t) {
+ try {
+ f(o.removed, { attribute: t.getAttributeNode(e), from: t });
+ } catch (e) {
+ f(o.removed, { attribute: null, from: t });
+ }
+ if ((t.removeAttribute(e), "is" === e))
+ if (Fe || Be)
+ try {
+ Et(t);
+ } catch (e) {}
+ else
+ try {
+ t.setAttribute(e, "");
+ } catch (e) {}
+ },
+ _t = function (e) {
+ let t = null,
+ n = null;
+ if (He) e = "