@codingame/monaco-vscode-mermaid-markdown-features-default-extension 33.0.9 → 34.0.0

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.
@@ -1327,6 +1327,46 @@ var init_dist = __esm({
1327
1327
  });
1328
1328
 
1329
1329
  // extensions/mermaid-markdown-features/node_modules/dompurify/dist/purify.es.mjs
1330
+ function _arrayLikeToArray(r6, a6) {
1331
+ (null == a6 || a6 > r6.length) && (a6 = r6.length);
1332
+ for (var e6 = 0, n6 = Array(a6); e6 < a6; e6++) n6[e6] = r6[e6];
1333
+ return n6;
1334
+ }
1335
+ function _arrayWithHoles(r6) {
1336
+ if (Array.isArray(r6)) return r6;
1337
+ }
1338
+ function _iterableToArrayLimit(r6, l6) {
1339
+ var t6 = null == r6 ? null : "undefined" != typeof Symbol && r6[Symbol.iterator] || r6["@@iterator"];
1340
+ if (null != t6) {
1341
+ var e6, n6, i6, u6, a6 = [], f6 = true, o6 = false;
1342
+ try {
1343
+ if (i6 = (t6 = t6.call(r6)).next, 0 === l6) ;
1344
+ else for (; !(f6 = (e6 = i6.call(t6)).done) && (a6.push(e6.value), a6.length !== l6); f6 = true) ;
1345
+ } catch (r10) {
1346
+ o6 = true, n6 = r10;
1347
+ } finally {
1348
+ try {
1349
+ if (!f6 && null != t6.return && (u6 = t6.return(), Object(u6) !== u6)) return;
1350
+ } finally {
1351
+ if (o6) throw n6;
1352
+ }
1353
+ }
1354
+ return a6;
1355
+ }
1356
+ }
1357
+ function _nonIterableRest() {
1358
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1359
+ }
1360
+ function _slicedToArray(r6, e6) {
1361
+ return _arrayWithHoles(r6) || _iterableToArrayLimit(r6, e6) || _unsupportedIterableToArray(r6, e6) || _nonIterableRest();
1362
+ }
1363
+ function _unsupportedIterableToArray(r6, a6) {
1364
+ if (r6) {
1365
+ if ("string" == typeof r6) return _arrayLikeToArray(r6, a6);
1366
+ var t6 = {}.toString.call(r6).slice(8, -1);
1367
+ return "Object" === t6 && r6.constructor && (t6 = r6.constructor.name), "Map" === t6 || "Set" === t6 ? Array.from(r6) : "Arguments" === t6 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t6) ? _arrayLikeToArray(r6, a6) : void 0;
1368
+ }
1369
+ }
1330
1370
  function unapply(func) {
1331
1371
  return function(thisArg) {
1332
1372
  if (thisArg instanceof RegExp) {
@@ -1381,7 +1421,10 @@ function cleanArray(array4) {
1381
1421
  }
1382
1422
  function clone(object3) {
1383
1423
  const newObject = create(null);
1384
- for (const [property3, value2] of entries(object3)) {
1424
+ for (const _ref2 of entries(object3)) {
1425
+ var _ref3 = _slicedToArray(_ref2, 2);
1426
+ const property3 = _ref3[0];
1427
+ const value2 = _ref3[1];
1385
1428
  const isPropertyExist = objectHasOwnProperty(object3, property3);
1386
1429
  if (isPropertyExist) {
1387
1430
  if (arrayIsArray(value2)) {
@@ -1462,34 +1505,30 @@ function isRegex(value2) {
1462
1505
  function createDOMPurify() {
1463
1506
  let window3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();
1464
1507
  const DOMPurify = (root4) => createDOMPurify(root4);
1465
- DOMPurify.version = "3.4.1";
1508
+ DOMPurify.version = "3.4.8";
1466
1509
  DOMPurify.removed = [];
1467
1510
  if (!window3 || !window3.document || window3.document.nodeType !== NODE_TYPE.document || !window3.Element) {
1468
1511
  DOMPurify.isSupported = false;
1469
1512
  return DOMPurify;
1470
1513
  }
1471
- let {
1472
- document: document2
1473
- } = window3;
1514
+ let document2 = window3.document;
1474
1515
  const originalDocument = document2;
1475
1516
  const currentScript = originalDocument.currentScript;
1476
- const {
1477
- DocumentFragment: DocumentFragment2,
1478
- HTMLTemplateElement,
1479
- Node: Node3,
1480
- Element: Element4,
1481
- NodeFilter,
1482
- NamedNodeMap = window3.NamedNodeMap || window3.MozNamedAttrMap,
1483
- HTMLFormElement,
1484
- DOMParser,
1485
- trustedTypes
1486
- } = window3;
1517
+ window3.DocumentFragment;
1518
+ const HTMLTemplateElement = window3.HTMLTemplateElement, Node3 = window3.Node, Element4 = window3.Element, NodeFilter = window3.NodeFilter, _window$NamedNodeMap = window3.NamedNodeMap;
1519
+ _window$NamedNodeMap === void 0 ? window3.NamedNodeMap || window3.MozNamedAttrMap : _window$NamedNodeMap;
1520
+ window3.HTMLFormElement;
1521
+ const DOMParser = window3.DOMParser, trustedTypes = window3.trustedTypes;
1487
1522
  const ElementPrototype = Element4.prototype;
1488
1523
  const cloneNode = lookupGetter(ElementPrototype, "cloneNode");
1489
1524
  const remove3 = lookupGetter(ElementPrototype, "remove");
1490
1525
  const getNextSibling = lookupGetter(ElementPrototype, "nextSibling");
1491
1526
  const getChildNodes = lookupGetter(ElementPrototype, "childNodes");
1492
1527
  const getParentNode = lookupGetter(ElementPrototype, "parentNode");
1528
+ const getShadowRoot = lookupGetter(ElementPrototype, "shadowRoot");
1529
+ const getAttributes = lookupGetter(ElementPrototype, "attributes");
1530
+ const getNodeType = Node3 && Node3.prototype ? lookupGetter(Node3.prototype, "nodeType") : null;
1531
+ const getNodeName = Node3 && Node3.prototype ? lookupGetter(Node3.prototype, "nodeName") : null;
1493
1532
  if (typeof HTMLTemplateElement === "function") {
1494
1533
  const template = document2.createElement("template");
1495
1534
  if (template.content && template.content.ownerDocument) {
@@ -1498,30 +1537,24 @@ function createDOMPurify() {
1498
1537
  }
1499
1538
  let trustedTypesPolicy;
1500
1539
  let emptyHTML = "";
1501
- const {
1502
- implementation,
1503
- createNodeIterator,
1504
- createDocumentFragment,
1505
- getElementsByTagName
1506
- } = document2;
1507
- const {
1508
- importNode
1509
- } = originalDocument;
1540
+ let IN_POLICY_CREATE_HTML = 0;
1541
+ const _createTrustedHTML = function _createTrustedHTML2(html2) {
1542
+ if (IN_POLICY_CREATE_HTML > 0) {
1543
+ throw typeErrorCreate('The configured TRUSTED_TYPES_POLICY.createHTML must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose createHTML wraps DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.');
1544
+ }
1545
+ IN_POLICY_CREATE_HTML++;
1546
+ try {
1547
+ return trustedTypesPolicy.createHTML(html2);
1548
+ } finally {
1549
+ IN_POLICY_CREATE_HTML--;
1550
+ }
1551
+ };
1552
+ const _document = document2, implementation = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName;
1553
+ const importNode = originalDocument.importNode;
1510
1554
  let hooks = _createHooksMap();
1511
1555
  DOMPurify.isSupported = typeof entries === "function" && typeof getParentNode === "function" && implementation && implementation.createHTMLDocument !== void 0;
1512
- const {
1513
- MUSTACHE_EXPR: MUSTACHE_EXPR2,
1514
- ERB_EXPR: ERB_EXPR2,
1515
- TMPLIT_EXPR: TMPLIT_EXPR2,
1516
- DATA_ATTR: DATA_ATTR2,
1517
- ARIA_ATTR: ARIA_ATTR2,
1518
- IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA2,
1519
- ATTR_WHITESPACE: ATTR_WHITESPACE2,
1520
- CUSTOM_ELEMENT: CUSTOM_ELEMENT2
1521
- } = EXPRESSIONS;
1522
- let {
1523
- IS_ALLOWED_URI: IS_ALLOWED_URI$1
1524
- } = EXPRESSIONS;
1556
+ const MUSTACHE_EXPR$1 = MUSTACHE_EXPR, ERB_EXPR$1 = ERB_EXPR, TMPLIT_EXPR$1 = TMPLIT_EXPR, DATA_ATTR$1 = DATA_ATTR, ARIA_ATTR$1 = ARIA_ATTR, IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA, ATTR_WHITESPACE$1 = ATTR_WHITESPACE, CUSTOM_ELEMENT$1 = CUSTOM_ELEMENT;
1557
+ let IS_ALLOWED_URI$1 = IS_ALLOWED_URI;
1525
1558
  let ALLOWED_TAGS = null;
1526
1559
  const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);
1527
1560
  let ALLOWED_ATTR = null;
@@ -1739,16 +1772,28 @@ function createDOMPurify() {
1739
1772
  if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== "function") {
1740
1773
  throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
1741
1774
  }
1775
+ const previousTrustedTypesPolicy = trustedTypesPolicy;
1742
1776
  trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
1743
- emptyHTML = trustedTypesPolicy.createHTML("");
1777
+ try {
1778
+ emptyHTML = _createTrustedHTML("");
1779
+ } catch (error3) {
1780
+ trustedTypesPolicy = previousTrustedTypesPolicy;
1781
+ throw error3;
1782
+ }
1744
1783
  } else {
1745
- if (trustedTypesPolicy === void 0) {
1784
+ if (trustedTypesPolicy === void 0 && cfg.TRUSTED_TYPES_POLICY !== null) {
1746
1785
  trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
1747
1786
  }
1748
- if (trustedTypesPolicy !== null && typeof emptyHTML === "string") {
1749
- emptyHTML = trustedTypesPolicy.createHTML("");
1787
+ if (trustedTypesPolicy && typeof emptyHTML === "string") {
1788
+ emptyHTML = _createTrustedHTML("");
1750
1789
  }
1751
1790
  }
1791
+ if ((hooks.uponSanitizeElement.length > 0 || hooks.uponSanitizeAttribute.length > 0) && ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
1792
+ ALLOWED_TAGS = clone(ALLOWED_TAGS);
1793
+ }
1794
+ if (hooks.uponSanitizeAttribute.length > 0 && ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
1795
+ ALLOWED_ATTR = clone(ALLOWED_ATTR);
1796
+ }
1752
1797
  if (freeze) {
1753
1798
  freeze(cfg);
1754
1799
  }
@@ -1850,7 +1895,7 @@ function createDOMPurify() {
1850
1895
  if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && NAMESPACE2 === HTML_NAMESPACE) {
1851
1896
  dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + "</body></html>";
1852
1897
  }
1853
- const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
1898
+ const dirtyPayload = trustedTypesPolicy ? _createTrustedHTML(dirty) : dirty;
1854
1899
  if (NAMESPACE2 === HTML_NAMESPACE) {
1855
1900
  try {
1856
1901
  doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
@@ -1882,11 +1927,84 @@ function createDOMPurify() {
1882
1927
  null
1883
1928
  );
1884
1929
  };
1930
+ const _scrubTemplateExpressions2 = function _scrubTemplateExpressions(node2) {
1931
+ var _node$querySelectorAl, _node$querySelectorAl2;
1932
+ node2.normalize();
1933
+ const walker = createNodeIterator.call(
1934
+ node2.ownerDocument || node2,
1935
+ node2,
1936
+ // eslint-disable-next-line no-bitwise
1937
+ NodeFilter.SHOW_TEXT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_CDATA_SECTION | NodeFilter.SHOW_PROCESSING_INSTRUCTION,
1938
+ null
1939
+ );
1940
+ let currentNode = walker.nextNode();
1941
+ while (currentNode) {
1942
+ let data5 = currentNode.data;
1943
+ arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], (expr) => {
1944
+ data5 = stringReplace(data5, expr, " ");
1945
+ });
1946
+ currentNode.data = data5;
1947
+ currentNode = walker.nextNode();
1948
+ }
1949
+ const templates = (_node$querySelectorAl = (_node$querySelectorAl2 = node2.querySelectorAll) === null || _node$querySelectorAl2 === void 0 ? void 0 : _node$querySelectorAl2.call(node2, "template")) !== null && _node$querySelectorAl !== void 0 ? _node$querySelectorAl : [];
1950
+ arrayForEach(Array.from(templates), (tmpl) => {
1951
+ if (_isDocumentFragment(tmpl.content)) {
1952
+ _scrubTemplateExpressions2(tmpl.content);
1953
+ }
1954
+ });
1955
+ };
1885
1956
  const _isClobbered = function _isClobbered2(element3) {
1886
- return element3 instanceof HTMLFormElement && (typeof element3.nodeName !== "string" || typeof element3.textContent !== "string" || typeof element3.removeChild !== "function" || !(element3.attributes instanceof NamedNodeMap) || typeof element3.removeAttribute !== "function" || typeof element3.setAttribute !== "function" || typeof element3.namespaceURI !== "string" || typeof element3.insertBefore !== "function" || typeof element3.hasChildNodes !== "function");
1957
+ const realTagName = getNodeName ? getNodeName(element3) : null;
1958
+ if (typeof realTagName !== "string") {
1959
+ return false;
1960
+ }
1961
+ if (transformCaseFunc(realTagName) !== "form") {
1962
+ return false;
1963
+ }
1964
+ return typeof element3.nodeName !== "string" || typeof element3.textContent !== "string" || typeof element3.removeChild !== "function" || // Realm-safe NamedNodeMap detection: equality against the cached
1965
+ // prototype getter. Clobbered .attributes (e.g. <input name="attributes">)
1966
+ // makes the direct read diverge from the cached read; a clean form
1967
+ // (same-realm OR foreign-realm) has both reads pointing at the same
1968
+ // canonical NamedNodeMap.
1969
+ element3.attributes !== getAttributes(element3) || typeof element3.removeAttribute !== "function" || typeof element3.setAttribute !== "function" || typeof element3.namespaceURI !== "string" || typeof element3.insertBefore !== "function" || typeof element3.hasChildNodes !== "function" || // NodeType clobbering probe. Cached Node.prototype.nodeType getter
1970
+ // returns the integer 1 for any Element regardless of realm; direct
1971
+ // read on a clobbered form (e.g. <input name="nodeType">) returns
1972
+ // the named child element. Cheap addition — nodeType is read from
1973
+ // an internal slot, no serialization cost — and removes a residual
1974
+ // clobbering surface used by several mXSS / PI / comment branches
1975
+ // in _sanitizeElements that compare currentNode.nodeType directly.
1976
+ element3.nodeType !== getNodeType(element3) || // HTMLFormElement has [LegacyOverrideBuiltIns]: a descendant named
1977
+ // "childNodes" shadows the prototype getter. Direct reads of
1978
+ // form.childNodes from a clobbered form return the named child
1979
+ // instead of the real NodeList, so any walk that reads it directly
1980
+ // skips the form's real children. Compare the direct read to the
1981
+ // cached Node.prototype getter — when the form's named-property
1982
+ // getter intercepts the read, the two values differ and we flag
1983
+ // the form. This catches every clobbering child type (input,
1984
+ // select, etc.) regardless of whether the named child happens to
1985
+ // carry a numeric .length, which a typeof-based probe would miss
1986
+ // (e.g. HTMLSelectElement.length is a defined unsigned-long).
1987
+ element3.childNodes !== getChildNodes(element3);
1988
+ };
1989
+ const _isDocumentFragment = function _isDocumentFragment2(value2) {
1990
+ if (!getNodeType || typeof value2 !== "object" || value2 === null) {
1991
+ return false;
1992
+ }
1993
+ try {
1994
+ return getNodeType(value2) === NODE_TYPE.documentFragment;
1995
+ } catch (_6) {
1996
+ return false;
1997
+ }
1887
1998
  };
1888
1999
  const _isNode = function _isNode2(value2) {
1889
- return typeof Node3 === "function" && value2 instanceof Node3;
2000
+ if (!getNodeType || typeof value2 !== "object" || value2 === null) {
2001
+ return false;
2002
+ }
2003
+ try {
2004
+ return typeof getNodeType(value2) === "number";
2005
+ } catch (_6) {
2006
+ return false;
2007
+ }
1890
2008
  };
1891
2009
  function _executeHooks(hooks2, currentNode, data5) {
1892
2010
  arrayForEach(hooks2, (hook2) => {
@@ -1900,7 +2018,7 @@ function createDOMPurify() {
1900
2018
  _forceRemove(currentNode);
1901
2019
  return true;
1902
2020
  }
1903
- const tagName = transformCaseFunc(currentNode.nodeName);
2021
+ const tagName = transformCaseFunc(getNodeName ? getNodeName(currentNode) : currentNode.nodeName);
1904
2022
  _executeHooks(hooks.uponSanitizeElement, currentNode, {
1905
2023
  tagName,
1906
2024
  allowedTags: ALLOWED_TAGS
@@ -1931,8 +2049,8 @@ function createDOMPurify() {
1931
2049
  }
1932
2050
  }
1933
2051
  if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
1934
- const parentNode = getParentNode(currentNode) || currentNode.parentNode;
1935
- const childNodes = getChildNodes(currentNode) || currentNode.childNodes;
2052
+ const parentNode = getParentNode(currentNode);
2053
+ const childNodes = getChildNodes(currentNode);
1936
2054
  if (childNodes && parentNode) {
1937
2055
  const childCount = childNodes.length;
1938
2056
  for (let i6 = childCount - 1; i6 >= 0; --i6) {
@@ -1944,7 +2062,8 @@ function createDOMPurify() {
1944
2062
  _forceRemove(currentNode);
1945
2063
  return true;
1946
2064
  }
1947
- if (currentNode instanceof Element4 && !_checkValidNamespace(currentNode)) {
2065
+ const nt2 = getNodeType ? getNodeType(currentNode) : currentNode.nodeType;
2066
+ if (nt2 === NODE_TYPE.element && !_checkValidNamespace(currentNode)) {
1948
2067
  _forceRemove(currentNode);
1949
2068
  return true;
1950
2069
  }
@@ -1954,7 +2073,7 @@ function createDOMPurify() {
1954
2073
  }
1955
2074
  if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {
1956
2075
  content = currentNode.textContent;
1957
- arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) => {
2076
+ arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], (expr) => {
1958
2077
  content = stringReplace(content, expr, " ");
1959
2078
  });
1960
2079
  if (currentNode.textContent !== content) {
@@ -1974,10 +2093,10 @@ function createDOMPurify() {
1974
2093
  if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value2 in document2 || value2 in formElement)) {
1975
2094
  return false;
1976
2095
  }
1977
- if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR2, lcName)) ;
1978
- else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR2, lcName)) ;
1979
- else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ;
1980
- else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
2096
+ const nameIsPermitted = ALLOWED_ATTR[lcName] || EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag);
2097
+ if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ;
2098
+ else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ;
2099
+ else if (!nameIsPermitted || FORBID_ATTR[lcName]) {
1981
2100
  if (
1982
2101
  // First condition does a very basic check if a) it's basically a valid custom element tagname AND
1983
2102
  // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
@@ -1990,9 +2109,9 @@ function createDOMPurify() {
1990
2109
  return false;
1991
2110
  }
1992
2111
  } else if (URI_SAFE_ATTRIBUTES[lcName]) ;
1993
- else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value2, ATTR_WHITESPACE2, ""))) ;
2112
+ else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value2, ATTR_WHITESPACE$1, ""))) ;
1994
2113
  else if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value2, "data:") === 0 && DATA_URI_TAGS[lcTag]) ;
1995
- else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA2, stringReplace(value2, ATTR_WHITESPACE2, ""))) ;
2114
+ else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value2, ATTR_WHITESPACE$1, ""))) ;
1996
2115
  else if (value2) {
1997
2116
  return false;
1998
2117
  } else ;
