@superlc/md-core 0.1.1 → 0.2.1

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 (118) hide show
  1. package/dist/_baseUniq-BfzcfZ4T.cjs +1 -0
  2. package/dist/_baseUniq-Y3ulau-C.js +477 -0
  3. package/dist/arc-Be_AVKBg.cjs +1 -0
  4. package/dist/arc-Ca7Zrknn.js +83 -0
  5. package/dist/architectureDiagram-VXUJARFQ-4Jx44yBn.cjs +36 -0
  6. package/dist/architectureDiagram-VXUJARFQ-DJeUU_qv.js +4665 -0
  7. package/dist/blockDiagram-VD42YOAC-BimcGKKd.cjs +122 -0
  8. package/dist/blockDiagram-VD42YOAC-D-giXjw6.js +2265 -0
  9. package/dist/c4Diagram-YG6GDRKO-Bl9iUUVb.cjs +10 -0
  10. package/dist/c4Diagram-YG6GDRKO-YxTtvGWw.js +1581 -0
  11. package/dist/channel-DOU_t-A5.js +5 -0
  12. package/dist/channel-DzR_mTuG.cjs +1 -0
  13. package/dist/chunk-4BX2VUAB-BT8x_a4k.cjs +1 -0
  14. package/dist/chunk-4BX2VUAB-qWjx6fvp.js +9 -0
  15. package/dist/chunk-55IACEB6-DRmMNyi7.js +8 -0
  16. package/dist/chunk-55IACEB6-DfzR1I2i.cjs +1 -0
  17. package/dist/chunk-B4BG7PRW-B4vBwkd7.js +1376 -0
  18. package/dist/chunk-B4BG7PRW-k_Ki7ZYa.cjs +165 -0
  19. package/dist/chunk-DI55MBZ5-67zt7BEa.cjs +220 -0
  20. package/dist/chunk-DI55MBZ5-B-Akunv8.js +1382 -0
  21. package/dist/chunk-FMBD7UC4-D-gJ-PKq.cjs +15 -0
  22. package/dist/chunk-FMBD7UC4-D1foMA2H.js +19 -0
  23. package/dist/chunk-QN33PNHL-DBsOH5IO.cjs +1 -0
  24. package/dist/chunk-QN33PNHL-DpeYRHMx.js +20 -0
  25. package/dist/chunk-QZHKN3VN-CWmChvMD.cjs +1 -0
  26. package/dist/chunk-QZHKN3VN-CoINyXCe.js +15 -0
  27. package/dist/chunk-TZMSLE5B-CMo-Qyqp.js +64 -0
  28. package/dist/chunk-TZMSLE5B-Psc_3Gkx.cjs +1 -0
  29. package/dist/classDiagram-2ON5EDUG-BrNHAA-E.js +16 -0
  30. package/dist/classDiagram-2ON5EDUG-CA1gbIW7.cjs +1 -0
  31. package/dist/classDiagram-v2-WZHVMYZB-BrNHAA-E.js +16 -0
  32. package/dist/classDiagram-v2-WZHVMYZB-CA1gbIW7.cjs +1 -0
  33. package/dist/clone-BOyua0mT.js +8 -0
  34. package/dist/clone-D7Rx0g6P.cjs +1 -0
  35. package/dist/cose-bilkent-S5V4N54A-BBcnamAX.cjs +1 -0
  36. package/dist/cose-bilkent-S5V4N54A-xbHM31av.js +2605 -0
  37. package/dist/cytoscape.esm-DkGgpG6d.cjs +331 -0
  38. package/dist/cytoscape.esm-ZmItrg9y.js +18731 -0
  39. package/dist/dagre-6UL2VRFP-B5ZJ9Mmw.cjs +4 -0
  40. package/dist/dagre-6UL2VRFP-lY6fElcy.js +446 -0
  41. package/dist/defaultLocale-BgPVtth8.js +171 -0
  42. package/dist/defaultLocale-C4wbwF1n.cjs +1 -0
  43. package/dist/diagram-PSM6KHXK-DOgpThfE.js +534 -0
  44. package/dist/diagram-PSM6KHXK-NUCrGNCX.cjs +24 -0
  45. package/dist/diagram-QEK2KX5R-CKpcqpBk.js +221 -0
  46. package/dist/diagram-QEK2KX5R-P-pWAYvp.cjs +43 -0
  47. package/dist/diagram-S2PKOQOG-B4PYQerv.cjs +24 -0
  48. package/dist/diagram-S2PKOQOG-CZn9lft8.js +143 -0
  49. package/dist/erDiagram-Q2GNP2WA-D6UL-dgf.js +842 -0
  50. package/dist/erDiagram-Q2GNP2WA-DwYOfnOX.cjs +60 -0
  51. package/dist/flowDiagram-NV44I4VS-BvuqC7lR.cjs +162 -0
  52. package/dist/flowDiagram-NV44I4VS-YPdRK_ji.js +1627 -0
  53. package/dist/ganttDiagram-JELNMOA3-CGnvf7yj.js +2662 -0
  54. package/dist/ganttDiagram-JELNMOA3-wbYrtCNf.cjs +267 -0
  55. package/dist/gitGraphDiagram-NY62KEGX-BnpFLmUy.js +712 -0
  56. package/dist/gitGraphDiagram-NY62KEGX-BzlCJL63.cjs +65 -0
  57. package/dist/graph-Bv0JC_B1.cjs +1 -0
  58. package/dist/graph-DwDboYRQ.js +381 -0
  59. package/dist/index-A-U0gtM4.js +15167 -0
  60. package/dist/index-BC30feOR.cjs +300 -0
  61. package/dist/index.cjs +1 -300
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +27 -14816
  65. package/dist/infoDiagram-WHAUD3N6-CPFFyZEz.cjs +2 -0
  66. package/dist/infoDiagram-WHAUD3N6-DF-Kn4KW.js +24 -0
  67. package/dist/init-CHZsXQcr.cjs +1 -0
  68. package/dist/init-DjUOC4st.js +16 -0
  69. package/dist/journeyDiagram-XKPGCS4Q-Bc3YJVQN.cjs +139 -0
  70. package/dist/journeyDiagram-XKPGCS4Q-CqUVbDan.js +836 -0
  71. package/dist/kanban-definition-3W4ZIXB7-BKxpdlfe.cjs +89 -0
  72. package/dist/kanban-definition-3W4ZIXB7-Zx7cVnZF.js +720 -0
  73. package/dist/layout-CrdknE74.js +1441 -0
  74. package/dist/layout-y4Mby5BC.cjs +1 -0
  75. package/dist/linear-D_NLLphh.cjs +1 -0
  76. package/dist/linear-Fqu_aevY.js +259 -0
  77. package/dist/mermaid/darkMode.d.ts +54 -0
  78. package/dist/mermaid/darkMode.d.ts.map +1 -0
  79. package/dist/mermaid/download.d.ts +27 -0
  80. package/dist/mermaid/download.d.ts.map +1 -0
  81. package/dist/mermaid/index.d.ts +9 -0
  82. package/dist/mermaid/index.d.ts.map +1 -0
  83. package/dist/mermaid/renderer.d.ts +36 -0
  84. package/dist/mermaid/renderer.d.ts.map +1 -0
  85. package/dist/mermaid/themes.d.ts +17 -0
  86. package/dist/mermaid/themes.d.ts.map +1 -0
  87. package/dist/mermaid/types.d.ts +117 -0
  88. package/dist/mermaid/types.d.ts.map +1 -0
  89. package/dist/mermaid.core-Buzus1hw.js +15321 -0
  90. package/dist/mermaid.core-CCMj67LO.cjs +255 -0
  91. package/dist/min-BNEwgiip.js +38 -0
  92. package/dist/min-CxfddLJo.cjs +1 -0
  93. package/dist/mindmap-definition-VGOIOE7T-C3sZAv1n.js +786 -0
  94. package/dist/mindmap-definition-VGOIOE7T-Cq9KhFIU.cjs +68 -0
  95. package/dist/ordinal-CagbB1m8.cjs +1 -0
  96. package/dist/ordinal-DfAQgscy.js +61 -0
  97. package/dist/pieDiagram-ADFJNKIX-Bib4GVaz.js +161 -0
  98. package/dist/pieDiagram-ADFJNKIX-CPJ4LdHJ.cjs +30 -0
  99. package/dist/quadrantDiagram-AYHSOK5B-Bw4qbzaI.js +1024 -0
  100. package/dist/quadrantDiagram-AYHSOK5B-Dldq3aFV.cjs +7 -0
  101. package/dist/requirementDiagram-UZGBJVZJ-BiMT5LBm.cjs +64 -0
  102. package/dist/requirementDiagram-UZGBJVZJ-DKt5E9D5.js +852 -0
  103. package/dist/sankeyDiagram-TZEHDZUN-BvqABFTj.cjs +10 -0
  104. package/dist/sankeyDiagram-TZEHDZUN-DPexJVr0.js +810 -0
  105. package/dist/sequenceDiagram-WL72ISMW-JcPuIgsZ.cjs +145 -0
  106. package/dist/sequenceDiagram-WL72ISMW-rx65Aq7k.js +2518 -0
  107. package/dist/stateDiagram-FKZM4ZOC-5jwz-EhH.cjs +1 -0
  108. package/dist/stateDiagram-FKZM4ZOC-D95elPzf.js +263 -0
  109. package/dist/stateDiagram-v2-4FDKWEC3-DKxcP1od.cjs +1 -0
  110. package/dist/stateDiagram-v2-4FDKWEC3-U8OyZJcH.js +16 -0
  111. package/dist/styles.css +292 -0
  112. package/dist/timeline-definition-IT6M3QCI-C_aFXPzu.cjs +61 -0
  113. package/dist/timeline-definition-IT6M3QCI-DzBIcxIH.js +801 -0
  114. package/dist/treemap-KMMF4GRG-CqQBq3TE.js +14157 -0
  115. package/dist/treemap-KMMF4GRG-DJHv4WOZ.cjs +128 -0
  116. package/dist/xychartDiagram-PRI3JC2R-M2dUh85s.cjs +7 -0
  117. package/dist/xychartDiagram-PRI3JC2R-ZNBNeiJf.js +1340 -0
  118. package/package.json +6 -2
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("./chunk-DI55MBZ5-67zt7BEa.cjs"),t=require("./mermaid.core-CCMj67LO.cjs"),T=require("./graph-Bv0JC_B1.cjs"),H=require("./layout-y4Mby5BC.cjs");var z=t.__name(e=>e.append("circle").attr("class","start-state").attr("r",t.getConfig2().state.sizeUnit).attr("cx",t.getConfig2().state.padding+t.getConfig2().state.sizeUnit).attr("cy",t.getConfig2().state.padding+t.getConfig2().state.sizeUnit),"drawStartState"),L=t.__name(e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t.getConfig2().state.textHeight).attr("class","divider").attr("x2",t.getConfig2().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),A=t.__name((e,n)=>{const d=e.append("text").attr("x",2*t.getConfig2().state.padding).attr("y",t.getConfig2().state.textHeight+2*t.getConfig2().state.padding).attr("font-size",t.getConfig2().state.fontSize).attr("class","state-title").text(n.id),g=d.node().getBBox();return e.insert("rect",":first-child").attr("x",t.getConfig2().state.padding).attr("y",t.getConfig2().state.padding).attr("width",g.width+2*t.getConfig2().state.padding).attr("height",g.height+2*t.getConfig2().state.padding).attr("rx",t.getConfig2().state.radius),d},"drawSimpleState"),P=t.__name((e,n)=>{const d=t.__name(function(c,m,y){const b=c.append("tspan").attr("x",2*t.getConfig2().state.padding).text(m);y||b.attr("dy",t.getConfig2().state.textHeight)},"addTspan"),o=e.append("text").attr("x",2*t.getConfig2().state.padding).attr("y",t.getConfig2().state.textHeight+1.3*t.getConfig2().state.padding).attr("font-size",t.getConfig2().state.fontSize).attr("class","state-title").text(n.descriptions[0]).node().getBBox(),l=o.height,p=e.append("text").attr("x",t.getConfig2().state.padding).attr("y",l+t.getConfig2().state.padding*.4+t.getConfig2().state.dividerMargin+t.getConfig2().state.textHeight).attr("class","state-description");let i=!0,r=!0;n.descriptions.forEach(function(c){i||(d(p,c,r),r=!1),i=!1});const C=e.append("line").attr("x1",t.getConfig2().state.padding).attr("y1",t.getConfig2().state.padding+l+t.getConfig2().state.dividerMargin/2).attr("y2",t.getConfig2().state.padding+l+t.getConfig2().state.dividerMargin/2).attr("class","descr-divider"),h=p.node().getBBox(),s=Math.max(h.width,o.width);return C.attr("x2",s+3*t.getConfig2().state.padding),e.insert("rect",":first-child").attr("x",t.getConfig2().state.padding).attr("y",t.getConfig2().state.padding).attr("width",s+2*t.getConfig2().state.padding).attr("height",h.height+l+2*t.getConfig2().state.padding).attr("rx",t.getConfig2().state.radius),e},"drawDescrState"),R=t.__name((e,n,d)=>{const g=t.getConfig2().state.padding,o=2*t.getConfig2().state.padding,l=e.node().getBBox(),p=l.width,i=l.x,r=e.append("text").attr("x",0).attr("y",t.getConfig2().state.titleShift).attr("font-size",t.getConfig2().state.fontSize).attr("class","state-title").text(n.id),h=r.node().getBBox().width+o;let s=Math.max(h,p);s===p&&(s=s+o);let c;const m=e.node().getBBox();n.doc,c=i-g,h>p&&(c=(p-s)/2+g),Math.abs(i-m.x)<g&&h>p&&(c=i-(h-p)/2);const y=1-t.getConfig2().state.textHeight;return e.insert("rect",":first-child").attr("x",c).attr("y",y).attr("class",d?"alt-composit":"composit").attr("width",s).attr("height",m.height+t.getConfig2().state.textHeight+t.getConfig2().state.titleShift+1).attr("rx","0"),r.attr("x",c+g),h<=p&&r.attr("x",i+(s-o)/2-h/2+g),e.insert("rect",":first-child").attr("x",c).attr("y",t.getConfig2().state.titleShift-t.getConfig2().state.textHeight-t.getConfig2().state.padding).attr("width",s).attr("height",t.getConfig2().state.textHeight*3).attr("rx",t.getConfig2().state.radius),e.insert("rect",":first-child").attr("x",c).attr("y",t.getConfig2().state.titleShift-t.getConfig2().state.textHeight-t.getConfig2().state.padding).attr("width",s).attr("height",m.height+3+2*t.getConfig2().state.textHeight).attr("rx",t.getConfig2().state.radius),e},"addTitleAndBox"),W=t.__name(e=>(e.append("circle").attr("class","end-state-outer").attr("r",t.getConfig2().state.sizeUnit+t.getConfig2().state.miniPadding).attr("cx",t.getConfig2().state.padding+t.getConfig2().state.sizeUnit+t.getConfig2().state.miniPadding).attr("cy",t.getConfig2().state.padding+t.getConfig2().state.sizeUnit+t.getConfig2().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t.getConfig2().state.sizeUnit).attr("cx",t.getConfig2().state.padding+t.getConfig2().state.sizeUnit+2).attr("cy",t.getConfig2().state.padding+t.getConfig2().state.sizeUnit+2)),"drawEndState"),G=t.__name((e,n)=>{let d=t.getConfig2().state.forkWidth,g=t.getConfig2().state.forkHeight;if(n.parentId){let o=d;d=g,g=o}return e.append("rect").style("stroke","black").style("fill","black").attr("width",d).attr("height",g).attr("x",t.getConfig2().state.padding).attr("y",t.getConfig2().state.padding)},"drawForkJoinState"),D=t.__name((e,n,d,g)=>{let o=0;const l=g.append("text");l.style("text-anchor","start"),l.attr("class","noteText");let p=e.replace(/\r\n/g,"<br/>");p=p.replace(/\n/g,"<br/>");const i=p.split(t.common_default.lineBreakRegex);let r=1.25*t.getConfig2().state.noteMargin;for(const C of i){const h=C.trim();if(h.length>0){const s=l.append("tspan");if(s.text(h),r===0){const c=s.node().getBBox();r+=c.height}o+=r,s.attr("x",n+t.getConfig2().state.noteMargin),s.attr("y",d+o+1.25*t.getConfig2().state.noteMargin)}}return{textWidth:l.node().getBBox().width,textHeight:o}},"_drawLongText"),U=t.__name((e,n)=>{n.attr("class","state-note");const d=n.append("rect").attr("x",0).attr("y",t.getConfig2().state.padding),g=n.append("g"),{textWidth:o,textHeight:l}=D(e,0,0,g);return d.attr("height",l+2*t.getConfig2().state.noteMargin),d.attr("width",o+t.getConfig2().state.noteMargin*2),d},"drawNote"),k=t.__name(function(e,n){const d=n.id,g={id:d,label:n.id,width:0,height:0},o=e.append("g").attr("id",d).attr("class","stateGroup");n.type==="start"&&z(o),n.type==="end"&&W(o),(n.type==="fork"||n.type==="join")&&G(o,n),n.type==="note"&&U(n.note.text,o),n.type==="divider"&&L(o),n.type==="default"&&n.descriptions.length===0&&A(o,n),n.type==="default"&&n.descriptions.length>0&&P(o,n);const l=o.node().getBBox();return g.width=l.width+2*t.getConfig2().state.padding,g.height=l.height+2*t.getConfig2().state.padding,g},"drawState"),N=0,F=t.__name(function(e,n,d){const g=t.__name(function(r){switch(r){case S.StateDB.relationType.AGGREGATION:return"aggregation";case S.StateDB.relationType.EXTENSION:return"extension";case S.StateDB.relationType.COMPOSITION:return"composition";case S.StateDB.relationType.DEPENDENCY:return"dependency"}},"getRelationType");n.points=n.points.filter(r=>!Number.isNaN(r.y));const o=n.points,l=t.line().x(function(r){return r.x}).y(function(r){return r.y}).curve(t.curveBasis),p=e.append("path").attr("d",l(o)).attr("id","edge"+N).attr("class","transition");let i="";if(t.getConfig2().state.arrowMarkerAbsolute&&(i=t.getUrl(!0)),p.attr("marker-end","url("+i+"#"+g(S.StateDB.relationType.DEPENDENCY)+"End)"),d.title!==void 0){const r=e.append("g").attr("class","stateLabel"),{x:C,y:h}=t.utils_default.calcLabelPosition(n.points),s=t.common_default.getRows(d.title);let c=0;const m=[];let y=0,b=0;for(let x=0;x<=s.length;x++){const f=r.append("text").attr("text-anchor","middle").text(s[x]).attr("x",C).attr("y",h+c),u=f.node().getBBox();y=Math.max(y,u.width),b=Math.min(b,u.x),t.log.info(u.x,C,h+c),c===0&&(c=f.node().getBBox().height,t.log.info("Title height",c,h)),m.push(f)}let _=c*s.length;if(s.length>1){const x=(s.length-1)*c*.5;m.forEach((f,u)=>f.attr("y",h+u*c-x)),_=c*s.length}const a=r.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",C-y/2-t.getConfig2().state.padding/2).attr("y",h-_/2-t.getConfig2().state.padding/2-3.5).attr("width",y+t.getConfig2().state.padding).attr("height",_+t.getConfig2().state.padding),t.log.info(a)}N++},"drawEdge"),w,E={},O=t.__name(function(){},"setConf"),q=t.__name(function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),J=t.__name(function(e,n,d,g){w=t.getConfig2().state;const o=t.getConfig2().securityLevel;let l;o==="sandbox"&&(l=t.select("#i"+n));const p=o==="sandbox"?t.select(l.nodes()[0].contentDocument.body):t.select("body"),i=o==="sandbox"?l.nodes()[0].contentDocument:document;t.log.debug("Rendering diagram "+e);const r=p.select(`[id='${n}']`);q(r);const C=g.db.getRootDoc();M(C,r,void 0,!1,p,i,g);const h=w.padding,s=r.node().getBBox(),c=s.width+h*2,m=s.height+h*2,y=c*1.75;t.configureSvgSize(r,m,y,w.useMaxWidth),r.attr("viewBox",`${s.x-w.padding} ${s.y-w.padding} `+c+" "+m)},"draw"),X=t.__name(e=>e?e.length*w.fontSizeFactor:1,"getLabelWidth"),M=t.__name((e,n,d,g,o,l,p)=>{const i=new T.Graph({compound:!0,multigraph:!0});let r,C=!0;for(r=0;r<e.length;r++)if(e[r].stmt==="relation"){C=!1;break}d?i.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:C?1:w.edgeLengthFactor,nodeSep:C?1:50,isMultiGraph:!0}):i.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:C?1:w.edgeLengthFactor,nodeSep:C?1:50,ranker:"tight-tree",isMultiGraph:!0}),i.setDefaultEdgeLabel(function(){return{}});const h=p.db.getStates(),s=p.db.getRelations(),c=Object.keys(h);for(const a of c){const x=h[a];d&&(x.parentId=d);let f;if(x.doc){let u=n.append("g").attr("id",x.id).attr("class","stateGroup");f=M(x.doc,u,x.id,!g,o,l,p);{u=R(u,x,g);let B=u.node().getBBox();f.width=B.width,f.height=B.height+w.padding/2,E[x.id]={y:w.compositTitleSize}}}else f=k(n,x,i);if(x.note){const u={descriptions:[],id:x.id+"-note",note:x.note,type:"note"},B=k(n,u,i);x.note.position==="left of"?(i.setNode(f.id+"-note",B),i.setNode(f.id,f)):(i.setNode(f.id,f),i.setNode(f.id+"-note",B)),i.setParent(f.id,f.id+"-group"),i.setParent(f.id+"-note",f.id+"-group")}else i.setNode(f.id,f)}t.log.debug("Count=",i.nodeCount(),i);let m=0;s.forEach(function(a){m++,t.log.debug("Setting edge",a),i.setEdge(a.id1,a.id2,{relation:a,width:X(a.title),height:w.labelHeight*t.common_default.getRows(a.title).length,labelpos:"c"},"id"+m)}),H.layout(i),t.log.debug("Graph after layout",i.nodes());const y=n.node();i.nodes().forEach(function(a){a!==void 0&&i.node(a)!==void 0?(t.log.warn("Node "+a+": "+JSON.stringify(i.node(a))),o.select("#"+y.id+" #"+a).attr("transform","translate("+(i.node(a).x-i.node(a).width/2)+","+(i.node(a).y+(E[a]?E[a].y:0)-i.node(a).height/2)+" )"),o.select("#"+y.id+" #"+a).attr("data-x-shift",i.node(a).x-i.node(a).width/2),l.querySelectorAll("#"+y.id+" #"+a+" .divider").forEach(f=>{const u=f.parentElement;let B=0,v=0;u&&(u.parentElement&&(B=u.parentElement.getBBox().width),v=parseInt(u.getAttribute("data-x-shift"),10),Number.isNaN(v)&&(v=0)),f.setAttribute("x1",0-v+8),f.setAttribute("x2",B-v-8)})):t.log.debug("No Node "+a+": "+JSON.stringify(i.node(a)))});let b=y.getBBox();i.edges().forEach(function(a){a!==void 0&&i.edge(a)!==void 0&&(t.log.debug("Edge "+a.v+" -> "+a.w+": "+JSON.stringify(i.edge(a))),F(n,i.edge(a),i.edge(a).relation))}),b=y.getBBox();const _={id:d||"root",label:d||"root",width:0,height:0};return _.width=b.width+2*w.padding,_.height=b.height+2*w.padding,t.log.debug("Doc rendered",_,i),_},"renderDoc"),I={setConf:O,draw:J},Y={parser:S.stateDiagram_default,get db(){return new S.StateDB(1)},renderer:I,styles:S.styles_default,init:t.__name(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};exports.diagram=Y;
@@ -0,0 +1,263 @@
1
+ import { s as G, a as W, S as N } from "./chunk-DI55MBZ5-B-Akunv8.js";
2
+ import { _ as f, c as t, d as H, l as S, e as P, k as z, R as _, S as U, O as C, u as F } from "./mermaid.core-Buzus1hw.js";
3
+ import { G as O } from "./graph-DwDboYRQ.js";
4
+ import { l as J } from "./layout-CrdknE74.js";
5
+ var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit).attr("cy", t().state.padding + t().state.sizeUnit), "drawStartState"), D = /* @__PURE__ */ f((e) => e.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", t().state.textHeight).attr("class", "divider").attr("x2", t().state.textHeight * 2).attr("y1", 0).attr("y2", 0), "drawDivider"), Y = /* @__PURE__ */ f((e, i) => {
6
+ const d = e.append("text").attr("x", 2 * t().state.padding).attr("y", t().state.textHeight + 2 * t().state.padding).attr("font-size", t().state.fontSize).attr("class", "state-title").text(i.id), c = d.node().getBBox();
7
+ return e.insert("rect", ":first-child").attr("x", t().state.padding).attr("y", t().state.padding).attr("width", c.width + 2 * t().state.padding).attr("height", c.height + 2 * t().state.padding).attr("rx", t().state.radius), d;
8
+ }, "drawSimpleState"), I = /* @__PURE__ */ f((e, i) => {
9
+ const d = /* @__PURE__ */ f(function(g, m, B) {
10
+ const E = g.append("tspan").attr("x", 2 * t().state.padding).text(m);
11
+ B || E.attr("dy", t().state.textHeight);
12
+ }, "addTspan"), n = e.append("text").attr("x", 2 * t().state.padding).attr("y", t().state.textHeight + 1.3 * t().state.padding).attr("font-size", t().state.fontSize).attr("class", "state-title").text(i.descriptions[0]).node().getBBox(), l = n.height, x = e.append("text").attr("x", t().state.padding).attr(
13
+ "y",
14
+ l + t().state.padding * 0.4 + t().state.dividerMargin + t().state.textHeight
15
+ ).attr("class", "state-description");
16
+ let a = !0, s = !0;
17
+ i.descriptions.forEach(function(g) {
18
+ a || (d(x, g, s), s = !1), a = !1;
19
+ });
20
+ const w = e.append("line").attr("x1", t().state.padding).attr("y1", t().state.padding + l + t().state.dividerMargin / 2).attr("y2", t().state.padding + l + t().state.dividerMargin / 2).attr("class", "descr-divider"), p = x.node().getBBox(), o = Math.max(p.width, n.width);
21
+ return w.attr("x2", o + 3 * t().state.padding), e.insert("rect", ":first-child").attr("x", t().state.padding).attr("y", t().state.padding).attr("width", o + 2 * t().state.padding).attr("height", p.height + l + 2 * t().state.padding).attr("rx", t().state.radius), e;
22
+ }, "drawDescrState"), $ = /* @__PURE__ */ f((e, i, d) => {
23
+ const c = t().state.padding, n = 2 * t().state.padding, l = e.node().getBBox(), x = l.width, a = l.x, s = e.append("text").attr("x", 0).attr("y", t().state.titleShift).attr("font-size", t().state.fontSize).attr("class", "state-title").text(i.id), p = s.node().getBBox().width + n;
24
+ let o = Math.max(p, x);
25
+ o === x && (o = o + n);
26
+ let g;
27
+ const m = e.node().getBBox();
28
+ i.doc, g = a - c, p > x && (g = (x - o) / 2 + c), Math.abs(a - m.x) < c && p > x && (g = a - (p - x) / 2);
29
+ const B = 1 - t().state.textHeight;
30
+ return e.insert("rect", ":first-child").attr("x", g).attr("y", B).attr("class", d ? "alt-composit" : "composit").attr("width", o).attr(
31
+ "height",
32
+ m.height + t().state.textHeight + t().state.titleShift + 1
33
+ ).attr("rx", "0"), s.attr("x", g + c), p <= x && s.attr("x", a + (o - n) / 2 - p / 2 + c), e.insert("rect", ":first-child").attr("x", g).attr(
34
+ "y",
35
+ t().state.titleShift - t().state.textHeight - t().state.padding
36
+ ).attr("width", o).attr("height", t().state.textHeight * 3).attr("rx", t().state.radius), e.insert("rect", ":first-child").attr("x", g).attr(
37
+ "y",
38
+ t().state.titleShift - t().state.textHeight - t().state.padding
39
+ ).attr("width", o).attr("height", m.height + 3 + 2 * t().state.textHeight).attr("rx", t().state.radius), e;
40
+ }, "addTitleAndBox"), q = /* @__PURE__ */ f((e) => (e.append("circle").attr("class", "end-state-outer").attr("r", t().state.sizeUnit + t().state.miniPadding).attr(
41
+ "cx",
42
+ t().state.padding + t().state.sizeUnit + t().state.miniPadding
43
+ ).attr(
44
+ "cy",
45
+ t().state.padding + t().state.sizeUnit + t().state.miniPadding
46
+ ), e.append("circle").attr("class", "end-state-inner").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit + 2).attr("cy", t().state.padding + t().state.sizeUnit + 2)), "drawEndState"), Z = /* @__PURE__ */ f((e, i) => {
47
+ let d = t().state.forkWidth, c = t().state.forkHeight;
48
+ if (i.parentId) {
49
+ let n = d;
50
+ d = c, c = n;
51
+ }
52
+ return e.append("rect").style("stroke", "black").style("fill", "black").attr("width", d).attr("height", c).attr("x", t().state.padding).attr("y", t().state.padding);
53
+ }, "drawForkJoinState"), j = /* @__PURE__ */ f((e, i, d, c) => {
54
+ let n = 0;
55
+ const l = c.append("text");
56
+ l.style("text-anchor", "start"), l.attr("class", "noteText");
57
+ let x = e.replace(/\r\n/g, "<br/>");
58
+ x = x.replace(/\n/g, "<br/>");
59
+ const a = x.split(z.lineBreakRegex);
60
+ let s = 1.25 * t().state.noteMargin;
61
+ for (const w of a) {
62
+ const p = w.trim();
63
+ if (p.length > 0) {
64
+ const o = l.append("tspan");
65
+ if (o.text(p), s === 0) {
66
+ const g = o.node().getBBox();
67
+ s += g.height;
68
+ }
69
+ n += s, o.attr("x", i + t().state.noteMargin), o.attr("y", d + n + 1.25 * t().state.noteMargin);
70
+ }
71
+ }
72
+ return { textWidth: l.node().getBBox().width, textHeight: n };
73
+ }, "_drawLongText"), K = /* @__PURE__ */ f((e, i) => {
74
+ i.attr("class", "state-note");
75
+ const d = i.append("rect").attr("x", 0).attr("y", t().state.padding), c = i.append("g"), { textWidth: n, textHeight: l } = j(e, 0, 0, c);
76
+ return d.attr("height", l + 2 * t().state.noteMargin), d.attr("width", n + t().state.noteMargin * 2), d;
77
+ }, "drawNote"), L = /* @__PURE__ */ f(function(e, i) {
78
+ const d = i.id, c = {
79
+ id: d,
80
+ label: i.id,
81
+ width: 0,
82
+ height: 0
83
+ }, n = e.append("g").attr("id", d).attr("class", "stateGroup");
84
+ i.type === "start" && X(n), i.type === "end" && q(n), (i.type === "fork" || i.type === "join") && Z(n, i), i.type === "note" && K(i.note.text, n), i.type === "divider" && D(n), i.type === "default" && i.descriptions.length === 0 && Y(n, i), i.type === "default" && i.descriptions.length > 0 && I(n, i);
85
+ const l = n.node().getBBox();
86
+ return c.width = l.width + 2 * t().state.padding, c.height = l.height + 2 * t().state.padding, c;
87
+ }, "drawState"), R = 0, Q = /* @__PURE__ */ f(function(e, i, d) {
88
+ const c = /* @__PURE__ */ f(function(s) {
89
+ switch (s) {
90
+ case N.relationType.AGGREGATION:
91
+ return "aggregation";
92
+ case N.relationType.EXTENSION:
93
+ return "extension";
94
+ case N.relationType.COMPOSITION:
95
+ return "composition";
96
+ case N.relationType.DEPENDENCY:
97
+ return "dependency";
98
+ }
99
+ }, "getRelationType");
100
+ i.points = i.points.filter((s) => !Number.isNaN(s.y));
101
+ const n = i.points, l = _().x(function(s) {
102
+ return s.x;
103
+ }).y(function(s) {
104
+ return s.y;
105
+ }).curve(U), x = e.append("path").attr("d", l(n)).attr("id", "edge" + R).attr("class", "transition");
106
+ let a = "";
107
+ if (t().state.arrowMarkerAbsolute && (a = C(!0)), x.attr(
108
+ "marker-end",
109
+ "url(" + a + "#" + c(N.relationType.DEPENDENCY) + "End)"
110
+ ), d.title !== void 0) {
111
+ const s = e.append("g").attr("class", "stateLabel"), { x: w, y: p } = F.calcLabelPosition(i.points), o = z.getRows(d.title);
112
+ let g = 0;
113
+ const m = [];
114
+ let B = 0, E = 0;
115
+ for (let u = 0; u <= o.length; u++) {
116
+ const h = s.append("text").attr("text-anchor", "middle").text(o[u]).attr("x", w).attr("y", p + g), y = h.node().getBBox();
117
+ B = Math.max(B, y.width), E = Math.min(E, y.x), S.info(y.x, w, p + g), g === 0 && (g = h.node().getBBox().height, S.info("Title height", g, p)), m.push(h);
118
+ }
119
+ let k = g * o.length;
120
+ if (o.length > 1) {
121
+ const u = (o.length - 1) * g * 0.5;
122
+ m.forEach((h, y) => h.attr("y", p + y * g - u)), k = g * o.length;
123
+ }
124
+ const r = s.node().getBBox();
125
+ s.insert("rect", ":first-child").attr("class", "box").attr("x", w - B / 2 - t().state.padding / 2).attr("y", p - k / 2 - t().state.padding / 2 - 3.5).attr("width", B + t().state.padding).attr("height", k + t().state.padding), S.info(r);
126
+ }
127
+ R++;
128
+ }, "drawEdge"), b, T = {}, V = /* @__PURE__ */ f(function() {
129
+ }, "setConf"), tt = /* @__PURE__ */ f(function(e) {
130
+ e.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
131
+ }, "insertMarkers"), et = /* @__PURE__ */ f(function(e, i, d, c) {
132
+ b = t().state;
133
+ const n = t().securityLevel;
134
+ let l;
135
+ n === "sandbox" && (l = H("#i" + i));
136
+ const x = n === "sandbox" ? H(l.nodes()[0].contentDocument.body) : H("body"), a = n === "sandbox" ? l.nodes()[0].contentDocument : document;
137
+ S.debug("Rendering diagram " + e);
138
+ const s = x.select(`[id='${i}']`);
139
+ tt(s);
140
+ const w = c.db.getRootDoc();
141
+ A(w, s, void 0, !1, x, a, c);
142
+ const p = b.padding, o = s.node().getBBox(), g = o.width + p * 2, m = o.height + p * 2, B = g * 1.75;
143
+ P(s, m, B, b.useMaxWidth), s.attr(
144
+ "viewBox",
145
+ `${o.x - b.padding} ${o.y - b.padding} ` + g + " " + m
146
+ );
147
+ }, "draw"), at = /* @__PURE__ */ f((e) => e ? e.length * b.fontSizeFactor : 1, "getLabelWidth"), A = /* @__PURE__ */ f((e, i, d, c, n, l, x) => {
148
+ const a = new O({
149
+ compound: !0,
150
+ multigraph: !0
151
+ });
152
+ let s, w = !0;
153
+ for (s = 0; s < e.length; s++)
154
+ if (e[s].stmt === "relation") {
155
+ w = !1;
156
+ break;
157
+ }
158
+ d ? a.setGraph({
159
+ rankdir: "LR",
160
+ multigraph: !0,
161
+ compound: !0,
162
+ // acyclicer: 'greedy',
163
+ ranker: "tight-tree",
164
+ ranksep: w ? 1 : b.edgeLengthFactor,
165
+ nodeSep: w ? 1 : 50,
166
+ isMultiGraph: !0
167
+ // ranksep: 5,
168
+ // nodesep: 1
169
+ }) : a.setGraph({
170
+ rankdir: "TB",
171
+ multigraph: !0,
172
+ compound: !0,
173
+ // isCompound: true,
174
+ // acyclicer: 'greedy',
175
+ // ranker: 'longest-path'
176
+ ranksep: w ? 1 : b.edgeLengthFactor,
177
+ nodeSep: w ? 1 : 50,
178
+ ranker: "tight-tree",
179
+ // ranker: 'network-simplex'
180
+ isMultiGraph: !0
181
+ }), a.setDefaultEdgeLabel(function() {
182
+ return {};
183
+ });
184
+ const p = x.db.getStates(), o = x.db.getRelations(), g = Object.keys(p);
185
+ for (const r of g) {
186
+ const u = p[r];
187
+ d && (u.parentId = d);
188
+ let h;
189
+ if (u.doc) {
190
+ let y = i.append("g").attr("id", u.id).attr("class", "stateGroup");
191
+ h = A(u.doc, y, u.id, !c, n, l, x);
192
+ {
193
+ y = $(y, u, c);
194
+ let v = y.node().getBBox();
195
+ h.width = v.width, h.height = v.height + b.padding / 2, T[u.id] = { y: b.compositTitleSize };
196
+ }
197
+ } else
198
+ h = L(i, u, a);
199
+ if (u.note) {
200
+ const y = {
201
+ descriptions: [],
202
+ id: u.id + "-note",
203
+ note: u.note,
204
+ type: "note"
205
+ }, v = L(i, y, a);
206
+ u.note.position === "left of" ? (a.setNode(h.id + "-note", v), a.setNode(h.id, h)) : (a.setNode(h.id, h), a.setNode(h.id + "-note", v)), a.setParent(h.id, h.id + "-group"), a.setParent(h.id + "-note", h.id + "-group");
207
+ } else
208
+ a.setNode(h.id, h);
209
+ }
210
+ S.debug("Count=", a.nodeCount(), a);
211
+ let m = 0;
212
+ o.forEach(function(r) {
213
+ m++, S.debug("Setting edge", r), a.setEdge(
214
+ r.id1,
215
+ r.id2,
216
+ {
217
+ relation: r,
218
+ width: at(r.title),
219
+ height: b.labelHeight * z.getRows(r.title).length,
220
+ labelpos: "c"
221
+ },
222
+ "id" + m
223
+ );
224
+ }), J(a), S.debug("Graph after layout", a.nodes());
225
+ const B = i.node();
226
+ a.nodes().forEach(function(r) {
227
+ r !== void 0 && a.node(r) !== void 0 ? (S.warn("Node " + r + ": " + JSON.stringify(a.node(r))), n.select("#" + B.id + " #" + r).attr(
228
+ "transform",
229
+ "translate(" + (a.node(r).x - a.node(r).width / 2) + "," + (a.node(r).y + (T[r] ? T[r].y : 0) - a.node(r).height / 2) + " )"
230
+ ), n.select("#" + B.id + " #" + r).attr("data-x-shift", a.node(r).x - a.node(r).width / 2), l.querySelectorAll("#" + B.id + " #" + r + " .divider").forEach((h) => {
231
+ const y = h.parentElement;
232
+ let v = 0, M = 0;
233
+ y && (y.parentElement && (v = y.parentElement.getBBox().width), M = parseInt(y.getAttribute("data-x-shift"), 10), Number.isNaN(M) && (M = 0)), h.setAttribute("x1", 0 - M + 8), h.setAttribute("x2", v - M - 8);
234
+ })) : S.debug("No Node " + r + ": " + JSON.stringify(a.node(r)));
235
+ });
236
+ let E = B.getBBox();
237
+ a.edges().forEach(function(r) {
238
+ r !== void 0 && a.edge(r) !== void 0 && (S.debug("Edge " + r.v + " -> " + r.w + ": " + JSON.stringify(a.edge(r))), Q(i, a.edge(r), a.edge(r).relation));
239
+ }), E = B.getBBox();
240
+ const k = {
241
+ id: d || "root",
242
+ label: d || "root",
243
+ width: 0,
244
+ height: 0
245
+ };
246
+ return k.width = E.width + 2 * b.padding, k.height = E.height + 2 * b.padding, S.debug("Doc rendered", k, a), k;
247
+ }, "renderDoc"), it = {
248
+ setConf: V,
249
+ draw: et
250
+ }, ot = {
251
+ parser: W,
252
+ get db() {
253
+ return new N(1);
254
+ },
255
+ renderer: it,
256
+ styles: G,
257
+ init: /* @__PURE__ */ f((e) => {
258
+ e.state || (e.state = {}), e.state.arrowMarkerAbsolute = e.arrowMarkerAbsolute;
259
+ }, "init")
260
+ };
261
+ export {
262
+ ot as diagram
263
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-DI55MBZ5-67zt7BEa.cjs"),t=require("./mermaid.core-CCMj67LO.cjs");var a={parser:r.stateDiagram_default,get db(){return new r.StateDB(2)},renderer:r.stateRenderer_v3_unified_default,styles:r.styles_default,init:t.__name(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};exports.diagram=a;
@@ -0,0 +1,16 @@
1
+ import { s as a, b as t, a as r, S as s } from "./chunk-DI55MBZ5-B-Akunv8.js";
2
+ import { _ as i } from "./mermaid.core-Buzus1hw.js";
3
+ var _ = {
4
+ parser: r,
5
+ get db() {
6
+ return new s(2);
7
+ },
8
+ renderer: t,
9
+ styles: a,
10
+ init: /* @__PURE__ */ i((e) => {
11
+ e.state || (e.state = {}), e.state.arrowMarkerAbsolute = e.arrowMarkerAbsolute;
12
+ }, "init")
13
+ };
14
+ export {
15
+ _ as diagram
16
+ };
package/dist/styles.css CHANGED
@@ -597,4 +597,296 @@
597
597
  ======================================== */
598
598
  .katex-error {
599
599
  color: inherit !important;
600
+ }
601
+
602
+ /* ========================================
603
+ Mermaid 图表块样式
604
+ ======================================== */
605
+
606
+ /* CSS 变量 - 浅色模式 */
607
+ :root,
608
+ .md-light {
609
+ --md-mermaid-bg: var(--md-color-bg-code-block);
610
+ --md-mermaid-border: var(--md-color-border);
611
+ --md-mermaid-toolbar-bg: rgba(0, 0, 0, 0.03);
612
+ --md-mermaid-toolbar-btn-bg: transparent;
613
+ --md-mermaid-toolbar-btn-bg-hover: rgba(0, 0, 0, 0.08);
614
+ --md-mermaid-toolbar-btn-bg-active: rgba(0, 0, 0, 0.12);
615
+ --md-mermaid-toolbar-btn-color: var(--md-color-text-muted);
616
+ --md-mermaid-toolbar-btn-color-hover: var(--md-color-text);
617
+ --md-mermaid-error-bg: rgba(239, 68, 68, 0.1);
618
+ --md-mermaid-error-color: #dc2626;
619
+ }
620
+
621
+ /* CSS 变量 - 暗黑模式 */
622
+ @media (prefers-color-scheme: dark) {
623
+ :root:not(.md-light) {
624
+ --md-mermaid-bg: var(--md-color-bg-code-block);
625
+ --md-mermaid-border: var(--md-color-border);
626
+ --md-mermaid-toolbar-bg: rgba(255, 255, 255, 0.05);
627
+ --md-mermaid-toolbar-btn-bg: transparent;
628
+ --md-mermaid-toolbar-btn-bg-hover: rgba(255, 255, 255, 0.1);
629
+ --md-mermaid-toolbar-btn-bg-active: rgba(255, 255, 255, 0.15);
630
+ --md-mermaid-toolbar-btn-color: var(--md-color-text-muted);
631
+ --md-mermaid-toolbar-btn-color-hover: var(--md-color-text);
632
+ --md-mermaid-error-bg: rgba(239, 68, 68, 0.15);
633
+ --md-mermaid-error-color: #f87171;
634
+ }
635
+ }
636
+
637
+ .md-dark {
638
+ --md-mermaid-bg: var(--md-color-bg-code-block);
639
+ --md-mermaid-border: var(--md-color-border);
640
+ --md-mermaid-toolbar-bg: rgba(255, 255, 255, 0.05);
641
+ --md-mermaid-toolbar-btn-bg: transparent;
642
+ --md-mermaid-toolbar-btn-bg-hover: rgba(255, 255, 255, 0.1);
643
+ --md-mermaid-toolbar-btn-bg-active: rgba(255, 255, 255, 0.15);
644
+ --md-mermaid-toolbar-btn-color: var(--md-color-text-muted);
645
+ --md-mermaid-toolbar-btn-color-hover: var(--md-color-text);
646
+ --md-mermaid-error-bg: rgba(239, 68, 68, 0.15);
647
+ --md-mermaid-error-color: #f87171;
648
+ }
649
+
650
+ /* Mermaid 块容器 */
651
+ .md-mermaid-block {
652
+ position: relative;
653
+ border-radius: var(--md-radius);
654
+ overflow: hidden;
655
+ border: 1px solid var(--md-mermaid-border);
656
+ background-color: var(--md-mermaid-bg);
657
+ }
658
+
659
+ /* Mermaid 工具栏 */
660
+ .md-mermaid-toolbar {
661
+ display: flex;
662
+ align-items: center;
663
+ justify-content: space-between;
664
+ padding: 6px 8px;
665
+ gap: 8px;
666
+ background-color: var(--md-mermaid-toolbar-bg);
667
+ border-bottom: 1px solid var(--md-mermaid-border);
668
+ }
669
+
670
+ .md-mermaid-toolbar-group {
671
+ display: flex;
672
+ align-items: center;
673
+ gap: 4px;
674
+ }
675
+
676
+ .md-mermaid-toolbar-divider {
677
+ width: 1px;
678
+ height: 16px;
679
+ background-color: var(--md-mermaid-border);
680
+ margin: 0 4px;
681
+ }
682
+
683
+ .md-mermaid-mode-switch {
684
+ background-color: var(--md-mermaid-toolbar-btn-bg-hover);
685
+ border-radius: var(--md-radius-sm);
686
+ padding: 2px;
687
+ }
688
+
689
+ /* 工具栏按钮 */
690
+ .md-mermaid-toolbar-btn {
691
+ display: flex;
692
+ align-items: center;
693
+ justify-content: center;
694
+ width: 28px;
695
+ height: 28px;
696
+ padding: 0;
697
+ border: none;
698
+ border-radius: var(--md-radius-sm);
699
+ background-color: var(--md-mermaid-toolbar-btn-bg);
700
+ color: var(--md-mermaid-toolbar-btn-color);
701
+ cursor: pointer;
702
+ transition: background-color 0.15s, color 0.15s;
703
+ }
704
+
705
+ .md-mermaid-toolbar-btn:hover:not(:disabled) {
706
+ background-color: var(--md-mermaid-toolbar-btn-bg-hover);
707
+ color: var(--md-mermaid-toolbar-btn-color-hover);
708
+ }
709
+
710
+ .md-mermaid-toolbar-btn:active:not(:disabled) {
711
+ background-color: var(--md-mermaid-toolbar-btn-bg-active);
712
+ }
713
+
714
+ .md-mermaid-toolbar-btn:disabled {
715
+ opacity: 0.4;
716
+ cursor: not-allowed;
717
+ }
718
+
719
+ .md-mermaid-toolbar-btn--active {
720
+ background-color: var(--md-mermaid-toolbar-btn-bg-active);
721
+ color: var(--md-mermaid-toolbar-btn-color-hover);
722
+ }
723
+
724
+ .md-mermaid-toolbar-btn--success {
725
+ color: var(--md-copy-button-success);
726
+ }
727
+
728
+ .md-mermaid-toolbar-btn--close:hover {
729
+ background-color: rgba(239, 68, 68, 0.2);
730
+ color: #ef4444;
731
+ }
732
+
733
+ .md-mermaid-toolbar-btn svg {
734
+ width: 16px;
735
+ height: 16px;
736
+ }
737
+
738
+ /* 缩放百分比标签 */
739
+ .md-mermaid-zoom-label {
740
+ min-width: 42px;
741
+ text-align: center;
742
+ font-size: 12px;
743
+ font-family: var(--md-font-family-mono);
744
+ color: var(--md-mermaid-toolbar-btn-color);
745
+ user-select: none;
746
+ }
747
+
748
+ /* Mermaid 内容区域 */
749
+ .md-mermaid-content {
750
+ position: relative;
751
+ min-height: 100px;
752
+ }
753
+
754
+ /* 预览模式 */
755
+ .md-mermaid-preview {
756
+ display: flex;
757
+ align-items: center;
758
+ justify-content: center;
759
+ padding: 16px;
760
+ min-height: 120px;
761
+ overflow: hidden;
762
+ }
763
+
764
+ .md-mermaid-svg-container {
765
+ display: flex;
766
+ align-items: center;
767
+ justify-content: center;
768
+ transform-origin: center center;
769
+ }
770
+
771
+ .md-mermaid-svg-container svg {
772
+ max-width: 100%;
773
+ height: auto;
774
+ }
775
+
776
+ /* 代码模式 */
777
+ .md-mermaid-code {
778
+ position: relative;
779
+ }
780
+
781
+ .md-mermaid-code pre {
782
+ margin: 0;
783
+ border-radius: 0;
784
+ background-color: var(--md-mermaid-bg);
785
+ }
786
+
787
+ .md-mermaid-code pre code {
788
+ color: var(--md-color-text);
789
+ }
790
+
791
+ /* 错误提示 */
792
+ .md-mermaid-error {
793
+ padding: 8px 12px;
794
+ font-size: 13px;
795
+ background-color: var(--md-mermaid-error-bg);
796
+ color: var(--md-mermaid-error-color);
797
+ border-top: 1px solid currentColor;
798
+ }
799
+
800
+ /* Loading 骨架屏 */
801
+ .md-mermaid-skeleton {
802
+ padding: 20px;
803
+ display: flex;
804
+ align-items: center;
805
+ justify-content: center;
806
+ }
807
+
808
+ .md-mermaid-skeleton-box {
809
+ width: 100%;
810
+ height: 150px;
811
+ background-color: var(--md-skeleton-bg);
812
+ background-image: linear-gradient(90deg, var(--md-skeleton-bg) 0%, var(--md-skeleton-shine) 50%, var(--md-skeleton-bg) 100%);
813
+ background-size: 200% 100%;
814
+ animation: md-image-shimmer 1.5s linear infinite;
815
+ border-radius: var(--md-radius);
816
+ }
817
+
818
+ /* ========================================
819
+ Mermaid 全屏查看器(使用浏览器原生全屏)
820
+ ======================================== */
821
+
822
+ /* 全屏容器 - 默认隐藏 */
823
+ .md-mermaid-fullscreen-wrapper {
824
+ display: none;
825
+ }
826
+
827
+ /* 全屏激活状态 - 作为全屏元素的根容器 */
828
+ .md-mermaid-fullscreen-wrapper--active {
829
+ display: flex;
830
+ flex-direction: column;
831
+ width: 100%;
832
+ height: 100%;
833
+ background-color: var(--md-color-bg, #ffffff);
834
+ }
835
+
836
+ /* 暗黑模式背景 */
837
+ @media (prefers-color-scheme: dark) {
838
+ :root:not(.md-light) .md-mermaid-fullscreen-wrapper--active {
839
+ background-color: var(--md-color-bg, #1a1a2e);
840
+ }
841
+ }
842
+
843
+ .md-dark .md-mermaid-fullscreen-wrapper--active,
844
+ :root.dark .md-mermaid-fullscreen-wrapper--active,
845
+ [data-theme="dark"] .md-mermaid-fullscreen-wrapper--active {
846
+ background-color: var(--md-color-bg, #1a1a2e);
847
+ }
848
+
849
+ /* 全屏工具栏 */
850
+ .md-mermaid-fullscreen-toolbar {
851
+ display: flex;
852
+ align-items: center;
853
+ justify-content: space-between;
854
+ padding: 12px 16px;
855
+ background-color: var(--md-mermaid-toolbar-bg);
856
+ border-bottom: 1px solid var(--md-mermaid-border);
857
+ }
858
+
859
+ .md-mermaid-fullscreen-toolbar .md-mermaid-toolbar-btn {
860
+ color: var(--md-mermaid-toolbar-btn-color);
861
+ }
862
+
863
+ .md-mermaid-fullscreen-toolbar .md-mermaid-toolbar-btn:hover:not(:disabled) {
864
+ background-color: var(--md-mermaid-toolbar-btn-bg-hover);
865
+ color: var(--md-mermaid-toolbar-btn-color-hover);
866
+ }
867
+
868
+ .md-mermaid-fullscreen-toolbar .md-mermaid-zoom-label {
869
+ color: var(--md-mermaid-toolbar-btn-color);
870
+ }
871
+
872
+ /* 全屏内容区域 */
873
+ .md-mermaid-fullscreen-content {
874
+ flex: 1;
875
+ display: flex;
876
+ align-items: center;
877
+ justify-content: center;
878
+ overflow: hidden;
879
+ padding: 24px;
880
+ }
881
+
882
+ .md-mermaid-fullscreen-svg {
883
+ display: flex;
884
+ align-items: center;
885
+ justify-content: center;
886
+ will-change: transform;
887
+ }
888
+
889
+ .md-mermaid-fullscreen-svg svg {
890
+ max-width: none;
891
+ max-height: none;
600
892
  }