@superlc/md-core 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_baseUniq-BfzcfZ4T.cjs +1 -0
- package/dist/_baseUniq-Y3ulau-C.js +477 -0
- package/dist/arc-Be_AVKBg.cjs +1 -0
- package/dist/arc-Ca7Zrknn.js +83 -0
- package/dist/architectureDiagram-VXUJARFQ-4Jx44yBn.cjs +36 -0
- package/dist/architectureDiagram-VXUJARFQ-DJeUU_qv.js +4665 -0
- package/dist/blockDiagram-VD42YOAC-BimcGKKd.cjs +122 -0
- package/dist/blockDiagram-VD42YOAC-D-giXjw6.js +2265 -0
- package/dist/c4Diagram-YG6GDRKO-Bl9iUUVb.cjs +10 -0
- package/dist/c4Diagram-YG6GDRKO-YxTtvGWw.js +1581 -0
- package/dist/channel-DOU_t-A5.js +5 -0
- package/dist/channel-DzR_mTuG.cjs +1 -0
- package/dist/chunk-4BX2VUAB-BT8x_a4k.cjs +1 -0
- package/dist/chunk-4BX2VUAB-qWjx6fvp.js +9 -0
- package/dist/chunk-55IACEB6-DRmMNyi7.js +8 -0
- package/dist/chunk-55IACEB6-DfzR1I2i.cjs +1 -0
- package/dist/chunk-B4BG7PRW-B4vBwkd7.js +1376 -0
- package/dist/chunk-B4BG7PRW-k_Ki7ZYa.cjs +165 -0
- package/dist/chunk-DI55MBZ5-67zt7BEa.cjs +220 -0
- package/dist/chunk-DI55MBZ5-B-Akunv8.js +1382 -0
- package/dist/chunk-FMBD7UC4-D-gJ-PKq.cjs +15 -0
- package/dist/chunk-FMBD7UC4-D1foMA2H.js +19 -0
- package/dist/chunk-QN33PNHL-DBsOH5IO.cjs +1 -0
- package/dist/chunk-QN33PNHL-DpeYRHMx.js +20 -0
- package/dist/chunk-QZHKN3VN-CWmChvMD.cjs +1 -0
- package/dist/chunk-QZHKN3VN-CoINyXCe.js +15 -0
- package/dist/chunk-TZMSLE5B-CMo-Qyqp.js +64 -0
- package/dist/chunk-TZMSLE5B-Psc_3Gkx.cjs +1 -0
- package/dist/classDiagram-2ON5EDUG-BrNHAA-E.js +16 -0
- package/dist/classDiagram-2ON5EDUG-CA1gbIW7.cjs +1 -0
- package/dist/classDiagram-v2-WZHVMYZB-BrNHAA-E.js +16 -0
- package/dist/classDiagram-v2-WZHVMYZB-CA1gbIW7.cjs +1 -0
- package/dist/clone-BOyua0mT.js +8 -0
- package/dist/clone-D7Rx0g6P.cjs +1 -0
- package/dist/cose-bilkent-S5V4N54A-BBcnamAX.cjs +1 -0
- package/dist/cose-bilkent-S5V4N54A-xbHM31av.js +2605 -0
- package/dist/cytoscape.esm-DkGgpG6d.cjs +331 -0
- package/dist/cytoscape.esm-ZmItrg9y.js +18731 -0
- package/dist/dagre-6UL2VRFP-B5ZJ9Mmw.cjs +4 -0
- package/dist/dagre-6UL2VRFP-lY6fElcy.js +446 -0
- package/dist/defaultLocale-BgPVtth8.js +171 -0
- package/dist/defaultLocale-C4wbwF1n.cjs +1 -0
- package/dist/diagram-PSM6KHXK-DOgpThfE.js +534 -0
- package/dist/diagram-PSM6KHXK-NUCrGNCX.cjs +24 -0
- package/dist/diagram-QEK2KX5R-CKpcqpBk.js +221 -0
- package/dist/diagram-QEK2KX5R-P-pWAYvp.cjs +43 -0
- package/dist/diagram-S2PKOQOG-B4PYQerv.cjs +24 -0
- package/dist/diagram-S2PKOQOG-CZn9lft8.js +143 -0
- package/dist/erDiagram-Q2GNP2WA-D6UL-dgf.js +842 -0
- package/dist/erDiagram-Q2GNP2WA-DwYOfnOX.cjs +60 -0
- package/dist/flowDiagram-NV44I4VS-BvuqC7lR.cjs +162 -0
- package/dist/flowDiagram-NV44I4VS-YPdRK_ji.js +1627 -0
- package/dist/ganttDiagram-JELNMOA3-CGnvf7yj.js +2662 -0
- package/dist/ganttDiagram-JELNMOA3-wbYrtCNf.cjs +267 -0
- package/dist/gitGraphDiagram-NY62KEGX-BnpFLmUy.js +712 -0
- package/dist/gitGraphDiagram-NY62KEGX-BzlCJL63.cjs +65 -0
- package/dist/graph-Bv0JC_B1.cjs +1 -0
- package/dist/graph-DwDboYRQ.js +381 -0
- package/dist/index-A-U0gtM4.js +15167 -0
- package/dist/index-BC30feOR.cjs +300 -0
- package/dist/index.cjs +1 -300
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -14816
- package/dist/infoDiagram-WHAUD3N6-CPFFyZEz.cjs +2 -0
- package/dist/infoDiagram-WHAUD3N6-DF-Kn4KW.js +24 -0
- package/dist/init-CHZsXQcr.cjs +1 -0
- package/dist/init-DjUOC4st.js +16 -0
- package/dist/journeyDiagram-XKPGCS4Q-Bc3YJVQN.cjs +139 -0
- package/dist/journeyDiagram-XKPGCS4Q-CqUVbDan.js +836 -0
- package/dist/kanban-definition-3W4ZIXB7-BKxpdlfe.cjs +89 -0
- package/dist/kanban-definition-3W4ZIXB7-Zx7cVnZF.js +720 -0
- package/dist/layout-CrdknE74.js +1441 -0
- package/dist/layout-y4Mby5BC.cjs +1 -0
- package/dist/linear-D_NLLphh.cjs +1 -0
- package/dist/linear-Fqu_aevY.js +259 -0
- package/dist/mermaid/darkMode.d.ts +54 -0
- package/dist/mermaid/darkMode.d.ts.map +1 -0
- package/dist/mermaid/download.d.ts +27 -0
- package/dist/mermaid/download.d.ts.map +1 -0
- package/dist/mermaid/index.d.ts +9 -0
- package/dist/mermaid/index.d.ts.map +1 -0
- package/dist/mermaid/renderer.d.ts +36 -0
- package/dist/mermaid/renderer.d.ts.map +1 -0
- package/dist/mermaid/themes.d.ts +17 -0
- package/dist/mermaid/themes.d.ts.map +1 -0
- package/dist/mermaid/types.d.ts +117 -0
- package/dist/mermaid/types.d.ts.map +1 -0
- package/dist/mermaid.core-Buzus1hw.js +15321 -0
- package/dist/mermaid.core-CCMj67LO.cjs +255 -0
- package/dist/min-BNEwgiip.js +38 -0
- package/dist/min-CxfddLJo.cjs +1 -0
- package/dist/mindmap-definition-VGOIOE7T-C3sZAv1n.js +786 -0
- package/dist/mindmap-definition-VGOIOE7T-Cq9KhFIU.cjs +68 -0
- package/dist/ordinal-CagbB1m8.cjs +1 -0
- package/dist/ordinal-DfAQgscy.js +61 -0
- package/dist/pieDiagram-ADFJNKIX-Bib4GVaz.js +161 -0
- package/dist/pieDiagram-ADFJNKIX-CPJ4LdHJ.cjs +30 -0
- package/dist/quadrantDiagram-AYHSOK5B-Bw4qbzaI.js +1024 -0
- package/dist/quadrantDiagram-AYHSOK5B-Dldq3aFV.cjs +7 -0
- package/dist/requirementDiagram-UZGBJVZJ-BiMT5LBm.cjs +64 -0
- package/dist/requirementDiagram-UZGBJVZJ-DKt5E9D5.js +852 -0
- package/dist/sankeyDiagram-TZEHDZUN-BvqABFTj.cjs +10 -0
- package/dist/sankeyDiagram-TZEHDZUN-DPexJVr0.js +810 -0
- package/dist/sequenceDiagram-WL72ISMW-JcPuIgsZ.cjs +145 -0
- package/dist/sequenceDiagram-WL72ISMW-rx65Aq7k.js +2518 -0
- package/dist/stateDiagram-FKZM4ZOC-5jwz-EhH.cjs +1 -0
- package/dist/stateDiagram-FKZM4ZOC-D95elPzf.js +263 -0
- package/dist/stateDiagram-v2-4FDKWEC3-DKxcP1od.cjs +1 -0
- package/dist/stateDiagram-v2-4FDKWEC3-U8OyZJcH.js +16 -0
- package/dist/styles.css +292 -0
- package/dist/timeline-definition-IT6M3QCI-C_aFXPzu.cjs +61 -0
- package/dist/timeline-definition-IT6M3QCI-DzBIcxIH.js +801 -0
- package/dist/treemap-KMMF4GRG-CqQBq3TE.js +14157 -0
- package/dist/treemap-KMMF4GRG-DJHv4WOZ.cjs +128 -0
- package/dist/xychartDiagram-PRI3JC2R-M2dUh85s.cjs +7 -0
- package/dist/xychartDiagram-PRI3JC2R-ZNBNeiJf.js +1340 -0
- 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
|
}
|