@@ -2000,13 +2119,11 @@ function createDOMPurify() {
2000
2119
  };
2001
2120
  const RESERVED_CUSTOM_ELEMENT_NAMES = addToSet({}, ["annotation-xml", "color-profile", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "missing-glyph"]);
2002
2121
  const _isBasicCustomElement = function _isBasicCustomElement2(tagName) {
2003
- return !RESERVED_CUSTOM_ELEMENT_NAMES[stringToLowerCase(tagName)] && regExpTest(CUSTOM_ELEMENT2, tagName);
2122
+ return !RESERVED_CUSTOM_ELEMENT_NAMES[stringToLowerCase(tagName)] && regExpTest(CUSTOM_ELEMENT$1, tagName);
2004
2123
  };
2005
2124
  const _sanitizeAttributes = function _sanitizeAttributes2(currentNode) {
2006
2125
  _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);
2007
- const {
2008
- attributes
2009
- } = currentNode;
2126
+ const attributes = currentNode.attributes;
2010
2127
  if (!attributes || _isClobbered(currentNode)) {
2011
2128
  return;
2012
2129
  }
@@ -2020,11 +2137,7 @@ function createDOMPurify() {
2020
2137
  let l6 = attributes.length;
2021
2138
  while (l6--) {
2022
2139
  const attr = attributes[l6];
2023
- const {
2024
- name,
2025
- namespaceURI,
2026
- value: attrValue
2027
- } = attr;
2140
+ const name = attr.name, namespaceURI = attr.namespaceURI, attrValue = attr.value;
2028
2141
  const lcName = transformCaseFunc(name);
2029
2142
  const initValue = attrValue;
2030
2143
  let value2 = name === "value" ? initValue : stringTrim(initValue);
@@ -2058,7 +2171,7 @@ function createDOMPurify() {
2058
2171
  continue;
2059
2172
  }
2060
2173
  if (SAFE_FOR_TEMPLATES) {
2061
- arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) => {
2174
+ arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], (expr) => {
2062
2175
  value2 = stringReplace(value2, expr, " ");
2063
2176
  });
2064
2177
  }
