vue-stream-markdown 0.2.3 → 0.3.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.
Files changed (59) hide show
  1. package/README.md +1 -1
  2. package/dist/{blockquote-Crr-D7fY.js → blockquote-DTo6zg12.js} +2 -2
  3. package/dist/button-1EHxh8s2.js +6 -0
  4. package/dist/{button-DVWlhfQ9.js → button-B7H9jKmU.js} +2 -2
  5. package/dist/{code-Bz8LM16H.js → code-DC7KVCvB.js} +10 -10
  6. package/dist/{code-block-CmUZxKNr.js → code-block-DPC1FZT3.js} +18 -10
  7. package/dist/code-block-DYrPMONb.js +10 -0
  8. package/dist/{composables-CzUVrTt_.js → composables-BvaSMf02.js} +3 -0
  9. package/dist/{delete-DFoiOzHW.js → delete-xkkM7TML.js} +2 -2
  10. package/dist/dropdown-Cv_yW4GS.js +6 -0
  11. package/dist/{emphasis-DvaBuxeK.js → emphasis-BmM30dZi.js} +2 -2
  12. package/dist/error-component-1U-JNS6o.js +5 -0
  13. package/dist/{error-component-BTe-SuY7.js → error-component-DFBWdaYB.js} +2 -2
  14. package/dist/{footnote-definition-ByWh1N3S.js → footnote-definition-6cTbdg-J.js} +5 -5
  15. package/dist/{footnote-reference-BJ4J7BFo.js → footnote-reference-CxJUg8wT.js} +1 -1
  16. package/dist/{heading-1fssqGGO.js → heading-DQ4lofbm.js} +2 -2
  17. package/dist/{icon-DcLTFhFW.js → icon-BJa4ovUe.js} +1 -1
  18. package/dist/icon-CvIgAOPh.js +4 -0
  19. package/dist/{image-DXnmoID_.js → image-DXu2WF2r.js} +13 -10
  20. package/dist/image-Dm5xIWs7.js +9 -0
  21. package/dist/{image-xPrAKT9D.js → image-e0E51Nc3.js} +17 -12
  22. package/dist/index.d.ts +44 -7
  23. package/dist/index.js +177 -87
  24. package/dist/{inline-math-CPkpjl8t.js → inline-math-BuO_dWPX.js} +3 -3
  25. package/dist/{link-BACrkxRW.js → link-DyD59DzG.js} +4 -4
  26. package/dist/{list-Cu8G46hK.js → list-De0KPajx.js} +2 -2
  27. package/dist/{list-item-BMgDS1tS.js → list-item-CuUgvXRC.js} +2 -2
  28. package/dist/{math-XsZX0VMw.js → math-DnFOOLdz.js} +3 -3
  29. package/dist/{mermaid-CQdSlhqn.js → mermaid-ZCQPlRUa.js} +6 -6
  30. package/dist/modal-B5jFKJL4.js +4 -0
  31. package/dist/{modal-C1riNMrs.js → modal-Bhe0iSs6.js} +1 -1
  32. package/dist/{node-list-7H-lIfUX.js → node-list-CWy--Gin.js} +2 -81
  33. package/dist/node-list-Doh9Z-4p.js +4 -0
  34. package/dist/{paragraph-Cfd37HUK.js → paragraph-D3H1qprZ.js} +2 -2
  35. package/dist/{previewers-C7PKsIbc.js → previewers-DB2HHDGb.js} +1 -1
  36. package/dist/{segmented-C9j-IIDc.js → segmented-B-kjIOkd.js} +1 -1
  37. package/dist/segmented-fbmq_xK1.js +7 -0
  38. package/dist/{shiki-BoBbCakv.js → shiki-DAu2_FTG.js} +2 -2
  39. package/dist/{strong-BzOBAWrG.js → strong-BlCQoXCR.js} +2 -2
  40. package/dist/{table-YY5M01Jm.js → table-Co_MpK6m.js} +13 -8
  41. package/dist/tooltip-70WIAMmC.js +4 -0
  42. package/dist/{tooltip-DarhJuZR.js → tooltip-CWv9skVu.js} +1 -1
  43. package/dist/{vanilla-Z6d1vQmX.js → vanilla-D30b-_ch.js} +1 -1
  44. package/dist/vanilla-DV7fYrnj.js +4 -0
  45. package/dist/{zoom-container-DQMpHHGQ.js → zoom-container-DbeN8U39.js} +2 -2
  46. package/dist/zoom-container-Dc8N-wuo.js +7 -0
  47. package/package.json +3 -5
  48. package/dist/button-Dw4uJRaD.js +0 -6
  49. package/dist/code-block-Bitp8x1w.js +0 -10
  50. package/dist/dropdown-CSRjqK0u.js +0 -6
  51. package/dist/error-component-DDnC0bqw.js +0 -5
  52. package/dist/icon-DE3AzDqz.js +0 -4
  53. package/dist/image-Dl-r78_E.js +0 -9
  54. package/dist/modal-C7O4jt5-.js +0 -4
  55. package/dist/node-list-DMwAmH_n.js +0 -4
  56. package/dist/segmented-BRTZXoDN.js +0 -7
  57. package/dist/tooltip-vDDEbLwf.js +0 -4
  58. package/dist/vanilla-CzQw2_b4.js +0 -4
  59. package/dist/zoom-container-JLbwB4gy.js +0 -7
package/dist/index.js CHANGED
@@ -1,10 +1,8 @@
1
- import { t as CODE_PREVIEWERS } from "./previewers-C7PKsIbc.js";
2
- import { A as tableDataToMarkdown, B as flow, C as loadLocaleMessages, D as escapeMarkdownTableCell, E as useFloating, F as hasKatex, G as useControls, H as saveImage, I as hasMermaid, K as useContext, L as hasShiki, M as preloadAsyncComponents, N as findLastLeafNode, O as extractTableDataFromElement, P as findNodeParent, R as isClient, S as currentLocale, T as localesGlob, U as svgToPngBlob, V as save, W as transformUrl, a as SHADCN_SCHEMAS, b as useI18n, c as DEFAULT_HARDEN_OPTIONS, d as LANGUAGE_ALIAS, f as LANGUAGE_EXTENSIONS, g as useMathRenderer, h as useMediumZoom, i as useSanitizers, j as tableDataToTSV, k as tableDataToCSV, l as DEFAULT_DARK_THEME, m as useMermaid, n as useTailwindV3Theme, o as PRELOAD_NODE_RENDERER, p as LANGUAGE_ICONS, q as useCodeOptions, r as useShiki, s as ICONS, t as useZoom, u as DEFAULT_LIGHT_THEME, v as _defineProperty, w as localeMessages, x as SUPPORT_LANGUAGES, y as useKatex, z as isServer } from "./composables-CzUVrTt_.js";
3
- import { t as node_list_default } from "./node-list-7H-lIfUX.js";
1
+ import { t as CODE_PREVIEWERS } from "./previewers-DB2HHDGb.js";
2
+ import { A as tableDataToMarkdown, B as flow, C as loadLocaleMessages, D as escapeMarkdownTableCell, E as useFloating, F as hasKatex, G as useControls, H as saveImage, I as hasMermaid, K as useContext, L as hasShiki, M as preloadAsyncComponents, N as findLastLeafNode, O as extractTableDataFromElement, P as findNodeParent, R as isClient, S as currentLocale, T as localesGlob, U as svgToPngBlob, V as save, W as transformUrl, a as SHADCN_SCHEMAS, b as useI18n, c as DEFAULT_HARDEN_OPTIONS, d as LANGUAGE_ALIAS, f as LANGUAGE_EXTENSIONS, g as useMathRenderer, h as useMediumZoom, i as useSanitizers, j as tableDataToTSV, k as tableDataToCSV, l as DEFAULT_DARK_THEME, m as useMermaid, n as useTailwindV3Theme, o as PRELOAD_NODE_RENDERER, p as LANGUAGE_ICONS, q as useCodeOptions, r as useShiki, s as ICONS, t as useZoom, u as DEFAULT_LIGHT_THEME, v as _defineProperty, w as localeMessages, x as SUPPORT_LANGUAGES, y as useKatex, z as isServer } from "./composables-BvaSMf02.js";
3
+ import { t as node_list_default } from "./node-list-CWy--Gin.js";
4
4
  import { n as treeFlatFilter, t as treeFilter } from "./dist-CYkm26BF.js";
5
5
  import { computed, createElementBlock, createVNode, defineAsyncComponent, defineComponent, mergeProps, normalizeClass, onBeforeUnmount, onMounted, openBlock, ref, toRefs, unref, watch } from "vue";
6
- import { MarkdownItAsync } from "markdown-it-async";
7
- import remend from "remend";
8
6
 
9
7
  //#region rolldown:runtime
10
8
  var __create = Object.create;
@@ -49,25 +47,25 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
49
47
  //#endregion
50
48
  //#region src/components/renderers/index.ts
51
49
  const NODE_RENDERERS = {
52
- blockquote: defineAsyncComponent(() => import("./blockquote-Crr-D7fY.js")),
50
+ blockquote: defineAsyncComponent(() => import("./blockquote-DTo6zg12.js")),
53
51
  break: defineAsyncComponent(() => import("./break-DoDPjOA0.js")),
54
- code: defineAsyncComponent(() => import("./code-Bz8LM16H.js")),
55
- delete: defineAsyncComponent(() => import("./delete-DFoiOzHW.js")),
56
- emphasis: defineAsyncComponent(() => import("./emphasis-DvaBuxeK.js")),
57
- footnoteDefinition: defineAsyncComponent(() => import("./footnote-definition-ByWh1N3S.js")),
58
- footnoteReference: defineAsyncComponent(() => import("./footnote-reference-BJ4J7BFo.js")),
59
- heading: defineAsyncComponent(() => import("./heading-1fssqGGO.js")),
52
+ code: defineAsyncComponent(() => import("./code-DC7KVCvB.js")),
53
+ delete: defineAsyncComponent(() => import("./delete-xkkM7TML.js")),
54
+ emphasis: defineAsyncComponent(() => import("./emphasis-BmM30dZi.js")),
55
+ footnoteDefinition: defineAsyncComponent(() => import("./footnote-definition-6cTbdg-J.js")),
56
+ footnoteReference: defineAsyncComponent(() => import("./footnote-reference-CxJUg8wT.js")),
57
+ heading: defineAsyncComponent(() => import("./heading-DQ4lofbm.js")),
60
58
  html: defineAsyncComponent(() => import("./html-Be_6ezK6.js")),
61
- image: defineAsyncComponent(() => import("./image-xPrAKT9D.js")),
59
+ image: defineAsyncComponent(() => import("./image-e0E51Nc3.js")),
62
60
  inlineCode: defineAsyncComponent(() => import("./inline-code-B5lfHACE.js")),
63
- inlineMath: defineAsyncComponent(() => import("./inline-math-CPkpjl8t.js")),
64
- link: defineAsyncComponent(() => import("./link-BACrkxRW.js")),
65
- list: defineAsyncComponent(() => import("./list-Cu8G46hK.js")),
66
- listItem: defineAsyncComponent(() => import("./list-item-BMgDS1tS.js")),
67
- math: defineAsyncComponent(() => import("./math-XsZX0VMw.js")),
68
- paragraph: defineAsyncComponent(() => import("./paragraph-Cfd37HUK.js")),
69
- strong: defineAsyncComponent(() => import("./strong-BzOBAWrG.js")),
70
- table: defineAsyncComponent(() => import("./table-YY5M01Jm.js")),
61
+ inlineMath: defineAsyncComponent(() => import("./inline-math-BuO_dWPX.js")),
62
+ link: defineAsyncComponent(() => import("./link-DyD59DzG.js")),
63
+ list: defineAsyncComponent(() => import("./list-De0KPajx.js")),
64
+ listItem: defineAsyncComponent(() => import("./list-item-CuUgvXRC.js")),
65
+ math: defineAsyncComponent(() => import("./math-DnFOOLdz.js")),
66
+ paragraph: defineAsyncComponent(() => import("./paragraph-D3H1qprZ.js")),
67
+ strong: defineAsyncComponent(() => import("./strong-BlCQoXCR.js")),
68
+ table: defineAsyncComponent(() => import("./table-Co_MpK6m.js")),
71
69
  text: defineAsyncComponent(() => import("./text-DbHMEN3P.js")),
72
70
  thematicBreak: defineAsyncComponent(() => import("./thematic-break-CdlhHAEZ.js")),
73
71
  yaml: defineAsyncComponent(() => import("./yaml-DL5ozHZ_.js"))
@@ -76,19 +74,19 @@ const NODE_RENDERERS = {
76
74
  //#endregion
77
75
  //#region src/components/index.ts
78
76
  const UI = {
79
- Button: defineAsyncComponent(() => import("./button-Dw4uJRaD.js")),
80
- CodeBlock: defineAsyncComponent(() => import("./code-block-Bitp8x1w.js")),
81
- Dropdown: defineAsyncComponent(() => import("./dropdown-CSRjqK0u.js")),
82
- ErrorComponent: defineAsyncComponent(() => import("./error-component-DDnC0bqw.js")),
83
- Icon: defineAsyncComponent(() => import("./icon-DE3AzDqz.js")),
84
- Image: defineAsyncComponent(() => import("./image-Dl-r78_E.js")),
85
- Modal: defineAsyncComponent(() => import("./modal-C7O4jt5-.js")),
86
- NodeList: defineAsyncComponent(() => import("./node-list-DMwAmH_n.js")),
87
- Segmented: defineAsyncComponent(() => import("./segmented-BRTZXoDN.js")),
77
+ Button: defineAsyncComponent(() => import("./button-1EHxh8s2.js")),
78
+ CodeBlock: defineAsyncComponent(() => import("./code-block-DYrPMONb.js")),
79
+ Dropdown: defineAsyncComponent(() => import("./dropdown-Cv_yW4GS.js")),
80
+ ErrorComponent: defineAsyncComponent(() => import("./error-component-1U-JNS6o.js")),
81
+ Icon: defineAsyncComponent(() => import("./icon-CvIgAOPh.js")),
82
+ Image: defineAsyncComponent(() => import("./image-Dm5xIWs7.js")),
83
+ Modal: defineAsyncComponent(() => import("./modal-B5jFKJL4.js")),
84
+ NodeList: defineAsyncComponent(() => import("./node-list-Doh9Z-4p.js")),
85
+ Segmented: defineAsyncComponent(() => import("./segmented-fbmq_xK1.js")),
88
86
  Spin: defineAsyncComponent(() => import("./spin-DElj7VPm.js")),
89
87
  Table: defineAsyncComponent(() => import("./table-D6j6Gl87.js")),
90
- Tooltip: defineAsyncComponent(() => import("./tooltip-vDDEbLwf.js")),
91
- ZoomContainer: defineAsyncComponent(() => import("./zoom-container-JLbwB4gy.js"))
88
+ Tooltip: defineAsyncComponent(() => import("./tooltip-70WIAMmC.js")),
89
+ ZoomContainer: defineAsyncComponent(() => import("./zoom-container-Dc8N-wuo.js"))
92
90
  };
93
91
 
94
92
  //#endregion
@@ -19935,23 +19933,26 @@ function fixInlineCode(content$2) {
19935
19933
  * // Returns: 'List item\n\n~~' (no completion, ~~ has no content)
19936
19934
  */
19937
19935
  function fixDelete(content$2) {
19936
+ const codeBlockMatches = content$2.match(tripleBacktickPattern);
19937
+ if ((codeBlockMatches ? codeBlockMatches.length : 0) % 2 === 1) return content$2;
19938
19938
  const { lastParagraph, startIndex: paragraphStartIndex } = getLastParagraphWithIndex(content$2);
19939
- const matches = lastParagraph.match(doubleTildePattern);
19939
+ const lastParagraphWithoutCodeBlocks = lastParagraph.replace(codeBlockPattern, "");
19940
+ const matches = lastParagraphWithoutCodeBlocks.match(doubleTildePattern);
19940
19941
  const count = matches ? matches.length : 0;
19941
19942
  if (content$2.endsWith("~") && !content$2.endsWith("~~")) {
19942
19943
  const contentWithoutLastTilde = content$2.slice(0, -1);
19943
- const lastParagraphWithoutTilde = contentWithoutLastTilde.split("\n").slice(paragraphStartIndex).join("\n");
19944
- const matchesWithoutTilde = lastParagraphWithoutTilde.match(doubleTildePattern);
19944
+ const lastParagraphWithoutTildeAndCodeBlocks = contentWithoutLastTilde.split("\n").slice(paragraphStartIndex).join("\n").replace(codeBlockPattern, "");
19945
+ const matchesWithoutTilde = lastParagraphWithoutTildeAndCodeBlocks.match(doubleTildePattern);
19945
19946
  if ((matchesWithoutTilde ? matchesWithoutTilde.length : 0) % 2 === 1) {
19946
- const lastTildePos = lastParagraphWithoutTilde.lastIndexOf("~~");
19947
+ const lastTildePos = lastParagraphWithoutTildeAndCodeBlocks.lastIndexOf("~~");
19947
19948
  if (lastTildePos >= 0) {
19948
- if (lastParagraphWithoutTilde.substring(lastTildePos + 2).length > 0) return `${content$2}~`;
19949
+ if (lastParagraphWithoutTildeAndCodeBlocks.substring(lastTildePos + 2).length > 0) return `${content$2}~`;
19949
19950
  }
19950
19951
  } else return contentWithoutLastTilde;
19951
19952
  }
19952
19953
  if (count % 2 === 1) {
19953
- const lastTildePos = lastParagraph.lastIndexOf("~~");
19954
- const afterLast = lastParagraph.substring(lastTildePos + 2);
19954
+ const lastTildePos = lastParagraphWithoutCodeBlocks.lastIndexOf("~~");
19955
+ const afterLast = lastParagraphWithoutCodeBlocks.substring(lastTildePos + 2);
19955
19956
  if (afterLast.trim().length > 0) return `${content$2}~~`;
19956
19957
  else return content$2.substring(0, content$2.length - afterLast.length - 2).trimEnd();
19957
19958
  }
@@ -19967,12 +19968,15 @@ function fixDelete(content$2) {
19967
19968
  * This respects Markdown's rule that emphasis cannot span across paragraphs.
19968
19969
  */
19969
19970
  function fixEmphasis(content$2) {
19971
+ const codeBlockMatches = content$2.match(tripleBacktickPattern);
19972
+ if ((codeBlockMatches ? codeBlockMatches.length : 0) % 2 === 1) return content$2;
19970
19973
  const lines = content$2.split("\n");
19971
19974
  const { lastParagraph, startIndex: paragraphStartIndex } = getLastParagraphWithIndex(content$2);
19972
- const withoutDoubleAsterisk = lastParagraph.replace(doubleAsteriskPattern, "");
19975
+ const lastParagraphWithoutCodeBlocks = lastParagraph.replace(codeBlockPattern, "");
19976
+ const withoutDoubleAsterisk = lastParagraphWithoutCodeBlocks.replace(doubleAsteriskPattern, "");
19973
19977
  const asteriskMatches = withoutDoubleAsterisk.match(singleAsteriskPattern);
19974
19978
  const asteriskCount = asteriskMatches ? asteriskMatches.length : 0;
19975
- const withoutDoubleUnderscore = lastParagraph.replace(doubleUnderscorePattern, "");
19979
+ const withoutDoubleUnderscore = lastParagraphWithoutCodeBlocks.replace(doubleUnderscorePattern, "");
19976
19980
  const underscoreMatches = withoutDoubleUnderscore.match(singleUnderscorePattern);
19977
19981
  const underscoreCount = underscoreMatches ? underscoreMatches.length : 0;
19978
19982
  let needsAsteriskCompletion = false;
@@ -20326,8 +20330,11 @@ function findLastDollarPairNotInCodeBlock(text$4) {
20326
20330
  * // Removes trailing standalone bracket and trailing newline
20327
20331
  */
20328
20332
  function fixLink(content$2) {
20333
+ const codeBlockMatches = content$2.match(tripleBacktickPattern);
20334
+ if ((codeBlockMatches ? codeBlockMatches.length : 0) % 2 === 1) return content$2;
20329
20335
  const lines = content$2.split("\n");
20330
20336
  const { lastParagraph } = getLastParagraphWithIndex(content$2);
20337
+ const lastParagraphWithoutCodeBlocks = lastParagraph.replace(codeBlockPattern, "");
20331
20338
  const lastNonEmptyLineIndex = findLastNonEmptyLineIndex(lines);
20332
20339
  if (lastNonEmptyLineIndex >= 0) {
20333
20340
  const lastLine = lines[lastNonEmptyLineIndex];
@@ -20348,9 +20355,62 @@ function fixLink(content$2) {
20348
20355
  }
20349
20356
  }
20350
20357
  }
20351
- if (incompleteBracketPattern.test(lastParagraph)) return `${content$2}]()`;
20352
- if (incompleteLinkTextPattern.test(lastParagraph)) return `${content$2}()`;
20353
- if (incompleteUrlPattern.test(lastParagraph)) return `${content$2})`;
20358
+ if (incompleteBracketPattern.test(lastParagraphWithoutCodeBlocks)) return `${content$2}]()`;
20359
+ if (incompleteLinkTextPattern.test(lastParagraphWithoutCodeBlocks)) return `${content$2}()`;
20360
+ if (incompleteUrlPattern.test(lastParagraphWithoutCodeBlocks)) return `${content$2})`;
20361
+ return content$2;
20362
+ }
20363
+
20364
+ //#endregion
20365
+ //#region src/preprocess/math.ts
20366
+ /**
20367
+ * Fix unclosed block math ($$) syntax in streaming markdown
20368
+ *
20369
+ * Block math is defined as $$ delimiters on separate lines:
20370
+ * $$
20371
+ * E = mc^2
20372
+ * $$
20373
+ *
20374
+ * This function processes the entire content (not just last paragraph)
20375
+ * because block math can span multiple paragraphs.
20376
+ *
20377
+ * @param content - Markdown content (potentially incomplete in stream mode)
20378
+ * @returns Content with auto-completed block math if needed
20379
+ *
20380
+ * @example
20381
+ * fixMath('$$\nE = mc^2')
20382
+ * // Returns: '$$\nE = mc^2\n$$'
20383
+ *
20384
+ * @example
20385
+ * fixMath('$$\nE = mc^2\n$$')
20386
+ * // Returns: '$$\nE = mc^2\n$$' (no change)
20387
+ */
20388
+ function fixMath(content$2) {
20389
+ const codeBlockMatches = content$2.match(tripleBacktickPattern);
20390
+ if ((codeBlockMatches ? codeBlockMatches.length : 0) % 2 === 1) return content$2;
20391
+ const lines = content$2.split("\n");
20392
+ let inCodeBlock = false;
20393
+ const blockMathDelimiters = [];
20394
+ for (let i = 0; i < lines.length; i++) {
20395
+ const line = lines[i] ?? "";
20396
+ if (line.trim().startsWith("```")) {
20397
+ inCodeBlock = !inCodeBlock;
20398
+ continue;
20399
+ }
20400
+ if (inCodeBlock) continue;
20401
+ if (line.trim() === "$$") blockMathDelimiters.push(i);
20402
+ }
20403
+ if (blockMathDelimiters.length % 2 === 1) {
20404
+ const lastDelimiterIndex = blockMathDelimiters[blockMathDelimiters.length - 1] ?? -1;
20405
+ if (lastDelimiterIndex === -1) return content$2;
20406
+ if (lines.slice(lastDelimiterIndex + 1).some((line) => {
20407
+ const trimmed = line.trim();
20408
+ return trimmed.length > 0 && trimmed !== "$$";
20409
+ })) {
20410
+ if (!content$2.endsWith("\n")) return `${content$2}\n$$`;
20411
+ return `${content$2}$$`;
20412
+ } else return lines.slice(0, lastDelimiterIndex).join("\n");
20413
+ }
20354
20414
  return content$2;
20355
20415
  }
20356
20416
 
@@ -20383,25 +20443,28 @@ function fixLink(content$2) {
20383
20443
  */
20384
20444
  function fixStrong(content$2) {
20385
20445
  if (content$2 === "*" || content$2 === "_") return "";
20446
+ const codeBlockMatches = content$2.match(tripleBacktickPattern);
20447
+ if ((codeBlockMatches ? codeBlockMatches.length : 0) % 2 === 1) return content$2;
20386
20448
  const { lastParagraph } = getLastParagraphWithIndex(content$2);
20449
+ const lastParagraphWithoutCodeBlocks = lastParagraph.replace(codeBlockPattern, "");
20387
20450
  const endsWithSingleAsterisk = content$2.endsWith("*") && !content$2.endsWith("**");
20388
20451
  const endsWithSingleUnderscore = content$2.endsWith("_") && !content$2.endsWith("__");
20389
- const asteriskMatches = lastParagraph.match(doubleAsteriskPattern);
20452
+ const asteriskMatches = lastParagraphWithoutCodeBlocks.match(doubleAsteriskPattern);
20390
20453
  const asteriskCount = asteriskMatches ? asteriskMatches.length : 0;
20391
- const underscoreMatches = lastParagraph.match(doubleUnderscorePattern);
20454
+ const underscoreMatches = lastParagraphWithoutCodeBlocks.match(doubleUnderscorePattern);
20392
20455
  const underscoreCount = underscoreMatches ? underscoreMatches.length : 0;
20393
20456
  let needsAsteriskCompletion = false;
20394
20457
  let needsUnderscoreCompletion = false;
20395
20458
  let needsAsteriskRemoval = false;
20396
20459
  let needsUnderscoreRemoval = false;
20397
20460
  if (asteriskCount % 2 === 1) {
20398
- const lastStarPos = lastParagraph.lastIndexOf("**");
20399
- if (lastParagraph.substring(lastStarPos + 2).trim().length > 0) needsAsteriskCompletion = true;
20461
+ const lastStarPos = lastParagraphWithoutCodeBlocks.lastIndexOf("**");
20462
+ if (lastParagraphWithoutCodeBlocks.substring(lastStarPos + 2).trim().length > 0) needsAsteriskCompletion = true;
20400
20463
  else needsAsteriskRemoval = true;
20401
20464
  }
20402
20465
  if (underscoreCount % 2 === 1) {
20403
- const lastUnderscorePos = lastParagraph.lastIndexOf("__");
20404
- if (lastParagraph.substring(lastUnderscorePos + 2).trim().length > 0) needsUnderscoreCompletion = true;
20466
+ const lastUnderscorePos = lastParagraphWithoutCodeBlocks.lastIndexOf("__");
20467
+ if (lastParagraphWithoutCodeBlocks.substring(lastUnderscorePos + 2).trim().length > 0) needsUnderscoreCompletion = true;
20405
20468
  else needsUnderscoreRemoval = true;
20406
20469
  }
20407
20470
  let removedTrailingSingle = false;
@@ -20409,10 +20472,11 @@ function fixStrong(content$2) {
20409
20472
  content$2 = content$2.slice(0, -1);
20410
20473
  removedTrailingSingle = true;
20411
20474
  const { lastParagraph: newLastParagraph } = getLastParagraphWithIndex(content$2);
20412
- const newAsteriskMatches = newLastParagraph.match(doubleAsteriskPattern);
20475
+ const newLastParagraphWithoutCodeBlocks = newLastParagraph.replace(codeBlockPattern, "");
20476
+ const newAsteriskMatches = newLastParagraphWithoutCodeBlocks.match(doubleAsteriskPattern);
20413
20477
  if ((newAsteriskMatches ? newAsteriskMatches.length : 0) % 2 === 1) {
20414
- const lastStarPos = newLastParagraph.lastIndexOf("**");
20415
- if (newLastParagraph.substring(lastStarPos + 2).trim().length > 0) {
20478
+ const lastStarPos = newLastParagraphWithoutCodeBlocks.lastIndexOf("**");
20479
+ if (newLastParagraphWithoutCodeBlocks.substring(lastStarPos + 2).trim().length > 0) {
20416
20480
  needsAsteriskCompletion = true;
20417
20481
  needsAsteriskRemoval = false;
20418
20482
  } else {
@@ -20425,10 +20489,11 @@ function fixStrong(content$2) {
20425
20489
  content$2 = content$2.slice(0, -1);
20426
20490
  removedTrailingSingle = true;
20427
20491
  const { lastParagraph: newLastParagraph } = getLastParagraphWithIndex(content$2);
20428
- const newUnderscoreMatches = newLastParagraph.match(doubleUnderscorePattern);
20492
+ const newLastParagraphWithoutCodeBlocks = newLastParagraph.replace(codeBlockPattern, "");
20493
+ const newUnderscoreMatches = newLastParagraphWithoutCodeBlocks.match(doubleUnderscorePattern);
20429
20494
  if ((newUnderscoreMatches ? newUnderscoreMatches.length : 0) % 2 === 1) {
20430
- const lastUnderscorePos = newLastParagraph.lastIndexOf("__");
20431
- if (newLastParagraph.substring(lastUnderscorePos + 2).trim().length > 0) {
20495
+ const lastUnderscorePos = newLastParagraphWithoutCodeBlocks.lastIndexOf("__");
20496
+ if (newLastParagraphWithoutCodeBlocks.substring(lastUnderscorePos + 2).trim().length > 0) {
20432
20497
  needsUnderscoreCompletion = true;
20433
20498
  needsUnderscoreRemoval = false;
20434
20499
  } else {
@@ -20450,12 +20515,12 @@ function fixStrong(content$2) {
20450
20515
  if (trailingStandaloneDashWithNewlinesPattern.test(result)) result = result.replace(trailingStandaloneDashWithNewlinesPattern, "$1");
20451
20516
  return result;
20452
20517
  }
20453
- if (needsAsteriskCompletion && needsUnderscoreCompletion) if (lastParagraph.indexOf("**") < lastParagraph.indexOf("__")) return `${content$2}__**`;
20518
+ if (needsAsteriskCompletion && needsUnderscoreCompletion) if (lastParagraphWithoutCodeBlocks.indexOf("**") < lastParagraphWithoutCodeBlocks.indexOf("__")) return `${content$2}__**`;
20454
20519
  else return `${content$2}**__`;
20455
20520
  if (needsAsteriskCompletion) {
20456
20521
  if (!removedTrailingSingle) {
20457
20522
  const { lastParagraph: currentLastParagraph } = getLastParagraphWithIndex(content$2);
20458
- const singleAsteriskMatches = currentLastParagraph.replace(doubleAsteriskPattern, "").match(singleAsteriskPattern);
20523
+ const singleAsteriskMatches = currentLastParagraph.replace(codeBlockPattern, "").replace(doubleAsteriskPattern, "").match(singleAsteriskPattern);
20459
20524
  if ((singleAsteriskMatches ? singleAsteriskMatches.length : 0) % 2 === 1) return `${content$2}***`;
20460
20525
  }
20461
20526
  return `${content$2}**`;
@@ -20463,7 +20528,7 @@ function fixStrong(content$2) {
20463
20528
  if (needsUnderscoreCompletion) {
20464
20529
  if (!removedTrailingSingle) {
20465
20530
  const { lastParagraph: currentLastParagraph } = getLastParagraphWithIndex(content$2);
20466
- const singleUnderscoreMatches = currentLastParagraph.replace(doubleUnderscorePattern, "").match(singleUnderscorePattern);
20531
+ const singleUnderscoreMatches = currentLastParagraph.replace(codeBlockPattern, "").replace(doubleUnderscorePattern, "").match(singleUnderscorePattern);
20467
20532
  if ((singleUnderscoreMatches ? singleUnderscoreMatches.length : 0) % 2 === 1) return `${content$2}___`;
20468
20533
  }
20469
20534
  return `${content$2}__`;
@@ -20502,6 +20567,19 @@ function fixStrong(content$2) {
20502
20567
  function fixTable(content$2) {
20503
20568
  const codeBlockMatches = content$2.match(tripleBacktickPattern);
20504
20569
  if ((codeBlockMatches ? codeBlockMatches.length : 0) % 2 === 1) return content$2;
20570
+ const codeBlockRanges = [];
20571
+ let searchStart = 0;
20572
+ while (true) {
20573
+ const codeBlockStart = content$2.indexOf("```", searchStart);
20574
+ if (codeBlockStart === -1) break;
20575
+ const codeBlockEnd = content$2.indexOf("```", codeBlockStart + 3);
20576
+ if (codeBlockEnd === -1) break;
20577
+ codeBlockRanges.push({
20578
+ start: codeBlockStart,
20579
+ end: codeBlockEnd + 3
20580
+ });
20581
+ searchStart = codeBlockEnd + 3;
20582
+ }
20505
20583
  const { lastParagraph } = getLastParagraphWithIndex(content$2, true);
20506
20584
  const paragraphLines = lastParagraph.split("\n").filter((line) => line.trim() !== "");
20507
20585
  if (paragraphLines.length === 0) return content$2;
@@ -20518,6 +20596,11 @@ function fixTable(content$2) {
20518
20596
  }
20519
20597
  }
20520
20598
  if (headerRowIndex === -1) return content$2;
20599
+ const headerRowPos = content$2.lastIndexOf(headerRow);
20600
+ if (headerRowPos !== -1) {
20601
+ const headerRowEndPos = headerRowPos + headerRow.length;
20602
+ if (codeBlockRanges.some((range) => headerRowPos >= range.start && headerRowPos < range.end || headerRowEndPos > range.start && headerRowEndPos <= range.end || headerRowPos < range.start && headerRowEndPos > range.end)) return content$2;
20603
+ }
20521
20604
  const trimmedHeader = headerRow.trim();
20522
20605
  const isHeaderComplete = trimmedHeader.endsWith("|");
20523
20606
  let completedHeaderRow = headerRow;
@@ -20525,7 +20608,6 @@ function fixTable(content$2) {
20525
20608
  const headerColumns = (completedHeaderRow.match(/\|/g) || []).length - 1;
20526
20609
  if (headerColumns < 1) return content$2;
20527
20610
  const separator = generateSeparator(headerColumns);
20528
- const headerRowPos = content$2.lastIndexOf(headerRow);
20529
20611
  const beforeHeaderRow = content$2.substring(0, headerRowPos);
20530
20612
  const afterHeaderRow = content$2.substring(headerRowPos + headerRow.length);
20531
20613
  if (headerRowIndex === paragraphLines.length - 1) {
@@ -20598,10 +20680,32 @@ function generateSeparator(columns) {
20598
20680
  * // Returns: '> **Note**: Here\'s a quote with tasks:\n\n'
20599
20681
  */
20600
20682
  function fixTaskList(content$2) {
20683
+ const codeBlockMatches = content$2.match(tripleBacktickPattern);
20684
+ if ((codeBlockMatches ? codeBlockMatches.length : 0) % 2 === 1) return content$2;
20685
+ const codeBlockRanges = [];
20686
+ let searchStart = 0;
20687
+ while (true) {
20688
+ const codeBlockStart = content$2.indexOf("```", searchStart);
20689
+ if (codeBlockStart === -1) break;
20690
+ const codeBlockEnd = content$2.indexOf("```", codeBlockStart + 3);
20691
+ if (codeBlockEnd === -1) break;
20692
+ codeBlockRanges.push({
20693
+ start: codeBlockStart,
20694
+ end: codeBlockEnd + 3
20695
+ });
20696
+ searchStart = codeBlockEnd + 3;
20697
+ }
20601
20698
  const lines = content$2.split("\n");
20602
20699
  if (lines.length === 0) return content$2;
20603
20700
  const lastLine = lines[lines.length - 1];
20604
20701
  if (!lastLine) return content$2;
20702
+ let lastLineStartPos = 0;
20703
+ for (let i = 0; i < lines.length - 1; i++) {
20704
+ const line = lines[i];
20705
+ if (line !== void 0) lastLineStartPos += line.length + 1;
20706
+ }
20707
+ const lastLineEndPos = lastLineStartPos + lastLine.length;
20708
+ if (codeBlockRanges.some((range) => lastLineStartPos >= range.start && lastLineStartPos < range.end || lastLineEndPos > range.start && lastLineEndPos <= range.end || lastLineStartPos < range.start && lastLineEndPos > range.end)) return content$2;
20605
20709
  if (quoteIncompleteTaskListPattern.test(lastLine)) return lines.slice(0, -1).join("\n");
20606
20710
  if (quoteStandaloneDashPattern.test(lastLine) && !quoteTaskListPattern.test(lastLine)) return lines.slice(0, -1).join("\n");
20607
20711
  if (incompleteTaskListPattern.test(lastLine)) return lines.slice(0, -1).join("\n");
@@ -20639,36 +20743,31 @@ function proprocessContent(content$2) {
20639
20743
  function normalize(content$2) {
20640
20744
  return flow([proprocessContent, preprocessLaTeX])(content$2);
20641
20745
  }
20642
- function preprocess(content$2, streamdown = true) {
20643
- const tasks = [
20746
+ function preprocess(content$2) {
20747
+ return flow([
20748
+ fixCode,
20644
20749
  fixFootnote,
20645
20750
  fixStrong,
20646
20751
  fixEmphasis,
20647
20752
  fixDelete,
20648
- fixCode,
20649
20753
  fixTaskList,
20650
20754
  fixLink,
20651
20755
  fixTable,
20652
- fixInlineMath
20653
- ];
20654
- if (streamdown) tasks.push(remend);
20655
- return flow(tasks)(content$2);
20756
+ fixInlineMath,
20757
+ fixMath
20758
+ ])(content$2);
20656
20759
  }
20657
20760
 
20658
20761
  //#endregion
20659
20762
  //#region src/markdown-parser.ts
20660
20763
  var MarkdownParser = class {
20661
20764
  constructor(options) {
20662
- var _this$options$extendM, _this$options;
20663
20765
  _defineProperty(this, "mode", "streaming");
20664
- _defineProperty(this, "md", void 0);
20665
20766
  _defineProperty(this, "content", "");
20666
20767
  _defineProperty(this, "syntaxTree", null);
20667
20768
  _defineProperty(this, "options", void 0);
20668
20769
  this.mode = options.mode;
20669
20770
  this.options = options;
20670
- this.md = new MarkdownItAsync();
20671
- (_this$options$extendM = (_this$options = this.options).extendMarkdownIt) === null || _this$options$extendM === void 0 || _this$options$extendM.call(_this$options, this.md);
20672
20771
  }
20673
20772
  update(data) {
20674
20773
  data = (this.options.normalize ?? normalize)(data);
@@ -20694,9 +20793,6 @@ var MarkdownParser = class {
20694
20793
  nodes: this.syntaxTree.children
20695
20794
  };
20696
20795
  }
20697
- markdownToHtml(content$2) {
20698
- return this.md.render(content$2);
20699
- }
20700
20796
  markdownToAst(content$2, loading = false) {
20701
20797
  var _this$options$mdastOp, _this$options$mdastOp2;
20702
20798
  const data = fromMarkdown(content$2, {
@@ -20789,6 +20885,10 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
20789
20885
  required: false,
20790
20886
  default: void 0
20791
20887
  },
20888
+ beforeDownload: {
20889
+ type: Function,
20890
+ required: false
20891
+ },
20792
20892
  controls: {
20793
20893
  type: [Boolean, Object],
20794
20894
  required: false,
@@ -20851,10 +20951,6 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
20851
20951
  postprocess: {
20852
20952
  type: Function,
20853
20953
  required: false
20854
- },
20855
- extendMarkdownIt: {
20856
- type: Function,
20857
- required: false
20858
20954
  }
20859
20955
  },
20860
20956
  emits: ["copied"],
@@ -20864,14 +20960,7 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
20864
20960
  const { mode, shikiOptions, mermaidOptions, uiOptions, isDark, enableAnimate } = toRefs(props);
20865
20961
  const containerRef = ref();
20866
20962
  const { provideContext } = useContext();
20867
- const markdownParser = new MarkdownParser({
20868
- mode: props.mode,
20869
- mdastOptions: props.mdastOptions,
20870
- normalize: props.normalize,
20871
- preprocess: props.preprocess,
20872
- postprocess: props.postprocess,
20873
- extendMarkdownIt: props.extendMarkdownIt
20874
- });
20963
+ const markdownParser = new MarkdownParser(props);
20875
20964
  const processed = computed(() => markdownParser.parseMarkdown(props.content));
20876
20965
  const parsedNodes = computed(() => processed.value.nodes);
20877
20966
  const processedContent = computed(() => processed.value.content);
@@ -20936,6 +21025,7 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
20936
21025
  parsedNodes,
20937
21026
  getContainer,
20938
21027
  getOverlayContainer,
21028
+ beforeDownload: props.beforeDownload,
20939
21029
  onCopied: (content$2) => {
20940
21030
  emits("copied", content$2);
20941
21031
  }
@@ -20974,4 +21064,4 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
20974
21064
  var src_default = index_vue_vue_type_script_setup_true_lang_default;
20975
21065
 
20976
21066
  //#endregion
20977
- export { CODE_PREVIEWERS, DEFAULT_DARK_THEME, DEFAULT_HARDEN_OPTIONS, DEFAULT_LIGHT_THEME, ICONS, LANGUAGE_ALIAS, LANGUAGE_EXTENSIONS, LANGUAGE_ICONS, src_default as Markdown, MarkdownParser, NODE_RENDERERS, PRELOAD_NODE_RENDERER, SHADCN_SCHEMAS, SUPPORT_LANGUAGES, UI, codeBlockPattern, crlfPattern, currentLocale, doubleAsteriskPattern, doubleDollarPattern, doubleTildePattern, doubleUnderscorePattern, escapeMarkdownTableCell, extractTableDataFromElement, findLastLeafNode, findNodeParent, fixCode, fixDelete, fixEmphasis, fixFootnote, fixLink, fixStrong, fixTable, fixTaskList, flow, footnoteDefLabelPattern, footnoteDefLinePattern, footnoteDefPattern, footnoteRefLabelPattern, footnoteRefPattern, hasKatex, hasMermaid, hasShiki, incompleteBracketPattern, incompleteFootnoteRefPattern, incompleteLinkTextPattern, incompleteTaskListPattern, incompleteUrlPattern, isClient, isServer, loadLocaleMessages, localeMessages, localesGlob, normalize, postFixFootnote, postFixText, postNormalize, postprocess, preloadAsyncComponents, preprocess, preprocessLaTeX, proprocessContent, quoteIncompleteTaskListPattern, quoteStandaloneDashPattern, quoteTaskListPattern, remend, save, saveImage, separatorPattern, singleAsteriskPattern, singleBacktickPattern, singleUnderscorePattern, standaloneDashPattern, svgToPngBlob, tableDataToCSV, tableDataToMarkdown, tableDataToTSV, tableRowPattern, taskListPattern, trailingBackticksPattern, trailingStandaloneBracketPattern, trailingStandaloneDashWithNewlinesPattern, trailingWhitespacePattern, transformUrl, tripleBacktickPattern, useCodeOptions, useContext, useControls, useFloating, useI18n, useKatex, useMathRenderer, useMediumZoom, useMermaid, useSanitizers, useShiki, useTailwindV3Theme, useZoom };
21067
+ export { CODE_PREVIEWERS, DEFAULT_DARK_THEME, DEFAULT_HARDEN_OPTIONS, DEFAULT_LIGHT_THEME, ICONS, LANGUAGE_ALIAS, LANGUAGE_EXTENSIONS, LANGUAGE_ICONS, src_default as Markdown, MarkdownParser, NODE_RENDERERS, PRELOAD_NODE_RENDERER, SHADCN_SCHEMAS, SUPPORT_LANGUAGES, UI, codeBlockPattern, crlfPattern, currentLocale, doubleAsteriskPattern, doubleDollarPattern, doubleTildePattern, doubleUnderscorePattern, escapeMarkdownTableCell, extractTableDataFromElement, findLastLeafNode, findNodeParent, fixCode, fixDelete, fixEmphasis, fixFootnote, fixLink, fixMath, fixStrong, fixTable, fixTaskList, flow, footnoteDefLabelPattern, footnoteDefLinePattern, footnoteDefPattern, footnoteRefLabelPattern, footnoteRefPattern, hasKatex, hasMermaid, hasShiki, incompleteBracketPattern, incompleteFootnoteRefPattern, incompleteLinkTextPattern, incompleteTaskListPattern, incompleteUrlPattern, isClient, isServer, loadLocaleMessages, localeMessages, localesGlob, normalize, postFixFootnote, postFixText, postNormalize, postprocess, preloadAsyncComponents, preprocess, preprocessLaTeX, proprocessContent, quoteIncompleteTaskListPattern, quoteStandaloneDashPattern, quoteTaskListPattern, save, saveImage, separatorPattern, singleAsteriskPattern, singleBacktickPattern, singleUnderscorePattern, standaloneDashPattern, svgToPngBlob, tableDataToCSV, tableDataToMarkdown, tableDataToTSV, tableRowPattern, taskListPattern, trailingBackticksPattern, trailingStandaloneBracketPattern, trailingStandaloneDashWithNewlinesPattern, trailingWhitespacePattern, transformUrl, tripleBacktickPattern, useCodeOptions, useContext, useControls, useFloating, useI18n, useKatex, useMathRenderer, useMediumZoom, useMermaid, useSanitizers, useShiki, useTailwindV3Theme, useZoom };
@@ -1,6 +1,6 @@
1
- import { g as useMathRenderer } from "./composables-CzUVrTt_.js";
2
- import "./icon-DcLTFhFW.js";
3
- import { t as error_component_default } from "./error-component-BTe-SuY7.js";
1
+ import { g as useMathRenderer } from "./composables-BvaSMf02.js";
2
+ import "./icon-BJa4ovUe.js";
3
+ import { t as error_component_default } from "./error-component-DFBWdaYB.js";
4
4
  import { computed, createBlock, createCommentVNode, createElementBlock, defineComponent, mergeProps, openBlock, resolveDynamicComponent, toRefs, unref } from "vue";
5
5
 
6
6
  //#region src/components/renderers/inline-math.vue?vue&type=script&setup=true&lang.ts
@@ -1,7 +1,7 @@
1
- import { i as useSanitizers } from "./composables-CzUVrTt_.js";
2
- import { t as node_list_default } from "./node-list-7H-lIfUX.js";
3
- import "./icon-DcLTFhFW.js";
4
- import { t as error_component_default } from "./error-component-BTe-SuY7.js";
1
+ import { i as useSanitizers } from "./composables-BvaSMf02.js";
2
+ import { t as node_list_default } from "./node-list-CWy--Gin.js";
3
+ import "./icon-BJa4ovUe.js";
4
+ import { t as error_component_default } from "./error-component-DFBWdaYB.js";
5
5
  import { computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, mergeProps, openBlock, resolveDynamicComponent, toRefs, unref, withCtx } from "vue";
6
6
 
7
7
  //#region src/components/renderers/link.vue?vue&type=script&setup=true&lang.ts
@@ -1,5 +1,5 @@
1
- import "./composables-CzUVrTt_.js";
2
- import { t as node_list_default } from "./node-list-7H-lIfUX.js";
1
+ import "./composables-BvaSMf02.js";
2
+ import { t as node_list_default } from "./node-list-CWy--Gin.js";
3
3
  import { computed, createBlock, createVNode, defineComponent, mergeProps, openBlock, resolveDynamicComponent, withCtx } from "vue";
4
4
 
5
5
  //#region src/components/renderers/list.vue?vue&type=script&setup=true&lang.ts
@@ -1,5 +1,5 @@
1
- import "./composables-CzUVrTt_.js";
2
- import { t as node_list_default } from "./node-list-7H-lIfUX.js";
1
+ import "./composables-BvaSMf02.js";
2
+ import { t as node_list_default } from "./node-list-CWy--Gin.js";
3
3
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeProps, openBlock } from "vue";
4
4
 
5
5
  //#region src/components/renderers/list-item.vue?vue&type=script&setup=true&lang.ts
@@ -1,6 +1,6 @@
1
- import { g as useMathRenderer } from "./composables-CzUVrTt_.js";
2
- import "./icon-DcLTFhFW.js";
3
- import { t as error_component_default } from "./error-component-BTe-SuY7.js";
1
+ import { g as useMathRenderer } from "./composables-BvaSMf02.js";
2
+ import "./icon-BJa4ovUe.js";
3
+ import { t as error_component_default } from "./error-component-DFBWdaYB.js";
4
4
  import { computed, createBlock, createCommentVNode, createElementBlock, defineComponent, mergeProps, openBlock, resolveDynamicComponent, toRefs, unref } from "vue";
5
5
 
6
6
  //#region src/components/renderers/math.vue?vue&type=script&setup=true&lang.ts
@@ -1,9 +1,9 @@
1
- import { G as useControls, _ as throttle, m as useMermaid } from "./composables-CzUVrTt_.js";
2
- import "./tooltip-DarhJuZR.js";
3
- import { t as button_default } from "./button-DVWlhfQ9.js";
4
- import "./icon-DcLTFhFW.js";
5
- import { t as error_component_default } from "./error-component-BTe-SuY7.js";
6
- import { t as zoom_container_default } from "./zoom-container-DQMpHHGQ.js";
1
+ import { G as useControls, _ as throttle, m as useMermaid } from "./composables-BvaSMf02.js";
2
+ import "./tooltip-CWv9skVu.js";
3
+ import { t as button_default } from "./button-B7H9jKmU.js";
4
+ import "./icon-BJa4ovUe.js";
5
+ import { t as error_component_default } from "./error-component-DFBWdaYB.js";
6
+ import { t as zoom_container_default } from "./zoom-container-DbeN8U39.js";
7
7
  import { t as spin_default } from "./spin-DzERwGWy.js";
8
8
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeProps, nextTick, normalizeStyle, openBlock, ref, renderList, resolveDynamicComponent, toRefs, watch, withCtx } from "vue";
9
9
  import { useResizeObserver } from "@vueuse/core";
@@ -0,0 +1,4 @@
1
+ import "./composables-BvaSMf02.js";
2
+ import { t as modal_default } from "./modal-Bhe0iSs6.js";
3
+
4
+ export { modal_default as default };
@@ -1,4 +1,4 @@
1
- import { K as useContext, R as isClient } from "./composables-CzUVrTt_.js";
1
+ import { K as useContext, R as isClient } from "./composables-BvaSMf02.js";
2
2
  import { Fragment, Teleport, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, normalizeStyle, openBlock, renderSlot, toDisplayString, unref, useModel, useSlots, withCtx } from "vue";
3
3
  import { createReusableTemplate, useEventListener } from "@vueuse/core";
4
4