@hejiayue/x-markdown-test 0.0.1-beta.113 → 0.0.1-beta.116

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 (116) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/x-markdown.cjs.js +1 -1
  3. package/dist/x-markdown.cjs10.js +2 -0
  4. package/dist/x-markdown.cjs10.js.map +1 -0
  5. package/dist/x-markdown.cjs11.js +2 -0
  6. package/dist/x-markdown.cjs11.js.map +1 -0
  7. package/dist/x-markdown.cjs13.js +2 -0
  8. package/dist/x-markdown.cjs13.js.map +1 -0
  9. package/dist/x-markdown.cjs14.js +2 -0
  10. package/dist/x-markdown.cjs14.js.map +1 -0
  11. package/dist/x-markdown.cjs15.js +2 -0
  12. package/dist/x-markdown.cjs15.js.map +1 -0
  13. package/dist/x-markdown.cjs16.js +2 -0
  14. package/dist/x-markdown.cjs16.js.map +1 -0
  15. package/dist/x-markdown.cjs17.js +2 -0
  16. package/dist/x-markdown.cjs17.js.map +1 -0
  17. package/dist/x-markdown.cjs18.js +2 -0
  18. package/dist/x-markdown.cjs18.js.map +1 -0
  19. package/dist/x-markdown.cjs19.js +2 -0
  20. package/dist/x-markdown.cjs19.js.map +1 -0
  21. package/dist/x-markdown.cjs2.js +2 -0
  22. package/dist/x-markdown.cjs2.js.map +1 -0
  23. package/dist/x-markdown.cjs21.js +2 -0
  24. package/dist/x-markdown.cjs21.js.map +1 -0
  25. package/dist/x-markdown.cjs22.js +2 -0
  26. package/dist/x-markdown.cjs22.js.map +1 -0
  27. package/dist/x-markdown.cjs24.js +2 -0
  28. package/dist/x-markdown.cjs24.js.map +1 -0
  29. package/dist/x-markdown.cjs26.js +2 -0
  30. package/dist/x-markdown.cjs26.js.map +1 -0
  31. package/dist/x-markdown.cjs27.js +2 -0
  32. package/dist/x-markdown.cjs27.js.map +1 -0
  33. package/dist/x-markdown.cjs28.js +2 -0
  34. package/dist/x-markdown.cjs28.js.map +1 -0
  35. package/dist/x-markdown.cjs3.js +2 -0
  36. package/dist/x-markdown.cjs3.js.map +1 -0
  37. package/dist/x-markdown.cjs30.js +2 -0
  38. package/dist/x-markdown.cjs30.js.map +1 -0
  39. package/dist/x-markdown.cjs31.js +2 -0
  40. package/dist/x-markdown.cjs31.js.map +1 -0
  41. package/dist/x-markdown.cjs33.js +2 -0
  42. package/dist/x-markdown.cjs33.js.map +1 -0
  43. package/dist/x-markdown.cjs4.js +2 -0
  44. package/dist/x-markdown.cjs4.js.map +1 -0
  45. package/dist/x-markdown.cjs5.js +2 -0
  46. package/dist/x-markdown.cjs5.js.map +1 -0
  47. package/dist/x-markdown.cjs6.js +2 -0
  48. package/dist/x-markdown.cjs6.js.map +1 -0
  49. package/dist/x-markdown.cjs7.js +2 -0
  50. package/dist/x-markdown.cjs7.js.map +1 -0
  51. package/dist/x-markdown.cjs8.js +2 -0
  52. package/dist/x-markdown.cjs8.js.map +1 -0
  53. package/dist/x-markdown.cjs9.js +2 -0
  54. package/dist/x-markdown.cjs9.js.map +1 -0
  55. package/dist/x-markdown.es.js +26 -17
  56. package/dist/x-markdown.es.js.map +1 -1
  57. package/dist/x-markdown.es10.js +49 -0
  58. package/dist/x-markdown.es10.js.map +1 -0
  59. package/dist/x-markdown.es11.js +54 -0
  60. package/dist/x-markdown.es11.js.map +1 -0
  61. package/dist/x-markdown.es13.js +89 -0
  62. package/dist/x-markdown.es13.js.map +1 -0
  63. package/dist/x-markdown.es14.js +34 -0
  64. package/dist/x-markdown.es14.js.map +1 -0
  65. package/dist/x-markdown.es15.js +5 -0
  66. package/dist/x-markdown.es15.js.map +1 -0
  67. package/dist/x-markdown.es16.js +6 -0
  68. package/dist/x-markdown.es16.js.map +1 -0
  69. package/dist/x-markdown.es17.js +8 -0
  70. package/dist/x-markdown.es17.js.map +1 -0
  71. package/dist/x-markdown.es18.js +8 -0
  72. package/dist/x-markdown.es18.js.map +1 -0
  73. package/dist/x-markdown.es19.js +207 -0
  74. package/dist/x-markdown.es19.js.map +1 -0
  75. package/dist/x-markdown.es2.js +83 -0
  76. package/dist/x-markdown.es2.js.map +1 -0
  77. package/dist/x-markdown.es21.js +11 -0
  78. package/dist/x-markdown.es21.js.map +1 -0
  79. package/dist/x-markdown.es22.js +75 -0
  80. package/dist/x-markdown.es22.js.map +1 -0
  81. package/dist/{index-SElRorTo.js → x-markdown.es24.js} +7 -139
  82. package/dist/x-markdown.es24.js.map +1 -0
  83. package/dist/x-markdown.es26.js +160 -0
  84. package/dist/x-markdown.es26.js.map +1 -0
  85. package/dist/x-markdown.es27.js +8 -0
  86. package/dist/x-markdown.es27.js.map +1 -0
  87. package/dist/x-markdown.es28.js +142 -0
  88. package/dist/x-markdown.es28.js.map +1 -0
  89. package/dist/x-markdown.es3.js +94 -0
  90. package/dist/x-markdown.es3.js.map +1 -0
  91. package/dist/x-markdown.es30.js +78 -0
  92. package/dist/x-markdown.es30.js.map +1 -0
  93. package/dist/x-markdown.es31.js +125 -0
  94. package/dist/x-markdown.es31.js.map +1 -0
  95. package/dist/x-markdown.es33.js +6 -0
  96. package/dist/x-markdown.es33.js.map +1 -0
  97. package/dist/x-markdown.es4.js +150 -0
  98. package/dist/x-markdown.es4.js.map +1 -0
  99. package/dist/x-markdown.es5.js +40 -0
  100. package/dist/x-markdown.es5.js.map +1 -0
  101. package/dist/x-markdown.es6.js +24 -0
  102. package/dist/x-markdown.es6.js.map +1 -0
  103. package/dist/x-markdown.es7.js +279 -0
  104. package/dist/x-markdown.es7.js.map +1 -0
  105. package/dist/x-markdown.es8.js +27 -0
  106. package/dist/x-markdown.es8.js.map +1 -0
  107. package/dist/x-markdown.es9.js +409 -0
  108. package/dist/x-markdown.es9.js.map +1 -0
  109. package/package.json +3 -3
  110. package/dist/index-D9u8JldH.cjs +0 -2
  111. package/dist/index-D9u8JldH.cjs.map +0 -1
  112. package/dist/index-SElRorTo.js.map +0 -1
  113. package/dist/index-lQ_FQFr2.js +0 -1882
  114. package/dist/index-lQ_FQFr2.js.map +0 -1
  115. package/dist/index-nZ5iH1aN.cjs +0 -2
  116. package/dist/index-nZ5iH1aN.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-SElRorTo.js","sources":["../src/components/Mermaid/SyntaxMermaid.vue","../src/components/Mermaid/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, nextTick, ref, watch, onMounted } from 'vue'\r\nimport { debounce } from 'lodash-es'\r\nimport { useMermaid, useMermaidZoom, downloadSvgAsPng } from '../../hooks'\r\n\r\ninterface SyntaxMermaidProps {\r\n content: string\r\n id?: string\r\n isDark?: boolean\r\n config?: Record<string, any>\r\n}\r\n\r\nconst props = withDefaults(defineProps<SyntaxMermaidProps>(), {\r\n content: '',\r\n id: 'mermaid-default',\r\n isDark: false,\r\n config: () => ({}),\r\n})\r\n\r\nconst emit = defineEmits<{\r\n degraded: []\r\n ready: []\r\n}>()\r\n\r\nconst renderContainerRef = ref<HTMLElement | null>(null)\r\n\r\nconst mermaidContent = computed(() => props.content)\r\nconst mermaidOptions = computed(() => ({\r\n id: props.id,\r\n theme: props.isDark ? 'dark' : 'default',\r\n config: props.config,\r\n container: renderContainerRef.value,\r\n}))\r\nconst mermaidResult = useMermaid(mermaidContent, mermaidOptions)\r\n\r\nconst svg = ref('')\r\nconst isLoading = computed(() => mermaidResult.isLoading.value)\r\nconst error = computed(() => mermaidResult.error.value)\r\n\r\nconst containerRef = ref<HTMLElement | null>(null)\r\n\r\nconst zoomControls = useMermaidZoom({\r\n container: containerRef,\r\n scaleStep: 0.2,\r\n minScale: 0.1,\r\n maxScale: 5,\r\n})\r\n\r\nconst debouncedInitialize = debounce(initializeZoom, 500)\r\n\r\nfunction initializeZoom() {\r\n nextTick(() => {\r\n if (containerRef.value) {\r\n zoomControls.initialize()\r\n }\r\n })\r\n}\r\n\r\nwatch(\r\n () => mermaidResult.data.value,\r\n (newSvg, oldSvg) => {\r\n console.log('[SyntaxMermaid] mermaidResult.data.value changed:', {\r\n oldSvg,\r\n newSvg,\r\n isNewSvg: !!newSvg,\r\n startsWithSvg: newSvg?.trim().startsWith('<svg'),\r\n preview: newSvg?.substring(0, 50)\r\n })\r\n\r\n if (newSvg) {\r\n svg.value = newSvg\r\n debouncedInitialize()\r\n\r\n // 检测是否成功渲染了 SVG(以 <svg 开头)\r\n if (newSvg.trim().startsWith('<svg')) {\r\n console.log('[SyntaxMermaid] Emitting ready event - Mermaid is available')\r\n emit('ready')\r\n } else {\r\n console.log('[SyntaxMermaid] Emitting degraded event - Mermaid not available')\r\n emit('degraded')\r\n }\r\n }\r\n },\r\n { immediate: true },\r\n)\r\n\r\nwatch(svg, (newSvg) => {\r\n if (newSvg) {\r\n debouncedInitialize()\r\n }\r\n})\r\n\r\nfunction zoomIn() {\r\n zoomControls?.zoomIn()\r\n}\r\n\r\nfunction zoomOut() {\r\n zoomControls?.zoomOut()\r\n}\r\n\r\nfunction reset() {\r\n zoomControls?.reset()\r\n}\r\n\r\nfunction fullscreen() {\r\n zoomControls?.fullscreen()\r\n zoomControls?.reset()\r\n}\r\n\r\nfunction download() {\r\n downloadSvgAsPng(svg.value)\r\n}\r\n\r\nfunction getSvg() {\r\n return svg.value\r\n}\r\n\r\nfunction reinitialize() {\r\n debouncedInitialize()\r\n}\r\n\r\nonMounted(() => {\r\n if (svg.value) {\r\n debouncedInitialize()\r\n }\r\n})\r\n\r\ndefineExpose({\r\n svg,\r\n isLoading,\r\n error,\r\n containerRef,\r\n zoomIn,\r\n zoomOut,\r\n reset,\r\n fullscreen,\r\n download,\r\n getSvg,\r\n reinitialize,\r\n})\r\n</script>\r\n\r\n<template>\r\n <div ref=\"containerRef\" class=\"syntax-mermaid\" :class=\"{ 'syntax-mermaid--dark': props.isDark }\">\r\n <div ref=\"renderContainerRef\" class=\"syntax-mermaid__render-container\" aria-hidden=\"true\" />\r\n\r\n <div v-if=\"isLoading\" class=\"syntax-mermaid__loading\">\r\n <slot name=\"loading\">\r\n <span class=\"syntax-mermaid__loading-text\">加载中...</span>\r\n </slot>\r\n </div>\r\n <div v-else class=\"syntax-mermaid__content\" v-html=\"svg\" />\r\n </div>\r\n</template>\r\n\r\n<style>\r\n.syntax-mermaid {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-height: 200px;\r\n overflow: hidden;\r\n cursor: grab;\r\n position: relative;\r\n}\r\n\r\n.syntax-mermaid__render-container {\r\n position: absolute;\r\n max-height: 0;\r\n opacity: 0;\r\n overflow: hidden;\r\n pointer-events: none;\r\n}\r\n\r\n.syntax-mermaid:active {\r\n cursor: grabbing;\r\n}\r\n\r\n.syntax-mermaid__content {\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.syntax-mermaid__content svg {\r\n transform-origin: center center;\r\n max-width: 100%;\r\n max-height: 100%;\r\n}\r\n\r\n.syntax-mermaid:fullscreen {\r\n max-height: 100vh;\r\n}\r\n\r\n.syntax-mermaid:fullscreen .syntax-mermaid__content {\r\n justify-content: center;\r\n}\r\n\r\n.syntax-mermaid__loading {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n height: 100%;\r\n min-height: 200px;\r\n}\r\n\r\n.syntax-mermaid__loading-text {\r\n color: #666;\r\n font-size: 14px;\r\n}\r\n\r\n.syntax-mermaid--dark .syntax-mermaid__loading-text {\r\n color: #999;\r\n}\r\n</style>\r\n","<script setup lang=\"ts\">\r\nimport type { MdComponent, MermaidExposeProps, MermaidAction, MermaidSlotProps } from './types'\r\nimport type { VNode } from 'vue'\r\nimport { computed, ref, h, onMounted } from 'vue'\r\nimport { useClipboard } from '@vueuse/core'\r\n// 使用运行时检测\r\nimport { checkMermaidAvailable } from '../../hooks/useMermaid'\r\nimport SyntaxMermaid from './SyntaxMermaid.vue'\r\nimport CodeBlock from '../CodeBlock/index.vue'\r\n\r\ninterface MermaidProps extends MdComponent {\r\n isDark?: boolean\r\n shikiTheme?: [string, string]\r\n config?: Record<string, any>\r\n mermaidActions?: MermaidAction[]\r\n}\r\n\r\nconst props = withDefaults(defineProps<MermaidProps>(), {\r\n raw: () => ({}),\r\n isDark: false,\r\n shikiTheme: () => ['vitesse-light', 'vitesse-dark'],\r\n config: () => ({}),\r\n mermaidActions: undefined,\r\n})\r\n\r\nconst syntaxMermaidRef = ref<InstanceType<typeof SyntaxMermaid> | null>(null)\r\nconst showSourceCode = ref(false)\r\n// 运行时检测 mermaid 是否可用\r\nconst isDegraded = ref(false)\r\nconst mermaidContent = computed(() => props.raw?.content || '')\r\nconst mermaidId = computed(() => `mermaid-${props.raw?.key || 'default'}`)\r\nconst isLoading = computed(() => syntaxMermaidRef.value?.isLoading ?? true)\r\nconst svg = computed(() => syntaxMermaidRef.value?.svg ?? '')\r\nconst activeTab = computed(() => (showSourceCode.value ? 'code' : 'diagram'))\r\n\r\nfunction handleZoomIn(event?: Event) {\r\n event?.stopPropagation()\r\n event?.preventDefault()\r\n if (!showSourceCode.value) {\r\n syntaxMermaidRef.value?.zoomIn()\r\n }\r\n}\r\n\r\nfunction handleZoomOut(event?: Event) {\r\n event?.stopPropagation()\r\n event?.preventDefault()\r\n if (!showSourceCode.value) {\r\n syntaxMermaidRef.value?.zoomOut()\r\n }\r\n}\r\n\r\nfunction handleReset(event?: Event) {\r\n event?.stopPropagation()\r\n event?.preventDefault()\r\n if (!showSourceCode.value) {\r\n syntaxMermaidRef.value?.reset()\r\n }\r\n}\r\n\r\nfunction handleFullscreen() {\r\n if (!showSourceCode.value) {\r\n syntaxMermaidRef.value?.fullscreen()\r\n }\r\n}\r\n\r\nfunction handleToggleCode() {\r\n showSourceCode.value = !showSourceCode.value\r\n}\r\n\r\nconst { copy: copyCode, copied } = useClipboard({ copiedDuring: 1500 })\r\n\r\nfunction handleTabClick(tabName: string) {\r\n if (tabName === 'code' && !showSourceCode.value) {\r\n showSourceCode.value = true\r\n } else if (tabName === 'diagram' && showSourceCode.value) {\r\n showSourceCode.value = false\r\n }\r\n}\r\n\r\nasync function handleCopyCode(event?: Event) {\r\n event?.stopPropagation()\r\n event?.preventDefault()\r\n\r\n if (copied.value) {\r\n return\r\n }\r\n\r\n if (!props.raw.content) {\r\n return\r\n }\r\n await copyCode(props.raw.content)\r\n}\r\n\r\nfunction handleDownload() {\r\n syntaxMermaidRef.value?.download()\r\n}\r\n\r\nconst normalizedActions = computed<MermaidAction[]>(() => {\r\n return props.mermaidActions || []\r\n})\r\n\r\nconst filteredActions = computed<MermaidAction[]>(() => {\r\n return normalizedActions.value.filter((action) => {\r\n if (!action.show) return true\r\n return action.show(slotProps.value)\r\n })\r\n})\r\n\r\nconst slotProps = computed<MermaidSlotProps>(() => ({\r\n showSourceCode: showSourceCode.value,\r\n svg: svg.value,\r\n rawContent: props.raw.content || '',\r\n isLoading: isLoading.value,\r\n copied: copied.value,\r\n zoomIn: handleZoomIn,\r\n zoomOut: handleZoomOut,\r\n reset: handleReset,\r\n fullscreen: handleFullscreen,\r\n toggleCode: handleToggleCode,\r\n copyCode: handleCopyCode,\r\n download: handleDownload,\r\n raw: props.raw,\r\n}))\r\n\r\nfunction renderActionIcon(action: MermaidAction): VNode | null {\r\n if (!action.icon) return null\r\n\r\n if (typeof action.icon === 'string') {\r\n return h('span', {\r\n class: 'mermaid-action-icon',\r\n innerHTML: action.icon,\r\n })\r\n }\r\n\r\n if (typeof action.icon === 'function') {\r\n try {\r\n const result = (action.icon as (props: MermaidSlotProps) => VNode)(slotProps.value)\r\n if (result && typeof result === 'object' && '__v_isVNode' in result) {\r\n return result\r\n }\r\n } catch {}\r\n return h(action.icon as any)\r\n }\r\n\r\n return h(action.icon as any)\r\n}\r\n\r\nfunction handleActionClick(action: MermaidAction) {\r\n if (action.disabled) return\r\n action.onClick?.(slotProps.value)\r\n}\r\n\r\nconst exposedMethods = computed(\r\n () =>\r\n ({\r\n showSourceCode: showSourceCode.value,\r\n svg: svg.value,\r\n rawContent: props.raw.content || '',\r\n isLoading: isLoading.value,\r\n copied: copied.value,\r\n zoomIn: handleZoomIn,\r\n zoomOut: handleZoomOut,\r\n reset: handleReset,\r\n fullscreen: handleFullscreen,\r\n toggleCode: handleToggleCode,\r\n copyCode: handleCopyCode,\r\n download: handleDownload,\r\n raw: props.raw,\r\n }) satisfies MermaidExposeProps,\r\n)\r\n\r\n// 组件挂载时检测 mermaid 是否可用\r\nonMounted(async () => {\r\n const hasMermaid = await checkMermaidAvailable()\r\n isDegraded.value = !hasMermaid\r\n})\r\n</script>\r\n\r\n<template>\r\n <!-- 当 Mermaid 不可用时(降级),渲染 CodeBlock -->\r\n <CodeBlock\r\n v-if=\"isDegraded\"\r\n :code=\"props.raw?.content || ''\"\r\n language=\"mermaid\"\r\n :is-dark=\"props.isDark\"\r\n :light-theme=\"props.shikiTheme[0]\"\r\n :dark-theme=\"props.shikiTheme[1]\"\r\n />\r\n\r\n <!-- 当 Mermaid 可用时,渲染完整的 Mermaid 组件 -->\r\n <div v-else :key=\"props.raw.key\" class=\"markdown-mermaid\" :class=\"{ 'markdown-mermaid--dark': props.isDark }\">\r\n <Transition name=\"toolbar\" appear>\r\n <div class=\"toolbar-container\">\r\n <slot name=\"mermaidHeader\" v-bind=\"exposedMethods\">\r\n <div class=\"mermaid-toolbar\">\r\n <div class=\"toolbar-left\">\r\n <div class=\"segmented-control\">\r\n <div class=\"segmented-slider\" :class=\"{ 'slide-right': activeTab === 'code' }\" />\r\n <div\r\n class=\"segment-item\"\r\n :class=\"{ active: activeTab === 'diagram' }\"\r\n @click=\"handleTabClick('diagram')\"\r\n >\r\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M12 2L2 7L12 12L22 7L12 2Z\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M2 17L12 22L22 17\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M2 12L12 17L22 12\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n <span>预览</span>\r\n </div>\r\n <div class=\"segment-item\" :class=\"{ active: activeTab === 'code' }\" @click=\"handleTabClick('code')\">\r\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M16 18L22 12L16 6\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M8 6L2 12L8 18\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n <span>代码</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"toolbar-right\">\r\n <slot name=\"mermaidActions\" v-bind=\"exposedMethods\">\r\n <div\r\n v-for=\"action in filteredActions\"\r\n :key=\"action.key\"\r\n class=\"toolbar-action-btn\"\r\n :class=\"[action.class, { 'toolbar-action-btn--disabled': action.disabled }]\"\r\n :style=\"action.style\"\r\n :title=\"action.title\"\r\n @click=\"handleActionClick(action)\"\r\n >\r\n <component :is=\"renderActionIcon(action)\" v-if=\"action.icon\" />\r\n </div>\r\n\r\n <template v-if=\"showSourceCode\">\r\n <div\r\n class=\"toolbar-action-btn\"\r\n :class=\"{ 'copy-success': copied }\"\r\n title=\"复制代码\"\r\n @click=\"handleCopyCode($event)\"\r\n >\r\n <svg\r\n v-if=\"copied\"\r\n width=\"16\"\r\n height=\"16\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 1024 1024\"\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z\"\r\n />\r\n </svg>\r\n <svg v-else width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M768 832a128 128 0 0 1-128 128H192A128 128 0 0 1 64 832V384a128 128 0 0 1 128-128v64a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64z\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M384 128a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64zm0-64h448a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H384a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64\"\r\n />\r\n </svg>\r\n </div>\r\n </template>\r\n\r\n <template v-else>\r\n <div class=\"toolbar-action-btn\" title=\"缩小\" @click=\"handleZoomOut($event)\">\r\n <svg width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704M352 448h256a32 32 0 0 1 0 64H352a32 32 0 0 1 0-64\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"toolbar-action-btn\" title=\"放大\" @click=\"handleZoomIn($event)\">\r\n <svg width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704m-32-384v-96a32 32 0 0 1 64 0v96h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64z\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"toolbar-action-btn\" title=\"重置\" @click=\"handleReset($event)\">\r\n <svg width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M512 96a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V128a32 32 0 0 1 32-32m0 576a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V704a32 32 0 0 1 32-32M96 512a32 32 0 0 1 32-32h192a32 32 0 0 1 0 64H128a32 32 0 0 1-32-32m576 0a32 32 0 0 1 32-32h192a32 32 0 1 1 0 64H704a32 32 0 0 1-32-32\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"toolbar-action-btn\" title=\"下载\" @click=\"handleDownload\">\r\n <svg width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 1024\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64z\"\r\n />\r\n </svg>\r\n </div>\r\n </template>\r\n </slot>\r\n </div>\r\n </div>\r\n </slot>\r\n </div>\r\n </Transition>\r\n\r\n <div v-show=\"showSourceCode\" class=\"mermaid-source-code\">\r\n <CodeBlock\r\n :code=\"props.raw?.content || ''\"\r\n language=\"mermaid\"\r\n :is-dark=\"props.isDark\"\r\n :light-theme=\"props.shikiTheme[0]\"\r\n :dark-theme=\"props.shikiTheme[1]\"\r\n :show-code-block-header=\"false\"\r\n :sticky-code-block-header=\"false\"\r\n />\r\n </div>\r\n\r\n <SyntaxMermaid\r\n v-show=\"!showSourceCode\"\r\n ref=\"syntaxMermaidRef\"\r\n :content=\"mermaidContent\"\r\n :id=\"mermaidId\"\r\n :is-dark=\"props.isDark\"\r\n :config=\"props.config\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<style>\r\n.markdown-mermaid {\r\n border-radius: 8px;\r\n overflow: hidden;\r\n font-size: 0;\r\n background: rgba(0, 0, 0, 0.03);\r\n}\r\n\r\n.markdown-mermaid.markdown-mermaid--dark {\r\n background: rgba(255, 255, 255, 0.13);\r\n}\r\n\r\n.markdown-mermaid .toolbar-container {\r\n position: relative;\r\n z-index: 10;\r\n flex-shrink: 0;\r\n background: rgba(0, 0, 0, 0.05);\r\n color: #333;\r\n}\r\n\r\n.markdown-mermaid.markdown-mermaid--dark .toolbar-container {\r\n background: rgba(0, 0, 0, 0.25);\r\n color: #fff;\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 8px 16px;\r\n background: transparent;\r\n color: inherit;\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .toolbar-left {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .segmented-control {\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n background: rgba(0, 0, 0, 0.06);\r\n border-radius: 6px;\r\n padding: 3px;\r\n gap: 2px;\r\n}\r\n\r\n.markdown-mermaid.markdown-mermaid--dark .mermaid-toolbar .segmented-control {\r\n background: rgba(255, 255, 255, 0.08);\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .segmented-slider {\r\n position: absolute;\r\n top: 3px;\r\n left: 3px;\r\n width: calc(50% - 4px);\r\n height: calc(100% - 6px);\r\n background: #fff;\r\n border-radius: 4px;\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\r\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\r\n z-index: 0;\r\n}\r\n\r\n.markdown-mermaid.markdown-mermaid--dark .mermaid-toolbar .segmented-slider {\r\n background: rgba(255, 255, 255, 0.15);\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .segmented-slider.slide-right {\r\n transform: translateX(calc(100% + 2px));\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .segment-item {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 4px;\r\n font-size: 12px;\r\n border: none;\r\n color: inherit;\r\n min-width: 60px;\r\n text-align: center;\r\n box-sizing: border-box;\r\n font-weight: 500;\r\n cursor: pointer;\r\n border-radius: 4px;\r\n padding: 5px 12px;\r\n transition: all 0.2s ease;\r\n background: transparent;\r\n opacity: 0.6;\r\n user-select: none;\r\n position: relative;\r\n z-index: 1;\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .segment-item.active {\r\n opacity: 1;\r\n}\r\n\r\n.markdown-mermaid.markdown-mermaid--dark .mermaid-toolbar .segment-item.active {\r\n color: #fff;\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .segment-item:hover {\r\n opacity: 1;\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .segment-item svg {\r\n flex-shrink: 0;\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .toolbar-right {\r\n display: flex;\r\n align-items: center;\r\n gap: 16px;\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .toolbar-action-btn {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 28px;\r\n height: 28px;\r\n padding: 0;\r\n border: none;\r\n border-radius: 4px;\r\n background: transparent;\r\n color: inherit;\r\n cursor: pointer;\r\n transition: all 0.2s ease;\r\n opacity: 0.7;\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .toolbar-action-btn:hover {\r\n opacity: 1;\r\n background: rgba(0, 0, 0, 0.08);\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .toolbar-action-btn.copy-success {\r\n opacity: 1;\r\n color: #22c55e;\r\n}\r\n\r\n.markdown-mermaid.markdown-mermaid--dark .mermaid-toolbar .toolbar-action-btn:hover {\r\n background: rgba(255, 255, 255, 0.1);\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .toolbar-action-btn.toolbar-action-btn--disabled {\r\n opacity: 0.3;\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .mermaid-action-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.markdown-mermaid .mermaid-toolbar .mermaid-action-icon :deep(svg) {\r\n width: 16px;\r\n height: 16px;\r\n flex-shrink: 0;\r\n}\r\n\r\n.markdown-mermaid .mermaid-source-code {\r\n position: relative;\r\n z-index: 1;\r\n flex: 1;\r\n width: 100%;\r\n overflow: auto;\r\n box-sizing: border-box;\r\n}\r\n\r\n.toolbar-enter-active,\r\n.toolbar-leave-active {\r\n transition: opacity 0.3s ease;\r\n}\r\n\r\n.toolbar-enter-from,\r\n.toolbar-leave-to {\r\n opacity: 0;\r\n}\r\n</style>\r\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_openBlock","_hoisted_1","_renderSlot","_createBlock","_createVNode","_Transition","_normalizeProps","_guardReactiveProps","_Fragment","_renderList","_normalizeStyle","_resolveDynamicComponent","_unref","_withDirectives","SyntaxMermaid"],"mappings":"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"}