@@ -2072,7 +2185,7 @@ function createDOMPurify() {
2072
2185
  else {
2073
2186
  switch (trustedTypes.getAttributeType(lcTag, lcName)) {
2074
2187
  case "TrustedHTML": {
2075
- value2 = trustedTypesPolicy.createHTML(value2);
2188
+ value2 = _createTrustedHTML(value2);
2076
2189
  break;
2077
2190
  }
2078
2191
  case "TrustedScriptURL": {
@@ -2109,12 +2222,50 @@ function createDOMPurify() {
2109
2222
  _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);
2110
2223
  _sanitizeElements(shadowNode);
2111
2224
  _sanitizeAttributes(shadowNode);
2112
- if (shadowNode.content instanceof DocumentFragment2) {
2225
+ if (_isDocumentFragment(shadowNode.content)) {
2113
2226
  _sanitizeShadowDOM2(shadowNode.content);
2114
2227
  }
2228
+ const shadowNodeType = getNodeType ? getNodeType(shadowNode) : shadowNode.nodeType;
2229
+ if (shadowNodeType === NODE_TYPE.element) {
2230
+ const innerSr = getShadowRoot ? getShadowRoot(shadowNode) : shadowNode.shadowRoot;
2231
+ if (_isDocumentFragment(innerSr)) {
2232
+ _sanitizeAttachedShadowRoots2(innerSr);
2233
+ _sanitizeShadowDOM2(innerSr);
2234
+ }
2235
+ }
2115
2236
  }
2116
2237
  _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);
2117
2238
  };
2239
+ const _sanitizeAttachedShadowRoots2 = function _sanitizeAttachedShadowRoots(root4) {
2240
+ const nodeType3 = getNodeType ? getNodeType(root4) : root4.nodeType;
2241
+ if (nodeType3 === NODE_TYPE.element) {
2242
+ const sr = getShadowRoot ? getShadowRoot(root4) : root4.shadowRoot;
2243
+ if (_isDocumentFragment(sr)) {
2244
+ _sanitizeAttachedShadowRoots2(sr);
2245
+ _sanitizeShadowDOM2(sr);
2246
+ }
2247
+ }
2248
+ const childNodes = getChildNodes ? getChildNodes(root4) : root4.childNodes;
2249
+ if (!childNodes) {
2250
+ return;
2251
+ }
2252
+ const snapshot = [];
2253
+ arrayForEach(childNodes, (child) => {
2254
+ arrayPush(snapshot, child);
2255
+ });
2256
+ for (const child of snapshot) {
2257
+ _sanitizeAttachedShadowRoots2(child);
2258
+ }
2259
+ if (nodeType3 === NODE_TYPE.element) {
2260
+ const rootName = getNodeName ? getNodeName(root4) : null;
2261
+ if (typeof rootName === "string" && transformCaseFunc(rootName) === "template") {
2262
+ const content = root4.content;
2263
+ if (_isDocumentFragment(content)) {
2264
+ _sanitizeAttachedShadowRoots2(content);
2265
+ }
2266
+ }
2267
+ }
2268
+ };
2118
2269
  DOMPurify.sanitize = function(dirty) {
2119
2270
  let cfg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
2120
2271
  let body = null;
@@ -2142,14 +2293,18 @@ function createDOMPurify() {
2142
2293
  IN_PLACE = false;
2143
2294
  }
2144
2295
  if (IN_PLACE) {
2145
- const nn = dirty.nodeName;
2296
+ const nn = getNodeName ? getNodeName(dirty) : dirty.nodeName;
2146
2297
  if (typeof nn === "string") {
2147
2298
  const tagName = transformCaseFunc(nn);
2148
2299
  if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
2149
2300
  throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
2150
2301
  }
2151
2302
  }
2152
- } else if (dirty instanceof Node3) {
2303
+ if (_isClobbered(dirty)) {
2304
+ throw typeErrorCreate("root node is clobbered and cannot be sanitized in-place");
2305
+ }
2306
+ _sanitizeAttachedShadowRoots2(dirty);
2307
+ } else if (_isNode(dirty)) {
2153
2308
  body = _initDocument("<!---->");
2154
2309
  importedNode = body.ownerDocument.importNode(dirty, true);
2155
2310
  if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === "BODY") {
@@ -2159,10 +2314,11 @@ function createDOMPurify() {
2159
2314
  } else {
2160
2315
  body.appendChild(importedNode);
2161
2316
  }
2317
+ _sanitizeAttachedShadowRoots2(importedNode);
2162
2318
  } else {
2163
2319
  if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes
2164
2320
  dirty.indexOf("<") === -1) {
2165
- return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
2321
+ return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(dirty) : dirty;
2166
2322
  }
2167
2323
  body = _initDocument(dirty);
2168
2324
  if (!body) {
@@ -2176,21 +2332,19 @@ function createDOMPurify() {
2176
2332
  while (currentNode = nodeIterator.nextNode()) {
2177
2333
  _sanitizeElements(currentNode);
2178
2334
  _sanitizeAttributes(currentNode);
2179
- if (currentNode.content instanceof DocumentFragment2) {
2335
+ if (_isDocumentFragment(currentNode.content)) {
2180
2336
  _sanitizeShadowDOM2(currentNode.content);
2181
2337
  }
2182
2338
  }
2183
2339
  if (IN_PLACE) {
2340
+ if (SAFE_FOR_TEMPLATES) {
2341
+ _scrubTemplateExpressions2(dirty);
2342
+ }
2184
2343
  return dirty;
2185
2344
  }
2186
2345
  if (RETURN_DOM) {
2187
2346
  if (SAFE_FOR_TEMPLATES) {
2188
- body.normalize();
2189
- let html2 = body.innerHTML;
2190
- arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) => {
2191
- html2 = stringReplace(html2, expr, " ");
2192
- });
2193
- body.innerHTML = html2;
2347
+ _scrubTemplateExpressions2(body);
2194
2348
  }
2195
2349
  if (RETURN_DOM_FRAGMENT) {
2196
2350
  returnNode = createDocumentFragment.call(body.ownerDocument);
@@ -2210,11 +2364,11 @@ function createDOMPurify() {
2210
2364
  serializedHTML = "<!DOCTYPE " + body.ownerDocument.doctype.name + ">\n" + serializedHTML;
2211
2365
  }
2212
2366
  if (SAFE_FOR_TEMPLATES) {
2213
- arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) => {
2367
+ arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], (expr) => {
2214
2368
  serializedHTML = stringReplace(serializedHTML, expr, " ");
2215
2369
  });
2216
2370
  }
2217
- return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
2371
+ return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(serializedHTML) : serializedHTML;
2218
2372
  };
2219
2373
  DOMPurify.setConfig = function() {
2220
2374
  let cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
@@ -2254,25 +2408,20 @@ function createDOMPurify() {
2254
2408
  };
2255
2409
  return DOMPurify;
2256
2410
  }
2257
- var entries, setPrototypeOf, isFrozen, getPrototypeOf, getOwnPropertyDescriptor, freeze, seal, create, apply, construct, arrayForEach, arrayLastIndexOf, arrayPop, arrayPush, arraySplice, arrayIsArray, stringToLowerCase, stringToString, stringMatch, stringReplace, stringIndexOf, stringTrim, numberToString, booleanToString, bigintToString, symbolToString, objectHasOwnProperty, objectToString, regExpTest, typeErrorCreate, html$1, svg$1, svgFilters, svgDisallowed, mathMl$1, mathMlDisallowed, text, html, svg, mathMl, xml, MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR, DATA_ATTR, ARIA_ATTR, IS_ALLOWED_URI, IS_SCRIPT_OR_DATA, ATTR_WHITESPACE, DOCTYPE_NAME, CUSTOM_ELEMENT, EXPRESSIONS, NODE_TYPE, getGlobal, _createTrustedTypesPolicy, _createHooksMap, purify;
2411
+ var entries, setPrototypeOf, isFrozen, getPrototypeOf, getOwnPropertyDescriptor, freeze, seal, create, _ref, apply, construct, arrayForEach, arrayLastIndexOf, arrayPop, arrayPush, arraySplice, arrayIsArray, stringToLowerCase, stringToString, stringMatch, stringReplace, stringIndexOf, stringTrim, numberToString, booleanToString, bigintToString, symbolToString, objectHasOwnProperty, objectToString, regExpTest, typeErrorCreate, html$1, svg$1, svgFilters, svgDisallowed, mathMl$1, mathMlDisallowed, text, html, svg, mathMl, xml, MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR, DATA_ATTR, ARIA_ATTR, IS_ALLOWED_URI, IS_SCRIPT_OR_DATA, ATTR_WHITESPACE, DOCTYPE_NAME, CUSTOM_ELEMENT, NODE_TYPE, getGlobal, _createTrustedTypesPolicy, _createHooksMap, purify;
2258
2412
  var init_purify_es = __esm({
2259
2413
  "extensions/mermaid-markdown-features/node_modules/dompurify/dist/purify.es.mjs"() {
2260
- ({
2261
- entries,
2262
- setPrototypeOf,
2263
- isFrozen,
2264
- getPrototypeOf,
2265
- getOwnPropertyDescriptor
2266
- } = Object);
2267
- ({
2268
- freeze,
2269
- seal,
2270
- create
2271
- } = Object);
2272
- ({
2273
- apply,
2274
- construct
2275
- } = typeof Reflect !== "undefined" && Reflect);
2414
+ entries = Object.entries;
2415
+ setPrototypeOf = Object.setPrototypeOf;
2416
+ isFrozen = Object.isFrozen;
2417
+ getPrototypeOf = Object.getPrototypeOf;
2418
+ getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
2419
+ freeze = Object.freeze;
2420
+ seal = Object.seal;
2421
+ create = Object.create;
2422
+ _ref = typeof Reflect !== "undefined" && Reflect;
2423
+ apply = _ref.apply;
2424
+ construct = _ref.construct;
2276
2425
  if (!freeze) {
2277
2426
  freeze = function freeze2(x10) {
2278
2427
  return x10;
@@ -2326,13 +2475,13 @@ var init_purify_es = __esm({
2326
2475
  mathMl$1 = freeze(["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"]);
2327
2476
  mathMlDisallowed = freeze(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]);
2328
2477
  text = freeze(["#text"]);
2329
- html = freeze(["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", "exportparts", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inert", "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", "part", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "slot", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns"]);
2478
+ html = freeze(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "command", "commandfor", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "exportparts", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inert", "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", "part", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "slot", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns"]);
2330
2479
  svg = freeze(["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", "mask-type", "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"]);
2331
2480
  mathMl = freeze(["accent", "accentunder", "align", "bevelled", "close", "columnalign", "columnlines", "columnspacing", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lquote", "lspace", "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"]);
2332
2481
  xml = freeze(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]);
2333
- MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);
2334
- ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
2335
- TMPLIT_EXPR = seal(/\$\{[\w\W]*/gm);
2482
+ MUSTACHE_EXPR = seal(/{{[\w\W]*|^[\w\W]*}}/g);
2483
+ ERB_EXPR = seal(/<%[\w\W]*|^[\w\W]*%>/g);
2484
+ TMPLIT_EXPR = seal(/\${[\w\W]*/g);
2336
2485
  DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]+$/);
2337
2486
  ARIA_ATTR = seal(/^aria-[\-\w]+$/);
2338
2487
  IS_ALLOWED_URI = seal(
@@ -2346,26 +2495,22 @@ var init_purify_es = __esm({
2346
2495
  );
2347
2496
  DOCTYPE_NAME = seal(/^html$/i);
2348
2497
  CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
2349
- EXPRESSIONS = /* @__PURE__ */ Object.freeze({
2350
- __proto__: null,
2351
- ARIA_ATTR,
2352
- ATTR_WHITESPACE,
2353
- CUSTOM_ELEMENT,
2354
- DATA_ATTR,
2355
- DOCTYPE_NAME,
2356
- ERB_EXPR,
2357
- IS_ALLOWED_URI,
2358
- IS_SCRIPT_OR_DATA,
2359
- MUSTACHE_EXPR,
2360
- TMPLIT_EXPR
2361
- });
2362
2498
  NODE_TYPE = {
2363
2499
  element: 1,
2500
+ attribute: 2,
2364
2501
  text: 3,
2502
+ cdataSection: 4,
2503
+ entityReference: 5,
2504
+ // Deprecated
2505
+ entityNode: 6,
2365
2506
  // Deprecated
2366
2507
  progressingInstruction: 7,
2367
2508
  comment: 8,
2368
- document: 9
2509
+ document: 9,
2510
+ documentType: 10,
2511
+ documentFragment: 11,
2512
+ notation: 12
2513
+ // Deprecated
2369
2514
  };
2370
2515
  getGlobal = function getGlobal2() {
2371
2516
  return typeof window === "undefined" ? null : window;
@@ -2542,7 +2687,7 @@ function defineSymbol(mode, font, group2, replace2, name, acceptUnicodeChar) {
2542
2687
  symbols[mode][replace2] = symbols[mode][name];
2543
2688
  }
2544
2689
  }
2545
- function defineFunction(_ref) {
2690
+ function defineFunction(_ref2) {
2546
2691
  var {
2547
2692
  type: type3,
2548
2693
  names,
@@ -2550,7 +2695,7 @@ function defineFunction(_ref) {
2550
2695
  handler,
2551
2696
  htmlBuilder: htmlBuilder3,
2552
2697
  mathmlBuilder: mathmlBuilder3
2553
- } = _ref;
2698
+ } = _ref2;
2554
2699
  var data5 = {
2555
2700
  type: type3,
2556
2701
  numArgs: props.numArgs,
@@ -2922,7 +3067,7 @@ function assertParsed(group2) {
2922
3067
  throw new Error("Bug: The leftright ParseNode wasn't fully parsed.");
2923
3068
  }
2924
3069
  }
2925
- function defineEnvironment(_ref) {
3070
+ function defineEnvironment(_ref2) {
2926
3071
  var {
2927
3072
  type: type3,
2928
3073
  names,
@@ -2930,7 +3075,7 @@ function defineEnvironment(_ref) {
2930
3075
  handler,
2931
3076
  htmlBuilder: htmlBuilder3,
2932
3077
  mathmlBuilder: mathmlBuilder3
2933
- } = _ref;
3078
+ } = _ref2;
2934
3079
  var data5 = {
2935
3080
  type: type3,
2936
3081
  numArgs: props.numArgs || 0,
@@ -2973,7 +3118,7 @@ function getAutoTag(name) {
2973
3118
  return !name.includes("*");
2974
3119
  }
2975
3120
  }
2976
- function parseArray(parser29, _ref, style3) {
3121
+ function parseArray(parser29, _ref2, style3) {
2977
3122
  var {
2978
3123
  hskipBeforeAndAfter,
2979
3124
  addJot,
@@ -2985,7 +3130,7 @@ function parseArray(parser29, _ref, style3) {
2985
3130
  emptySingleRow,
2986
3131
  maxNumCols,
2987
3132
  leqno
2988
- } = _ref;
3133
+ } = _ref2;
2989
3134
  parser29.gullet.beginGroup();
2990
3135
  if (!singleRow) {
2991
3136
  parser29.gullet.macros.set("\\cr", "\\\\\\relax");
@@ -8847,11 +8992,11 @@ var init_katex = __esm({
8847
8992
  props: {
8848
8993
  numArgs: 1
8849
8994
  },
8850
- handler: (_ref, args) => {
8995
+ handler: (_ref2, args) => {
8851
8996
  var {
8852
8997
  parser: parser29,
8853
8998
  funcName
8854
- } = _ref;
8999
+ } = _ref2;
8855
9000
  var base = args[0];
8856
9001
  return {
8857
9002
  type: "accentUnder",
@@ -8930,11 +9075,11 @@ var init_katex = __esm({
8930
9075
  numArgs: 1,
8931
9076
  numOptionalArgs: 1
8932
9077
  },
8933
- handler(_ref, args, optArgs) {
9078
+ handler(_ref2, args, optArgs) {
8934
9079
  var {
8935
9080
  parser: parser29,
8936
9081
  funcName
8937
- } = _ref;
9082
+ } = _ref2;
8938
9083
  return {
8939
9084
  type: "xArrow",
8940
9085
  mode: parser29.mode,
@@ -9026,11 +9171,11 @@ var init_katex = __esm({
9026
9171
  numArgs: 1,
9027
9172
  primitive: true
9028
9173
  },
9029
- handler(_ref, args) {
9174
+ handler(_ref2, args) {
9030
9175
  var {
9031
9176
  parser: parser29,
9032
9177
  funcName
9033
- } = _ref;
9178
+ } = _ref2;
9034
9179
  var body = args[0];
9035
9180
  return {
9036
9181
  type: "mclass",
@@ -9125,10 +9270,10 @@ var init_katex = __esm({
9125
9270
  numArgs: 1,
9126
9271
  allowedInText: true
9127
9272
  },
9128
- handler(_ref, args) {
9273
+ handler(_ref2, args) {
9129
9274
  var {
9130
9275
  parser: parser29
9131
- } = _ref;
9276
+ } = _ref2;
9132
9277
  return {
9133
9278
  type: "pmb",
9134
9279
  mode: parser29.mode,
@@ -9178,11 +9323,11 @@ var init_katex = __esm({
9178
9323
  props: {
9179
9324
  numArgs: 1
9180
9325
  },
9181
- handler(_ref, args) {
9326
+ handler(_ref2, args) {
9182
9327
  var {
9183
9328
  parser: parser29,
9184
9329
  funcName
9185
- } = _ref;
9330
+ } = _ref2;
9186
9331
  return {
9187
9332
  type: "cdlabel",
9188
9333
  mode: parser29.mode,
@@ -9245,10 +9390,10 @@ var init_katex = __esm({
9245
9390
  numArgs: 1,
9246
9391
  allowedInText: true
9247
9392
  },
9248
- handler(_ref, args) {
9393
+ handler(_ref2, args) {
9249
9394
  var {
9250
9395
  parser: parser29
9251
- } = _ref;
9396
+ } = _ref2;
9252
9397
  var arg = assertNodeType(args[0], "ordgroup");
9253
9398
  var group2 = arg.body;
9254
9399
  var number7 = "";
@@ -9293,10 +9438,10 @@ var init_katex = __esm({
9293
9438
  allowedInText: true,
9294
9439
  argTypes: ["color", "original"]
9295
9440
  },
9296
- handler(_ref, args) {
9441
+ handler(_ref2, args) {
9297
9442
  var {
9298
9443
  parser: parser29
9299
- } = _ref;
9444
+ } = _ref2;
9300
9445
  var color2 = assertNodeType(args[0], "color-token").color;
9301
9446
  var body = args[1];
9302
9447
  return {
@@ -9343,10 +9488,10 @@ var init_katex = __esm({
9343
9488
  numOptionalArgs: 0,
9344
9489
  allowedInText: true
9345
9490
  },
9346
- handler(_ref, args, optArgs) {
9491
+ handler(_ref2, args, optArgs) {
9347
9492
  var {
9348
9493
  parser: parser29
9349
- } = _ref;
9494
+ } = _ref2;
9350
9495
  var size4 = parser29.gullet.future().text === "[" ? parser29.parseSizeGroup(true) : null;
9351
9496
  var newLine = !parser29.settings.displayMode || !parser29.settings.useStrictBehavior("newLineInDisplayMode", "In LaTeX, \\\\ or \\newline does nothing in display mode");
9352
9497
  return {
@@ -9432,11 +9577,11 @@ var init_katex = __esm({
9432
9577
  numArgs: 0,
9433
9578
  allowedInText: true
9434
9579
  },
9435
- handler(_ref) {
9580
+ handler(_ref2) {
9436
9581
  var {
9437
9582
  parser: parser29,
9438
9583
  funcName
9439
- } = _ref;
9584
+ } = _ref2;
9440
9585
  parser29.consumeSpaces();
9441
9586
  var token2 = parser29.fetch();
9442
9587
  if (globalMap[token2.text]) {
@@ -10490,11 +10635,11 @@ var init_katex = __esm({
10490
10635
  allowedInText: true,
10491
10636
  argTypes: ["color", "text"]
10492
10637
  },
10493
- handler(_ref, args, optArgs) {
10638
+ handler(_ref2, args, optArgs) {
10494
10639
  var {
10495
10640
  parser: parser29,
10496
10641
  funcName
10497
- } = _ref;
10642
+ } = _ref2;
10498
10643
  var color2 = assertNodeType(args[0], "color-token").color;
10499
10644
  var body = args[1];
10500
10645
  return {
@@ -11373,11 +11518,11 @@ var init_katex = __esm({
11373
11518
  numArgs: 1,
11374
11519
  argTypes: ["text"]
11375
11520
  },
11376
- handler(_ref, args) {
11521
+ handler(_ref2, args) {
11377
11522
  var {
11378
11523
  parser: parser29,
11379
11524
  funcName
11380
- } = _ref;
11525
+ } = _ref2;
11381
11526
  var nameGroup = args[0];
11382
11527
  if (nameGroup.type !== "ordgroup") {
11383
11528
  throw new ParseError("Invalid environment name", nameGroup);
@@ -11458,11 +11603,11 @@ var init_katex = __esm({
11458
11603
  numArgs: 1,
11459
11604
  allowedInArgument: true
11460
11605
  },
11461
- handler: (_ref, args) => {
11606
+ handler: (_ref2, args) => {
11462
11607
  var {
11463
11608
  parser: parser29,
11464
11609
  funcName
11465
- } = _ref;
11610
+ } = _ref2;
11466
11611
  var body = normalizeArgument(args[0]);
11467
11612
  var func = funcName;
11468
11613
  if (func in fontAliases) {
@@ -11717,11 +11862,11 @@ var init_katex = __esm({
11717
11862
  numArgs: 2,
11718
11863
  allowedInArgument: true
11719
11864
  },
11720
- handler: (_ref, args) => {
11865
+ handler: (_ref2, args) => {
11721
11866
  var {
11722
11867
  parser: parser29,
11723
11868
  funcName
11724
- } = _ref;
11869
+ } = _ref2;
11725
11870
  var numer = args[0];
11726
11871
  var denom = args[1];
11727
11872
  var hasBarLine;
@@ -12025,11 +12170,11 @@ var init_katex = __esm({
12025
12170
  props: {
12026
12171
  numArgs: 1
12027
12172
  },
12028
- handler(_ref, args) {
12173
+ handler(_ref2, args) {
12029
12174
  var {
12030
12175
  parser: parser29,
12031
12176
  funcName
12032
- } = _ref;
12177
+ } = _ref2;
12033
12178
  return {
12034
12179
  type: "horizBrace",
12035
12180
  mode: parser29.mode,
@@ -12049,10 +12194,10 @@ var init_katex = __esm({
12049
12194
  argTypes: ["url", "original"],
12050
12195
  allowedInText: true
12051
12196
  },
12052
- handler: (_ref, args) => {
12197
+ handler: (_ref2, args) => {
12053
12198
  var {
12054
12199
  parser: parser29
12055
- } = _ref;
12200
+ } = _ref2;
12056
12201
  var body = args[1];
12057
12202
  var href = assertNodeType(args[0], "url").url;
12058
12203
  if (!parser29.settings.isTrusted({
@@ -12135,10 +12280,10 @@ var init_katex = __esm({
12135
12280
  allowedInText: true,
12136
12281
  primitive: true
12137
12282
  },
12138
- handler(_ref, args) {
12283
+ handler(_ref2, args) {
12139
12284
  var {
12140
12285
  parser: parser29
12141
- } = _ref;
12286
+ } = _ref2;
12142
12287
  return {
12143
12288
  type: "hbox",
12144
12289
  mode: parser29.mode,
@@ -12161,12 +12306,12 @@ var init_katex = __esm({
12161
12306
  argTypes: ["raw", "original"],
12162
12307
  allowedInText: true
12163
12308
  },
12164
- handler: (_ref, args) => {
12309
+ handler: (_ref2, args) => {
12165
12310
  var {
12166
12311
  parser: parser29,
12167
12312
  funcName,
12168
12313
  token: token2
12169
- } = _ref;
12314
+ } = _ref2;
12170
12315
  var value2 = assertNodeType(args[0], "raw").string;
12171
12316
  var body = args[1];
12172
12317
  if (parser29.settings.strict) {
@@ -12253,10 +12398,10 @@ var init_katex = __esm({
12253
12398
  allowedInArgument: true,
12254
12399
  allowedInText: true
12255
12400
  },
12256
- handler: (_ref, args) => {
12401
+ handler: (_ref2, args) => {
12257
12402
  var {
12258
12403
  parser: parser29
12259
- } = _ref;
12404
+ } = _ref2;
12260
12405
  return {
12261
12406
  type: "htmlmathml",
12262
12407
  mode: parser29.mode,
@@ -12303,10 +12448,10 @@ var init_katex = __esm({
12303
12448
  argTypes: ["raw", "url"],
12304
12449
  allowedInText: false
12305
12450
  },
12306
- handler: (_ref, args, optArgs) => {
12451
+ handler: (_ref2, args, optArgs) => {
12307
12452
  var {
12308
12453
  parser: parser29
12309
- } = _ref;
12454
+ } = _ref2;
12310
12455
  var width3 = {
12311
12456
  number: 0,
12312
12457
  unit: "em"
@@ -12419,11 +12564,11 @@ var init_katex = __esm({
12419
12564
  primitive: true,
12420
12565
  allowedInText: true
12421
12566
  },
12422
- handler(_ref, args) {
12567
+ handler(_ref2, args) {
12423
12568
  var {
12424
12569
  parser: parser29,
12425
12570
  funcName
12426
- } = _ref;
12571
+ } = _ref2;
12427
12572
  var size4 = assertNodeType(args[0], "size");
12428
12573
  if (parser29.settings.strict) {
12429
12574
  var mathFunction = funcName[1] === "m";
@@ -12462,11 +12607,11 @@ var init_katex = __esm({
12462
12607
  numArgs: 1,
12463
12608
  allowedInText: true
12464
12609
  },
12465
- handler: (_ref, args) => {
12610
+ handler: (_ref2, args) => {
12466
12611
  var {
12467
12612
  parser: parser29,
12468
12613
  funcName
12469
- } = _ref;
12614
+ } = _ref2;
12470
12615
  var body = args[0];
12471
12616
  return {
12472
12617
  type: "lap",
@@ -12512,11 +12657,11 @@ var init_katex = __esm({
12512
12657
  allowedInText: true,
12513
12658
  allowedInMath: false
12514
12659
  },
12515
- handler(_ref, args) {
12660
+ handler(_ref2, args) {
12516
12661
  var {
12517
12662
  funcName,
12518
12663
  parser: parser29
12519
- } = _ref;
12664
+ } = _ref2;
12520
12665
  var outerMode = parser29.mode;
12521
12666
  parser29.switchMode("math");
12522
12667
  var close2 = funcName === "\\(" ? "\\)" : "$";
@@ -12565,10 +12710,10 @@ var init_katex = __esm({
12565
12710
  numArgs: 4,
12566
12711
  primitive: true
12567
12712
  },
12568
- handler: (_ref, args) => {
12713
+ handler: (_ref2, args) => {
12569
12714
  var {
12570
12715
  parser: parser29
12571
- } = _ref;
12716
+ } = _ref2;
12572
12717
  return {
12573
12718
  type: "mathchoice",
12574
12719
  mode: parser29.mode,
@@ -12807,11 +12952,11 @@ var init_katex = __esm({
12807
12952
  props: {
12808
12953
  numArgs: 0
12809
12954
  },
12810
- handler: (_ref, args) => {
12955
+ handler: (_ref2, args) => {
12811
12956
  var {
12812
12957
  parser: parser29,
12813
12958
  funcName
12814
- } = _ref;
12959
+ } = _ref2;
12815
12960
  var fName = funcName;
12816
12961
  if (fName.length === 1) {
12817
12962
  fName = singleCharBigOps[fName];
@@ -13027,11 +13172,11 @@ var init_katex = __esm({
13027
13172
  props: {
13028
13173
  numArgs: 1
13029
13174
  },
13030
- handler: (_ref, args) => {
13175
+ handler: (_ref2, args) => {
13031
13176
  var {
13032
13177
  parser: parser29,
13033
13178
  funcName
13034
- } = _ref;
13179
+ } = _ref2;
13035
13180
  var body = args[0];
13036
13181
  return {
13037
13182
  type: "operatorname",
@@ -13064,10 +13209,10 @@ var init_katex = __esm({
13064
13209
  props: {
13065
13210
  numArgs: 1
13066
13211
  },
13067
- handler(_ref, args) {
13212
+ handler(_ref2, args) {
13068
13213
  var {
13069
13214
  parser: parser29
13070
- } = _ref;
13215
+ } = _ref2;
13071
13216
  var body = args[0];
13072
13217
  return {
13073
13218
  type: "overline",
@@ -13112,10 +13257,10 @@ var init_katex = __esm({
13112
13257
  numArgs: 1,
13113
13258
  allowedInText: true
13114
13259
  },
13115
- handler: (_ref, args) => {
13260
+ handler: (_ref2, args) => {
13116
13261
  var {
13117
13262
  parser: parser29
13118
- } = _ref;
13263
+ } = _ref2;
13119
13264
  var body = args[0];
13120
13265
  return {
13121
13266
  type: "phantom",
@@ -13172,10 +13317,10 @@ var init_katex = __esm({
13172
13317
  argTypes: ["size", "hbox"],
13173
13318
  allowedInText: true
13174
13319
  },
13175
- handler(_ref, args) {
13320
+ handler(_ref2, args) {
13176
13321
  var {
13177
13322
  parser: parser29
13178
- } = _ref;
13323
+ } = _ref2;
13179
13324
  var amount = assertNodeType(args[0], "size").value;
13180
13325
  var body = args[1];
13181
13326
  return {
@@ -13212,10 +13357,10 @@ var init_katex = __esm({
13212
13357
  allowedInText: true,
13213
13358
  allowedInArgument: true
13214
13359
  },
13215
- handler(_ref) {
13360
+ handler(_ref2) {
13216
13361
  var {
13217
13362
  parser: parser29
13218
- } = _ref;
13363
+ } = _ref2;
13219
13364
  return {
13220
13365
  type: "internal",
13221
13366
  mode: parser29.mode
@@ -13232,10 +13377,10 @@ var init_katex = __esm({
13232
13377
  allowedInMath: true,
13233
13378
  argTypes: ["size", "size", "size"]
13234
13379
  },
13235
- handler(_ref, args, optArgs) {
13380
+ handler(_ref2, args, optArgs) {
13236
13381
  var {
13237
13382
  parser: parser29
13238
- } = _ref;
13383
+ } = _ref2;
13239
13384
  var shift2 = optArgs[0];
13240
13385
  var width3 = assertNodeType(args[0], "size");
13241
13386
  var height2 = assertNodeType(args[1], "size");
@@ -13293,12 +13438,12 @@ var init_katex = __esm({
13293
13438
  numArgs: 0,
13294
13439
  allowedInText: true
13295
13440
  },
13296
- handler: (_ref, args) => {
13441
+ handler: (_ref2, args) => {
13297
13442
  var {
13298
13443
  breakOnTokenText,
13299
13444
  funcName,
13300
13445
  parser: parser29
13301
- } = _ref;
13446
+ } = _ref2;
13302
13447
  var body = parser29.parseExpression(false, breakOnTokenText);
13303
13448
  return {
13304
13449
  type: "sizing",
@@ -13325,10 +13470,10 @@ var init_katex = __esm({
13325
13470
  numOptionalArgs: 1,
13326
13471
  allowedInText: true
13327
13472
  },
13328
- handler: (_ref, args, optArgs) => {
13473
+ handler: (_ref2, args, optArgs) => {
13329
13474
  var {
13330
13475
  parser: parser29
13331
- } = _ref;
13476
+ } = _ref2;
13332
13477
  var smashHeight = false;
13333
13478
  var smashDepth = false;
13334
13479
  var tbArg = optArgs[0] && assertNodeType(optArgs[0], "ordgroup");
@@ -13411,10 +13556,10 @@ var init_katex = __esm({
13411
13556
  numArgs: 1,
13412
13557
  numOptionalArgs: 1
13413
13558
  },
13414
- handler(_ref, args, optArgs) {
13559
+ handler(_ref2, args, optArgs) {
13415
13560
  var {
13416
13561
  parser: parser29
13417
- } = _ref;
13562
+ } = _ref2;
13418
13563
  var index = optArgs[0];
13419
13564
  var body = args[0];
13420
13565
  return {
@@ -13506,12 +13651,12 @@ var init_katex = __esm({
13506
13651
  allowedInText: true,
13507
13652
  primitive: true
13508
13653
  },
13509
- handler(_ref, args) {
13654
+ handler(_ref2, args) {
13510
13655
  var {
13511
13656
  breakOnTokenText,
13512
13657
  funcName,
13513
13658
  parser: parser29
13514
- } = _ref;
13659
+ } = _ref2;
13515
13660
  var body = parser29.parseExpression(true, breakOnTokenText);
13516
13661
  var style3 = funcName.slice(1, funcName.length - 5);
13517
13662
  return {
@@ -13901,11 +14046,11 @@ var init_katex = __esm({
13901
14046
  allowedInArgument: true,
13902
14047
  allowedInText: true
13903
14048
  },
13904
- handler(_ref, args) {
14049
+ handler(_ref2, args) {
13905
14050
  var {
13906
14051
  parser: parser29,
13907
14052
  funcName
13908
- } = _ref;
14053
+ } = _ref2;
13909
14054
  var body = args[0];
13910
14055
  return {
13911
14056
  type: "text",
@@ -13931,10 +14076,10 @@ var init_katex = __esm({
13931
14076
  numArgs: 1,
13932
14077
  allowedInText: true
13933
14078
  },
13934
- handler(_ref, args) {
14079
+ handler(_ref2, args) {
13935
14080
  var {
13936
14081
  parser: parser29
13937
- } = _ref;
14082
+ } = _ref2;
13938
14083
  return {
13939
14084
  type: "underline",
13940
14085
  mode: parser29.mode,
@@ -13981,10 +14126,10 @@ var init_katex = __esm({
13981
14126
  // In LaTeX, \vcenter can act only on a box.
13982
14127
  allowedInText: false
13983
14128
  },
13984
- handler(_ref, args) {
14129
+ handler(_ref2, args) {
13985
14130
  var {
13986
14131
  parser: parser29
13987
- } = _ref;
14132
+ } = _ref2;
13988
14133
  return {
13989
14134
  type: "vcenter",
13990
14135
  mode: parser29.mode,
@@ -52026,16 +52171,16 @@ var init_dagre_BM42HDAG = __esm({
52026
52171
  });
52027
52172
 
52028
52173
  // extensions/mermaid-markdown-features/node_modules/cytoscape/dist/cytoscape.esm.mjs
52029
- function _arrayLikeToArray(r6, a6) {
52174
+ function _arrayLikeToArray2(r6, a6) {
52030
52175
  (null == a6 || a6 > r6.length) && (a6 = r6.length);
52031
52176
  for (var e6 = 0, n6 = Array(a6); e6 < a6; e6++) n6[e6] = r6[e6];
52032
52177
  return n6;
52033
52178
  }
52034
- function _arrayWithHoles(r6) {
52179
+ function _arrayWithHoles2(r6) {
52035
52180
  if (Array.isArray(r6)) return r6;
52036
52181
  }
52037
52182
  function _arrayWithoutHoles(r6) {
52038
- if (Array.isArray(r6)) return _arrayLikeToArray(r6);
52183
+ if (Array.isArray(r6)) return _arrayLikeToArray2(r6);
52039
52184
  }
52040
52185
  function _classCallCheck(a6, n6) {
52041
52186
  if (!(a6 instanceof n6)) throw new TypeError("Cannot call a class as a function");
@@ -52054,7 +52199,7 @@ function _createClass(e6, r6, t6) {
52054
52199
  function _createForOfIteratorHelper(r6, e6) {
52055
52200
  var t6 = "undefined" != typeof Symbol && r6[Symbol.iterator] || r6["@@iterator"];
52056
52201
  if (!t6) {
52057
- if (Array.isArray(r6) || (t6 = _unsupportedIterableToArray(r6)) || e6) {
52202
+ if (Array.isArray(r6) || (t6 = _unsupportedIterableToArray2(r6)) || e6) {
52058
52203
  t6 && (r6 = t6);
52059
52204
  var n6 = 0, F6 = function() {
52060
52205
  };
@@ -52108,7 +52253,7 @@ function _defineProperty$1(e6, r6, t6) {
52108
52253
  function _iterableToArray(r6) {
52109
52254
  if ("undefined" != typeof Symbol && null != r6[Symbol.iterator] || null != r6["@@iterator"]) return Array.from(r6);
52110
52255
  }
52111
- function _iterableToArrayLimit(r6, l6) {
52256
+ function _iterableToArrayLimit2(r6, l6) {
52112
52257
  var t6 = null == r6 ? null : "undefined" != typeof Symbol && r6[Symbol.iterator] || r6["@@iterator"];
52113
52258
  if (null != t6) {
52114
52259
  var e6, n6, i6, u6, a6 = [], f6 = true, o6 = false;
@@ -52129,17 +52274,17 @@ function _iterableToArrayLimit(r6, l6) {
52129
52274
  return a6;
52130
52275
  }
52131
52276
  }
52132
- function _nonIterableRest() {
52277
+ function _nonIterableRest2() {
52133
52278
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
52134
52279
  }
52135
52280
  function _nonIterableSpread() {
52136
52281
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
52137
52282
  }
52138
- function _slicedToArray(r6, e6) {
52139
- return _arrayWithHoles(r6) || _iterableToArrayLimit(r6, e6) || _unsupportedIterableToArray(r6, e6) || _nonIterableRest();
52283
+ function _slicedToArray2(r6, e6) {
52284
+ return _arrayWithHoles2(r6) || _iterableToArrayLimit2(r6, e6) || _unsupportedIterableToArray2(r6, e6) || _nonIterableRest2();
52140
52285
  }
52141
52286
  function _toConsumableArray(r6) {
52142
- return _arrayWithoutHoles(r6) || _iterableToArray(r6) || _unsupportedIterableToArray(r6) || _nonIterableSpread();
52287
+ return _arrayWithoutHoles(r6) || _iterableToArray(r6) || _unsupportedIterableToArray2(r6) || _nonIterableSpread();
52143
52288
  }
52144
52289
  function _toPrimitive(t6, r6) {
52145
52290
  if ("object" != typeof t6 || !t6) return t6;
@@ -52163,11 +52308,11 @@ function _typeof(o6) {
52163
52308
  return o10 && "function" == typeof Symbol && o10.constructor === Symbol && o10 !== Symbol.prototype ? "symbol" : typeof o10;
52164
52309
  }, _typeof(o6);
52165
52310
  }
52166
- function _unsupportedIterableToArray(r6, a6) {
52311
+ function _unsupportedIterableToArray2(r6, a6) {
52167
52312
  if (r6) {
52168
- if ("string" == typeof r6) return _arrayLikeToArray(r6, a6);
52313
+ if ("string" == typeof r6) return _arrayLikeToArray2(r6, a6);
52169
52314
  var t6 = {}.toString.call(r6).slice(8, -1);
52170
- return "Object" === t6 && r6.constructor && (t6 = r6.constructor.name), "Map" === t6 || "Set" === t6 ? Array.from(r6) : "Arguments" === t6 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t6) ? _arrayLikeToArray(r6, a6) : void 0;
52315
+ return "Object" === t6 && r6.constructor && (t6 = r6.constructor.name), "Map" === t6 || "Set" === t6 ? Array.from(r6) : "Arguments" === t6 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t6) ? _arrayLikeToArray2(r6, a6) : void 0;
52171
52316
  }
52172
52317
  }
52173
52318
  function getDefaultExportFromCjs(x10) {
@@ -52530,12 +52675,12 @@ function requireHeap$1() {
52530
52675
  return returnitem;
52531
52676
  };
52532
52677
  heappushpop = function(array4, item, cmp) {
52533
- var _ref;
52678
+ var _ref2;
52534
52679
  if (cmp == null) {
52535
52680
  cmp = defaultCmp;
52536
52681
  }
52537
52682
  if (array4.length && cmp(array4[0], item) < 0) {
52538
- _ref = [array4[0], item], item = _ref[0], array4[0] = _ref[1];
52683
+ _ref2 = [array4[0], item], item = _ref2[0], array4[0] = _ref2[1];
52539
52684
  _siftup(array4, 0, cmp);
52540
52685
  }
52541
52686
  return item;
@@ -52547,7 +52692,7 @@ function requireHeap$1() {
52547
52692
  }
52548
52693
  _ref1 = (function() {
52549
52694
  _results1 = [];
52550
- for (var _j = 0, _ref = floor(array4.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--) {
52695
+ for (var _j = 0, _ref2 = floor(array4.length / 2); 0 <= _ref2 ? _j < _ref2 : _j > _ref2; 0 <= _ref2 ? _j++ : _j--) {
52551
52696
  _results1.push(_j);
52552
52697
  }
52553
52698
  return _results1;
@@ -52572,7 +52717,7 @@ function requireHeap$1() {
52572
52717
  return _siftup(array4, pos, cmp);
52573
52718
  };
52574
52719
  nlargest = function(array4, n6, cmp) {
52575
- var elem, result, _i2, _len, _ref;
52720
+ var elem, result, _i2, _len, _ref2;
52576
52721
  if (cmp == null) {
52577
52722
  cmp = defaultCmp;
52578
52723
  }
@@ -52581,15 +52726,15 @@ function requireHeap$1() {
52581
52726
  return result;
52582
52727
  }
52583
52728
  heapify(result, cmp);
52584
- _ref = array4.slice(n6);
52585
- for (_i2 = 0, _len = _ref.length; _i2 < _len; _i2++) {
52586
- elem = _ref[_i2];
52729
+ _ref2 = array4.slice(n6);
52730
+ for (_i2 = 0, _len = _ref2.length; _i2 < _len; _i2++) {
52731
+ elem = _ref2[_i2];
52587
52732
  heappushpop(result, elem, cmp);
52588
52733
  }
52589
52734
  return result.sort(cmp).reverse();
52590
52735
  };
52591
52736
  nsmallest = function(array4, n6, cmp) {
52592
- var elem, los, result, _i2, _j, _len, _ref, _ref1, _results;
52737
+ var elem, los, result, _i2, _j, _len, _ref2, _ref1, _results;
52593
52738
  if (cmp == null) {
52594
52739
  cmp = defaultCmp;
52595
52740
  }
@@ -52599,9 +52744,9 @@ function requireHeap$1() {
52599
52744
  return result;
52600
52745
  }
52601
52746
  los = result[result.length - 1];
52602
- _ref = array4.slice(n6);
52603
- for (_i2 = 0, _len = _ref.length; _i2 < _len; _i2++) {
52604
- elem = _ref[_i2];
52747
+ _ref2 = array4.slice(n6);
52748
+ for (_i2 = 0, _len = _ref2.length; _i2 < _len; _i2++) {
52749
+ elem = _ref2[_i2];
52605
52750
  if (cmp(elem, los) < 0) {
52606
52751
  insort(result, elem, 0, null, cmp);
52607
52752
  result.pop();
@@ -54670,7 +54815,7 @@ function createTypedArrayView(gl, glType, array4, stride, size4, i6) {
54670
54815
  }
54671
54816
  }
54672
54817
  function createBufferStaticDraw(gl, type3, attributeLoc, dataArray) {
54673
- var _getTypeInfo = getTypeInfo(gl, type3), _getTypeInfo2 = _slicedToArray(_getTypeInfo, 2), size4 = _getTypeInfo2[0], glType = _getTypeInfo2[1];
54818
+ var _getTypeInfo = getTypeInfo(gl, type3), _getTypeInfo2 = _slicedToArray2(_getTypeInfo, 2), size4 = _getTypeInfo2[0], glType = _getTypeInfo2[1];
54674
54819
  var data5 = createTypedArray(gl, glType, dataArray);
54675
54820
  var buffer = gl.createBuffer();
54676
54821
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
@@ -54685,7 +54830,7 @@ function createBufferStaticDraw(gl, type3, attributeLoc, dataArray) {
54685
54830
  return buffer;
54686
54831
  }
54687
54832
  function createBufferDynamicDraw(gl, instances, type3, attributeLoc) {
54688
- var _getTypeInfo3 = getTypeInfo(gl, type3), _getTypeInfo4 = _slicedToArray(_getTypeInfo3, 3), size4 = _getTypeInfo4[0], glType = _getTypeInfo4[1], bytes = _getTypeInfo4[2];
54833
+ var _getTypeInfo3 = getTypeInfo(gl, type3), _getTypeInfo4 = _slicedToArray2(_getTypeInfo3, 3), size4 = _getTypeInfo4[0], glType = _getTypeInfo4[1], bytes = _getTypeInfo4[2];
54689
54834
  var dataArray = createTypedArray(gl, glType, instances * size4);
54690
54835
  var stride = size4 * bytes;
54691
54836
  var buffer = gl.createBuffer();
@@ -55020,7 +55165,7 @@ function getPickingIndexes(r6, mX1, mY1, mX2, mY2) {
55020
55165
  var x10, y7, w10, h10;
55021
55166
  var _util$getEffectivePan3 = getEffectivePanZoom(r6), pan2 = _util$getEffectivePan3.pan, zoom2 = _util$getEffectivePan3.zoom;
55022
55167
  {
55023
- var _util$modelToRendered = modelToRenderedPosition2(r6, pan2, zoom2, mX1, mY1), _util$modelToRendered2 = _slicedToArray(_util$modelToRendered, 2), cX1 = _util$modelToRendered2[0], cY1 = _util$modelToRendered2[1];
55168
+ var _util$modelToRendered = modelToRenderedPosition2(r6, pan2, zoom2, mX1, mY1), _util$modelToRendered2 = _slicedToArray2(_util$modelToRendered, 2), cX1 = _util$modelToRendered2[0], cY1 = _util$modelToRendered2[1];
55024
55169
  var t6 = 6;
55025
55170
  x10 = cX1 - t6 / 2;
55026
55171
  y7 = cY1 - t6 / 2;
@@ -57686,7 +57831,7 @@ var init_cytoscape_esm = __esm({
57686
57831
  top2 = bottom3 = padding2[0];
57687
57832
  left3 = right3 = padding2[1];
57688
57833
  } else if (padding2.length === 4) {
57689
- var _padding = _slicedToArray(padding2, 4);
57834
+ var _padding = _slicedToArray2(padding2, 4);
57690
57835
  top2 = _padding[0];
57691
57836
  right3 = _padding[1];
57692
57837
  bottom3 = _padding[2];
@@ -61233,8 +61378,8 @@ var init_cytoscape_esm = __esm({
61233
61378
  // just used for identifying when debugging
61234
61379
  query: true,
61235
61380
  regex: "(" + tokens.group + ")",
61236
- populate: function populate(selector, query, _ref) {
61237
- var _ref2 = _slicedToArray(_ref, 1), group2 = _ref2[0];
61381
+ populate: function populate(selector, query, _ref2) {
61382
+ var _ref22 = _slicedToArray2(_ref2, 1), group2 = _ref22[0];
61238
61383
  query.checks.push({
61239
61384
  type: Type2.GROUP,
61240
61385
  value: group2 === "*" ? group2 : group2 + "s"
@@ -61245,7 +61390,7 @@ var init_cytoscape_esm = __esm({
61245
61390
  query: true,
61246
61391
  regex: stateSelectorRegex,
61247
61392
  populate: function populate2(selector, query, _ref3) {
61248
- var _ref4 = _slicedToArray(_ref3, 1), state4 = _ref4[0];
61393
+ var _ref4 = _slicedToArray2(_ref3, 1), state4 = _ref4[0];
61249
61394
  query.checks.push({
61250
61395
  type: Type2.STATE,
61251
61396
  value: state4
@@ -61256,7 +61401,7 @@ var init_cytoscape_esm = __esm({
61256
61401
  query: true,
61257
61402
  regex: "\\#(" + tokens.id + ")",
61258
61403
  populate: function populate3(selector, query, _ref5) {
61259
- var _ref6 = _slicedToArray(_ref5, 1), id35 = _ref6[0];
61404
+ var _ref6 = _slicedToArray2(_ref5, 1), id35 = _ref6[0];
61260
61405
  query.checks.push({
61261
61406
  type: Type2.ID,
61262
61407
  value: cleanMetaChars(id35)
@@ -61267,7 +61412,7 @@ var init_cytoscape_esm = __esm({
61267
61412
  query: true,
61268
61413
  regex: "\\.(" + tokens.className + ")",
61269
61414
  populate: function populate4(selector, query, _ref7) {
61270
- var _ref8 = _slicedToArray(_ref7, 1), className = _ref8[0];
61415
+ var _ref8 = _slicedToArray2(_ref7, 1), className = _ref8[0];
61271
61416
  query.checks.push({
61272
61417
  type: Type2.CLASS,
61273
61418
  value: cleanMetaChars(className)
@@ -61278,7 +61423,7 @@ var init_cytoscape_esm = __esm({
61278
61423
  query: true,
61279
61424
  regex: "\\[\\s*(" + tokens.variable + ")\\s*\\]",
61280
61425
  populate: function populate5(selector, query, _ref9) {
61281
- var _ref10 = _slicedToArray(_ref9, 1), variable = _ref10[0];
61426
+ var _ref10 = _slicedToArray2(_ref9, 1), variable = _ref10[0];
61282
61427
  query.checks.push({
61283
61428
  type: Type2.DATA_EXIST,
61284
61429
  field: cleanMetaChars(variable)
@@ -61289,7 +61434,7 @@ var init_cytoscape_esm = __esm({
61289
61434
  query: true,
61290
61435
  regex: "\\[\\s*(" + tokens.variable + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.value + ")\\s*\\]",
61291
61436
  populate: function populate6(selector, query, _ref11) {
61292
- var _ref12 = _slicedToArray(_ref11, 3), variable = _ref12[0], comparatorOp = _ref12[1], value2 = _ref12[2];
61437
+ var _ref12 = _slicedToArray2(_ref11, 3), variable = _ref12[0], comparatorOp = _ref12[1], value2 = _ref12[2];
61293
61438
  var valueIsString = new RegExp("^" + tokens.string + "$").exec(value2) != null;
61294
61439
  if (valueIsString) {
61295
61440
  value2 = value2.substring(1, value2.length - 1);
@@ -61308,7 +61453,7 @@ var init_cytoscape_esm = __esm({
61308
61453
  query: true,
61309
61454
  regex: "\\[\\s*(" + tokens.boolOp + ")\\s*(" + tokens.variable + ")\\s*\\]",
61310
61455
  populate: function populate7(selector, query, _ref13) {
61311
- var _ref14 = _slicedToArray(_ref13, 2), boolOp = _ref14[0], variable = _ref14[1];
61456
+ var _ref14 = _slicedToArray2(_ref13, 2), boolOp = _ref14[0], variable = _ref14[1];
61312
61457
  query.checks.push({
61313
61458
  type: Type2.DATA_BOOL,
61314
61459
  field: cleanMetaChars(variable),
@@ -61320,7 +61465,7 @@ var init_cytoscape_esm = __esm({
61320
61465
  query: true,
61321
61466
  regex: "\\[\\[\\s*(" + tokens.meta + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.number + ")\\s*\\]\\]",
61322
61467
  populate: function populate8(selector, query, _ref15) {
61323
- var _ref16 = _slicedToArray(_ref15, 3), meta3 = _ref16[0], comparatorOp = _ref16[1], number7 = _ref16[2];
61468
+ var _ref16 = _slicedToArray2(_ref15, 3), meta3 = _ref16[0], comparatorOp = _ref16[1], number7 = _ref16[2];
61324
61469
  query.checks.push({
61325
61470
  type: Type2.META_COMPARE,
61326
61471
  field: cleanMetaChars(meta3),
@@ -72646,7 +72791,7 @@ var init_cytoscape_esm = __esm({
72646
72791
  var segStart = _pts[_i22];
72647
72792
  var segEnd = _pts[_i22 + 1];
72648
72793
  for (var b6 = 0; b6 < boxEdges.length; b6++) {
72649
- var _boxEdges$b = _slicedToArray(boxEdges[b6], 2), boxStart = _boxEdges$b[0], boxEnd = _boxEdges$b[1];
72794
+ var _boxEdges$b = _slicedToArray2(boxEdges[b6], 2), boxStart = _boxEdges$b[0], boxEnd = _boxEdges$b[1];
72650
72795
  if (doLinesIntersect(segStart, segEnd, boxStart, boxEnd)) {
72651
72796
  box.push(edge);
72652
72797
  _selected = true;
@@ -72890,8 +73035,8 @@ var init_cytoscape_esm = __esm({
72890
73035
  break;
72891
73036
  case "endpoints": {
72892
73037
  if (haveManualEndPts) {
72893
- var _this$manualEndptToPx = this.manualEndptToPx(edge.source()[0], srcManEndpt), _this$manualEndptToPx2 = _slicedToArray(_this$manualEndptToPx, 2), x12 = _this$manualEndptToPx2[0], y12 = _this$manualEndptToPx2[1];
72894
- var _this$manualEndptToPx3 = this.manualEndptToPx(edge.target()[0], tgtManEndpt), _this$manualEndptToPx4 = _slicedToArray(_this$manualEndptToPx3, 2), x24 = _this$manualEndptToPx4[0], y24 = _this$manualEndptToPx4[1];
73038
+ var _this$manualEndptToPx = this.manualEndptToPx(edge.source()[0], srcManEndpt), _this$manualEndptToPx2 = _slicedToArray2(_this$manualEndptToPx, 2), x12 = _this$manualEndptToPx2[0], y12 = _this$manualEndptToPx2[1];
73039
+ var _this$manualEndptToPx3 = this.manualEndptToPx(edge.target()[0], tgtManEndpt), _this$manualEndptToPx4 = _slicedToArray2(_this$manualEndptToPx3, 2), x24 = _this$manualEndptToPx4[0], y24 = _this$manualEndptToPx4[1];
72895
73040
  var endPts = {
72896
73041
  x1: x12,
72897
73042
  y1: y12,
@@ -73645,7 +73790,7 @@ var init_cytoscape_esm = __esm({
73645
73790
  }
73646
73791
  };
73647
73792
  BRp$b.findEndpoints = function(edge) {
73648
- var _ref, _tgtManEndpt$pfValue, _ref2, _srcManEndpt$pfValue;
73793
+ var _ref2, _tgtManEndpt$pfValue, _ref22, _srcManEndpt$pfValue;
73649
73794
  var r6 = this;
73650
73795
  var intersect3;
73651
73796
  var source = edge.source()[0];
@@ -73681,8 +73826,8 @@ var init_cytoscape_esm = __esm({
73681
73826
  var p24;
73682
73827
  var p1_i;
73683
73828
  var p2_i;
73684
- var tgtManEndptPt = (_ref = (tgtManEndpt === null || tgtManEndpt === void 0 || (_tgtManEndpt$pfValue = tgtManEndpt.pfValue) === null || _tgtManEndpt$pfValue === void 0 ? void 0 : _tgtManEndpt$pfValue.length) === 2 ? tgtManEndpt.pfValue : null) !== null && _ref !== void 0 ? _ref : [0, 0];
73685
- var srcManEndptPt = (_ref2 = (srcManEndpt === null || srcManEndpt === void 0 || (_srcManEndpt$pfValue = srcManEndpt.pfValue) === null || _srcManEndpt$pfValue === void 0 ? void 0 : _srcManEndpt$pfValue.length) === 2 ? srcManEndpt.pfValue : null) !== null && _ref2 !== void 0 ? _ref2 : [0, 0];
73829
+ var tgtManEndptPt = (_ref2 = (tgtManEndpt === null || tgtManEndpt === void 0 || (_tgtManEndpt$pfValue = tgtManEndpt.pfValue) === null || _tgtManEndpt$pfValue === void 0 ? void 0 : _tgtManEndpt$pfValue.length) === 2 ? tgtManEndpt.pfValue : null) !== null && _ref2 !== void 0 ? _ref2 : [0, 0];
73830
+ var srcManEndptPt = (_ref22 = (srcManEndpt === null || srcManEndpt === void 0 || (_srcManEndpt$pfValue = srcManEndpt.pfValue) === null || _srcManEndpt$pfValue === void 0 ? void 0 : _srcManEndpt$pfValue.length) === 2 ? srcManEndpt.pfValue : null) !== null && _ref22 !== void 0 ? _ref22 : [0, 0];
73686
73831
  if (bezier) {
73687
73832
  var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]];
73688
73833
  var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart;
@@ -80122,8 +80267,8 @@ var init_cytoscape_esm = __esm({
80122
80267
  }
80123
80268
  }, {
80124
80269
  key: "getScale",
80125
- value: function getScale(_ref) {
80126
- var w10 = _ref.w, h10 = _ref.h;
80270
+ value: function getScale(_ref2) {
80271
+ var w10 = _ref2.w, h10 = _ref2.h;
80127
80272
  var texHeight = this.texHeight, maxTexWidth = this.texSize;
80128
80273
  var scale3 = texHeight / h10;
80129
80274
  var texW = w10 * scale3;
@@ -80388,7 +80533,7 @@ var init_cytoscape_esm = __esm({
80388
80533
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {
80389
80534
  var key = _step2.value;
80390
80535
  if (!keysToCollect.has(key)) {
80391
- var _atlas$getOffsets = atlas.getOffsets(key), _atlas$getOffsets2 = _slicedToArray(_atlas$getOffsets, 2), s12 = _atlas$getOffsets2[0], s22 = _atlas$getOffsets2[1];
80536
+ var _atlas$getOffsets = atlas.getOffsets(key), _atlas$getOffsets2 = _slicedToArray2(_atlas$getOffsets, 2), s12 = _atlas$getOffsets2[0], s22 = _atlas$getOffsets2[1];
80392
80537
  if (!newAtlas.canFit({
80393
80538
  w: s12.w + s22.w,
80394
80539
  h: s12.h
@@ -80425,7 +80570,7 @@ var init_cytoscape_esm = __esm({
80425
80570
  }, {
80426
80571
  key: "_copyTextureToNewAtlas",
80427
80572
  value: function _copyTextureToNewAtlas(key, oldAtlas, newAtlas) {
80428
- var _oldAtlas$getOffsets = oldAtlas.getOffsets(key), _oldAtlas$getOffsets2 = _slicedToArray(_oldAtlas$getOffsets, 2), s12 = _oldAtlas$getOffsets2[0], s22 = _oldAtlas$getOffsets2[1];
80573
+ var _oldAtlas$getOffsets = oldAtlas.getOffsets(key), _oldAtlas$getOffsets2 = _slicedToArray2(_oldAtlas$getOffsets, 2), s12 = _oldAtlas$getOffsets2[0], s22 = _oldAtlas$getOffsets2[1];
80429
80574
  if (s22.w === 0) {
80430
80575
  newAtlas.draw(key, s12, function(context) {
80431
80576
  context.drawImage(oldAtlas.canvas, s12.x, s12.y, s12.w, s12.h, 0, 0, s12.w, s12.h);
@@ -80659,7 +80804,7 @@ var init_cytoscape_esm = __esm({
80659
80804
  return keyArray.map(function(styleKey) {
80660
80805
  var bb = opts.getBoundingBox(ele, styleKey);
80661
80806
  var atlas = _this4.getOrCreateAtlas(ele, type3, bb, styleKey);
80662
- var _atlas$getOffsets3 = atlas.getOffsets(styleKey), _atlas$getOffsets4 = _slicedToArray(_atlas$getOffsets3, 2), tex1 = _atlas$getOffsets4[0], tex2 = _atlas$getOffsets4[1];
80807
+ var _atlas$getOffsets3 = atlas.getOffsets(styleKey), _atlas$getOffsets4 = _slicedToArray2(_atlas$getOffsets3, 2), tex1 = _atlas$getOffsets4[0], tex2 = _atlas$getOffsets4[1];
80663
80808
  return {
80664
80809
  atlas,
80665
80810
  tex: tex1,
@@ -80676,7 +80821,7 @@ var init_cytoscape_esm = __esm({
80676
80821
  var _iterator6 = _createForOfIteratorHelper(this.collections), _step6;
80677
80822
  try {
80678
80823
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done; ) {
80679
- var _step6$value = _slicedToArray(_step6.value, 2), name = _step6$value[0], collection4 = _step6$value[1];
80824
+ var _step6$value = _slicedToArray2(_step6.value, 2), name = _step6$value[0], collection4 = _step6$value[1];
80680
80825
  var _collection$getCounts = collection4.getCounts(), keyCount = _collection$getCounts.keyCount, atlasCount = _collection$getCounts.atlasCount;
80681
80826
  debugInfo.push({
80682
80827
  type: name,
@@ -80865,7 +81010,7 @@ var init_cytoscape_esm = __esm({
80865
81010
  }, {
80866
81011
  key: "invalidate",
80867
81012
  value: function invalidate(eles) {
80868
- var _ref = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, type3 = _ref.type;
81013
+ var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, type3 = _ref2.type;
80869
81014
  var atlasManager = this.atlasManager;
80870
81015
  if (type3) {
80871
81016
  return atlasManager.invalidate(eles, {
@@ -81024,7 +81169,7 @@ var init_cytoscape_esm = __esm({
81024
81169
  }
81025
81170
  var atlasIndex = batchManager.getAtlasIndexForBatch(atlas);
81026
81171
  for (var _i2 = 0, _arr = [[tex1, true], [tex2, false]]; _i2 < _arr.length; _i2++) {
81027
- var _arr$_i = _slicedToArray(_arr[_i2], 2), tex = _arr$_i[0], first3 = _arr$_i[1];
81172
+ var _arr$_i = _slicedToArray2(_arr[_i2], 2), tex = _arr$_i[0], first3 = _arr$_i[1];
81028
81173
  if (tex.w != 0) {
81029
81174
  var instance2 = this.instanceCount;
81030
81175
  this.vertTypeBuffer.getView(instance2)[0] = TEXTURE;
@@ -161073,7 +161218,7 @@ var require_cytoscape_fcose = __commonJS({
161073
161218
  548: (
161074
161219
  /***/
161075
161220
  ((module3, __unused_webpack_exports, __webpack_require__2) => {
161076
- var _slicedToArray2 = /* @__PURE__ */ (function() {
161221
+ var _slicedToArray3 = /* @__PURE__ */ (function() {
161077
161222
  function sliceIterator(arr, i6) {
161078
161223
  var _arr = [];
161079
161224
  var _n = true;
@@ -161230,10 +161375,10 @@ var require_cytoscape_fcose = __commonJS({
161230
161375
  var _iteratorError = void 0;
161231
161376
  try {
161232
161377
  for (var _iterator = componentResult.nodeIndexes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
161233
- var _ref = _step.value;
161234
- var _ref2 = _slicedToArray2(_ref, 2);
161235
- var key = _ref2[0];
161236
- var value2 = _ref2[1];
161378
+ var _ref2 = _step.value;
161379
+ var _ref22 = _slicedToArray3(_ref2, 2);
161380
+ var key = _ref22[0];
161381
+ var value2 = _ref22[1];
161237
161382
  var cyNode = options2.cy.getElementById(key);
161238
161383
  if (cyNode) {
161239
161384
  var nodeBB = cyNode.boundingBox();
@@ -167740,10 +167885,10 @@ var init_diagram_OG6HWLK6 = __esm({
167740
167885
  return this.nodes;
167741
167886
  }
167742
167887
  getConfig() {
167743
- const defaultConfig6 = defaultConfig_default;
167888
+ const defaultConfig5 = defaultConfig_default;
167744
167889
  const userConfig = getConfig();
167745
167890
  return cleanAndMerge({
167746
- ...defaultConfig6.treemap,
167891
+ ...defaultConfig5.treemap,
167747
167892
  ...userConfig.treemap ?? {}
167748
167893
  });
167749
167894
  }
@@ -169272,7 +169417,7 @@ var require_elk_bundled = __commonJS({
169272
169417
  var ELK2 = (function() {
169273
169418
  function ELK3() {
169274
169419
  var _this = this;
169275
- var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, defaultLayoutOptions = _ref$defaultLayoutOpt === void 0 ? {} : _ref$defaultLayoutOpt, _ref$algorithms = _ref.algorithms, algorithms = _ref$algorithms === void 0 ? ["layered", "stress", "mrtree", "radial", "force", "disco", "sporeOverlap", "sporeCompaction", "rectpacking"] : _ref$algorithms, workerFactory = _ref.workerFactory, workerUrl = _ref.workerUrl;
169420
+ var _ref2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref$defaultLayoutOpt = _ref2.defaultLayoutOptions, defaultLayoutOptions = _ref$defaultLayoutOpt === void 0 ? {} : _ref$defaultLayoutOpt, _ref$algorithms = _ref2.algorithms, algorithms = _ref$algorithms === void 0 ? ["layered", "stress", "mrtree", "radial", "force", "disco", "sporeOverlap", "sporeCompaction", "rectpacking"] : _ref$algorithms, workerFactory = _ref2.workerFactory, workerUrl = _ref2.workerUrl;
169276
169421
  _classCallCheck2(this, ELK3);
169277
169422
  this.defaultLayoutOptions = defaultLayoutOptions;
169278
169423
  this.initialized = false;
@@ -381573,7 +381718,197 @@ var iconPacks = [
381573
381718
  }
381574
381719
  ];
381575
381720
 
381721
+ // extensions/mermaid-markdown-features/preview-src/shared/vsCodeTheme.ts
381722
+ var vsCodeMermaidTheme = "vscode";
381723
+ function isDarkVsCodeTheme() {
381724
+ return document.body.classList.contains("vscode-dark") || document.body.classList.contains("vscode-high-contrast") && !document.body.classList.contains("vscode-high-contrast-light");
381725
+ }
381726
+ function resolveCssColor(cssValue) {
381727
+ const probe = document.createElement("span");
381728
+ probe.style.display = "none";
381729
+ probe.style.color = cssValue;
381730
+ document.body.appendChild(probe);
381731
+ try {
381732
+ return rgbStringToHex(getComputedStyle(probe).color);
381733
+ } finally {
381734
+ probe.remove();
381735
+ }
381736
+ }
381737
+ function rgbStringToHex(value2) {
381738
+ const match3 = value2.match(/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+)\s*)?\)$/);
381739
+ if (!match3) {
381740
+ return void 0;
381741
+ }
381742
+ const r6 = parseInt(match3[1], 10);
381743
+ const g10 = parseInt(match3[2], 10);
381744
+ const b6 = parseInt(match3[3], 10);
381745
+ const a6 = match3[4] !== void 0 ? Math.round(parseFloat(match3[4]) * 255) : 255;
381746
+ const hex2 = (n6) => Math.max(0, Math.min(255, n6)).toString(16).padStart(2, "0");
381747
+ return a6 < 255 ? `#${hex2(r6)}${hex2(g10)}${hex2(b6)}${hex2(a6)}` : `#${hex2(r6)}${hex2(g10)}${hex2(b6)}`;
381748
+ }
381749
+ function pickColor(...varNames) {
381750
+ for (const name of varNames) {
381751
+ if (!readCssVar(name)) {
381752
+ continue;
381753
+ }
381754
+ const hex2 = resolveCssColor(`var(${name})`);
381755
+ if (hex2) {
381756
+ return hex2;
381757
+ }
381758
+ }
381759
+ return void 0;
381760
+ }
381761
+ function readCssVar(name) {
381762
+ return getComputedStyle(document.documentElement).getPropertyValue(name).trim();
381763
+ }
381764
+ var VsCodeMermaidThemeTracker = class {
381765
+ _value;
381766
+ _listeners = /* @__PURE__ */ new Set();
381767
+ /**
381768
+ * The Mermaid theme variables derived from the active VS Code theme. Computed lazily on
381769
+ * first access and memoized until {@link refresh} or {@link invalidate} is called.
381770
+ */
381771
+ get value() {
381772
+ return this._value ??= computeVsCodeMermaidThemeVariables();
381773
+ }
381774
+ /**
381775
+ * Recomputes the theme variables from the live CSS variables and fires {@link onDidChange}
381776
+ * listeners when the resolved colors actually changed. Returns `true` when listeners fired.
381777
+ */
381778
+ refresh() {
381779
+ const next3 = computeVsCodeMermaidThemeVariables();
381780
+ if (next3.fingerprint === this._value?.fingerprint) {
381781
+ return false;
381782
+ }
381783
+ this._value = next3;
381784
+ for (const listener of this._listeners) {
381785
+ listener();
381786
+ }
381787
+ return true;
381788
+ }
381789
+ /**
381790
+ * Drops the cached value without firing listeners. The next read of {@link value} will
381791
+ * recompute from the live CSS variables.
381792
+ */
381793
+ invalidate() {
381794
+ this._value = void 0;
381795
+ }
381796
+ /**
381797
+ * Subscribes to changes. The listener fires when {@link refresh} detects that the resolved
381798
+ * theme variables have changed; read {@link value} to get the new variables.
381799
+ */
381800
+ onDidChange(listener) {
381801
+ this._listeners.add(listener);
381802
+ return { dispose: () => this._listeners.delete(listener) };
381803
+ }
381804
+ /**
381805
+ * Resolves the Mermaid `theme` / `themeVariables` pair for the given extension config,
381806
+ * picking the dark or light slot based on the active VS Code theme and translating the
381807
+ * `'vscode'` sentinel into mermaid's `base` theme plus VS Code-derived variables.
381808
+ */
381809
+ resolveMermaidTheme(extensionConfig) {
381810
+ const themeName = isDarkVsCodeTheme() ? extensionConfig.darkModeTheme : extensionConfig.lightModeTheme;
381811
+ if (themeName === vsCodeMermaidTheme) {
381812
+ return {
381813
+ theme: "base",
381814
+ themeVariables: this.value.variables
381815
+ };
381816
+ }
381817
+ return {
381818
+ theme: themeName,
381819
+ // Reset theme variables in case mermaid.initialize was previously called with the
381820
+ // vscode theme: mermaid merges configs and stale variables would otherwise leak through.
381821
+ themeVariables: {}
381822
+ };
381823
+ }
381824
+ /**
381825
+ * Starts a {@link MutationObserver} on the body and document element so that theme switches
381826
+ * (class/data-attribute changes on `body`, CSS variable updates on `documentElement.style`)
381827
+ * trigger a {@link refresh}. Returns a disposable that stops observing.
381828
+ */
381829
+ observeDomChanges() {
381830
+ const observer = new MutationObserver(() => this.refresh());
381831
+ observer.observe(document.body, { attributes: true, attributeFilter: ["class", "data-vscode-theme-id", "data-vscode-theme-kind"] });
381832
+ observer.observe(document.documentElement, { attributes: true, attributeFilter: ["style"] });
381833
+ return { dispose: () => observer.disconnect() };
381834
+ }
381835
+ };
381836
+ function computeVsCodeMermaidThemeVariables() {
381837
+ const variables = {
381838
+ darkMode: isDarkVsCodeTheme()
381839
+ };
381840
+ const set5 = (key, ...varNames) => {
381841
+ const color2 = pickColor(...varNames);
381842
+ if (color2) {
381843
+ variables[key] = color2;
381844
+ }
381845
+ };
381846
+ set5("background", "--vscode-editor-background");
381847
+ set5("textColor", "--vscode-charts-foreground", "--vscode-editor-foreground", "--vscode-foreground");
381848
+ set5("lineColor", "--vscode-chart-line", "--vscode-charts-lines", "--vscode-editor-foreground", "--vscode-foreground");
381849
+ set5("primaryColor", "--vscode-editorWidget-background");
381850
+ set5("primaryTextColor", "--vscode-charts-foreground", "--vscode-editor-foreground", "--vscode-foreground");
381851
+ set5("primaryBorderColor", "--vscode-chart-line", "--vscode-editorWidget-border", "--vscode-focusBorder");
381852
+ set5("mainBkg", "--vscode-editorWidget-background");
381853
+ set5("nodeBorder", "--vscode-chart-line", "--vscode-editorWidget-border", "--vscode-focusBorder");
381854
+ set5("secondaryColor", "--vscode-input-background", "--vscode-editorWidget-background");
381855
+ set5("secondaryTextColor", "--vscode-input-foreground", "--vscode-foreground");
381856
+ set5("secondaryBorderColor", "--vscode-input-border", "--vscode-editorWidget-border");
381857
+ set5("tertiaryColor", "--vscode-textBlockQuote-background", "--vscode-input-background");
381858
+ set5("tertiaryTextColor", "--vscode-foreground");
381859
+ set5("tertiaryBorderColor", "--vscode-textBlockQuote-border", "--vscode-editorWidget-border");
381860
+ set5("clusterBkg", "--vscode-textBlockQuote-background", "--vscode-input-background");
381861
+ set5("clusterBorder", "--vscode-textBlockQuote-border", "--vscode-editorWidget-border");
381862
+ set5("noteBkgColor", "--vscode-textBlockQuote-background", "--vscode-editorWidget-background");
381863
+ set5("noteTextColor", "--vscode-foreground");
381864
+ set5("noteBorderColor", "--vscode-textBlockQuote-border", "--vscode-editorWidget-border");
381865
+ set5("errorBkgColor", "--vscode-inputValidation-errorBackground", "--vscode-editorError-background");
381866
+ set5("errorTextColor", "--vscode-editorError-foreground", "--vscode-foreground");
381867
+ set5("titleColor", "--vscode-charts-foreground", "--vscode-editor-foreground", "--vscode-foreground");
381868
+ set5("edgeLabelBackground", "--vscode-editor-background");
381869
+ const chartPalette = [
381870
+ "--vscode-charts-blue",
381871
+ "--vscode-charts-green",
381872
+ "--vscode-charts-orange",
381873
+ "--vscode-charts-red",
381874
+ "--vscode-charts-purple",
381875
+ "--vscode-charts-yellow"
381876
+ ];
381877
+ for (let i6 = 0; i6 < chartPalette.length; i6++) {
381878
+ set5(`pie${i6 + 1}`, chartPalette[i6]);
381879
+ set5(`cScale${i6}`, chartPalette[i6]);
381880
+ }
381881
+ const fontFamily = readCssVar("--vscode-font-family");
381882
+ if (fontFamily) {
381883
+ variables.fontFamily = fontFamily;
381884
+ }
381885
+ const fontSize = readCssVar("--vscode-font-size");
381886
+ if (fontSize) {
381887
+ variables.fontSize = fontSize;
381888
+ }
381889
+ return {
381890
+ variables,
381891
+ fingerprint: JSON.stringify(variables)
381892
+ };
381893
+ }
381894
+
381576
381895
  // extensions/mermaid-markdown-features/preview-src/shared/index.ts
381896
+ function createMermaidErrorElement(error3) {
381897
+ const message = error3 instanceof Error ? error3.message : String(error3);
381898
+ const errorMessageNode = document.createElement("pre");
381899
+ errorMessageNode.className = "mermaid-error";
381900
+ errorMessageNode.innerText = message;
381901
+ return errorMessageNode;
381902
+ }
381903
+ function markVsCodeContextAsError(el) {
381904
+ let context;
381905
+ try {
381906
+ context = JSON.parse(el.dataset.vscodeContext || "{}");
381907
+ } catch {
381908
+ context = {};
381909
+ }
381910
+ el.dataset.vscodeContext = JSON.stringify({ ...context, mermaidError: true });
381911
+ }
381577
381912
  function renderMermaidElement(mermaidContainer, usedIds, writeOut, signal) {
381578
381913
  const source = (mermaidContainer.textContent ?? "").trim();
381579
381914
  if (!source) {
@@ -381585,7 +381920,8 @@ function renderMermaidElement(mermaidContainer, usedIds, writeOut, signal) {
381585
381920
  mermaidContainer.id = containerId;
381586
381921
  mermaidContainer.dataset.vscodeContext = JSON.stringify({
381587
381922
  webviewSection: "mermaid",
381588
- mermaidSource: source
381923
+ mermaidSource: source,
381924
+ preventDefaultContextMenuItems: true
381589
381925
  });
381590
381926
  mermaidContainer.innerHTML = "";
381591
381927
  return {
@@ -381594,21 +381930,19 @@ function renderMermaidElement(mermaidContainer, usedIds, writeOut, signal) {
381594
381930
  p: (async () => {
381595
381931
  try {
381596
381932
  await mermaid_default.parse(source);
381597
- if (signal?.aborted) {
381933
+ if (signal.aborted) {
381598
381934
  throw new DOMException("Aborted", "AbortError");
381599
381935
  }
381600
381936
  const renderResult = await mermaid_default.render(diagramId3, source);
381601
- if (signal?.aborted) {
381937
+ if (signal.aborted) {
381602
381938
  throw new DOMException("Aborted", "AbortError");
381603
381939
  }
381604
- writeOut(mermaidContainer, renderResult.svg);
381940
+ writeOut(mermaidContainer, renderResult.svg, false);
381605
381941
  renderResult.bindFunctions?.(mermaidContainer);
381606
381942
  } catch (error3) {
381607
381943
  if (error3 instanceof Error && error3.name !== "AbortError") {
381608
- const errorMessageNode = document.createElement("pre");
381609
- errorMessageNode.className = "mermaid-error";
381610
- errorMessageNode.innerText = error3.message;
381611
- writeOut(mermaidContainer, errorMessageNode.outerHTML);
381944
+ markVsCodeContextAsError(mermaidContainer);
381945
+ writeOut(mermaidContainer, createMermaidErrorElement(error3).outerHTML, true);
381612
381946
  }
381613
381947
  throw error3;
381614
381948
  }
@@ -381627,8 +381961,8 @@ async function renderMermaidBlocksInElement(root4, writeOut, signal) {
381627
381961
  }
381628
381962
  const renderPromises = [];
381629
381963
  for (const mermaidContainer of root4.querySelectorAll(".mermaid")) {
381630
- const result = renderMermaidElement(mermaidContainer, usedIds, (container2, content) => {
381631
- writeOut(container2, content, result.contentHash);
381964
+ const result = renderMermaidElement(mermaidContainer, usedIds, (container2, content, isError) => {
381965
+ writeOut(container2, content, result.contentHash, isError);
381632
381966
  }, signal);
381633
381967
  if (result) {
381634
381968
  renderPromises.push(result.p);
@@ -381642,9 +381976,9 @@ async function registerMermaidAddons() {
381642
381976
  mermaid_default.registerLayoutLoaders(layouts_default2);
381643
381977
  await mermaid_default.registerExternalDiagrams([detector_default7]);
381644
381978
  }
381645
- var defaultConfig5 = {
381646
- darkModeTheme: "dark",
381647
- lightModeTheme: "default",
381979
+ var defaultExtensionConfig = {
381980
+ darkModeTheme: vsCodeMermaidTheme,
381981
+ lightModeTheme: vsCodeMermaidTheme,
381648
381982
  maxTextSize: 5e4,
381649
381983
  clickDrag: "alt" /* Alt */,
381650
381984
  showControls: "onHoverOrFocus" /* OnHoverOrFocus */,
@@ -381655,14 +381989,20 @@ function loadExtensionConfig() {
381655
381989
  const configSpan = document.getElementById("markdown-mermaid");
381656
381990
  const configAttr = configSpan?.dataset.config;
381657
381991
  if (!configAttr) {
381658
- return defaultConfig5;
381992
+ return defaultExtensionConfig;
381659
381993
  }
381660
381994
  try {
381661
- return { ...defaultConfig5, ...JSON.parse(configAttr) };
381995
+ return { ...defaultExtensionConfig, ...JSON.parse(configAttr) };
381662
381996
  } catch {
381663
- return defaultConfig5;
381997
+ return defaultExtensionConfig;
381664
381998
  }
381665
381999
  }
382000
+ function buildMermaidConfig(extensionConfig, vsCodeThemeTracker) {
382001
+ return {
382002
+ startOnLoad: false,
382003
+ ...vsCodeThemeTracker.resolveMermaidTheme(extensionConfig)
382004
+ };
382005
+ }
381666
382006
  function hashString3(str2) {
381667
382007
  let hash = 0;
381668
382008
  for (let i6 = 0; i6 < str2.length; i6++) {
@@ -382150,6 +382490,7 @@ function sanitizeCssLength(value2) {
382150
382490
  var currentAbortController;
382151
382491
  var currentDisposables = [];
382152
382492
  var diagramManager = new DiagramManager(loadExtensionConfig());
382493
+ var themeTracker = new VsCodeMermaidThemeTracker();
382153
382494
  async function init3() {
382154
382495
  for (const disposable of currentDisposables) {
382155
382496
  disposable.dispose();
@@ -382158,18 +382499,21 @@ async function init3() {
382158
382499
  currentAbortController?.abort();
382159
382500
  currentAbortController = new AbortController();
382160
382501
  const signal = currentAbortController.signal;
382502
+ themeTracker.refresh();
382161
382503
  const extConfig = loadExtensionConfig();
382162
382504
  diagramManager.updateConfig(extConfig);
382163
382505
  const config5 = {
382164
- startOnLoad: false,
382165
- maxTextSize: extConfig.maxTextSize,
382166
- theme: document.body.classList.contains("vscode-dark") || document.body.classList.contains("vscode-high-contrast") ? extConfig.darkModeTheme : extConfig.lightModeTheme
382506
+ ...buildMermaidConfig(extConfig, themeTracker),
382507
+ maxTextSize: extConfig.maxTextSize
382167
382508
  };
382168
382509
  mermaid_default.initialize(config5);
382169
382510
  await registerMermaidAddons();
382170
382511
  const activeIds = /* @__PURE__ */ new Set();
382171
- await renderMermaidBlocksInElement(document.body, (mermaidContainer, content) => {
382512
+ await renderMermaidBlocksInElement(document.body, (mermaidContainer, content, _contentHash, isError) => {
382172
382513
  mermaidContainer.innerHTML = content;
382514
+ if (isError) {
382515
+ return;
382516
+ }
382173
382517
  activeIds.add(mermaidContainer.id);
382174
382518
  currentDisposables.push(diagramManager.setup(mermaidContainer.id, mermaidContainer));
382175
382519
  }, signal);
@@ -382180,7 +382524,7 @@ init3();
382180
382524
  /*! Bundled license information:
382181
382525
 
382182
382526
  dompurify/dist/purify.es.mjs:
382183
- (*! @license DOMPurify 3.4.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.1/LICENSE *)
382527
+ (*! @license DOMPurify 3.4.8 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.8/LICENSE *)
382184
382528
 
382185
382529
  mermaid/dist/chunks/mermaid.core/chunk-XPW4576I.mjs:
382186
382530
  (*! Bundled license information: