@readme/markdown 13.4.0 → 13.5.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.
package/dist/main.js CHANGED
@@ -34347,21 +34347,8 @@ function syntax_tokenizeIndent(effects, ok, nok) {
34347
34347
 
34348
34348
  ;// ./node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js
34349
34349
  /**
34350
- * @typedef {import('micromark-util-types').Event} Event
34351
- * @typedef {import('micromark-util-types').Extension} Extension
34352
- * @typedef {import('micromark-util-types').Resolver} Resolver
34353
- * @typedef {import('micromark-util-types').State} State
34354
- * @typedef {import('micromark-util-types').Token} Token
34355
- * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
34356
- * @typedef {import('micromark-util-types').Tokenizer} Tokenizer
34357
- *
34358
- * @typedef Options
34359
- * Configuration (optional).
34360
- * @property {boolean | null | undefined} [singleTilde=true]
34361
- * Whether to support strikethrough with a single tilde (default: `true`).
34362
- *
34363
- * Single tildes work on github.com, but are technically prohibited by the
34364
- * GFM spec.
34350
+ * @import {Options} from 'micromark-extension-gfm-strikethrough'
34351
+ * @import {Event, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
34365
34352
  */
34366
34353
 
34367
34354
 
@@ -34377,14 +34364,15 @@ function syntax_tokenizeIndent(effects, ok, nok) {
34377
34364
  * enable GFM strikethrough syntax.
34378
34365
  */
34379
34366
  function gfmStrikethrough(options) {
34380
- const options_ = options || {}
34381
- let single = options_.singleTilde
34367
+ const options_ = options || {};
34368
+ let single = options_.singleTilde;
34382
34369
  const tokenizer = {
34370
+ name: 'strikethrough',
34383
34371
  tokenize: tokenizeStrikethrough,
34384
34372
  resolveAll: resolveAllStrikethrough
34385
- }
34373
+ };
34386
34374
  if (single === null || single === undefined) {
34387
- single = true
34375
+ single = true;
34388
34376
  }
34389
34377
  return {
34390
34378
  text: {
@@ -34396,7 +34384,7 @@ function gfmStrikethrough(options) {
34396
34384
  attentionMarkers: {
34397
34385
  null: [126]
34398
34386
  }
34399
- }
34387
+ };
34400
34388
 
34401
34389
  /**
34402
34390
  * Take events and resolve strikethrough.
@@ -34404,86 +34392,62 @@ function gfmStrikethrough(options) {
34404
34392
  * @type {Resolver}
34405
34393
  */
34406
34394
  function resolveAllStrikethrough(events, context) {
34407
- let index = -1
34395
+ let index = -1;
34408
34396
 
34409
34397
  // Walk through all events.
34410
34398
  while (++index < events.length) {
34411
34399
  // Find a token that can close.
34412
- if (
34413
- events[index][0] === 'enter' &&
34414
- events[index][1].type === 'strikethroughSequenceTemporary' &&
34415
- events[index][1]._close
34416
- ) {
34417
- let open = index
34400
+ if (events[index][0] === 'enter' && events[index][1].type === 'strikethroughSequenceTemporary' && events[index][1]._close) {
34401
+ let open = index;
34418
34402
 
34419
34403
  // Now walk back to find an opener.
34420
34404
  while (open--) {
34421
34405
  // Find a token that can open the closer.
34422
- if (
34423
- events[open][0] === 'exit' &&
34424
- events[open][1].type === 'strikethroughSequenceTemporary' &&
34425
- events[open][1]._open &&
34426
- // If the sizes are the same:
34427
- events[index][1].end.offset - events[index][1].start.offset ===
34428
- events[open][1].end.offset - events[open][1].start.offset
34429
- ) {
34430
- events[index][1].type = 'strikethroughSequence'
34431
- events[open][1].type = 'strikethroughSequence'
34406
+ if (events[open][0] === 'exit' && events[open][1].type === 'strikethroughSequenceTemporary' && events[open][1]._open &&
34407
+ // If the sizes are the same:
34408
+ events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {
34409
+ events[index][1].type = 'strikethroughSequence';
34410
+ events[open][1].type = 'strikethroughSequence';
34432
34411
 
34433
34412
  /** @type {Token} */
34434
34413
  const strikethrough = {
34435
34414
  type: 'strikethrough',
34436
34415
  start: Object.assign({}, events[open][1].start),
34437
34416
  end: Object.assign({}, events[index][1].end)
34438
- }
34417
+ };
34439
34418
 
34440
34419
  /** @type {Token} */
34441
34420
  const text = {
34442
34421
  type: 'strikethroughText',
34443
34422
  start: Object.assign({}, events[open][1].end),
34444
34423
  end: Object.assign({}, events[index][1].start)
34445
- }
34424
+ };
34446
34425
 
34447
34426
  // Opening.
34448
34427
  /** @type {Array<Event>} */
34449
- const nextEvents = [
34450
- ['enter', strikethrough, context],
34451
- ['enter', events[open][1], context],
34452
- ['exit', events[open][1], context],
34453
- ['enter', text, context]
34454
- ]
34455
- const insideSpan = context.parser.constructs.insideSpan.null
34428
+ const nextEvents = [['enter', strikethrough, context], ['enter', events[open][1], context], ['exit', events[open][1], context], ['enter', text, context]];
34429
+ const insideSpan = context.parser.constructs.insideSpan.null;
34456
34430
  if (insideSpan) {
34457
34431
  // Between.
34458
- splice(
34459
- nextEvents,
34460
- nextEvents.length,
34461
- 0,
34462
- resolveAll(insideSpan, events.slice(open + 1, index), context)
34463
- )
34432
+ splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));
34464
34433
  }
34465
34434
 
34466
34435
  // Closing.
34467
- splice(nextEvents, nextEvents.length, 0, [
34468
- ['exit', text, context],
34469
- ['enter', events[index][1], context],
34470
- ['exit', events[index][1], context],
34471
- ['exit', strikethrough, context]
34472
- ])
34473
- splice(events, open - 1, index - open + 3, nextEvents)
34474
- index = open + nextEvents.length - 2
34475
- break
34436
+ splice(nextEvents, nextEvents.length, 0, [['exit', text, context], ['enter', events[index][1], context], ['exit', events[index][1], context], ['exit', strikethrough, context]]);
34437
+ splice(events, open - 1, index - open + 3, nextEvents);
34438
+ index = open + nextEvents.length - 2;
34439
+ break;
34476
34440
  }
34477
34441
  }
34478
34442
  }
34479
34443
  }
34480
- index = -1
34444
+ index = -1;
34481
34445
  while (++index < events.length) {
34482
34446
  if (events[index][1].type === 'strikethroughSequenceTemporary') {
34483
- events[index][1].type = 'data'
34447
+ events[index][1].type = "data";
34484
34448
  }
34485
34449
  }
34486
- return events
34450
+ return events;
34487
34451
  }
34488
34452
 
34489
34453
  /**
@@ -34491,43 +34455,39 @@ function gfmStrikethrough(options) {
34491
34455
  * @type {Tokenizer}
34492
34456
  */
34493
34457
  function tokenizeStrikethrough(effects, ok, nok) {
34494
- const previous = this.previous
34495
- const events = this.events
34496
- let size = 0
34497
- return start
34458
+ const previous = this.previous;
34459
+ const events = this.events;
34460
+ let size = 0;
34461
+ return start;
34498
34462
 
34499
34463
  /** @type {State} */
34500
34464
  function start(code) {
34501
- if (
34502
- previous === 126 &&
34503
- events[events.length - 1][1].type !== 'characterEscape'
34504
- ) {
34505
- return nok(code)
34465
+ if (previous === 126 && events[events.length - 1][1].type !== "characterEscape") {
34466
+ return nok(code);
34506
34467
  }
34507
- effects.enter('strikethroughSequenceTemporary')
34508
- return more(code)
34468
+ effects.enter('strikethroughSequenceTemporary');
34469
+ return more(code);
34509
34470
  }
34510
34471
 
34511
34472
  /** @type {State} */
34512
34473
  function more(code) {
34513
- const before = classifyCharacter(previous)
34474
+ const before = classifyCharacter(previous);
34514
34475
  if (code === 126) {
34515
34476
  // If this is the third marker, exit.
34516
- if (size > 1) return nok(code)
34517
- effects.consume(code)
34518
- size++
34519
- return more
34520
- }
34521
- if (size < 2 && !single) return nok(code)
34522
- const token = effects.exit('strikethroughSequenceTemporary')
34523
- const after = classifyCharacter(code)
34524
- token._open = !after || (after === 2 && Boolean(before))
34525
- token._close = !before || (before === 2 && Boolean(after))
34526
- return ok(code)
34477
+ if (size > 1) return nok(code);
34478
+ effects.consume(code);
34479
+ size++;
34480
+ return more;
34481
+ }
34482
+ if (size < 2 && !single) return nok(code);
34483
+ const token = effects.exit('strikethroughSequenceTemporary');
34484
+ const after = classifyCharacter(code);
34485
+ token._open = !after || after === 2 && Boolean(before);
34486
+ token._close = !before || before === 2 && Boolean(after);
34487
+ return ok(code);
34527
34488
  }
34528
34489
  }
34529
34490
  }
34530
-
34531
34491
  ;// ./node_modules/micromark-extension-gfm-table/lib/edit-map.js
34532
34492
  /**
34533
34493
  * @typedef {import('micromark-util-types').Event} Event
@@ -44027,7 +43987,7 @@ var EntityDecoderState;
44027
43987
  EntityDecoderState[EntityDecoderState["NumericHex"] = 3] = "NumericHex";
44028
43988
  EntityDecoderState[EntityDecoderState["NamedEntity"] = 4] = "NamedEntity";
44029
43989
  })(EntityDecoderState || (EntityDecoderState = {}));
44030
- var DecodingMode;
43990
+ var decode_DecodingMode;
44031
43991
  (function (DecodingMode) {
44032
43992
  /** Entities in text nodes that can end with any character. */
44033
43993
  DecodingMode[DecodingMode["Legacy"] = 0] = "Legacy";
@@ -44035,7 +43995,7 @@ var DecodingMode;
44035
43995
  DecodingMode[DecodingMode["Strict"] = 1] = "Strict";
44036
43996
  /** Entities in attributes have limitations on ending characters. */
44037
43997
  DecodingMode[DecodingMode["Attribute"] = 2] = "Attribute";
44038
- })(DecodingMode || (DecodingMode = {}));
43998
+ })(decode_DecodingMode || (decode_DecodingMode = {}));
44039
43999
  /**
44040
44000
  * Token decoder with support of writing partial entities.
44041
44001
  */
@@ -44074,7 +44034,7 @@ class EntityDecoder {
44074
44034
  /** The number of characters that were consumed in excess. */
44075
44035
  this.excess = 1;
44076
44036
  /** The mode in which the decoder is operating. */
44077
- this.decodeMode = DecodingMode.Strict;
44037
+ this.decodeMode = decode_DecodingMode.Strict;
44078
44038
  }
44079
44039
  /** Resets the instance to make it reusable. */
44080
44040
  startEntity(decodeMode) {
@@ -44223,7 +44183,7 @@ class EntityDecoder {
44223
44183
  if (lastCp === CharCodes.SEMI) {
44224
44184
  this.consumed += 1;
44225
44185
  }
44226
- else if (this.decodeMode === DecodingMode.Strict) {
44186
+ else if (this.decodeMode === decode_DecodingMode.Strict) {
44227
44187
  return 0;
44228
44188
  }
44229
44189
  this.emitCodePoint(replaceCodePoint(this.result), this.consumed);
@@ -44255,7 +44215,7 @@ class EntityDecoder {
44255
44215
  if (this.treeIndex < 0) {
44256
44216
  return this.result === 0 ||
44257
44217
  // If we are parsing an attribute
44258
- (this.decodeMode === DecodingMode.Attribute &&
44218
+ (this.decodeMode === decode_DecodingMode.Attribute &&
44259
44219
  // We shouldn't have consumed any characters after the entity,
44260
44220
  (valueLength === 0 ||
44261
44221
  // And there should be no invalid characters.
@@ -44272,7 +44232,7 @@ class EntityDecoder {
44272
44232
  return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
44273
44233
  }
44274
44234
  // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.
44275
- if (this.decodeMode !== DecodingMode.Strict) {
44235
+ if (this.decodeMode !== decode_DecodingMode.Strict) {
44276
44236
  this.result = this.treeIndex;
44277
44237
  this.consumed += this.excess;
44278
44238
  this.excess = 0;
@@ -44327,7 +44287,7 @@ class EntityDecoder {
44327
44287
  case EntityDecoderState.NamedEntity: {
44328
44288
  // Emit a named entity if we have one.
44329
44289
  return this.result !== 0 &&
44330
- (this.decodeMode !== DecodingMode.Attribute ||
44290
+ (this.decodeMode !== decode_DecodingMode.Attribute ||
44331
44291
  this.result === this.treeIndex)
44332
44292
  ? this.emitNotTerminatedNamedEntity()
44333
44293
  : 0;
@@ -44434,7 +44394,7 @@ const xmlDecoder = getDecoder(decode_data_xml);
44434
44394
  * @param mode The decoding mode.
44435
44395
  * @returns The decoded string.
44436
44396
  */
44437
- function decodeHTML(str, mode = DecodingMode.Legacy) {
44397
+ function decode_decodeHTML(str, mode = decode_DecodingMode.Legacy) {
44438
44398
  return htmlDecoder(str, mode);
44439
44399
  }
44440
44400
  /**
@@ -44444,7 +44404,7 @@ function decodeHTML(str, mode = DecodingMode.Legacy) {
44444
44404
  * @returns The decoded string.
44445
44405
  */
44446
44406
  function decodeHTMLAttribute(str) {
44447
- return htmlDecoder(str, DecodingMode.Attribute);
44407
+ return htmlDecoder(str, decode_DecodingMode.Attribute);
44448
44408
  }
44449
44409
  /**
44450
44410
  * Decodes an HTML string, requiring all entities to be terminated by a semicolon.
@@ -44453,7 +44413,7 @@ function decodeHTMLAttribute(str) {
44453
44413
  * @returns The decoded string.
44454
44414
  */
44455
44415
  function decodeHTMLStrict(str) {
44456
- return htmlDecoder(str, DecodingMode.Strict);
44416
+ return htmlDecoder(str, decode_DecodingMode.Strict);
44457
44417
  }
44458
44418
  /**
44459
44419
  * Decodes an XML string, requiring all entities to be terminated by a semicolon.
@@ -44461,8 +44421,8 @@ function decodeHTMLStrict(str) {
44461
44421
  * @param str The string to decode.
44462
44422
  * @returns The decoded string.
44463
44423
  */
44464
- function decodeXML(str) {
44465
- return xmlDecoder(str, DecodingMode.Strict);
44424
+ function decode_decodeXML(str) {
44425
+ return xmlDecoder(str, decode_DecodingMode.Strict);
44466
44426
  }
44467
44427
  //# sourceMappingURL=decode.js.map
44468
44428
  ;// ./node_modules/parse5/dist/common/html.js
@@ -52011,7 +51971,7 @@ function endTagInForeignContent(p, token) {
52011
51971
  }
52012
51972
  //# sourceMappingURL=index.js.map
52013
51973
  ;// ./node_modules/entities/lib/esm/escape.js
52014
- const xmlReplacer = /["&'<>$\x80-\uFFFF]/g;
51974
+ const escape_xmlReplacer = /["&'<>$\x80-\uFFFF]/g;
52015
51975
  const xmlCodeMap = new Map([
52016
51976
  [34, "&quot;"],
52017
51977
  [38, "&amp;"],
@@ -52020,7 +51980,7 @@ const xmlCodeMap = new Map([
52020
51980
  [62, "&gt;"],
52021
51981
  ]);
52022
51982
  // For compatibility with node < 4, we wrap `codePointAt`
52023
- const getCodePoint =
51983
+ const escape_getCodePoint =
52024
51984
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
52025
51985
  String.prototype.codePointAt != null
52026
51986
  ? (str, index) => str.codePointAt(index)
@@ -52038,11 +51998,11 @@ String.prototype.codePointAt != null
52038
51998
  * If a character has no equivalent entity, a
52039
51999
  * numeric hexadecimal reference (eg. `&#xfc;`) will be used.
52040
52000
  */
52041
- function encodeXML(str) {
52001
+ function escape_encodeXML(str) {
52042
52002
  let ret = "";
52043
52003
  let lastIdx = 0;
52044
52004
  let match;
52045
- while ((match = xmlReplacer.exec(str)) !== null) {
52005
+ while ((match = escape_xmlReplacer.exec(str)) !== null) {
52046
52006
  const i = match.index;
52047
52007
  const char = str.charCodeAt(i);
52048
52008
  const next = xmlCodeMap.get(char);
@@ -52051,9 +52011,9 @@ function encodeXML(str) {
52051
52011
  lastIdx = i + 1;
52052
52012
  }
52053
52013
  else {
52054
- ret += `${str.substring(lastIdx, i)}&#x${getCodePoint(str, i).toString(16)};`;
52014
+ ret += `${str.substring(lastIdx, i)}&#x${escape_getCodePoint(str, i).toString(16)};`;
52055
52015
  // Increase by 1 if we have a surrogate pair
52056
- lastIdx = xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);
52016
+ lastIdx = escape_xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);
52057
52017
  }
52058
52018
  }
52059
52019
  return ret + str.substr(lastIdx);
@@ -52067,7 +52027,7 @@ function encodeXML(str) {
52067
52027
  *
52068
52028
  * @param data String to escape.
52069
52029
  */
52070
- const escape_escape = (/* unused pure expression or super */ null && (encodeXML));
52030
+ const escape_escape = (/* unused pure expression or super */ null && (escape_encodeXML));
52071
52031
  /**
52072
52032
  * Creates a function that escapes all characters matched by the given regular
52073
52033
  * expression using the given map of characters to escape to their entities.
@@ -52102,7 +52062,7 @@ function getEscaper(regex, map) {
52102
52062
  *
52103
52063
  * @param data String to escape.
52104
52064
  */
52105
- const escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap);
52065
+ const escape_escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap);
52106
52066
  /**
52107
52067
  * Encodes all characters that have to be escaped in HTML attributes,
52108
52068
  * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
@@ -53359,7 +53319,7 @@ const divTransformer = () => tree => {
53359
53319
  ;// ./processor/transform/embeds.ts
53360
53320
 
53361
53321
 
53362
- const isEmbed = (node) => 'title' in node && node.title === '@embed';
53322
+ const isEmbed = (node) => Boolean(node && 'title' in node && node.title === '@embed');
53363
53323
  const embedTransformer = () => {
53364
53324
  return (tree) => {
53365
53325
  visit(tree, 'paragraph', (node, i, parent) => {
@@ -53367,7 +53327,7 @@ const embedTransformer = () => {
53367
53327
  if (!isEmbed(child))
53368
53328
  return;
53369
53329
  const { url, title } = child;
53370
- const label = child.children[0].value;
53330
+ const label = child.children[0]?.value;
53371
53331
  const newNode = {
53372
53332
  type: NodeTypes.embedBlock,
53373
53333
  label,
@@ -70844,6 +70804,55 @@ const mdxToHast = () => tree => {
70844
70804
  };
70845
70805
  /* harmony default export */ const mdx_to_hast = (mdxToHast);
70846
70806
 
70807
+ ;// ./lib/mdast-util/empty-task-list-item/index.ts
70808
+ /**
70809
+ * Normalizes list items that are written as only `[ ]` or `[x]` into GFM task
70810
+ * list items during parse, but only when at least one whitespace character
70811
+ * follows the closing bracket (`]`). This matches legacy behaviour for checkboxes
70812
+ *
70813
+ * The issue is `remark-gfm` does not actually classify these as task items when they have no content
70814
+ * after the checkbox, which leaves them as plain text (`"[ ]"`). So a custom extension is needed to
70815
+ * treat these as task items
70816
+ */
70817
+ function exitListItemWithEmptyTaskListItem(token) {
70818
+ const node = this.stack[this.stack.length - 1];
70819
+ if (node &&
70820
+ node.type === 'listItem' &&
70821
+ typeof node.checked !== 'boolean') {
70822
+ const listItem = node;
70823
+ const head = listItem.children[0];
70824
+ if (head && head.type === 'paragraph' && head.children.length === 1) {
70825
+ const text = head.children[0];
70826
+ if (text.type === 'text') {
70827
+ const hasTrailingWhitespace = typeof head.position?.end.offset === 'number' &&
70828
+ typeof text.position?.end.offset === 'number' &&
70829
+ head.position.end.offset > text.position.end.offset;
70830
+ if (!hasTrailingWhitespace) {
70831
+ this.exit(token);
70832
+ return;
70833
+ }
70834
+ const value = text.value;
70835
+ if (value === '[ ]') {
70836
+ listItem.checked = false;
70837
+ head.children = [];
70838
+ }
70839
+ else if (value === '[x]' || value === '[X]') {
70840
+ listItem.checked = true;
70841
+ head.children = [];
70842
+ }
70843
+ }
70844
+ }
70845
+ }
70846
+ this.exit(token);
70847
+ }
70848
+ function emptyTaskListItemFromMarkdown() {
70849
+ return {
70850
+ exit: {
70851
+ listItem: exitListItemWithEmptyTaskListItem,
70852
+ },
70853
+ };
70854
+ }
70855
+
70847
70856
  ;// ./lib/mdast-util/legacy-variable/index.ts
70848
70857
 
70849
70858
  const contextMap = new WeakMap();
@@ -71158,6 +71167,8 @@ function legacyVariable() {
71158
71167
 
71159
71168
 
71160
71169
 
71170
+
71171
+
71161
71172
  const pascalCaseTagPattern = /^<([A-Z][A-Za-z0-9_]*)([^>]*?)(\/?)>([\s\S]*)?$/;
71162
71173
  const tagAttributePattern = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*("[^"]*"|'[^']*'|[^\s"'>]+))?/g;
71163
71174
  /**
@@ -71176,8 +71187,9 @@ const MAX_LOOKAHEAD = 30;
71176
71187
  const EXCLUDED_TAGS = new Set(['HTMLBlock', 'Table', 'Glossary', 'Anchor']);
71177
71188
  const inlineMdProcessor = unified()
71178
71189
  .data('micromarkExtensions', [legacyVariable()])
71179
- .data('fromMarkdownExtensions', [legacyVariableFromMarkdown()])
71180
- .use(remarkParse);
71190
+ .data('fromMarkdownExtensions', [legacyVariableFromMarkdown(), emptyTaskListItemFromMarkdown()])
71191
+ .use(remarkParse)
71192
+ .use(remarkGfm);
71181
71193
  const isClosingTag = (value, tag) => value.trim() === `</${tag}>`;
71182
71194
  /**
71183
71195
  * Parse markdown content into mdast children nodes.
@@ -92101,6 +92113,46 @@ ${reformatHTML(html)}
92101
92113
  };
92102
92114
  /* harmony default export */ const html_block = (htmlBlock);
92103
92115
 
92116
+ ;// ./processor/compile/list-item.ts
92117
+
92118
+ // Matches '*', '-', '+', '1.', '2.', '3.', etc. followed by a newline or 1-3 spaces
92119
+ // to be replaced with the marker and a space like `- [ ]`
92120
+ const listMarkerRegex = /^(?:[*+-]|\d+\.)(?:([\r\n]| {1,3})|$)/;
92121
+ /**
92122
+ * List-item serializer intended for checklist items
92123
+ * Uses the default listItem handler for formatting, then patches the output to inject the checkbox and preserve empty items
92124
+ *
92125
+ * The current aim is to ensure checklist items that have no text after the checkbox are serialized
92126
+ * with their checkbox intact (for example, `- [ ]`) instead of dropping it
92127
+ * We can add more adjustments if needed
92128
+ */
92129
+ const compile_list_item_listItem = (node, parent, state, info) => {
92130
+ const head = node.children[0];
92131
+ const isCheckbox = typeof node.checked === 'boolean' && head && head.type === 'paragraph';
92132
+ if (!isCheckbox) {
92133
+ return handle.listItem(node, parent, state, info);
92134
+ }
92135
+ const checkbox = `[${node.checked ? 'x' : ' '}] `;
92136
+ // `tracker` keeps current column/offset for downstream line wrapping/indent
92137
+ // We move it by checkbox length so wrapped lines align after `[ ] ` / `[x] `
92138
+ const tracker = state.createTracker(info);
92139
+ tracker.move(checkbox);
92140
+ // Initialize the checkbox item with the default listItem serializer as the source of truth for spacing,
92141
+ // indentation, ordered marker formatting, and wrapping behavior
92142
+ let value = handle.listItem(node, parent, state, {
92143
+ ...info,
92144
+ ...tracker.current(),
92145
+ });
92146
+ // Patch and inject checkbox after the list marker token
92147
+ value = value.replace(listMarkerRegex, (match, separator) => {
92148
+ const marker = match.trim();
92149
+ const actualSeparator = separator || ' ';
92150
+ return `${marker}${actualSeparator}${checkbox}`;
92151
+ });
92152
+ return value;
92153
+ };
92154
+ /* harmony default export */ const list_item = (compile_list_item_listItem);
92155
+
92104
92156
  ;// ./processor/compile/plain.ts
92105
92157
  const plain_plain = (node) => node.value;
92106
92158
  /* harmony default export */ const compile_plain = (plain_plain);
@@ -92119,6 +92171,7 @@ const variable = (node) => `{user.${node.data?.hProperties?.name || ''}}`;
92119
92171
 
92120
92172
 
92121
92173
 
92174
+
92122
92175
  function compilers(mdxish = false) {
92123
92176
  const data = this.data();
92124
92177
  const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);
@@ -92136,6 +92189,7 @@ function compilers(mdxish = false) {
92136
92189
  figure: compile_compatibility,
92137
92190
  html: compile_compatibility,
92138
92191
  i: compile_compatibility,
92192
+ ...(mdxish && { listItem: list_item }),
92139
92193
  plain: compile_plain,
92140
92194
  yaml: compile_compatibility,
92141
92195
  };
@@ -93667,6 +93721,76 @@ function remarkBreaks() {
93667
93721
  }
93668
93722
  }
93669
93723
 
93724
+ ;// ./processor/plugin/flatten-table-cell-paragraphs.ts
93725
+
93726
+ /** List elements that cause margin issues when adjacent to paragraphs */
93727
+ const LIST_ELEMENTS = new Set(['ul', 'ol']);
93728
+ /**
93729
+ * Check if a child is a whitespace-only text node
93730
+ */
93731
+ function isWhitespaceText(child) {
93732
+ return child.type === 'text' && !child.value.trim();
93733
+ }
93734
+ /**
93735
+ * Check if a child is an element with the given tag name
93736
+ */
93737
+ function isElementWithTag(child, tags) {
93738
+ return child.type === 'element' && tags.has(child.tagName);
93739
+ }
93740
+ /**
93741
+ * Rehype plugin that flattens paragraph elements that are adjacent to lists in table cells.
93742
+ *
93743
+ * When markdown content is parsed inside JSX table cells, text before/after lists
93744
+ * gets wrapped in `<p>` tags. This causes unwanted spacing because both `<p>` and
93745
+ * list elements have margins.
93746
+ *
93747
+ * This plugin selectively unwraps only `<p>` elements that are immediately before
93748
+ * or after a list (`<ul>` or `<ol>`), preserving paragraphs in other contexts.
93749
+ */
93750
+ const rehypeFlattenTableCellParagraphs = () => {
93751
+ return (tree) => {
93752
+ visit(tree, 'element', (node) => {
93753
+ // Only process table cells
93754
+ if (node.tagName !== 'td' && node.tagName !== 'th')
93755
+ return;
93756
+ const children = node.children;
93757
+ const newChildren = [];
93758
+ for (let i = 0; i < children.length; i += 1) {
93759
+ const child = children[i];
93760
+ // If not a paragraph, keep as-is
93761
+ if (child.type !== 'element' || child.tagName !== 'p') {
93762
+ newChildren.push(child);
93763
+ }
93764
+ else {
93765
+ // Check if this paragraph is adjacent to a list
93766
+ // Look at previous non-whitespace sibling
93767
+ let prevIndex = i - 1;
93768
+ while (prevIndex >= 0 && isWhitespaceText(children[prevIndex])) {
93769
+ prevIndex -= 1;
93770
+ }
93771
+ const prevIsNewChild = newChildren.length > 0 && newChildren[newChildren.length - 1];
93772
+ const prevIsList = (prevIndex >= 0 && isElementWithTag(children[prevIndex], LIST_ELEMENTS)) ||
93773
+ (prevIsNewChild && prevIsNewChild.type === 'element' && LIST_ELEMENTS.has(prevIsNewChild.tagName));
93774
+ // Look at next non-whitespace sibling
93775
+ let nextIndex = i + 1;
93776
+ while (nextIndex < children.length && isWhitespaceText(children[nextIndex])) {
93777
+ nextIndex += 1;
93778
+ }
93779
+ const nextIsList = nextIndex < children.length && isElementWithTag(children[nextIndex], LIST_ELEMENTS);
93780
+ // If adjacent to a list, flatten the paragraph
93781
+ if (prevIsList || nextIsList) {
93782
+ newChildren.push(...child.children);
93783
+ }
93784
+ else {
93785
+ newChildren.push(child);
93786
+ }
93787
+ }
93788
+ }
93789
+ node.children = newChildren;
93790
+ });
93791
+ };
93792
+ };
93793
+
93670
93794
  ;// ./lib/utils/mdxish/mdxish-get-component-name.ts
93671
93795
  /** Convert a string to PascalCase */
93672
93796
  function toPascalCase(str) {
@@ -94164,12 +94288,20 @@ function extractBalancedBraces(content, start) {
94164
94288
  * Handles: already-escaped braces, string literals inside expressions, nested balanced braces.
94165
94289
  */
94166
94290
  function escapeUnbalancedBraces(content) {
94291
+ // Skip HTML elements — their content should never be escaped because
94292
+ // rehypeRaw parses them into hast elements, making `\` literal text in output
94293
+ const htmlElements = [];
94294
+ const safe = content.replace(/<([a-z][a-zA-Z0-9]*)(?:\s[^>]*)?>[\s\S]*?<\/\1>/g, match => {
94295
+ const idx = htmlElements.length;
94296
+ htmlElements.push(match);
94297
+ return `___HTML_ELEM_${idx}___`;
94298
+ });
94167
94299
  const opens = [];
94168
94300
  const unbalanced = new Set();
94169
94301
  let strDelim = null;
94170
94302
  let strEscaped = false;
94171
94303
  // Convert to array of Unicode code points to handle emojis and multi-byte characters correctly
94172
- const chars = Array.from(content);
94304
+ const chars = Array.from(safe);
94173
94305
  for (let i = 0; i < chars.length; i += 1) {
94174
94306
  const ch = chars[i];
94175
94307
  // Track strings inside expressions to ignore braces within them
@@ -94210,11 +94342,15 @@ function escapeUnbalancedBraces(content) {
94210
94342
  }
94211
94343
  }
94212
94344
  opens.forEach(pos => unbalanced.add(pos));
94213
- if (unbalanced.size === 0)
94214
- return content;
94215
- return chars
94216
- .map((ch, i) => (unbalanced.has(i) ? `\\${ch}` : ch))
94217
- .join('');
94345
+ // If there are no unbalanced braces, return content as-is;
94346
+ // otherwise, escape each unbalanced `{` or `}` so MDX doesn't treat them as expressions.
94347
+ let result = unbalanced.size === 0
94348
+ ? safe
94349
+ : chars.map((ch, i) => (unbalanced.has(i) ? `\\${ch}` : ch)).join('');
94350
+ if (htmlElements.length > 0) {
94351
+ result = result.replace(/___HTML_ELEM_(\d+)___/g, (_m, idx) => htmlElements[parseInt(idx, 10)]);
94352
+ }
94353
+ return result;
94218
94354
  }
94219
94355
  /**
94220
94356
  * Converts JSX attribute expressions (attribute={expression}) to HTML attributes (attribute="value").
@@ -94406,6 +94542,9 @@ const generateSlugForHeadings = () => (tree) => {
94406
94542
  };
94407
94543
  /* harmony default export */ const heading_slugs = (generateSlugForHeadings);
94408
94544
 
94545
+ // EXTERNAL MODULE: external "@readme/variable"
94546
+ var variable_ = __webpack_require__(8167);
94547
+ var variable_default = /*#__PURE__*/__webpack_require__.n(variable_);
94409
94548
  ;// ./node_modules/rehype-parse/lib/index.js
94410
94549
  /**
94411
94550
  * @import {Root} from 'hast'
@@ -94471,6 +94610,311 @@ function rehypeParse(options) {
94471
94610
  }
94472
94611
  }
94473
94612
 
94613
+ ;// ./node_modules/entities/lib/esm/generated/encode-html.js
94614
+ // Generated using scripts/write-encode-map.ts
94615
+ function restoreDiff(arr) {
94616
+ for (let i = 1; i < arr.length; i++) {
94617
+ arr[i][0] += arr[i - 1][0] + 1;
94618
+ }
94619
+ return arr;
94620
+ }
94621
+ // prettier-ignore
94622
+ /* harmony default export */ const encode_html = (new Map(/* #__PURE__ */ restoreDiff([[9, "&Tab;"], [0, "&NewLine;"], [22, "&excl;"], [0, "&quot;"], [0, "&num;"], [0, "&dollar;"], [0, "&percnt;"], [0, "&amp;"], [0, "&apos;"], [0, "&lpar;"], [0, "&rpar;"], [0, "&ast;"], [0, "&plus;"], [0, "&comma;"], [1, "&period;"], [0, "&sol;"], [10, "&colon;"], [0, "&semi;"], [0, { v: "&lt;", n: 8402, o: "&nvlt;" }], [0, { v: "&equals;", n: 8421, o: "&bne;" }], [0, { v: "&gt;", n: 8402, o: "&nvgt;" }], [0, "&quest;"], [0, "&commat;"], [26, "&lbrack;"], [0, "&bsol;"], [0, "&rbrack;"], [0, "&Hat;"], [0, "&lowbar;"], [0, "&DiacriticalGrave;"], [5, { n: 106, o: "&fjlig;" }], [20, "&lbrace;"], [0, "&verbar;"], [0, "&rbrace;"], [34, "&nbsp;"], [0, "&iexcl;"], [0, "&cent;"], [0, "&pound;"], [0, "&curren;"], [0, "&yen;"], [0, "&brvbar;"], [0, "&sect;"], [0, "&die;"], [0, "&copy;"], [0, "&ordf;"], [0, "&laquo;"], [0, "&not;"], [0, "&shy;"], [0, "&circledR;"], [0, "&macr;"], [0, "&deg;"], [0, "&PlusMinus;"], [0, "&sup2;"], [0, "&sup3;"], [0, "&acute;"], [0, "&micro;"], [0, "&para;"], [0, "&centerdot;"], [0, "&cedil;"], [0, "&sup1;"], [0, "&ordm;"], [0, "&raquo;"], [0, "&frac14;"], [0, "&frac12;"], [0, "&frac34;"], [0, "&iquest;"], [0, "&Agrave;"], [0, "&Aacute;"], [0, "&Acirc;"], [0, "&Atilde;"], [0, "&Auml;"], [0, "&angst;"], [0, "&AElig;"], [0, "&Ccedil;"], [0, "&Egrave;"], [0, "&Eacute;"], [0, "&Ecirc;"], [0, "&Euml;"], [0, "&Igrave;"], [0, "&Iacute;"], [0, "&Icirc;"], [0, "&Iuml;"], [0, "&ETH;"], [0, "&Ntilde;"], [0, "&Ograve;"], [0, "&Oacute;"], [0, "&Ocirc;"], [0, "&Otilde;"], [0, "&Ouml;"], [0, "&times;"], [0, "&Oslash;"], [0, "&Ugrave;"], [0, "&Uacute;"], [0, "&Ucirc;"], [0, "&Uuml;"], [0, "&Yacute;"], [0, "&THORN;"], [0, "&szlig;"], [0, "&agrave;"], [0, "&aacute;"], [0, "&acirc;"], [0, "&atilde;"], [0, "&auml;"], [0, "&aring;"], [0, "&aelig;"], [0, "&ccedil;"], [0, "&egrave;"], [0, "&eacute;"], [0, "&ecirc;"], [0, "&euml;"], [0, "&igrave;"], [0, "&iacute;"], [0, "&icirc;"], [0, "&iuml;"], [0, "&eth;"], [0, "&ntilde;"], [0, "&ograve;"], [0, "&oacute;"], [0, "&ocirc;"], [0, "&otilde;"], [0, "&ouml;"], [0, "&div;"], [0, "&oslash;"], [0, "&ugrave;"], [0, "&uacute;"], [0, "&ucirc;"], [0, "&uuml;"], [0, "&yacute;"], [0, "&thorn;"], [0, "&yuml;"], [0, "&Amacr;"], [0, "&amacr;"], [0, "&Abreve;"], [0, "&abreve;"], [0, "&Aogon;"], [0, "&aogon;"], [0, "&Cacute;"], [0, "&cacute;"], [0, "&Ccirc;"], [0, "&ccirc;"], [0, "&Cdot;"], [0, "&cdot;"], [0, "&Ccaron;"], [0, "&ccaron;"], [0, "&Dcaron;"], [0, "&dcaron;"], [0, "&Dstrok;"], [0, "&dstrok;"], [0, "&Emacr;"], [0, "&emacr;"], [2, "&Edot;"], [0, "&edot;"], [0, "&Eogon;"], [0, "&eogon;"], [0, "&Ecaron;"], [0, "&ecaron;"], [0, "&Gcirc;"], [0, "&gcirc;"], [0, "&Gbreve;"], [0, "&gbreve;"], [0, "&Gdot;"], [0, "&gdot;"], [0, "&Gcedil;"], [1, "&Hcirc;"], [0, "&hcirc;"], [0, "&Hstrok;"], [0, "&hstrok;"], [0, "&Itilde;"], [0, "&itilde;"], [0, "&Imacr;"], [0, "&imacr;"], [2, "&Iogon;"], [0, "&iogon;"], [0, "&Idot;"], [0, "&imath;"], [0, "&IJlig;"], [0, "&ijlig;"], [0, "&Jcirc;"], [0, "&jcirc;"], [0, "&Kcedil;"], [0, "&kcedil;"], [0, "&kgreen;"], [0, "&Lacute;"], [0, "&lacute;"], [0, "&Lcedil;"], [0, "&lcedil;"], [0, "&Lcaron;"], [0, "&lcaron;"], [0, "&Lmidot;"], [0, "&lmidot;"], [0, "&Lstrok;"], [0, "&lstrok;"], [0, "&Nacute;"], [0, "&nacute;"], [0, "&Ncedil;"], [0, "&ncedil;"], [0, "&Ncaron;"], [0, "&ncaron;"], [0, "&napos;"], [0, "&ENG;"], [0, "&eng;"], [0, "&Omacr;"], [0, "&omacr;"], [2, "&Odblac;"], [0, "&odblac;"], [0, "&OElig;"], [0, "&oelig;"], [0, "&Racute;"], [0, "&racute;"], [0, "&Rcedil;"], [0, "&rcedil;"], [0, "&Rcaron;"], [0, "&rcaron;"], [0, "&Sacute;"], [0, "&sacute;"], [0, "&Scirc;"], [0, "&scirc;"], [0, "&Scedil;"], [0, "&scedil;"], [0, "&Scaron;"], [0, "&scaron;"], [0, "&Tcedil;"], [0, "&tcedil;"], [0, "&Tcaron;"], [0, "&tcaron;"], [0, "&Tstrok;"], [0, "&tstrok;"], [0, "&Utilde;"], [0, "&utilde;"], [0, "&Umacr;"], [0, "&umacr;"], [0, "&Ubreve;"], [0, "&ubreve;"], [0, "&Uring;"], [0, "&uring;"], [0, "&Udblac;"], [0, "&udblac;"], [0, "&Uogon;"], [0, "&uogon;"], [0, "&Wcirc;"], [0, "&wcirc;"], [0, "&Ycirc;"], [0, "&ycirc;"], [0, "&Yuml;"], [0, "&Zacute;"], [0, "&zacute;"], [0, "&Zdot;"], [0, "&zdot;"], [0, "&Zcaron;"], [0, "&zcaron;"], [19, "&fnof;"], [34, "&imped;"], [63, "&gacute;"], [65, "&jmath;"], [142, "&circ;"], [0, "&caron;"], [16, "&breve;"], [0, "&DiacriticalDot;"], [0, "&ring;"], [0, "&ogon;"], [0, "&DiacriticalTilde;"], [0, "&dblac;"], [51, "&DownBreve;"], [127, "&Alpha;"], [0, "&Beta;"], [0, "&Gamma;"], [0, "&Delta;"], [0, "&Epsilon;"], [0, "&Zeta;"], [0, "&Eta;"], [0, "&Theta;"], [0, "&Iota;"], [0, "&Kappa;"], [0, "&Lambda;"], [0, "&Mu;"], [0, "&Nu;"], [0, "&Xi;"], [0, "&Omicron;"], [0, "&Pi;"], [0, "&Rho;"], [1, "&Sigma;"], [0, "&Tau;"], [0, "&Upsilon;"], [0, "&Phi;"], [0, "&Chi;"], [0, "&Psi;"], [0, "&ohm;"], [7, "&alpha;"], [0, "&beta;"], [0, "&gamma;"], [0, "&delta;"], [0, "&epsi;"], [0, "&zeta;"], [0, "&eta;"], [0, "&theta;"], [0, "&iota;"], [0, "&kappa;"], [0, "&lambda;"], [0, "&mu;"], [0, "&nu;"], [0, "&xi;"], [0, "&omicron;"], [0, "&pi;"], [0, "&rho;"], [0, "&sigmaf;"], [0, "&sigma;"], [0, "&tau;"], [0, "&upsi;"], [0, "&phi;"], [0, "&chi;"], [0, "&psi;"], [0, "&omega;"], [7, "&thetasym;"], [0, "&Upsi;"], [2, "&phiv;"], [0, "&piv;"], [5, "&Gammad;"], [0, "&digamma;"], [18, "&kappav;"], [0, "&rhov;"], [3, "&epsiv;"], [0, "&backepsilon;"], [10, "&IOcy;"], [0, "&DJcy;"], [0, "&GJcy;"], [0, "&Jukcy;"], [0, "&DScy;"], [0, "&Iukcy;"], [0, "&YIcy;"], [0, "&Jsercy;"], [0, "&LJcy;"], [0, "&NJcy;"], [0, "&TSHcy;"], [0, "&KJcy;"], [1, "&Ubrcy;"], [0, "&DZcy;"], [0, "&Acy;"], [0, "&Bcy;"], [0, "&Vcy;"], [0, "&Gcy;"], [0, "&Dcy;"], [0, "&IEcy;"], [0, "&ZHcy;"], [0, "&Zcy;"], [0, "&Icy;"], [0, "&Jcy;"], [0, "&Kcy;"], [0, "&Lcy;"], [0, "&Mcy;"], [0, "&Ncy;"], [0, "&Ocy;"], [0, "&Pcy;"], [0, "&Rcy;"], [0, "&Scy;"], [0, "&Tcy;"], [0, "&Ucy;"], [0, "&Fcy;"], [0, "&KHcy;"], [0, "&TScy;"], [0, "&CHcy;"], [0, "&SHcy;"], [0, "&SHCHcy;"], [0, "&HARDcy;"], [0, "&Ycy;"], [0, "&SOFTcy;"], [0, "&Ecy;"], [0, "&YUcy;"], [0, "&YAcy;"], [0, "&acy;"], [0, "&bcy;"], [0, "&vcy;"], [0, "&gcy;"], [0, "&dcy;"], [0, "&iecy;"], [0, "&zhcy;"], [0, "&zcy;"], [0, "&icy;"], [0, "&jcy;"], [0, "&kcy;"], [0, "&lcy;"], [0, "&mcy;"], [0, "&ncy;"], [0, "&ocy;"], [0, "&pcy;"], [0, "&rcy;"], [0, "&scy;"], [0, "&tcy;"], [0, "&ucy;"], [0, "&fcy;"], [0, "&khcy;"], [0, "&tscy;"], [0, "&chcy;"], [0, "&shcy;"], [0, "&shchcy;"], [0, "&hardcy;"], [0, "&ycy;"], [0, "&softcy;"], [0, "&ecy;"], [0, "&yucy;"], [0, "&yacy;"], [1, "&iocy;"], [0, "&djcy;"], [0, "&gjcy;"], [0, "&jukcy;"], [0, "&dscy;"], [0, "&iukcy;"], [0, "&yicy;"], [0, "&jsercy;"], [0, "&ljcy;"], [0, "&njcy;"], [0, "&tshcy;"], [0, "&kjcy;"], [1, "&ubrcy;"], [0, "&dzcy;"], [7074, "&ensp;"], [0, "&emsp;"], [0, "&emsp13;"], [0, "&emsp14;"], [1, "&numsp;"], [0, "&puncsp;"], [0, "&ThinSpace;"], [0, "&hairsp;"], [0, "&NegativeMediumSpace;"], [0, "&zwnj;"], [0, "&zwj;"], [0, "&lrm;"], [0, "&rlm;"], [0, "&dash;"], [2, "&ndash;"], [0, "&mdash;"], [0, "&horbar;"], [0, "&Verbar;"], [1, "&lsquo;"], [0, "&CloseCurlyQuote;"], [0, "&lsquor;"], [1, "&ldquo;"], [0, "&CloseCurlyDoubleQuote;"], [0, "&bdquo;"], [1, "&dagger;"], [0, "&Dagger;"], [0, "&bull;"], [2, "&nldr;"], [0, "&hellip;"], [9, "&permil;"], [0, "&pertenk;"], [0, "&prime;"], [0, "&Prime;"], [0, "&tprime;"], [0, "&backprime;"], [3, "&lsaquo;"], [0, "&rsaquo;"], [3, "&oline;"], [2, "&caret;"], [1, "&hybull;"], [0, "&frasl;"], [10, "&bsemi;"], [7, "&qprime;"], [7, { v: "&MediumSpace;", n: 8202, o: "&ThickSpace;" }], [0, "&NoBreak;"], [0, "&af;"], [0, "&InvisibleTimes;"], [0, "&ic;"], [72, "&euro;"], [46, "&tdot;"], [0, "&DotDot;"], [37, "&complexes;"], [2, "&incare;"], [4, "&gscr;"], [0, "&hamilt;"], [0, "&Hfr;"], [0, "&Hopf;"], [0, "&planckh;"], [0, "&hbar;"], [0, "&imagline;"], [0, "&Ifr;"], [0, "&lagran;"], [0, "&ell;"], [1, "&naturals;"], [0, "&numero;"], [0, "&copysr;"], [0, "&weierp;"], [0, "&Popf;"], [0, "&Qopf;"], [0, "&realine;"], [0, "&real;"], [0, "&reals;"], [0, "&rx;"], [3, "&trade;"], [1, "&integers;"], [2, "&mho;"], [0, "&zeetrf;"], [0, "&iiota;"], [2, "&bernou;"], [0, "&Cayleys;"], [1, "&escr;"], [0, "&Escr;"], [0, "&Fouriertrf;"], [1, "&Mellintrf;"], [0, "&order;"], [0, "&alefsym;"], [0, "&beth;"], [0, "&gimel;"], [0, "&daleth;"], [12, "&CapitalDifferentialD;"], [0, "&dd;"], [0, "&ee;"], [0, "&ii;"], [10, "&frac13;"], [0, "&frac23;"], [0, "&frac15;"], [0, "&frac25;"], [0, "&frac35;"], [0, "&frac45;"], [0, "&frac16;"], [0, "&frac56;"], [0, "&frac18;"], [0, "&frac38;"], [0, "&frac58;"], [0, "&frac78;"], [49, "&larr;"], [0, "&ShortUpArrow;"], [0, "&rarr;"], [0, "&darr;"], [0, "&harr;"], [0, "&updownarrow;"], [0, "&nwarr;"], [0, "&nearr;"], [0, "&LowerRightArrow;"], [0, "&LowerLeftArrow;"], [0, "&nlarr;"], [0, "&nrarr;"], [1, { v: "&rarrw;", n: 824, o: "&nrarrw;" }], [0, "&Larr;"], [0, "&Uarr;"], [0, "&Rarr;"], [0, "&Darr;"], [0, "&larrtl;"], [0, "&rarrtl;"], [0, "&LeftTeeArrow;"], [0, "&mapstoup;"], [0, "&map;"], [0, "&DownTeeArrow;"], [1, "&hookleftarrow;"], [0, "&hookrightarrow;"], [0, "&larrlp;"], [0, "&looparrowright;"], [0, "&harrw;"], [0, "&nharr;"], [1, "&lsh;"], [0, "&rsh;"], [0, "&ldsh;"], [0, "&rdsh;"], [1, "&crarr;"], [0, "&cularr;"], [0, "&curarr;"], [2, "&circlearrowleft;"], [0, "&circlearrowright;"], [0, "&leftharpoonup;"], [0, "&DownLeftVector;"], [0, "&RightUpVector;"], [0, "&LeftUpVector;"], [0, "&rharu;"], [0, "&DownRightVector;"], [0, "&dharr;"], [0, "&dharl;"], [0, "&RightArrowLeftArrow;"], [0, "&udarr;"], [0, "&LeftArrowRightArrow;"], [0, "&leftleftarrows;"], [0, "&upuparrows;"], [0, "&rightrightarrows;"], [0, "&ddarr;"], [0, "&leftrightharpoons;"], [0, "&Equilibrium;"], [0, "&nlArr;"], [0, "&nhArr;"], [0, "&nrArr;"], [0, "&DoubleLeftArrow;"], [0, "&DoubleUpArrow;"], [0, "&DoubleRightArrow;"], [0, "&dArr;"], [0, "&DoubleLeftRightArrow;"], [0, "&DoubleUpDownArrow;"], [0, "&nwArr;"], [0, "&neArr;"], [0, "&seArr;"], [0, "&swArr;"], [0, "&lAarr;"], [0, "&rAarr;"], [1, "&zigrarr;"], [6, "&larrb;"], [0, "&rarrb;"], [15, "&DownArrowUpArrow;"], [7, "&loarr;"], [0, "&roarr;"], [0, "&hoarr;"], [0, "&forall;"], [0, "&comp;"], [0, { v: "&part;", n: 824, o: "&npart;" }], [0, "&exist;"], [0, "&nexist;"], [0, "&empty;"], [1, "&Del;"], [0, "&Element;"], [0, "&NotElement;"], [1, "&ni;"], [0, "&notni;"], [2, "&prod;"], [0, "&coprod;"], [0, "&sum;"], [0, "&minus;"], [0, "&MinusPlus;"], [0, "&dotplus;"], [1, "&Backslash;"], [0, "&lowast;"], [0, "&compfn;"], [1, "&radic;"], [2, "&prop;"], [0, "&infin;"], [0, "&angrt;"], [0, { v: "&ang;", n: 8402, o: "&nang;" }], [0, "&angmsd;"], [0, "&angsph;"], [0, "&mid;"], [0, "&nmid;"], [0, "&DoubleVerticalBar;"], [0, "&NotDoubleVerticalBar;"], [0, "&and;"], [0, "&or;"], [0, { v: "&cap;", n: 65024, o: "&caps;" }], [0, { v: "&cup;", n: 65024, o: "&cups;" }], [0, "&int;"], [0, "&Int;"], [0, "&iiint;"], [0, "&conint;"], [0, "&Conint;"], [0, "&Cconint;"], [0, "&cwint;"], [0, "&ClockwiseContourIntegral;"], [0, "&awconint;"], [0, "&there4;"], [0, "&becaus;"], [0, "&ratio;"], [0, "&Colon;"], [0, "&dotminus;"], [1, "&mDDot;"], [0, "&homtht;"], [0, { v: "&sim;", n: 8402, o: "&nvsim;" }], [0, { v: "&backsim;", n: 817, o: "&race;" }], [0, { v: "&ac;", n: 819, o: "&acE;" }], [0, "&acd;"], [0, "&VerticalTilde;"], [0, "&NotTilde;"], [0, { v: "&eqsim;", n: 824, o: "&nesim;" }], [0, "&sime;"], [0, "&NotTildeEqual;"], [0, "&cong;"], [0, "&simne;"], [0, "&ncong;"], [0, "&ap;"], [0, "&nap;"], [0, "&ape;"], [0, { v: "&apid;", n: 824, o: "&napid;" }], [0, "&backcong;"], [0, { v: "&asympeq;", n: 8402, o: "&nvap;" }], [0, { v: "&bump;", n: 824, o: "&nbump;" }], [0, { v: "&bumpe;", n: 824, o: "&nbumpe;" }], [0, { v: "&doteq;", n: 824, o: "&nedot;" }], [0, "&doteqdot;"], [0, "&efDot;"], [0, "&erDot;"], [0, "&Assign;"], [0, "&ecolon;"], [0, "&ecir;"], [0, "&circeq;"], [1, "&wedgeq;"], [0, "&veeeq;"], [1, "&triangleq;"], [2, "&equest;"], [0, "&ne;"], [0, { v: "&Congruent;", n: 8421, o: "&bnequiv;" }], [0, "&nequiv;"], [1, { v: "&le;", n: 8402, o: "&nvle;" }], [0, { v: "&ge;", n: 8402, o: "&nvge;" }], [0, { v: "&lE;", n: 824, o: "&nlE;" }], [0, { v: "&gE;", n: 824, o: "&ngE;" }], [0, { v: "&lnE;", n: 65024, o: "&lvertneqq;" }], [0, { v: "&gnE;", n: 65024, o: "&gvertneqq;" }], [0, { v: "&ll;", n: new Map(/* #__PURE__ */ restoreDiff([[824, "&nLtv;"], [7577, "&nLt;"]])) }], [0, { v: "&gg;", n: new Map(/* #__PURE__ */ restoreDiff([[824, "&nGtv;"], [7577, "&nGt;"]])) }], [0, "&between;"], [0, "&NotCupCap;"], [0, "&nless;"], [0, "&ngt;"], [0, "&nle;"], [0, "&nge;"], [0, "&lesssim;"], [0, "&GreaterTilde;"], [0, "&nlsim;"], [0, "&ngsim;"], [0, "&LessGreater;"], [0, "&gl;"], [0, "&NotLessGreater;"], [0, "&NotGreaterLess;"], [0, "&pr;"], [0, "&sc;"], [0, "&prcue;"], [0, "&sccue;"], [0, "&PrecedesTilde;"], [0, { v: "&scsim;", n: 824, o: "&NotSucceedsTilde;" }], [0, "&NotPrecedes;"], [0, "&NotSucceeds;"], [0, { v: "&sub;", n: 8402, o: "&NotSubset;" }], [0, { v: "&sup;", n: 8402, o: "&NotSuperset;" }], [0, "&nsub;"], [0, "&nsup;"], [0, "&sube;"], [0, "&supe;"], [0, "&NotSubsetEqual;"], [0, "&NotSupersetEqual;"], [0, { v: "&subne;", n: 65024, o: "&varsubsetneq;" }], [0, { v: "&supne;", n: 65024, o: "&varsupsetneq;" }], [1, "&cupdot;"], [0, "&UnionPlus;"], [0, { v: "&sqsub;", n: 824, o: "&NotSquareSubset;" }], [0, { v: "&sqsup;", n: 824, o: "&NotSquareSuperset;" }], [0, "&sqsube;"], [0, "&sqsupe;"], [0, { v: "&sqcap;", n: 65024, o: "&sqcaps;" }], [0, { v: "&sqcup;", n: 65024, o: "&sqcups;" }], [0, "&CirclePlus;"], [0, "&CircleMinus;"], [0, "&CircleTimes;"], [0, "&osol;"], [0, "&CircleDot;"], [0, "&circledcirc;"], [0, "&circledast;"], [1, "&circleddash;"], [0, "&boxplus;"], [0, "&boxminus;"], [0, "&boxtimes;"], [0, "&dotsquare;"], [0, "&RightTee;"], [0, "&dashv;"], [0, "&DownTee;"], [0, "&bot;"], [1, "&models;"], [0, "&DoubleRightTee;"], [0, "&Vdash;"], [0, "&Vvdash;"], [0, "&VDash;"], [0, "&nvdash;"], [0, "&nvDash;"], [0, "&nVdash;"], [0, "&nVDash;"], [0, "&prurel;"], [1, "&LeftTriangle;"], [0, "&RightTriangle;"], [0, { v: "&LeftTriangleEqual;", n: 8402, o: "&nvltrie;" }], [0, { v: "&RightTriangleEqual;", n: 8402, o: "&nvrtrie;" }], [0, "&origof;"], [0, "&imof;"], [0, "&multimap;"], [0, "&hercon;"], [0, "&intcal;"], [0, "&veebar;"], [1, "&barvee;"], [0, "&angrtvb;"], [0, "&lrtri;"], [0, "&bigwedge;"], [0, "&bigvee;"], [0, "&bigcap;"], [0, "&bigcup;"], [0, "&diam;"], [0, "&sdot;"], [0, "&sstarf;"], [0, "&divideontimes;"], [0, "&bowtie;"], [0, "&ltimes;"], [0, "&rtimes;"], [0, "&leftthreetimes;"], [0, "&rightthreetimes;"], [0, "&backsimeq;"], [0, "&curlyvee;"], [0, "&curlywedge;"], [0, "&Sub;"], [0, "&Sup;"], [0, "&Cap;"], [0, "&Cup;"], [0, "&fork;"], [0, "&epar;"], [0, "&lessdot;"], [0, "&gtdot;"], [0, { v: "&Ll;", n: 824, o: "&nLl;" }], [0, { v: "&Gg;", n: 824, o: "&nGg;" }], [0, { v: "&leg;", n: 65024, o: "&lesg;" }], [0, { v: "&gel;", n: 65024, o: "&gesl;" }], [2, "&cuepr;"], [0, "&cuesc;"], [0, "&NotPrecedesSlantEqual;"], [0, "&NotSucceedsSlantEqual;"], [0, "&NotSquareSubsetEqual;"], [0, "&NotSquareSupersetEqual;"], [2, "&lnsim;"], [0, "&gnsim;"], [0, "&precnsim;"], [0, "&scnsim;"], [0, "&nltri;"], [0, "&NotRightTriangle;"], [0, "&nltrie;"], [0, "&NotRightTriangleEqual;"], [0, "&vellip;"], [0, "&ctdot;"], [0, "&utdot;"], [0, "&dtdot;"], [0, "&disin;"], [0, "&isinsv;"], [0, "&isins;"], [0, { v: "&isindot;", n: 824, o: "&notindot;" }], [0, "&notinvc;"], [0, "&notinvb;"], [1, { v: "&isinE;", n: 824, o: "&notinE;" }], [0, "&nisd;"], [0, "&xnis;"], [0, "&nis;"], [0, "&notnivc;"], [0, "&notnivb;"], [6, "&barwed;"], [0, "&Barwed;"], [1, "&lceil;"], [0, "&rceil;"], [0, "&LeftFloor;"], [0, "&rfloor;"], [0, "&drcrop;"], [0, "&dlcrop;"], [0, "&urcrop;"], [0, "&ulcrop;"], [0, "&bnot;"], [1, "&profline;"], [0, "&profsurf;"], [1, "&telrec;"], [0, "&target;"], [5, "&ulcorn;"], [0, "&urcorn;"], [0, "&dlcorn;"], [0, "&drcorn;"], [2, "&frown;"], [0, "&smile;"], [9, "&cylcty;"], [0, "&profalar;"], [7, "&topbot;"], [6, "&ovbar;"], [1, "&solbar;"], [60, "&angzarr;"], [51, "&lmoustache;"], [0, "&rmoustache;"], [2, "&OverBracket;"], [0, "&bbrk;"], [0, "&bbrktbrk;"], [37, "&OverParenthesis;"], [0, "&UnderParenthesis;"], [0, "&OverBrace;"], [0, "&UnderBrace;"], [2, "&trpezium;"], [4, "&elinters;"], [59, "&blank;"], [164, "&circledS;"], [55, "&boxh;"], [1, "&boxv;"], [9, "&boxdr;"], [3, "&boxdl;"], [3, "&boxur;"], [3, "&boxul;"], [3, "&boxvr;"], [7, "&boxvl;"], [7, "&boxhd;"], [7, "&boxhu;"], [7, "&boxvh;"], [19, "&boxH;"], [0, "&boxV;"], [0, "&boxdR;"], [0, "&boxDr;"], [0, "&boxDR;"], [0, "&boxdL;"], [0, "&boxDl;"], [0, "&boxDL;"], [0, "&boxuR;"], [0, "&boxUr;"], [0, "&boxUR;"], [0, "&boxuL;"], [0, "&boxUl;"], [0, "&boxUL;"], [0, "&boxvR;"], [0, "&boxVr;"], [0, "&boxVR;"], [0, "&boxvL;"], [0, "&boxVl;"], [0, "&boxVL;"], [0, "&boxHd;"], [0, "&boxhD;"], [0, "&boxHD;"], [0, "&boxHu;"], [0, "&boxhU;"], [0, "&boxHU;"], [0, "&boxvH;"], [0, "&boxVh;"], [0, "&boxVH;"], [19, "&uhblk;"], [3, "&lhblk;"], [3, "&block;"], [8, "&blk14;"], [0, "&blk12;"], [0, "&blk34;"], [13, "&square;"], [8, "&blacksquare;"], [0, "&EmptyVerySmallSquare;"], [1, "&rect;"], [0, "&marker;"], [2, "&fltns;"], [1, "&bigtriangleup;"], [0, "&blacktriangle;"], [0, "&triangle;"], [2, "&blacktriangleright;"], [0, "&rtri;"], [3, "&bigtriangledown;"], [0, "&blacktriangledown;"], [0, "&dtri;"], [2, "&blacktriangleleft;"], [0, "&ltri;"], [6, "&loz;"], [0, "&cir;"], [32, "&tridot;"], [2, "&bigcirc;"], [8, "&ultri;"], [0, "&urtri;"], [0, "&lltri;"], [0, "&EmptySmallSquare;"], [0, "&FilledSmallSquare;"], [8, "&bigstar;"], [0, "&star;"], [7, "&phone;"], [49, "&female;"], [1, "&male;"], [29, "&spades;"], [2, "&clubs;"], [1, "&hearts;"], [0, "&diamondsuit;"], [3, "&sung;"], [2, "&flat;"], [0, "&natural;"], [0, "&sharp;"], [163, "&check;"], [3, "&cross;"], [8, "&malt;"], [21, "&sext;"], [33, "&VerticalSeparator;"], [25, "&lbbrk;"], [0, "&rbbrk;"], [84, "&bsolhsub;"], [0, "&suphsol;"], [28, "&LeftDoubleBracket;"], [0, "&RightDoubleBracket;"], [0, "&lang;"], [0, "&rang;"], [0, "&Lang;"], [0, "&Rang;"], [0, "&loang;"], [0, "&roang;"], [7, "&longleftarrow;"], [0, "&longrightarrow;"], [0, "&longleftrightarrow;"], [0, "&DoubleLongLeftArrow;"], [0, "&DoubleLongRightArrow;"], [0, "&DoubleLongLeftRightArrow;"], [1, "&longmapsto;"], [2, "&dzigrarr;"], [258, "&nvlArr;"], [0, "&nvrArr;"], [0, "&nvHarr;"], [0, "&Map;"], [6, "&lbarr;"], [0, "&bkarow;"], [0, "&lBarr;"], [0, "&dbkarow;"], [0, "&drbkarow;"], [0, "&DDotrahd;"], [0, "&UpArrowBar;"], [0, "&DownArrowBar;"], [2, "&Rarrtl;"], [2, "&latail;"], [0, "&ratail;"], [0, "&lAtail;"], [0, "&rAtail;"], [0, "&larrfs;"], [0, "&rarrfs;"], [0, "&larrbfs;"], [0, "&rarrbfs;"], [2, "&nwarhk;"], [0, "&nearhk;"], [0, "&hksearow;"], [0, "&hkswarow;"], [0, "&nwnear;"], [0, "&nesear;"], [0, "&seswar;"], [0, "&swnwar;"], [8, { v: "&rarrc;", n: 824, o: "&nrarrc;" }], [1, "&cudarrr;"], [0, "&ldca;"], [0, "&rdca;"], [0, "&cudarrl;"], [0, "&larrpl;"], [2, "&curarrm;"], [0, "&cularrp;"], [7, "&rarrpl;"], [2, "&harrcir;"], [0, "&Uarrocir;"], [0, "&lurdshar;"], [0, "&ldrushar;"], [2, "&LeftRightVector;"], [0, "&RightUpDownVector;"], [0, "&DownLeftRightVector;"], [0, "&LeftUpDownVector;"], [0, "&LeftVectorBar;"], [0, "&RightVectorBar;"], [0, "&RightUpVectorBar;"], [0, "&RightDownVectorBar;"], [0, "&DownLeftVectorBar;"], [0, "&DownRightVectorBar;"], [0, "&LeftUpVectorBar;"], [0, "&LeftDownVectorBar;"], [0, "&LeftTeeVector;"], [0, "&RightTeeVector;"], [0, "&RightUpTeeVector;"], [0, "&RightDownTeeVector;"], [0, "&DownLeftTeeVector;"], [0, "&DownRightTeeVector;"], [0, "&LeftUpTeeVector;"], [0, "&LeftDownTeeVector;"], [0, "&lHar;"], [0, "&uHar;"], [0, "&rHar;"], [0, "&dHar;"], [0, "&luruhar;"], [0, "&ldrdhar;"], [0, "&ruluhar;"], [0, "&rdldhar;"], [0, "&lharul;"], [0, "&llhard;"], [0, "&rharul;"], [0, "&lrhard;"], [0, "&udhar;"], [0, "&duhar;"], [0, "&RoundImplies;"], [0, "&erarr;"], [0, "&simrarr;"], [0, "&larrsim;"], [0, "&rarrsim;"], [0, "&rarrap;"], [0, "&ltlarr;"], [1, "&gtrarr;"], [0, "&subrarr;"], [1, "&suplarr;"], [0, "&lfisht;"], [0, "&rfisht;"], [0, "&ufisht;"], [0, "&dfisht;"], [5, "&lopar;"], [0, "&ropar;"], [4, "&lbrke;"], [0, "&rbrke;"], [0, "&lbrkslu;"], [0, "&rbrksld;"], [0, "&lbrksld;"], [0, "&rbrkslu;"], [0, "&langd;"], [0, "&rangd;"], [0, "&lparlt;"], [0, "&rpargt;"], [0, "&gtlPar;"], [0, "&ltrPar;"], [3, "&vzigzag;"], [1, "&vangrt;"], [0, "&angrtvbd;"], [6, "&ange;"], [0, "&range;"], [0, "&dwangle;"], [0, "&uwangle;"], [0, "&angmsdaa;"], [0, "&angmsdab;"], [0, "&angmsdac;"], [0, "&angmsdad;"], [0, "&angmsdae;"], [0, "&angmsdaf;"], [0, "&angmsdag;"], [0, "&angmsdah;"], [0, "&bemptyv;"], [0, "&demptyv;"], [0, "&cemptyv;"], [0, "&raemptyv;"], [0, "&laemptyv;"], [0, "&ohbar;"], [0, "&omid;"], [0, "&opar;"], [1, "&operp;"], [1, "&olcross;"], [0, "&odsold;"], [1, "&olcir;"], [0, "&ofcir;"], [0, "&olt;"], [0, "&ogt;"], [0, "&cirscir;"], [0, "&cirE;"], [0, "&solb;"], [0, "&bsolb;"], [3, "&boxbox;"], [3, "&trisb;"], [0, "&rtriltri;"], [0, { v: "&LeftTriangleBar;", n: 824, o: "&NotLeftTriangleBar;" }], [0, { v: "&RightTriangleBar;", n: 824, o: "&NotRightTriangleBar;" }], [11, "&iinfin;"], [0, "&infintie;"], [0, "&nvinfin;"], [4, "&eparsl;"], [0, "&smeparsl;"], [0, "&eqvparsl;"], [5, "&blacklozenge;"], [8, "&RuleDelayed;"], [1, "&dsol;"], [9, "&bigodot;"], [0, "&bigoplus;"], [0, "&bigotimes;"], [1, "&biguplus;"], [1, "&bigsqcup;"], [5, "&iiiint;"], [0, "&fpartint;"], [2, "&cirfnint;"], [0, "&awint;"], [0, "&rppolint;"], [0, "&scpolint;"], [0, "&npolint;"], [0, "&pointint;"], [0, "&quatint;"], [0, "&intlarhk;"], [10, "&pluscir;"], [0, "&plusacir;"], [0, "&simplus;"], [0, "&plusdu;"], [0, "&plussim;"], [0, "&plustwo;"], [1, "&mcomma;"], [0, "&minusdu;"], [2, "&loplus;"], [0, "&roplus;"], [0, "&Cross;"], [0, "&timesd;"], [0, "&timesbar;"], [1, "&smashp;"], [0, "&lotimes;"], [0, "&rotimes;"], [0, "&otimesas;"], [0, "&Otimes;"], [0, "&odiv;"], [0, "&triplus;"], [0, "&triminus;"], [0, "&tritime;"], [0, "&intprod;"], [2, "&amalg;"], [0, "&capdot;"], [1, "&ncup;"], [0, "&ncap;"], [0, "&capand;"], [0, "&cupor;"], [0, "&cupcap;"], [0, "&capcup;"], [0, "&cupbrcap;"], [0, "&capbrcup;"], [0, "&cupcup;"], [0, "&capcap;"], [0, "&ccups;"], [0, "&ccaps;"], [2, "&ccupssm;"], [2, "&And;"], [0, "&Or;"], [0, "&andand;"], [0, "&oror;"], [0, "&orslope;"], [0, "&andslope;"], [1, "&andv;"], [0, "&orv;"], [0, "&andd;"], [0, "&ord;"], [1, "&wedbar;"], [6, "&sdote;"], [3, "&simdot;"], [2, { v: "&congdot;", n: 824, o: "&ncongdot;" }], [0, "&easter;"], [0, "&apacir;"], [0, { v: "&apE;", n: 824, o: "&napE;" }], [0, "&eplus;"], [0, "&pluse;"], [0, "&Esim;"], [0, "&Colone;"], [0, "&Equal;"], [1, "&ddotseq;"], [0, "&equivDD;"], [0, "&ltcir;"], [0, "&gtcir;"], [0, "&ltquest;"], [0, "&gtquest;"], [0, { v: "&leqslant;", n: 824, o: "&nleqslant;" }], [0, { v: "&geqslant;", n: 824, o: "&ngeqslant;" }], [0, "&lesdot;"], [0, "&gesdot;"], [0, "&lesdoto;"], [0, "&gesdoto;"], [0, "&lesdotor;"], [0, "&gesdotol;"], [0, "&lap;"], [0, "&gap;"], [0, "&lne;"], [0, "&gne;"], [0, "&lnap;"], [0, "&gnap;"], [0, "&lEg;"], [0, "&gEl;"], [0, "&lsime;"], [0, "&gsime;"], [0, "&lsimg;"], [0, "&gsiml;"], [0, "&lgE;"], [0, "&glE;"], [0, "&lesges;"], [0, "&gesles;"], [0, "&els;"], [0, "&egs;"], [0, "&elsdot;"], [0, "&egsdot;"], [0, "&el;"], [0, "&eg;"], [2, "&siml;"], [0, "&simg;"], [0, "&simlE;"], [0, "&simgE;"], [0, { v: "&LessLess;", n: 824, o: "&NotNestedLessLess;" }], [0, { v: "&GreaterGreater;", n: 824, o: "&NotNestedGreaterGreater;" }], [1, "&glj;"], [0, "&gla;"], [0, "&ltcc;"], [0, "&gtcc;"], [0, "&lescc;"], [0, "&gescc;"], [0, "&smt;"], [0, "&lat;"], [0, { v: "&smte;", n: 65024, o: "&smtes;" }], [0, { v: "&late;", n: 65024, o: "&lates;" }], [0, "&bumpE;"], [0, { v: "&PrecedesEqual;", n: 824, o: "&NotPrecedesEqual;" }], [0, { v: "&sce;", n: 824, o: "&NotSucceedsEqual;" }], [2, "&prE;"], [0, "&scE;"], [0, "&precneqq;"], [0, "&scnE;"], [0, "&prap;"], [0, "&scap;"], [0, "&precnapprox;"], [0, "&scnap;"], [0, "&Pr;"], [0, "&Sc;"], [0, "&subdot;"], [0, "&supdot;"], [0, "&subplus;"], [0, "&supplus;"], [0, "&submult;"], [0, "&supmult;"], [0, "&subedot;"], [0, "&supedot;"], [0, { v: "&subE;", n: 824, o: "&nsubE;" }], [0, { v: "&supE;", n: 824, o: "&nsupE;" }], [0, "&subsim;"], [0, "&supsim;"], [2, { v: "&subnE;", n: 65024, o: "&varsubsetneqq;" }], [0, { v: "&supnE;", n: 65024, o: "&varsupsetneqq;" }], [2, "&csub;"], [0, "&csup;"], [0, "&csube;"], [0, "&csupe;"], [0, "&subsup;"], [0, "&supsub;"], [0, "&subsub;"], [0, "&supsup;"], [0, "&suphsub;"], [0, "&supdsub;"], [0, "&forkv;"], [0, "&topfork;"], [0, "&mlcp;"], [8, "&Dashv;"], [1, "&Vdashl;"], [0, "&Barv;"], [0, "&vBar;"], [0, "&vBarv;"], [1, "&Vbar;"], [0, "&Not;"], [0, "&bNot;"], [0, "&rnmid;"], [0, "&cirmid;"], [0, "&midcir;"], [0, "&topcir;"], [0, "&nhpar;"], [0, "&parsim;"], [9, { v: "&parsl;", n: 8421, o: "&nparsl;" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, "&Ascr;"], [1, "&Cscr;"], [0, "&Dscr;"], [2, "&Gscr;"], [2, "&Jscr;"], [0, "&Kscr;"], [2, "&Nscr;"], [0, "&Oscr;"], [0, "&Pscr;"], [0, "&Qscr;"], [1, "&Sscr;"], [0, "&Tscr;"], [0, "&Uscr;"], [0, "&Vscr;"], [0, "&Wscr;"], [0, "&Xscr;"], [0, "&Yscr;"], [0, "&Zscr;"], [0, "&ascr;"], [0, "&bscr;"], [0, "&cscr;"], [0, "&dscr;"], [1, "&fscr;"], [1, "&hscr;"], [0, "&iscr;"], [0, "&jscr;"], [0, "&kscr;"], [0, "&lscr;"], [0, "&mscr;"], [0, "&nscr;"], [1, "&pscr;"], [0, "&qscr;"], [0, "&rscr;"], [0, "&sscr;"], [0, "&tscr;"], [0, "&uscr;"], [0, "&vscr;"], [0, "&wscr;"], [0, "&xscr;"], [0, "&yscr;"], [0, "&zscr;"], [52, "&Afr;"], [0, "&Bfr;"], [1, "&Dfr;"], [0, "&Efr;"], [0, "&Ffr;"], [0, "&Gfr;"], [2, "&Jfr;"], [0, "&Kfr;"], [0, "&Lfr;"], [0, "&Mfr;"], [0, "&Nfr;"], [0, "&Ofr;"], [0, "&Pfr;"], [0, "&Qfr;"], [1, "&Sfr;"], [0, "&Tfr;"], [0, "&Ufr;"], [0, "&Vfr;"], [0, "&Wfr;"], [0, "&Xfr;"], [0, "&Yfr;"], [1, "&afr;"], [0, "&bfr;"], [0, "&cfr;"], [0, "&dfr;"], [0, "&efr;"], [0, "&ffr;"], [0, "&gfr;"], [0, "&hfr;"], [0, "&ifr;"], [0, "&jfr;"], [0, "&kfr;"], [0, "&lfr;"], [0, "&mfr;"], [0, "&nfr;"], [0, "&ofr;"], [0, "&pfr;"], [0, "&qfr;"], [0, "&rfr;"], [0, "&sfr;"], [0, "&tfr;"], [0, "&ufr;"], [0, "&vfr;"], [0, "&wfr;"], [0, "&xfr;"], [0, "&yfr;"], [0, "&zfr;"], [0, "&Aopf;"], [0, "&Bopf;"], [1, "&Dopf;"], [0, "&Eopf;"], [0, "&Fopf;"], [0, "&Gopf;"], [1, "&Iopf;"], [0, "&Jopf;"], [0, "&Kopf;"], [0, "&Lopf;"], [0, "&Mopf;"], [1, "&Oopf;"], [3, "&Sopf;"], [0, "&Topf;"], [0, "&Uopf;"], [0, "&Vopf;"], [0, "&Wopf;"], [0, "&Xopf;"], [0, "&Yopf;"], [1, "&aopf;"], [0, "&bopf;"], [0, "&copf;"], [0, "&dopf;"], [0, "&eopf;"], [0, "&fopf;"], [0, "&gopf;"], [0, "&hopf;"], [0, "&iopf;"], [0, "&jopf;"], [0, "&kopf;"], [0, "&lopf;"], [0, "&mopf;"], [0, "&nopf;"], [0, "&oopf;"], [0, "&popf;"], [0, "&qopf;"], [0, "&ropf;"], [0, "&sopf;"], [0, "&topf;"], [0, "&uopf;"], [0, "&vopf;"], [0, "&wopf;"], [0, "&xopf;"], [0, "&yopf;"], [0, "&zopf;"]])) }], [8906, "&fflig;"], [0, "&filig;"], [0, "&fllig;"], [0, "&ffilig;"], [0, "&ffllig;"]])));
94623
+ //# sourceMappingURL=encode-html.js.map
94624
+ ;// ./node_modules/entities/lib/esm/encode.js
94625
+
94626
+
94627
+ const htmlReplacer = /[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;
94628
+ /**
94629
+ * Encodes all characters in the input using HTML entities. This includes
94630
+ * characters that are valid ASCII characters in HTML documents, such as `#`.
94631
+ *
94632
+ * To get a more compact output, consider using the `encodeNonAsciiHTML`
94633
+ * function, which will only encode characters that are not valid in HTML
94634
+ * documents, as well as non-ASCII characters.
94635
+ *
94636
+ * If a character has no equivalent entity, a numeric hexadecimal reference
94637
+ * (eg. `&#xfc;`) will be used.
94638
+ */
94639
+ function encode_encodeHTML(data) {
94640
+ return encodeHTMLTrieRe(htmlReplacer, data);
94641
+ }
94642
+ /**
94643
+ * Encodes all non-ASCII characters, as well as characters not valid in HTML
94644
+ * documents using HTML entities. This function will not encode characters that
94645
+ * are valid in HTML documents, such as `#`.
94646
+ *
94647
+ * If a character has no equivalent entity, a numeric hexadecimal reference
94648
+ * (eg. `&#xfc;`) will be used.
94649
+ */
94650
+ function encode_encodeNonAsciiHTML(data) {
94651
+ return encodeHTMLTrieRe(xmlReplacer, data);
94652
+ }
94653
+ function encodeHTMLTrieRe(regExp, str) {
94654
+ let ret = "";
94655
+ let lastIdx = 0;
94656
+ let match;
94657
+ while ((match = regExp.exec(str)) !== null) {
94658
+ const i = match.index;
94659
+ ret += str.substring(lastIdx, i);
94660
+ const char = str.charCodeAt(i);
94661
+ let next = htmlTrie.get(char);
94662
+ if (typeof next === "object") {
94663
+ // We are in a branch. Try to match the next char.
94664
+ if (i + 1 < str.length) {
94665
+ const nextChar = str.charCodeAt(i + 1);
94666
+ const value = typeof next.n === "number"
94667
+ ? next.n === nextChar
94668
+ ? next.o
94669
+ : undefined
94670
+ : next.n.get(nextChar);
94671
+ if (value !== undefined) {
94672
+ ret += value;
94673
+ lastIdx = regExp.lastIndex += 1;
94674
+ continue;
94675
+ }
94676
+ }
94677
+ next = next.v;
94678
+ }
94679
+ // We might have a tree node without a value; skip and use a numeric entity.
94680
+ if (next !== undefined) {
94681
+ ret += next;
94682
+ lastIdx = i + 1;
94683
+ }
94684
+ else {
94685
+ const cp = getCodePoint(str, i);
94686
+ ret += `&#x${cp.toString(16)};`;
94687
+ // Increase by 1 if we have a surrogate pair
94688
+ lastIdx = regExp.lastIndex += Number(cp !== char);
94689
+ }
94690
+ }
94691
+ return ret + str.substr(lastIdx);
94692
+ }
94693
+ //# sourceMappingURL=encode.js.map
94694
+ ;// ./node_modules/entities/lib/esm/index.js
94695
+
94696
+
94697
+
94698
+ /** The level of entities to support. */
94699
+ var EntityLevel;
94700
+ (function (EntityLevel) {
94701
+ /** Support only XML entities. */
94702
+ EntityLevel[EntityLevel["XML"] = 0] = "XML";
94703
+ /** Support HTML entities, which are a superset of XML entities. */
94704
+ EntityLevel[EntityLevel["HTML"] = 1] = "HTML";
94705
+ })(EntityLevel || (EntityLevel = {}));
94706
+ var EncodingMode;
94707
+ (function (EncodingMode) {
94708
+ /**
94709
+ * The output is UTF-8 encoded. Only characters that need escaping within
94710
+ * XML will be escaped.
94711
+ */
94712
+ EncodingMode[EncodingMode["UTF8"] = 0] = "UTF8";
94713
+ /**
94714
+ * The output consists only of ASCII characters. Characters that need
94715
+ * escaping within HTML, and characters that aren't ASCII characters will
94716
+ * be escaped.
94717
+ */
94718
+ EncodingMode[EncodingMode["ASCII"] = 1] = "ASCII";
94719
+ /**
94720
+ * Encode all characters that have an equivalent entity, as well as all
94721
+ * characters that are not ASCII characters.
94722
+ */
94723
+ EncodingMode[EncodingMode["Extensive"] = 2] = "Extensive";
94724
+ /**
94725
+ * Encode all characters that have to be escaped in HTML attributes,
94726
+ * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
94727
+ */
94728
+ EncodingMode[EncodingMode["Attribute"] = 3] = "Attribute";
94729
+ /**
94730
+ * Encode all characters that have to be escaped in HTML text,
94731
+ * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
94732
+ */
94733
+ EncodingMode[EncodingMode["Text"] = 4] = "Text";
94734
+ })(EncodingMode || (EncodingMode = {}));
94735
+ /**
94736
+ * Decodes a string with entities.
94737
+ *
94738
+ * @param data String to decode.
94739
+ * @param options Decoding options.
94740
+ */
94741
+ function esm_decode(data, options = EntityLevel.XML) {
94742
+ const level = typeof options === "number" ? options : options.level;
94743
+ if (level === EntityLevel.HTML) {
94744
+ const mode = typeof options === "object" ? options.mode : undefined;
94745
+ return decodeHTML(data, mode);
94746
+ }
94747
+ return decodeXML(data);
94748
+ }
94749
+ /**
94750
+ * Decodes a string with entities. Does not allow missing trailing semicolons for entities.
94751
+ *
94752
+ * @param data String to decode.
94753
+ * @param options Decoding options.
94754
+ * @deprecated Use `decode` with the `mode` set to `Strict`.
94755
+ */
94756
+ function decodeStrict(data, options = EntityLevel.XML) {
94757
+ var _a;
94758
+ const opts = typeof options === "number" ? { level: options } : options;
94759
+ (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = DecodingMode.Strict);
94760
+ return esm_decode(data, opts);
94761
+ }
94762
+ /**
94763
+ * Encodes a string with entities.
94764
+ *
94765
+ * @param data String to encode.
94766
+ * @param options Encoding options.
94767
+ */
94768
+ function esm_encode(data, options = EntityLevel.XML) {
94769
+ const opts = typeof options === "number" ? { level: options } : options;
94770
+ // Mode `UTF8` just escapes XML entities
94771
+ if (opts.mode === EncodingMode.UTF8)
94772
+ return escapeUTF8(data);
94773
+ if (opts.mode === EncodingMode.Attribute)
94774
+ return escapeAttribute(data);
94775
+ if (opts.mode === EncodingMode.Text)
94776
+ return escapeText(data);
94777
+ if (opts.level === EntityLevel.HTML) {
94778
+ if (opts.mode === EncodingMode.ASCII) {
94779
+ return encodeNonAsciiHTML(data);
94780
+ }
94781
+ return encodeHTML(data);
94782
+ }
94783
+ // ASCII and Extensive are equivalent
94784
+ return encodeXML(data);
94785
+ }
94786
+
94787
+
94788
+
94789
+ //# sourceMappingURL=index.js.map
94790
+ ;// ./lib/micromark/loose-html-entities/syntax.ts
94791
+
94792
+
94793
+
94794
+ const MAX_ENTITY_LENGTH = 32;
94795
+ const looseHtmlEntityConstruct = {
94796
+ name: 'looseHtmlEntity',
94797
+ tokenize: tokenizeLooseHtmlEntity,
94798
+ };
94799
+ function resolveEntity(name) {
94800
+ const input = `&${name};`;
94801
+ const decoded = decodeHTMLStrict(input);
94802
+ return decoded !== input ? decoded : undefined;
94803
+ }
94804
+ function tokenizeLooseHtmlEntity(effects, ok, nok) {
94805
+ let length = 0;
94806
+ const start = (code) => {
94807
+ if (code !== codes.ampersand)
94808
+ return nok(code);
94809
+ effects.enter('looseHtmlEntity');
94810
+ effects.consume(code);
94811
+ return afterAmpersand;
94812
+ };
94813
+ const afterAmpersand = (code) => {
94814
+ if (code === codes.numberSign) {
94815
+ effects.consume(code);
94816
+ return afterHash;
94817
+ }
94818
+ return accumulateNamed(code);
94819
+ };
94820
+ const afterHash = (code) => {
94821
+ if (code === codes.lowercaseX || code === codes.uppercaseX) {
94822
+ effects.consume(code);
94823
+ return accumulateHex;
94824
+ }
94825
+ return accumulateDecimal(code);
94826
+ };
94827
+ const accumulateNamed = (code) => {
94828
+ if (asciiAlphanumeric(code) && length < MAX_ENTITY_LENGTH) {
94829
+ effects.consume(code);
94830
+ length += 1;
94831
+ return accumulateNamed;
94832
+ }
94833
+ if (length === 0)
94834
+ return nok(code);
94835
+ if (code === codes.semicolon)
94836
+ return nok(code);
94837
+ effects.exit('looseHtmlEntity');
94838
+ return ok(code);
94839
+ };
94840
+ const accumulateDecimal = (code) => {
94841
+ if (asciiDigit(code) && length < MAX_ENTITY_LENGTH) {
94842
+ effects.consume(code);
94843
+ length += 1;
94844
+ return accumulateDecimal;
94845
+ }
94846
+ if (length === 0)
94847
+ return nok(code);
94848
+ if (code === codes.semicolon)
94849
+ return nok(code);
94850
+ effects.exit('looseHtmlEntity');
94851
+ return ok(code);
94852
+ };
94853
+ const accumulateHex = (code) => {
94854
+ if (asciiHexDigit(code) && length < MAX_ENTITY_LENGTH) {
94855
+ effects.consume(code);
94856
+ length += 1;
94857
+ return accumulateHex;
94858
+ }
94859
+ if (length === 0)
94860
+ return nok(code);
94861
+ if (code === codes.semicolon)
94862
+ return nok(code);
94863
+ effects.exit('looseHtmlEntity');
94864
+ return ok(code);
94865
+ };
94866
+ return start;
94867
+ }
94868
+ function exitLooseHtmlEntity(token) {
94869
+ const raw = this.sliceSerialize(token);
94870
+ const entityChars = raw.slice(1);
94871
+ if (entityChars.startsWith('#')) {
94872
+ const decoded = resolveEntity(entityChars);
94873
+ if (decoded) {
94874
+ this.enter({ type: 'text', value: decoded }, token);
94875
+ this.exit(token);
94876
+ return;
94877
+ }
94878
+ }
94879
+ else {
94880
+ for (let len = entityChars.length; len >= 2; len -= 1) {
94881
+ const candidate = entityChars.slice(0, len);
94882
+ const decoded = resolveEntity(candidate);
94883
+ if (decoded) {
94884
+ const remainder = entityChars.slice(len);
94885
+ this.enter({ type: 'text', value: decoded + remainder }, token);
94886
+ this.exit(token);
94887
+ return;
94888
+ }
94889
+ }
94890
+ }
94891
+ this.enter({ type: 'text', value: raw }, token);
94892
+ this.exit(token);
94893
+ }
94894
+ function looseHtmlEntity() {
94895
+ return {
94896
+ text: { [codes.ampersand]: looseHtmlEntityConstruct },
94897
+ };
94898
+ }
94899
+ function looseHtmlEntityFromMarkdown() {
94900
+ return {
94901
+ exit: {
94902
+ looseHtmlEntity: exitLooseHtmlEntity,
94903
+ },
94904
+ };
94905
+ }
94906
+
94907
+ ;// ./lib/micromark/loose-html-entities/index.ts
94908
+ /**
94909
+ * Micromark extension for HTML entities without semicolons.
94910
+ *
94911
+ * Handles named entities (e.g. `&nbsp`, `&amp`, `&copy`), decimal numeric
94912
+ * references (e.g. `&#160`, `&#169`), and hex numeric references (e.g. `&#xa0`,
94913
+ * `&#xA0`). Entities that already include the semicolon are left for the
94914
+ * standard parser to handle.
94915
+ */
94916
+
94917
+
94474
94918
  ;// ./processor/transform/mdxish/normalize-malformed-md-syntax.ts
94475
94919
 
94476
94920
  // Marker patterns for multi-node emphasis detection
@@ -94887,6 +95331,11 @@ const EMPTY_CODE_PLACEHOLDER = {
94887
95331
 
94888
95332
 
94889
95333
 
95334
+
95335
+
95336
+
95337
+
95338
+
94890
95339
 
94891
95340
 
94892
95341
  /**
@@ -94928,18 +95377,23 @@ const preprocessBody = (text) => {
94928
95377
  };
94929
95378
  /** Markdown parser */
94930
95379
  const contentParser = unified()
94931
- .data('micromarkExtensions', [legacyVariable()])
94932
- .data('fromMarkdownExtensions', [legacyVariableFromMarkdown()])
95380
+ .data('micromarkExtensions', [legacyVariable(), looseHtmlEntity()])
95381
+ .data('fromMarkdownExtensions', [legacyVariableFromMarkdown(), emptyTaskListItemFromMarkdown(), looseHtmlEntityFromMarkdown()])
94933
95382
  .use(remarkParse)
94934
95383
  .use(remarkBreaks)
94935
95384
  .use(remarkGfm)
94936
95385
  .use(normalize_malformed_md_syntax);
94937
- /** Markdown to HTML processor (mdast → hast → HTML string) */
95386
+ /**
95387
+ * Markdown to HTML processor (mdast → hast → HTML string).
95388
+ *
95389
+ * Uses only strikethrough from GFM instead of the full remarkGfm bundle
95390
+ * since we've had a case where it was causing a stack overflow when parsing HTML blocks containing URLs
95391
+ * such as `<ul><li>https://a</li>\n</ul>` due to subtokenizing recursion for URLs
95392
+ */
94938
95393
  const markdownToHtml = unified()
94939
- .data('micromarkExtensions', [legacyVariable()])
94940
- .data('fromMarkdownExtensions', [legacyVariableFromMarkdown()])
95394
+ .data('micromarkExtensions', [gfmStrikethrough(), legacyVariable(), looseHtmlEntity()])
95395
+ .data('fromMarkdownExtensions', [gfmStrikethroughFromMarkdown(), legacyVariableFromMarkdown(), emptyTaskListItemFromMarkdown(), looseHtmlEntityFromMarkdown()])
94941
95396
  .use(remarkParse)
94942
- .use(remarkGfm)
94943
95397
  .use(normalize_malformed_md_syntax)
94944
95398
  .use(remarkRehype)
94945
95399
  .use(rehypeStringify);
@@ -94951,7 +95405,12 @@ const htmlStringifier = unified().use(rehypeStringify);
94951
95405
  const processBackslashEscapes = (text) => text.replace(/\\<([^>]*)>/g, '&lt;$1>').replace(/\\([<>|])/g, (_, c) => (c === '<' ? '&lt;' : c === '>' ? '>' : c));
94952
95406
  /** Block-level HTML tags that trigger CommonMark type 6 HTML blocks (condition 6). */
94953
95407
  const BLOCK_LEVEL_TAGS = new Set(htmlBlockNames);
94954
- const escapeInvalidTags = (str) => str.replace(HTML_TAG_RE, (match, tag, rest) => {
95408
+ const escapeInvalidTags = (str) => str.replace(HTML_TAG_RE, (match, tag, rest, offset, input) => {
95409
+ // Don't escape legacy variable syntax like <<var>> since we want to parse it
95410
+ // with the tokenizer and not want the <var> to get parsed as an HTML tag
95411
+ const isLegacyVariable = offset > 0 && input[offset - 1] === '<' && offset < input.length - 1 && input[offset + match.length] === '>';
95412
+ if (isLegacyVariable)
95413
+ return match;
94955
95414
  const tagName = tag.replace(/^\//, '');
94956
95415
  if (STANDARD_HTML_TAGS.has(tagName.toLowerCase()))
94957
95416
  return match;
@@ -94971,9 +95430,20 @@ const escapeInvalidTags = (str) => str.replace(HTML_TAG_RE, (match, tag, rest) =
94971
95430
  * (it treats unknown tags as void elements, stripping their children).
94972
95431
  */
94973
95432
  const processMarkdownInHtmlString = (html) => {
95433
+ let htmlContent = html;
95434
+ // Replace all occurrences of legacy variable syntax like <<name>> with placeholders so the inner
95435
+ // <name> doesn't get parsed as an HTML tag and the tokenizer can parse it
95436
+ const legacyVars = {};
95437
+ let legacyCounter = 0;
95438
+ htmlContent = htmlContent.replace(new RegExp(variable_.VARIABLE_REGEXP, 'g'), match => {
95439
+ const id = `RDMX_LEGACY_VAR_${(legacyCounter += 1)}_TOKEN`;
95440
+ legacyVars[id] = match;
95441
+ return id;
95442
+ });
94974
95443
  const placeholders = [];
94975
95444
  let counter = 0;
94976
- const safened = escapeInvalidTags(html).replace(HTML_TAG_RE, match => {
95445
+ // Escape invalid html tags so they don't get parsed as HTML tags
95446
+ const safened = escapeInvalidTags(htmlContent).replace(HTML_TAG_RE, match => {
94977
95447
  if (!/^<\/?[A-Z]/.test(match))
94978
95448
  return match;
94979
95449
  const id = `<!--PC${(counter += 1)}-->`;
@@ -94984,7 +95454,10 @@ const processMarkdownInHtmlString = (html) => {
94984
95454
  const textToHast = (text) => {
94985
95455
  if (!text.trim())
94986
95456
  return [{ type: 'text', value: text }];
94987
- const parsed = markdownToHtml.runSync(markdownToHtml.parse(escapeInvalidTags(text)));
95457
+ // Restore legacy variables
95458
+ const restoredText = Object.entries(legacyVars).reduce((res, [id, original]) => res.replace(id, original), text);
95459
+ // Cell children might have html that needs to be parsed as markdown
95460
+ const parsed = markdownToHtml.runSync(markdownToHtml.parse(escapeInvalidTags(restoredText)));
94988
95461
  const nodes = parsed.children.flatMap(n => n.type === 'element' && n.tagName === 'p' ? n.children : [n]);
94989
95462
  const leading = text.match(/^\s+/)?.[0];
94990
95463
  const trailing = text.match(/\s+$/)?.[0];
@@ -96277,9 +96750,6 @@ function terminateHtmlFlowBlocks(content) {
96277
96750
  return restoreCodeBlocks(result.join('\n'), protectedCode);
96278
96751
  }
96279
96752
 
96280
- // EXTERNAL MODULE: external "@readme/variable"
96281
- var variable_ = __webpack_require__(8167);
96282
- var variable_default = /*#__PURE__*/__webpack_require__.n(variable_);
96283
96753
  ;// ./processor/transform/mdxish/variables-code.ts
96284
96754
 
96285
96755
 
@@ -97507,6 +97977,9 @@ function loadComponents() {
97507
97977
 
97508
97978
 
97509
97979
 
97980
+
97981
+
97982
+
97510
97983
 
97511
97984
 
97512
97985
 
@@ -97554,10 +98027,12 @@ function mdxishAstProcessor(mdContent, opts = {}) {
97554
98027
  text: mdxExprExt.text,
97555
98028
  };
97556
98029
  const processor = unified()
97557
- .data('micromarkExtensions', safeMode ? [magicBlock(), legacyVariable()] : [magicBlock(), mdxExprTextOnly, legacyVariable()])
98030
+ .data('micromarkExtensions', safeMode
98031
+ ? [magicBlock(), legacyVariable(), looseHtmlEntity()]
98032
+ : [magicBlock(), mdxExprTextOnly, legacyVariable(), looseHtmlEntity()])
97558
98033
  .data('fromMarkdownExtensions', safeMode
97559
- ? [magicBlockFromMarkdown(), legacyVariableFromMarkdown()]
97560
- : [magicBlockFromMarkdown(), mdxExpressionFromMarkdown(), legacyVariableFromMarkdown()])
98034
+ ? [magicBlockFromMarkdown(), legacyVariableFromMarkdown(), emptyTaskListItemFromMarkdown(), looseHtmlEntityFromMarkdown()]
98035
+ : [magicBlockFromMarkdown(), mdxExpressionFromMarkdown(), legacyVariableFromMarkdown(), emptyTaskListItemFromMarkdown(), looseHtmlEntityFromMarkdown()])
97561
98036
  .use(remarkParse)
97562
98037
  .use(remarkFrontmatter)
97563
98038
  .use(normalize_malformed_md_syntax)
@@ -97621,6 +98096,7 @@ function mdxish(mdContent, opts = {}) {
97621
98096
  .use(preserveBooleanProperties) // RehypeRaw converts boolean properties to empty strings
97622
98097
  .use(rehypeRaw, { passThrough: ['html-block'] })
97623
98098
  .use(restoreBooleanProperties)
98099
+ .use(rehypeFlattenTableCellParagraphs) // Remove <p> wrappers inside table cells to prevent margin issues
97624
98100
  .use(mdxish_mermaid) // Add mermaid-render className to pre wrappers
97625
98101
  .use(heading_slugs)
97626
98102
  .use(rehypeMdxishComponents, {