agentic-mermaid 0.5.3 → 0.5.5
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/CHANGELOG.md +63 -0
- package/Instructions_for_agents.md +1 -1
- package/README.md +1 -1
- package/dist/agent-core.d.ts +7 -7
- package/dist/agent-core.js +1 -1
- package/dist/agent.d.ts +7 -7
- package/dist/agent.js +1 -1
- package/dist/agentic-mermaid-mcp.js +1 -1
- package/dist/am.js +1 -1
- package/dist/browser-lazy/chunks/{agentic-producer-core-CC6OOLDW.js → agentic-producer-core-CWRJNRIK.js} +1 -1
- package/dist/browser-lazy/chunks/{architecture-QUFVKYJR.js → architecture-VU5WEHCH.js} +6 -6
- package/dist/browser-lazy/chunks/{block-6J3Q63BO.js → block-Z2DOU2NP.js} +5 -5
- package/dist/browser-lazy/chunks/{builtin-backends-7SOZZHPF.js → builtin-backends-6UTVDXF4.js} +6 -6
- package/dist/browser-lazy/chunks/c4-6FTCDDGS.js +10 -0
- package/dist/browser-lazy/chunks/{chunk-TYZOZXUJ.js → chunk-37ORXEBA.js} +6 -6
- package/dist/browser-lazy/chunks/{chunk-2UIA2IME.js → chunk-3VXXFUXR.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-2SH76OTH.js → chunk-6RXXXV66.js} +1 -1
- package/dist/browser-lazy/chunks/chunk-AVGL6Y22.js +1 -0
- package/dist/browser-lazy/chunks/chunk-BCPZYXNZ.js +20 -0
- package/dist/browser-lazy/chunks/chunk-CPO5P4L2.js +1 -0
- package/dist/browser-lazy/chunks/{chunk-OZ443IVJ.js → chunk-CURBYGWU.js} +8 -8
- package/dist/browser-lazy/chunks/{chunk-2GPK4VFF.js → chunk-DS3L2TY6.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-BU5LHXNJ.js → chunk-EBJK4IHL.js} +3 -3
- package/dist/browser-lazy/chunks/{chunk-AMJLVPUB.js → chunk-FCXWXIUB.js} +3 -3
- package/dist/browser-lazy/chunks/chunk-FNGOGVYM.js +6 -0
- package/dist/browser-lazy/chunks/{chunk-5B2Z7575.js → chunk-K6V5KN7D.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-J7FFAFQF.js → chunk-LRN76QCY.js} +1 -1
- package/dist/browser-lazy/chunks/chunk-NIAOQ3V2.js +1 -0
- package/dist/browser-lazy/chunks/{chunk-E2WMJZNM.js → chunk-OF4QKIRV.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-CN7WTBWB.js → chunk-OLZVJBI5.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-QA6GJQ4X.js → chunk-PRBLS664.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-X2UYKWKM.js → chunk-PRXEMB2V.js} +3 -3
- package/dist/browser-lazy/chunks/{chunk-NO7ZIVRU.js → chunk-Q6FTXOZS.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-PQGPS2YV.js → chunk-QRPOIILY.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-YCEICNM6.js → chunk-TG7JY42H.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-UL6NDWLL.js → chunk-TWYX5NPD.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-BY2CPG6B.js → chunk-TZMTDADJ.js} +1 -1
- package/dist/browser-lazy/chunks/chunk-UG33LVTQ.js +1 -0
- package/dist/browser-lazy/chunks/{chunk-HLWUNUCM.js → chunk-UJLLOK3R.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-SZELX2EJ.js → chunk-UKIYI4IO.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-VWVZGQE2.js → chunk-UOXZICCT.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-5X6MJX3H.js → chunk-VRXTQTLX.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-DF6765YX.js → chunk-WSZXZ4HF.js} +6 -6
- package/dist/browser-lazy/chunks/chunk-XBLK7VXJ.js +20 -0
- package/dist/browser-lazy/chunks/{chunk-ICC7HBJX.js → chunk-XJVCY4DA.js} +1 -1
- package/dist/browser-lazy/chunks/{class-5QA4SCTS.js → class-B7ED4IO7.js} +8 -8
- package/dist/{zenuml/chunks/decode-BWERFDGK.js → browser-lazy/chunks/decode-5MFOG3AZ.js} +1 -1
- package/dist/browser-lazy/chunks/{elk.bundled-L4CADV5W.js → elk.bundled-RYWHIS5N.js} +8 -8
- package/dist/browser-lazy/chunks/er-RJO33M6U.js +11 -0
- package/dist/browser-lazy/chunks/{eventmodeling-2BPLHWRN.js → eventmodeling-NZJFH7CB.js} +9 -9
- package/dist/browser-lazy/chunks/{flowchart-NEIMZTB5.js → flowchart-6WEGVIJH.js} +1 -1
- package/dist/browser-lazy/chunks/{forest-implementation-AEP24AIP.js → forest-implementation-RWFF7XDV.js} +1 -1
- package/dist/browser-lazy/chunks/{gantt-RDPIFYAF.js → gantt-3EBT47PN.js} +5 -5
- package/dist/browser-lazy/chunks/{gitgraph-N4Y5RYB7.js → gitgraph-LXYWMWAG.js} +4 -4
- package/dist/browser-lazy/chunks/{ishikawa-LD3YBDJN.js → ishikawa-TNFYQLXS.js} +2 -2
- package/dist/browser-lazy/chunks/{journey-6YQR5DJX.js → journey-ATEGEGT7.js} +7 -7
- package/dist/browser-lazy/chunks/{kanban-PLMJ7NBW.js → kanban-4SGNSK5P.js} +11 -11
- package/dist/browser-lazy/chunks/{mermaid-yaml-runtime-QVYX4EWK.js → mermaid-yaml-runtime-IK4ET4BT.js} +8 -8
- package/dist/browser-lazy/chunks/{mindmap-K2UBFO3Y.js → mindmap-5T7X3ENQ.js} +6 -6
- package/dist/browser-lazy/chunks/{packet-CUW4QY6Y.js → packet-4SQYN6UC.js} +3 -3
- package/dist/browser-lazy/chunks/{pie-7F7UUCG3.js → pie-HNPY7QHS.js} +7 -7
- package/dist/browser-lazy/chunks/{quadrant-TOONO2WC.js → quadrant-HG5UVCOG.js} +4 -4
- package/dist/browser-lazy/chunks/{radar-J6JVWVAX.js → radar-EIHX3Y7A.js} +7 -7
- package/dist/browser-lazy/chunks/render-core-37F7UHHU.js +3 -0
- package/dist/browser-lazy/chunks/{requirement-CMAKDJPO.js → requirement-PDLTNSWC.js} +7 -7
- package/dist/browser-lazy/chunks/{sankey-AWXQEP3F.js → sankey-K5QOVS24.js} +6 -6
- package/dist/browser-lazy/chunks/{sequence-Q2RJRB4L.js → sequence-CVTNAN4F.js} +1 -1
- package/dist/browser-lazy/chunks/{state-WRBFQEDX.js → state-EMHRVZIX.js} +2 -2
- package/dist/browser-lazy/chunks/{timeline-D2KILFXM.js → timeline-GCGZPQWS.js} +4 -4
- package/dist/browser-lazy/chunks/{treemap-N3VYX5D4.js → treemap-BXAVM6C5.js} +3 -3
- package/dist/browser-lazy/chunks/xychart-DSHCGE3Q.js +16 -0
- package/dist/browser-lazy/chunks/{zenuml-H4BXNYXR.js → zenuml-QU75FNEC.js} +8 -8
- package/dist/browser-lazy/index.js +1 -1
- package/dist/browser.global.js +507 -507
- package/dist/chunk-2WNJCUZG.js +52 -0
- package/dist/{chunk-XU5LPD2D.js → chunk-5BYN55G4.js} +1 -1
- package/dist/{chunk-JZOJ4YGS.js → chunk-5JQIK3AC.js} +47 -47
- package/dist/chunk-BHJZLM35.js +2 -0
- package/dist/{chunk-GVCHLSHH.js → chunk-BNS3NO3O.js} +2 -2
- package/dist/{chunk-NKNFOREZ.js → chunk-BRFXOVQK.js} +2 -2
- package/dist/{chunk-UA234O4M.js → chunk-CPO4MGL7.js} +2 -2
- package/dist/chunk-E4AJQAEN.js +2 -0
- package/dist/{chunk-H3NCS2XZ.js → chunk-NZQWSAD5.js} +2 -2
- package/dist/chunk-QULSM7S3.js +58 -0
- package/dist/{chunk-MKE7GNYU.js → chunk-ZKCI4BXW.js} +10 -6
- package/dist/{cli-YGGTJZH7.js → cli-6N2OYXG7.js} +43 -43
- package/dist/{index-EeXqJXr5.d.ts → index-BvPnCHcw.d.ts} +14 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +1 -1
- package/dist/{mcp-cli-63DYXTVD.js → mcp-cli-O4YD2NQB.js} +2 -2
- package/dist/{paint-certification-6rwQjIv_.d.ts → paint-certification-6UB6BRr6.d.ts} +2 -2
- package/dist/server-ZKAXVFA2.js +527 -0
- package/dist/{svg-styles-BdnoM7AT.d.ts → svg-styles-CyT8yUfG.d.ts} +1 -1
- package/dist/svg-styles.d.ts +1 -1
- package/dist/svg-styles.js +1 -1
- package/dist/svg.d.ts +4 -4
- package/dist/svg.js +1 -1
- package/dist/{types-BcS52Mjt.d.ts → types-DMKjdWeL.d.ts} +1 -1
- package/dist/zenuml/chunks/{appearance-UOQ5KA6O.js → appearance-UJSXEKCJ.js} +1 -1
- package/dist/zenuml/chunks/{builtin-backends-KDKE7YHO.js → builtin-backends-2ETI2OTB.js} +11 -11
- package/dist/zenuml/chunks/{chunk-QWX77U7G.js → chunk-AT55WY2L.js} +2 -2
- package/dist/zenuml/chunks/chunk-NGGC5EHN.js +1 -0
- package/dist/zenuml/chunks/chunk-O23VFGJM.js +29 -0
- package/dist/zenuml/chunks/{chunk-42DXZ5C6.js → chunk-S2NMJ7E6.js} +2 -2
- package/dist/zenuml/chunks/{chunk-OXQWRSBM.js → chunk-WLQR46A6.js} +9 -9
- package/dist/zenuml/chunks/chunk-Y7DUY2UU.js +29 -0
- package/dist/{browser-lazy/chunks/decode-63UIZGD2.js → zenuml/chunks/decode-LDNNXEAO.js} +1 -1
- package/dist/zenuml/chunks/{mermaid-yaml-runtime-KZVU74WU.js → mermaid-yaml-runtime-A5CNJ3IE.js} +8 -8
- package/dist/zenuml/chunks/render-core-MBXTLSVO.js +3 -0
- package/dist/zenuml/chunks/{zenuml-EA2ZFRUX.js → zenuml-FDVVN4IM.js} +8 -8
- package/dist/zenuml.d.ts +2 -2
- package/dist/zenuml.js +1 -1
- package/docs/api.md +84 -4
- package/docs/quality.md +6 -3
- package/docs/style-authoring.md +23 -0
- package/docs/testing-strategy.md +5 -3
- package/package.json +3 -2
- package/server.json +2 -2
- package/skills/agentic-mermaid-diagram-workflow/references/code-mode.md +10 -1
- package/skills/agentic-mermaid-diagram-workflow/references/hosted-mcp.md +5 -1
- package/dist/browser-lazy/chunks/c4-SQVBZAKJ.js +0 -10
- package/dist/browser-lazy/chunks/chunk-4LHYF3BS.js +0 -1
- package/dist/browser-lazy/chunks/chunk-FAIMVOX5.js +0 -6
- package/dist/browser-lazy/chunks/chunk-GVOEAY52.js +0 -1
- package/dist/browser-lazy/chunks/chunk-J35HAQQF.js +0 -20
- package/dist/browser-lazy/chunks/chunk-RIVTHZAQ.js +0 -1
- package/dist/browser-lazy/chunks/chunk-Z3FDIVLN.js +0 -20
- package/dist/browser-lazy/chunks/er-7ZSKGN7Y.js +0 -11
- package/dist/browser-lazy/chunks/render-core-BZOM3K7D.js +0 -3
- package/dist/browser-lazy/chunks/xychart-G73OGK66.js +0 -16
- package/dist/chunk-7CRDX2QR.js +0 -2
- package/dist/chunk-DQDKA5ND.js +0 -2
- package/dist/chunk-EHCMJUMD.js +0 -52
- package/dist/chunk-OMY6NRQD.js +0 -58
- package/dist/server-5NEOHOFS.js +0 -524
- package/dist/zenuml/chunks/chunk-7TVYPTDW.js +0 -1
- package/dist/zenuml/chunks/chunk-RLJEI7YN.js +0 -29
- package/dist/zenuml/chunks/chunk-RZ6XK5CD.js +0 -29
- package/dist/zenuml/chunks/render-core-V5RQ737O.js +0 -3
- package/docs/MCP-DIRECTORY-LISTINGS.md +0 -76
- /package/dist/browser-lazy/chunks/{chunk-5FQ534HP.js → chunk-BMZ24VPS.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-2I4UPL7Q.js → chunk-D6MQ7QSU.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-CQE4HQEW.js → chunk-HJVO5VC3.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-LH7HUDKW.js → chunk-L4UC3KGS.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-NMQQMRIR.js → chunk-MFTQWHUB.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-N5ELX7LR.js → chunk-PJJSDGLB.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-CSFUKSU6.js → chunk-QCU5G5PZ.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-VQYYGAXP.js → chunk-TLFX3U6S.js} +0 -0
- /package/dist/browser-lazy/chunks/{chunk-5UVGUSD6.js → chunk-YHMTSXIR.js} +0 -0
- /package/dist/zenuml/chunks/{chunk-EVPSMEKN.js → chunk-GC7IPQ5P.js} +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
1
|
+
import{a as e}from"./chunk-UOXZICCT.js";import{b as t,c as n}from"./chunk-DS3L2TY6.js";import{d as l}from"./chunk-PRBLS664.js";import{a as i}from"./chunk-FCXWXIUB.js";import{b as s,c as r,d as a,e as o,f as d,p as c}from"./chunk-WSZXZ4HF.js";import{E as u,e as h,g as p,h as f,i as g}from"./chunk-UJLLOK3R.js";import{$ as m,M as x,aa as w,fa as b,g as y,j as k,s as $,w as v,x as S}from"./chunk-PRXEMB2V.js";import{D as L,E as C,G as M,H as I,J as O,L as E,Qb as B,Sb as j,p as A}from"./chunk-XBLK7VXJ.js";import{a as N}from"./chunk-YHMTSXIR.js";function R({positioned:e,options:t}){return u(e,t)}var W=String.raw`~{3,}|[xo]-?\.+-[xo]|-?\.+-[>xo]?|[xo]={2,}[xo]|={2,}[>xo]|={3,}|o-{2,}o|o-{2,}x|x-{2,}o|x-{2,}x|-{2,}[ox]|-{2,}>|-{3,}`,z=RegExp(`(<)?(${W})`,"y"),D=`<?(?:${W})`,T=String.raw`(?!${D}|[xo]?(?:-{2,}|-\.|={2,}))[^\s"@[\](){}|<>;]+`,q=/([<xo])?(-{2,}|-\.+|={2,})/y,_={solid:"-{2,}[-ox>]",thick:"={2,}[=>xo]",dotted:"-?\\.+-[>xo]?"},F={..._,mixed:Object.values(_).join("|")},H=Object.fromEntries(Object.entries(F).map(([e,t])=>[e,RegExp(`(${t})`,"y")])),U=Object.fromEntries(Object.entries(F).map(([e,t])=>[e,RegExp(`\\s*(?:${t})`,"y")])),X={solid:/--/y,thick:/==/y,dotted:void 0};function J(e){return e.includes(".")?"dotted":e.startsWith("=")?"thick":"solid"}function Z(e,t,n){return e.lastIndex=n,e.exec(t)}var G=/[\p{L}\p{N}_!"#$%&'*+.`?\\/]/u;function P(e,t=0){let n=t;for(;n<e.length;n++){let l=e[n];if("-"===l){let t=e[n+1];if("-"===t||"."===t)break;continue}if(n===t&&'"'===l)break;if(":"===l){if(e.startsWith(":::",n))break;continue}if(!G.test(l))break}return n-t}var Q={text:/[[\](){}|"]/,trapezoid:/[[\](){}]/,"edge-text":/"/};function V(e,t){let n=e;if(e.startsWith('"')){let t=e.startsWith('"`'),l=t?e.indexOf('`"',2):e.indexOf('"',1);if(l<0)return!1;n=e.slice(l+(t?2:1))}return Q[t].test(n)}var Y=/^[\p{L}0-9\s!"#$%&'*+\-./:?\\^_`]*$/u,K=/(?:^|\s)(?:"|\.+-)|--|-\.|->|:::/;function ee(e,t){return("."===e[t]||'"'===e[t])&&t>0&&G.test(e[t-1])}function et(e,t){let n=Z(z,e,t);return n?{hasArrowStart:!!n[1],op:n[2],end:t+n[0].length}:null}function en(e,t){let n=el(e,t);return n&&"end"in n?n:null}function el(e,t){let n=Z(q,e,t);if(!n)return null;let l=ei(e,t,n,J(n[2]));return l&&"end"in l?l:ei(e,t,n,"mixed")}function ei(e,t,n,l){let i=t+n[0].length,s=function(e,t,n){let l=t;for(;l<e.length&&/\s/.test(e[l]);)l++;if('"'===e[l]){for(let t=e.indexOf('"',l+1);t>=0;t=e.indexOf('"',t+1))if(Z(U[n],e,t+1))return{open:l,close:t}}}(e,i,l),r=X[J(n[2])];for(let t=s?s.close+1:i;t<e.length;t++){let a=Z(H[l],e,t);if(!a){if(r&&Z(r,e,t))return{stray:t};continue}let o=e.slice(i,t),d=o.trim();if(0===d.length)continue;let c=i+o.length-o.trimStart().length;return{hasArrowStart:!!n[1],...n[1]?{startMark:n[1]}:{},openOp:n[2],closeOp:a[1],labelStart:c,labelEnd:c+d.length,...s?{quote:s}:{},end:t+a[0].length,..."mixed"===l?{mixed:!0}:{}}}return null}var es=new Set(["[","(","{"]),er=new Set(["]",")","}"]);function ea(e){return eo(e,0,!1,!1)}function eo(e,t,n,l,i=-1){let s=[],r=n?[]:Array(e.length).fill(!1),a=[],o=[],d=[],u=(t,n,l)=>{s.push({kind:t,start:n,end:e.length,contentStart:l,contentEnd:e.length,closed:!1,parent:d.at(-1)??-1}),d.push(s.length-1)},h=(e,t)=>{let n=s[d.pop()];n.contentEnd=e,n.end=t,n.closed=!0};for(let p=t;p<e.length&&!(n&&s.length>0&&0===d.length);p++){let t=e[p],f=d.length>0?s[d.at(-1)]:void 0;if(f?.kind==="string"){'"'===t&&h(p,p+1);continue}if(f?.kind==="markdown"){"`"===t&&'"'===e[p+1]?(h(p,p+2),p++):'"'===t&&u("string",p,p+1);continue}if('"'===t&&p!==i&&!(l&&f?.kind==="shape"&&p!==f.contentStart)&&!(void 0===f&&ee(e,p))){"`"===e[p+1]?(u("markdown",p,p+2),p++):u("string",p,p+1);continue}if(f?.kind==="shape"){es.has(t)?u("shape",p,p+1):er.has(t)&&h(p,p+1);continue}let g="@"===t?function(e,t){let n=t+1;for(;n<e.length&&/\s/.test(e[n]);)n++;return"{"===e[n]?n:-1}(e,p):-1;if(g>=0){let t=c(e,g,"flowchart");if("closed"===t.kind){s.push({kind:"metadata",start:p,end:t.end+1,contentStart:g+1,contentEnd:t.end,closed:!0,parent:-1}),p=t.end;continue}if("unclosed"===t.kind){u("metadata",p,g+1);break}}if("|"===t){let t=function(e,t){let n=t+1;for(;n<e.length&&/\s/.test(e[n]);)n++;if('"'===e[n])for(let t=e.indexOf('"',n+1);t>=0;t=e.indexOf('"',t+1)){let l=t+1;for(;l<e.length&&/\s/.test(e[l]);)l++;if("|"===e[l])return{close:l,quote:{open:n,close:t}}}let l=e.indexOf("|",t+1);return l<0?void 0:{close:l}}(e,p);if(!t){u("pipe",p,p+1);break}let n=s.length;s.push({kind:"pipe",start:p,end:t.close+1,contentStart:p+1,contentEnd:t.close,closed:!0,parent:-1}),t.quote&&s.push({kind:"string",start:t.quote.open,end:t.quote.close+1,contentStart:t.quote.open+1,contentEnd:t.quote.close,closed:!0,parent:n}),p=t.close;continue}if(es.has(t)){u("shape",p,p+1);continue}if("-"===t||"="===t||"<"===t||"~"===t||"."===t&&!ee(e,p)){let t=et(e,p);if(t){o.push({start:p,end:t.end}),r.fill(!0,p,t.end),p=t.end-1;continue}let l=Z(q,e,p),i=l?el(e,p):null,a=i&&"end"in i?i:null;if(a){let e=s.length;s.push({kind:"edge-text",start:p,end:a.end,contentStart:a.labelStart,contentEnd:a.labelEnd,closed:!0,parent:-1}),a.quote&&s.push({kind:"string",start:a.quote.open,end:a.quote.close+1,contentStart:a.quote.open+1,contentEnd:a.quote.close,closed:!0,parent:e}),r.fill(!0,p,a.labelStart);let t=a.end-a.closeOp.length;if(r.fill(!0,t,a.end),!n)for(let e=a.labelEnd;e<t;e++)r[e]=!0;o.push({start:p,end:p+l[0].length},{start:t,end:a.end}),p=a.end-1;continue}if(l){if(o.push({start:p,end:p+l[0].length}),r.fill(!0,p,p+l[0].length),i){p+=l[0].length-1;continue}u("edge-text",p,p+l[0].length);break}}if(">"===t){u("shape",p,p+1);continue}n||(r[p]=!0),";"===t&&a.push(p)}return{regions:s,topLevel:r,separators:a,links:o,openAtEnd:d.map(e=>s[e].kind)}}var ed=/^(?:style|classDef|linkStyle)\s/;function ec(e){for(let t of Object.keys(e))if(!(t.trim()&&!/[\r\n:;,]/.test(t)&&function(e){if(/direction\s+(?:TB|BT|RL|LR|TD)|:::/.test(e))return!1;let t=e;for(;t;){if(/^(?:acc(?:Title|Descr)\s*:|(?:call|href|click)\s|(?:classDef|class|linkStyle|default|end|graph|flowchart|subgraph|swimlane-beta|interpolate|_self|_blank|_parent|_top|v)\b|["&*]|[xo]?(?:--|-\.)|[xo]?-?\.+-)/.test(t))return!1;let e=/^(?:style\b|[0-9]+|[:#]|[^\S\r\n]+)/.exec(t)??/^(?:[A-Za-z0-9!"#$%&'*+.`?\\_/]|-(?=[^>\-.]))+/.exec(t);if(!e)return!1;t=t.slice(e[0].length)}return!0}(`${t}:`)))throw $({what:`Invalid style property name ${JSON.stringify(t)}`,expectedForm:"property text that does not introduce Mermaid statements, links or shape delimiters",example:"style A background:#bbb,border:1px solid red"});return e}var eu=new RegExp(String.raw`^[a-zA-Z][\w-]*\s*:(?!:)(?:(?!${D}|:::)[^&@"[\]{}|])*$`);function eh(e,t=ea(e)){let n=[],l=0;for(let i of[...t.separators,e.length]){let t=e.slice(l,i),s=t.trim(),r=l+t.length-t.trimStart().length,a=/^end\s+/.exec(s),o=n.at(-1);a?n.push({text:"end",start:r},{text:s.slice(a[0].length),start:r+a[0].length}):s&&o&&ed.test(o.text)&&eu.test(s)?o.text=e.slice(o.start,r+s.length):s&&n.push({text:s,start:r}),l=i+1}return n}var ep=/^(?:(?:end|subgraph|classDef|class|style|linkStyle|click|href|accTitle|accDescr)(?![\w-])|direction\s)/;function ef(e){let t=[],n=e=>eo(e,0,!1,!0),l,i="",s=n(i),r=!1,a=!1,o,d=new Map,c=(t,n)=>{let l=d.get(n);if(!l){let{delimiter:t,closer:i,after:s}=em[n];l=new Uint8Array(e.length+1);for(let n=e.length-1;n>=0;n--){let r=e[n],a=r.search(t);l[n]=a<0?l[n+1]:Number(r[a]===i&&s.test(r.slice(a+1)))}d.set(n,l)}return 1===l[t]},u,h=t=>{if(!u){u=new Uint8Array(e.length+1);for(let t=e.length-1;t>=0;t--){let n=e[t],l=n.indexOf('"');u[t]=l<0?u[t+1]:Number(/^\s*[\])}]/.test(n.slice(l+1)))}}return 1===u[t]},p=!1,f=t=>{let n=e[t];if(!/^\s*acc(?:Title|Descr)/i.test(n)||p&&/^\s*accDescr\s*:?\s*\{[^}]*$/i.test(n))return;let l=S(e,t);return void 0===l&&(p=!0),l?.endIndex};for(let d=0;d<e.length;d++){let u=e[d],p=u.trim(),g=s.openAtEnd,m=s.regions.some(e=>"string"===e.kind&&e.parent>=0&&e.start!==s.regions[e.parent].contentStart),x=void 0!==o&&c(d,o),w=void 0!==l&&g.length>0&&g.length<=5&&!m&&("metadata"===g[0]||g.includes("markdown")||!r||x||a&&1===g.length&&"string"===g[0])&&!("edge-text"===g[0]&&function(e){let t=el(e,0);return null!==t&&"stray"in t}(`${ex(i,s).prefix}${p}`));if(!w&&(!p||p.startsWith("%%"))){t.push({text:u,line:d});continue}let b=w?void 0:f(d);if(void 0!==b){l={text:u,line:d,directive:!0},t.push(l);for(let t=d+1;t<=b;t++)(l.joined??=[]).push({at:l.text.length+1,line:t,col:0}),l.text+=`
|
|
2
2
|
${e[t]}`;d=b,s=n(i=""),r=!0,a=!1,o=void 0;continue}let y=p,k,$;if(w&&"metadata"===g[0])$=n(y=`${i}
|
|
3
3
|
${u}`),k=`
|
|
4
4
|
`;else if(w){let e=ex(i,s),t=($=n(y=`${e.prefix}${p}`)).regions[g.length-1],l=t.closed&&""===y.slice(e.prefix.length,t.contentEnd).trim();k=e.blank||l?" ":"<br>"}else{$=n(y);let e=0===g.length&&s.links.at(-1)?.end===i.trimEnd().length;l&&!r&&(e&&!ep.test(p)||$.links[0]?.start===0)&&(k=" ")}let v=function(e){let t=e.regions.filter(e=>!e.closed).at(-1),n=t&&t.parent>=0?e.regions[t.parent]:void 0;return t?.kind==="string"&&n?.kind==="shape"&&t.start===n.contentStart?t.start:void 0}($);if(void 0===v||h(d+1)||($=eo(y,0,!1,!0,v)),void 0===k)l={text:u,line:d},t.push(l);else{let e=k===`
|
|
5
5
|
`?u:p,t=k===`
|
|
6
|
-
`?0:u.length-u.trimStart().length;(l.joined??=[]).push({at:l.text.length+k.length,line:d,col:t}),l.text+=`${k}${e}`}let S=eh(y,$).at(-1);(void 0===k||S&&S.start>0)&&(r=void 0!==S&&ep.test(S.text),a=void 0!==S&&/^(?:click|href)\s/.test(S.text),o=void 0!==S&&/^subgraph\s/.test(S.text)?function(e,t,n){let l=t.regions.filter(e=>!e.closed),[i,s]=l,r=n.start+/^subgraph\s+/.exec(n.text)[0].length;return 1===l.length&&"string"===i.kind&&i.start===r?"string":i?.kind!=="shape"||"["!==e[i.start]||/[[\]"]/.test(e.slice(r,i.start))?void 0:1===l.length?"bracket":2===l.length&&"string"===s.kind&&s.start===i.contentStart?"bracketString":void 0}(y,$,S):void 0),i=y,s=$}return t}function eg(e){let t=e.map((e,t)=>t),n=[],l=[];for(let i of(e.forEach((e,t)=>{let i=e.trim();i&&!i.startsWith("%%")&&(n.push(t),l.push(i))}),ef(l))){let e=i.joined?.at(-1)?.line;void 0!==e&&(t[n[i.line]]=n[e])}return t}var em={bracket:{delimiter:/[[\](){}]/,closer:"]",after:/^\s*(?:;|$)/},string:{delimiter:/"/,closer:'"',after:/^\s*(?:;|$)/},bracketString:{delimiter:/"/,closer:'"',after:/^\s*\]\s*(?:;|$)/}};function ex(e,t){let n=t.regions.filter(e=>!e.closed),l=n.at(-1),i=e.slice(l.contentStart).trimStart()[0],s=void 0===i?"":"pipe"===l.kind||"edge-text"===l.kind?`${i} `:"_ ";return{prefix:`${n.map(t=>"edge-text"===t.kind?ew[J(e.slice(t.start,t.contentStart).replace(/^</,""))]:e.slice(t.start,t.contentStart)).join("")} ${s}`,blank:void 0===i}}var ew={solid:"--",thick:"==",dotted:"-."},eb=/&(?:(quot|amp|lt|gt|apos)|#(\d+)|#[xX]([0-9a-fA-F]+));/g,ey=/^note\s+(left|right)\s+of\s+([\w\p{L}-]+)\s*:\s*(.+)$/iu,ek=/^state\s+(?:"([^"]+)"\s+as\s+)?([\w\p{L}-]+)\s*<<\s*(fork|join|choice|history|deephistory|H\*|H)\s*>>$/iu,e$=/^-{2,}$/,ev=/^([\w\p{L}-]*)\[(H\*?)\]$/u,eS=/^[\w\p{L}-]+$/u;function eL(e){return e.match(/^state\s+([\w\p{L}-]+)$/u)?.[1]??(eS.test(e)?e:null)}function
|
|
6
|
+
`?0:u.length-u.trimStart().length;(l.joined??=[]).push({at:l.text.length+k.length,line:d,col:t}),l.text+=`${k}${e}`}let S=eh(y,$).at(-1);(void 0===k||S&&S.start>0)&&(r=void 0!==S&&ep.test(S.text),a=void 0!==S&&/^(?:click|href)\s/.test(S.text),o=void 0!==S&&/^subgraph\s/.test(S.text)?function(e,t,n){let l=t.regions.filter(e=>!e.closed),[i,s]=l,r=n.start+/^subgraph\s+/.exec(n.text)[0].length;return 1===l.length&&"string"===i.kind&&i.start===r?"string":i?.kind!=="shape"||"["!==e[i.start]||/[[\]"]/.test(e.slice(r,i.start))?void 0:1===l.length?"bracket":2===l.length&&"string"===s.kind&&s.start===i.contentStart?"bracketString":void 0}(y,$,S):void 0),i=y,s=$}return t}function eg(e){let t=e.map((e,t)=>t),n=[],l=[];for(let i of(e.forEach((e,t)=>{let i=e.trim();i&&!i.startsWith("%%")&&(n.push(t),l.push(i))}),ef(l))){let e=i.joined?.at(-1)?.line;void 0!==e&&(t[n[i.line]]=n[e])}return t}var em={bracket:{delimiter:/[[\](){}]/,closer:"]",after:/^\s*(?:;|$)/},string:{delimiter:/"/,closer:'"',after:/^\s*(?:;|$)/},bracketString:{delimiter:/"/,closer:'"',after:/^\s*\]\s*(?:;|$)/}};function ex(e,t){let n=t.regions.filter(e=>!e.closed),l=n.at(-1),i=e.slice(l.contentStart).trimStart()[0],s=void 0===i?"":"pipe"===l.kind||"edge-text"===l.kind?`${i} `:"_ ";return{prefix:`${n.map(t=>"edge-text"===t.kind?ew[J(e.slice(t.start,t.contentStart).replace(/^</,""))]:e.slice(t.start,t.contentStart)).join("")} ${s}`,blank:void 0===i}}var ew={solid:"--",thick:"==",dotted:"-."},eb=/&(?:(quot|amp|lt|gt|apos)|#(\d+)|#[xX]([0-9a-fA-F]+));/g,ey=/^note\s+(left|right)\s+of\s+([\w\p{L}-]+)\s*:\s*(.+)$/iu,ek=/^state\s+(?:"([^"]+)"\s+as\s+)?([\w\p{L}-]+)\s*<<\s*(fork|join|choice|history|deephistory|H\*|H)\s*>>$/iu,e$=/^-{2,}$/,ev=/^([\w\p{L}-]*)\[(H\*?)\]$/u,eS=/^[\w\p{L}-]+$/u;function eL(e){return e.match(/^state\s+([\w\p{L}-]+)$/u)?.[1]??(eS.test(e)?e:null)}function eC(e){let t=e.match(ey);return t?{side:t[1].toLowerCase(),target:t[2],text:t[3].trim()}:null}function eM(e){let t=e.match(s);return t?{side:t[1].toLowerCase(),target:t[2]}:null}function eI(e){let t=e.match(ek);if(!t)return null;let n=t[3].toLowerCase();return{id:t[2],stereotype:"h"===n||"history"===n?"history":"h*"===n||"deephistory"===n?"deep-history":n,...void 0!==t[1]?{label:t[1]}:{}}}var eO=String.raw`\[\*\]|[\w\p{L}-]+\[H\*?\]|\[H\*?\]|[\w\p{L}-]+`,eE=RegExp(`^(${eO})(?::::([\\w-]+))?\\s*-->\\s*(${eO})(?::::([\\w-]+))?(?:\\s*:\\s*(.+))?$`,"u");function eB(e){let t=e.match(eE);if(!t)return null;let n=t[5]?.trim();return{from:t[1],...t[2]?{fromClass:t[2]}:{},to:t[3],...t[4]?{toClass:t[4]}:{},...n?{label:n}:{}}}var ej=/^direction\s+(TD|TB|LR|BT|RL)\s*$/i,eA=/^state\s+"([^"]+)"\s+as\s+([\w\p{L}-]+)\s*$/u,eN=/^state\s+(?:"([^"]+)"\s+as\s+)?([\w\p{L}-]+)\s*\{$/u,eR=/^([\w\p{L}-]+)\s*:\s*(.+)$/u,eW=/^classDef\s+([\w,-]+)\s+(.+)$/i,ez=/^style\s+([\w\p{L},-]+)\s+(.+)$/iu,eD=/^linkStyle\s+(default|[\d,\s]+)\s+(.+)$/,eT=/\[\*\]|\[H\*?\]|[\w\p{L}](?:[\w\p{L}]|-(?!->))*(?:\[H\*?\])?/uy,eq=/(?:\w|-(?!->))+/y,e_=/(?:(?:classDef|class|style|note|scale|click|direction)(?=[ \t]|$)|end(?=[ \t]+note(?:[ \t]|$))|hide(?=[ \t]+empty[ \t]+description(?:[ \t]|$)))/iy,eF=/(?:cssClass|linkStyle)(?=[ \t]|$)/y,eH=/state[ \t]+/iy,eU=/[\w\p{L}-]+/uy,eX=/[ \t]+as[ \t]+/iy,eJ=/[ \t]+as(?=[ \t]|$)/iy,eZ=/[ \t]*(?:<<[^>\n]*>>|\[\[(fork|join|choice)\]\])/iy,eG=/[ \t]*\{/y,eP=/:::[ \t]*([\w-]+)/y,eQ=/-{2,}(?=[ \t;}]|$)/y;function eV(e,t,n){return e.lastIndex=n,e.exec(t)?.[0]??null}function eY(e,t){for(;" "===e[t]||" "===e[t];)t++;return t}function eK(e,t){let n=t;for(;e[n].openQuote&&n+1<e.length;)n++;return n}function e0(e){let t=o(e);return t.map((e,n)=>{if(!e.noteOpen)return eK(t,n);let l=n;for(;l+1<t.length&&t[l+1].noteBody;)l++;return Math.min(l+1,t.length-1)})}var e1={subject:"State text entity",example:"A : I #9829; states"},e2=/#\w+;/g,e3=e=>l(e,e1);function e9(e){return e4(I(e),e)}function e4(e,t){let n=l(e,e1);return/#\w+;/.test(t)?{text:n,content:Object.freeze({value:n,prepared:C(M(e),e2,e3),authored:t})}:{text:n}}var e5=String.raw`[\p{L}\p{N}_-]+`,e6=(RegExp(`^${e5}$`,"u"),RegExp(`^(${e5})`,"u")),e8=/^[\w-]+/;function e7(e){if(!e.startsWith(":::"))return null;let t=e.slice(3).match(e8);return t?{className:t[0],length:3+t[0].length}:null}function te(e){let t,n=(t=e.match(e6))?{id:t[1],length:t[1].length}:null;if(!n)return null;let l=e7(e.slice(n.length));return l&&n.length+l.length===e.length?{id:n.id,className:l.className}:null}var tt={subject:"Flowchart label entity",example:'A["#35;"]'},tn=RegExp(`(${A})`,"i"),tl=/(&#(?:\d+|[xX][0-9a-fA-F]+);)/;function ti(e,t=!1){let n=t?e:ts(e),i=(t||n!==e)&&n.length>=2&&n.startsWith("`")&&n.endsWith("`"),s=i?`\`${n.slice(1,-1).trim()}\``:n.trim(),r=i?I(n.slice(1,-1).trim(),!1):O(s);if(!r.includes("#")&&!r.includes("fl°"))return{text:r,markdown:i};let a=r.split(tn).map((e,t)=>t%2==1?e:e.split(tl).map((e,t)=>t%2==1?e:l(e,tt)).join("")).join(""),o=C(M(r),/&#(?:\d+|[xX][0-9a-fA-F]+);|#\w+;/g,e=>e.startsWith("&")?e:l(e,tt)),d=L(o)===E(a)?void 0:{value:a,prepared:o,authored:s};return{text:a,markdown:i,...d?{labelContent:d}:{}}}function ts(e){if(e.length<2||!e.startsWith('"'))return e;if(e.endsWith('"'))return e.slice(1,-1);let t=e.indexOf('"',1);return!(t>0)||e.startsWith('"`')||e.includes('"',t+1)?e:e.slice(1,t)+e.slice(t+1)}var tr={rect:{aliases:["proc","process","rectangle"],geometry:"rectangle",exact:!0,description:""},rounded:{aliases:["event"],geometry:"rounded",exact:!0,description:""},stadium:{aliases:["pill","terminal"],geometry:"stadium",exact:!0,description:""},cyl:{aliases:["cylinder","database","db"],geometry:"cylinder",exact:!0,description:""},diam:{aliases:["decision","diamond","question"],geometry:"diamond",exact:!0,description:""},hex:{aliases:["hexagon","prepare"],geometry:"hexagon",exact:!0,description:""},"lean-r":{aliases:["in-out","lean-right"],geometry:"lean-r",exact:!0,description:""},"lean-l":{aliases:["lean-left","out-in"],geometry:"lean-l",exact:!0,description:""},"trap-b":{aliases:["priority","trapezoid","trapezoid-bottom"],geometry:"trapezoid",exact:!0,description:""},"trap-t":{aliases:["inv-trapezoid","manual","trapezoid-top"],geometry:"trapezoid-alt",exact:!0,description:""},circle:{aliases:["circ"],geometry:"circle",exact:!0,description:""},"dbl-circ":{aliases:["double-circle"],geometry:"doublecircle",exact:!0,description:""},"fr-rect":{aliases:["framed-rectangle","subproc","subprocess","subroutine"],geometry:"subroutine",exact:!0,description:""},odd:{aliases:[],geometry:"asymmetric",exact:!0,description:""},bang:{aliases:[],geometry:"circle",exact:!0,description:""},"notch-rect":{aliases:["card","notched-rectangle"],geometry:"rectangle",exact:!0,description:""},cloud:{aliases:[],geometry:"rounded",exact:!0,description:""},hourglass:{aliases:["collate"],geometry:"diamond",exact:!0,description:""},bolt:{aliases:["com-link","lightning-bolt"],geometry:"rectangle",exact:!0,description:""},brace:{aliases:["brace-l","comment"],geometry:"rectangle",exact:!0,description:""},"brace-r":{aliases:[],geometry:"rectangle",exact:!0,description:""},braces:{aliases:[],geometry:"rectangle",exact:!0,description:""},datastore:{aliases:["data-store"],geometry:"cylinder",exact:!0,description:""},delay:{aliases:["half-rounded-rectangle"],geometry:"rounded",exact:!0,description:""},"h-cyl":{aliases:["das","horizontal-cylinder"],geometry:"cylinder",exact:!0,description:""},"lin-cyl":{aliases:["disk","lined-cylinder"],geometry:"cylinder",exact:!0,description:""},"curv-trap":{aliases:["curved-trapezoid","display"],geometry:"rounded",exact:!0,description:""},"div-rect":{aliases:["div-proc","divided-process","divided-rectangle"],geometry:"rectangle",exact:!0,description:""},doc:{aliases:["document"],geometry:"rectangle",exact:!0,description:""},tri:{aliases:["extract","triangle"],geometry:"trapezoid",exact:!0,description:""},fork:{aliases:["join"],geometry:"rectangle",exact:!0,description:""},"win-pane":{aliases:["internal-storage","window-pane"],geometry:"rectangle",exact:!0,description:""},"f-circ":{aliases:["filled-circle","junction"],geometry:"circle",exact:!0,description:""},"lin-doc":{aliases:["lined-document"],geometry:"rectangle",exact:!0,description:""},"lin-rect":{aliases:["lin-proc","lined-process","lined-rectangle","shaded-process"],geometry:"subroutine",exact:!0,description:""},"notch-pent":{aliases:["loop-limit","notched-pentagon"],geometry:"hexagon",exact:!0,description:""},"flip-tri":{aliases:["flipped-triangle","manual-file"],geometry:"trapezoid-alt",exact:!0,description:""},"sl-rect":{aliases:["manual-input","sloped-rectangle"],geometry:"lean-r",exact:!0,description:""},docs:{aliases:["documents","st-doc","stacked-document"],geometry:"rectangle",exact:!0,description:""},"st-rect":{aliases:["processes","procs","stacked-rectangle"],geometry:"rectangle",exact:!0,description:""},flag:{aliases:["paper-tape"],geometry:"rectangle",exact:!0,description:""},"sm-circ":{aliases:["small-circle","start"],geometry:"circle",exact:!0,description:""},"fr-circ":{aliases:["framed-circle","stop"],geometry:"doublecircle",exact:!0,description:""},"bow-rect":{aliases:["bow-tie-rectangle","stored-data"],geometry:"cylinder",exact:!0,description:""},"cross-circ":{aliases:["crossed-circle","summary"],geometry:"circle",exact:!0,description:""},"tag-doc":{aliases:["tagged-document"],geometry:"rectangle",exact:!0,description:""},"tag-rect":{aliases:["tag-proc","tagged-process","tagged-rectangle"],geometry:"rectangle",exact:!0,description:""},text:{aliases:[],geometry:"rectangle",exact:!0,description:""}},ta=(()=>{let e=new Map;for(let[t,n]of Object.entries(tr))for(let l of(e.set(t,t),n.aliases))e.set(l,t);return e})();function to(e,t){if(e===t)return td(t);try{return td(function(e){if(!e.includes("&"))return e;let t=e.split(`
|
|
7
7
|
`),n=new Map;for(let e of ef(t)){if(e.directive||!e.text.includes("&"))continue;let t=ea(e.text),l=eh(e.text,t).filter(e=>/^(?:click|href)\s/i.test(e.text));for(let i of e.text.matchAll(eb)){let s=i.index,r=l.some(e=>s>=e.start&&s<e.start+e.text.length);if(!r&&!t.regions.some(e=>s>=e.contentStart&&s+i[0].length<=e.contentEnd))continue;let a=void 0===i[1]?void 0!==i[2]?Number(i[2]):Number.parseInt(i[3],16):void 0,o=!r&&(void 0===a||a>0&&a<=1114111&&(a<55296||a>57343)&&!y.test(String.fromCodePoint(a))),{line:d,col:c}=function(e,t){let n=e.joined??[],l=0,i=n.length;for(;l<i;){let e=l+Math.floor((i-l)/2);n[e].at<=t?l=e+1:i=e}let s=0===l?{at:0,line:e.line,col:0}:n[l-1];return{line:s.line,col:s.col+t-s.at}}(e,s),u=n.get(d)??[];u.unshift({col:c,length:i[0].length,code:o?`#${i[1]??a};`:N(i[0])}),n.set(d,u)}}for(let[e,l]of n){let n=t[e];for(let{col:e,length:t,code:i}of l)n=n.slice(0,e)+i+n.slice(e+t);t[e]=n}return t.join(`
|
|
8
|
-
`)}(e))}catch(e){if(e instanceof
|
|
9
|
-
`),u=c.find(e=>e.trim().length>0&&!e.trim().startsWith("%%"))?.trim()??"",y=/^stateDiagram(?:-v2)?(?=$|[\s;%])/i.test(u),S=y?[]:ef(c).flatMap(e=>{let t=e.text.trim();if(!t||t.startsWith("%%"))return[];let n=e.text.length-e.text.trimStart().length;return[{text:t,...e.joined?{breaks:e.joined.map(e=>e.at-n)}:{}}]}),L=(l=(n=y?o(c).filter((e,t,n)=>e.noteBody||e.text.length>0&&(!e.text.startsWith("//")||n[t-1]?.openQuote===!0)).map(e=>e.text):S.map(e=>e.text)).length>0?function(e){if(!e.includes(";"))return;let t=e.match(/^(?:(?:graph|flowchart|swimlane)(?:[ \t]+(?:TD|TB|LR|BT|RL|[<>^v])(?![\w-]))?|stateDiagram(?:-v2)?)(?=$|[\s;])/i);if(!t)return;let n=e.slice(t[0].length).trim();if(n.startsWith(";"))return{header:t[0],statements:/^stateDiagram/i.test(t[0])?[n]:th(n)}}(n[0]):void 0)?[l.header,...l.statements,...n.slice(1)]:n,
|
|
8
|
+
`)}(e))}catch(e){if(e instanceof B)throw e;return td(t)}}function td(t){var n;let l,c=t.split(`
|
|
9
|
+
`),u=c.find(e=>e.trim().length>0&&!e.trim().startsWith("%%"))?.trim()??"",y=/^stateDiagram(?:-v2)?(?=$|[\s;%])/i.test(u),S=y?[]:ef(c).flatMap(e=>{let t=e.text.trim();if(!t||t.startsWith("%%"))return[];let n=e.text.length-e.text.trimStart().length;return[{text:t,...e.joined?{breaks:e.joined.map(e=>e.at-n)}:{}}]}),L=(l=(n=y?o(c).filter((e,t,n)=>e.noteBody||e.text.length>0&&(!e.text.startsWith("//")||n[t-1]?.openQuote===!0)).map(e=>e.text):S.map(e=>e.text)).length>0?function(e){if(!e.includes(";"))return;let t=e.match(/^(?:(?:graph|flowchart|swimlane)(?:[ \t]+(?:TD|TB|LR|BT|RL|[<>^v])(?![\w-]))?|stateDiagram(?:-v2)?)(?=$|[\s;])/i);if(!t)return;let n=e.slice(t[0].length).trim();if(n.startsWith(";"))return{header:t[0],statements:/^stateDiagram/i.test(t[0])?[n]:th(n)}}(n[0]):void 0)?[l.header,...l.statements,...n.slice(1)]:n,C=L.length-S.length,M=C>0?[...Array(C+1),...S.slice(1).map(e=>e.breaks)]:S.map(e=>e.breaks);if(0===L.length)throw Error("Empty mermaid diagram");let I=L[0],O=i(I,"strict"),E="registered"===O.kind?O.familyId:d(I);if("state"===E)return function(t){h("state")&&p("state","header",t[0],{line:1,unit:"normalized"});let n={direction:"TD",nodes:new Map,edges:[],subgraphs:[],classDefs:new Map,classAssignments:new Map,nodeStyles:new Map,linkStyles:new Map},l=[],i=function(e){let t=[];for(let n=0;n<e.length;n++){let l=n;n=eK(e,l);let i=e.slice(l,n+1).map(e=>e.text).join(`
|
|
10
10
|
`);(i||e[l].noteBody)&&t.push({text:i,line:l,noteBody:e[l].noteBody,noteOpen:e[l].noteOpen,commentGlued:e[n].commentGlued})}let n=(e,n)=>{let l=t[e].text,i=t[e].line,s=0;for(let e=l.indexOf(`
|
|
11
11
|
`);e>=0&&e<n;e=l.indexOf(`
|
|
12
|
-
`,e+1))i++,s=e+1;return{line:i,column:n-s}},l=[],i=new Set,o=new Set,d=new Set,c=new Set,u=new Set,h=new Set,p=new Set,f=(e,n)=>{"}"===t[e].text[n]&&(d.add(t[e].line),p.add(`${e}:${n}`))},g=t.length-1;for(;g>0&&!t[g].noteBody&&t[g].text.startsWith("//");)g--;let m=(e,t,n)=>{let l=e.length;if(n!==g)return l;let i=0;for(let n=t+1;n<l;n++)i+="}"===e[n]?1:"{"===e[n]?-1:0;let s=
|
|
13
|
-
`)),
|
|
14
|
-
`)),function(e,t,n){let l=new Map(t);for(let e of t.values())for(let t of e.children.filter(e=>e.concurrencyRegion))l.set(t.id,t);for(let e of l.values())e.nodeIds=e.nodeIds.filter(e=>!n.authored.has(e)),e.children=e.children.filter(e=>!e.stateComposite),h("state")&&g("state","reset-scope-membership",{id:e.id,members:e.nodeIds,children:e.children.map(e=>e.id)});for(let i of(e.subgraphs=[],t.values())){let t=n.ownerOf(i.id),s=t?l.get(n.scopeId(t)):void 0;if(t&&!s)throw Error(`Missing State scope for ${i.id}`);s?s.children.push(i):e.subgraphs.push(i),h("state")&&g("state","resolve-group-owner",{id:i.id,parent:s?.id})}for(let t of n.ownedIds()){if(!e.nodes.has(t))continue;let i=n.ownerOf(t);if(!i)continue;let s=l.get(n.scopeId(i));if(!s)throw Error(`Missing State scope for ${t}`);s.nodeIds.push(t),h("state")&&g("state","resolve-member-owner",{id:t,parent:s.id})}for(let t of e.floatingStateNotes??[]){if(!t.scope)continue;let e=l.get(n.scopeId(t.scope));if(!e)throw Error(`Missing State scope for floating note ${t.id}`);e.nodeIds.push(t.nodeId),h("state")&&g("state","resolve-member-owner",{id:t.nodeId,parent:e.id})}let i=e.subgraphs.map(e=>({group:e,depth:1}));for(;i.length;){let{group:e,depth:t}=i.pop();for(let n of(x("nesting",t),e.children))i.push({group:n,depth:t+1})}}(n,u,d),n}(L);if("flowchart"===E)return function(e,t=[]){let n,l=e[0].match(/^(?:(?:graph|swimlane)\s+(TD|TB|LR|BT|RL|[<>^v])|flowchart(?:\s+(TD|TB|LR|BT|RL|[<>^v]))?)\s*$/i);if(!l)throw Error(`Invalid mermaid header: "${e[0]}". Expected "graph TD", "flowchart LR", "stateDiagram-v2", etc.`);let i=">"===(n=(l[1]??l[2]??"TD").toUpperCase())?"LR":"<"===n?"RL":"^"===n?"BT":"V"===n?"TB":n;h("flowchart")&&(p("flowchart","header",e[0],{line:1,unit:"normalized"}),g("flowchart","set-direction",i));let s={direction:i,nodes:new Map,edges:[],subgraphs:[],classDefs:new Map,classAssignments:new Map,nodeStyles:new Map,linkStyles:new Map},r=[],a=new Map,o=new Set,d=function(e,t=[]){let n=[],l=new Set,i=new Set;for(let[s,r]of e.entries())for(let{text:e,start:a}of eh(r)){let r=e.match(/^subgraph\s+(.+)$/);if(r){let o=function(e){let t,n=(t=e.indexOf("["))>0&&t<e.length-1&&e.endsWith("]")?{id:e.slice(0,t).trim(),title:e.slice(t+1,-1)}:void 0;if(n){let e=ti(n.title),t={label:e.text,...e.labelContent?{labelContent:e.labelContent}:{}};if(tu(n.id))return{id:n.id,...t,generated:!1,identity:n.id,titled:!0};if(function(e){let t=e;if(e.startsWith('"')){let n=e.startsWith('"`'),l=n?e.indexOf('`"',2):e.indexOf('"',1);if(l<0)return!0;t=e.slice(l+(n?2:1))}return!P.test(t)||Y.test(t)}(n.id))throw Error(`Invalid flowchart subgraph identifier ${JSON.stringify(n.id)}`);let l=ts(n.id).trim();return tu(l)?{id:l,...t,generated:!1,identity:l,titled:!0}:{id:tc(l),...t,generated:!0,identity:l,titled:!0}}let l=ti(e),i=ts(e).trim(),s=i!==e&&/^`[\s\S]*`$/.test(i)?i.slice(1,-1).trim():i;return tu(s)?{id:s,label:l.text,...l.labelContent?{labelContent:l.labelContent}:{},generated:!1,identity:s,titled:!1}:{id:tc(s),label:l.text,...l.labelContent?{labelContent:l.labelContent}:{},generated:!0,identity:s,titled:!1}}(r[1].trim());n.push(o),o.generated?!o.titled&&(/\s/.test(o.identity)||t[s]?.some(t=>t>a&&t<a+e.length))&&l.add(o):i.add(o.id)}else{for(let t of e.matchAll(RegExp(e4,"gu")))i.add(t[0]);for(let t=0;t<e.length;){let n=Q(e,t);n>0&&i.add(e.slice(t,t+n)),t=et(e,t)?.end??t+Math.max(n,1)}}}let s=new Map;for(let e of n){if(!e.generated)continue;let t=l.has(e)?void 0:s.get(e.identity);if(t){e.id=t;continue}let n=e.id,r=n;for(let e=2;i.has(r);e++)r=`${n}_${e}`;l.has(e)||s.set(e.identity,r),i.add(r),e.id=r}return n}(e.slice(1),t.slice(1)),c=0,u=new Set([...d.values()].map(e=>e.id)),m=v(),y=[],k=()=>{let e=r.pop();if(!e)return;let t=a.get(e.id),n=m.close(e.id,e.nodeIds),l=n.filter(t=>u.has(t)&&t!==e.id);for(let i of(l.length&&y.push({lister:e.id,ids:l}),t.nodeIds=[...new Set([...t.nodeIds,...n.filter(e=>!u.has(e))])],e.children))i===t||t.children.some(e=>e.id===i.id)||t.children.push(i);t.direction??=e.direction;let i=r.at(-1);o.has(e.id)||r.some(t=>t.id===e.id)||(i?i.children.push(t):s.subgraphs.push(t),o.add(e.id),h("flowchart")&&g("flowchart","attach-group",{id:e.id,parent:i?.id})),h("flowchart")&&g("flowchart","close-group",{id:t.id,label:t.label,members:t.nodeIds,children:t.children.map(e=>e.id),direction:t.direction})};for(let t=1;t<e.length;t++)for(let n of th(e[t])){if(h("flowchart")&&p("flowchart","statement",n,{line:t+1,unit:"normalized"}),/^(?:click|href)\s+/i.test(n.trim())){!function(e,t){let n=t.trim().match(/^(?:click\s+)?(\S+)\s+(?:href\s+)?(?:"((?:\\.|[^"])*)"|(https?:\/\/\S+|mailto:\S+))/i);if(!n)return;let l=(n[2]??n[3]??"").replace(/\\(["\\])/g,"$1");if(!/^(?:https?:|mailto:)/i.test(l))return;let i=e.nodes.get(n[1]);i&&(i.href=l,h("flowchart")&&g("flowchart","set-interaction",{id:i.id,href:l}))}(s,n);continue}let e=function(e,t){let n=t.trim(),l=Q(n),i=l>0?n.slice(l).match(RegExp(`^${tf}`)):null;if(!i)return null;let{end:s,entries:r}=tg(n,l+i[0].length-1);if(""!==n.slice(s+1).trim())return null;let a=n.slice(0,l);return e.edges.some(e=>e.id===a)?{id:a,entries:r}:null}(s,n);if(e){!function(e,{id:t,entries:n}){let l=e.edges.find(e=>e.id===t);if(!l)return;let i=tm(n,"curve");i&&/^[a-z][a-z0-9-]*$/i.test(i)&&(l.curve=i);let s=tm(n,"animate")?.toLowerCase(),r=tm(n,"animation")?.toLowerCase();if("true"===s||"fast"===s||"slow"===s||"fast"===r||"slow"===r){l.animate=!0;let e="fast"===s||"slow"===s?s:r;("fast"===e||"slow"===e)&&(l.animation=e)}h("flowchart")&&g("flowchart","set-edge-metadata",l)}(s,e);continue}let l=n.match(/^classDef\s+([\w,-]+)\s+(.+)$/);if(l){let e=l[1].split(",").map(e=>e.trim()).filter(Boolean),t=ec(w(l[2]));if(0===Object.keys(t).length)continue;for(let n of e)s.classDefs.set(n,t),h("flowchart")&&g("flowchart","define-class",{name:n,props:t});continue}let i=tp(n.match(/^class\s+(\S+)\s+([\w-]+)\s*;?$/));if(i){let e=i[1].split(",").map(e=>e.trim()),t=i[2];for(let n of e)b(s.classAssignments,n,t),h("flowchart")&&g("flowchart","append-class",{id:n,name:t,classes:s.classAssignments.get(n)});continue}let o=tp(n.match(/^style\s+(\S+)\s+(.+)$/));if(o){let e=o[1].split(",").map(e=>e.trim()).filter(Boolean);for(let t of e)tT(s,t,u);let t=ec(w(o[2]));if(0===Object.keys(t).length)continue;for(let n of e)s.nodeStyles.set(n,{...s.nodeStyles.get(n),...t}),h("flowchart")&&g("flowchart","set-node-style",{id:n,props:s.nodeStyles.get(n)});continue}let m=n.match(/^linkStyle\s+(default|[\d,\s]+)\s+(.+)$/);if(m){let e=m[1].trim(),t="default"===e?[]:e.split(",").map(e=>parseInt(e.trim(),10)).filter(e=>!isNaN(e)),n=ec(w(m[2]));if(0===Object.keys(n).length)continue;if("default"===e)s.linkStyles.set("default",{...s.linkStyles.get("default"),...n}),h("flowchart")&&g("flowchart","set-link-style",{target:e,props:s.linkStyles.get("default")});else for(let e of t)s.linkStyles.set(e,{...s.linkStyles.get(e),...n}),h("flowchart")&&g("flowchart","set-link-style",{target:e,props:s.linkStyles.get(e)});continue}let y=n.match(/^direction\s+(TD|TB|LR|BT|RL)\s*$/i);if(y){let e=y[1].toUpperCase();r.length>0?r[r.length-1].direction=e:s.direction=e,h("flowchart")&&g("flowchart","set-direction",{parent:r.at(-1)?.id,direction:e});continue}if("subgraph"===n)throw $({what:`Invalid flowchart statement "${n}": a subgraph needs an id or a title (upstream fails on one with neither)`,expectedForm:'subgraph id, subgraph id[Title] or subgraph "Title"',example:'subgraph S["Stage one"]'});if(n.match(/^subgraph\s+(.+)$/)){let{id:e,label:t,labelContent:n}=d[c++],l={id:e,label:t,...n?{labelContent:n}:{},nodeIds:[],children:[]};a.has(e)||(x("nodes",s.nodes.size+a.size+1),a.set(e,{id:e,label:t,...n?{labelContent:n}:{},nodeIds:[],children:[]}),tx.set(s,a.size)),x("nesting",r.length+1),r.push(l),h("flowchart")&&g("flowchart","open-group",{id:e,label:t,scope:r.at(-2)?.id});continue}if("end"===n){k();continue}let v=function(e,t,n,l=new Set,i){let s=e.trim().replace(/;\s*$/,"").trim(),r,a=tj(s,t,n,l,r);if(!a||0===a.ids.length)return{ok:!1,remaining:s,reason:"expected node"};if(0===(s=a.remaining.trim()).length)return{ok:!0};let o=a.ids;for(;s.length>0;){let e,i,a,d,c,u,p,m,w=s.match(tO),b=w?.[1];w&&(h("flowchart")&&f("flowchart","edge-id",w[0]),s=s.slice(w[0].length).trim());let y=et(s,0);if(y){let t=y.op,n=y.end,l=/^\s*/.exec(s.slice(n))[0].length,r=s.slice(n+l);if(r.startsWith("|")){let e=function(e){let t,n=(t=eo(e,0,!0,!1).regions[0],t?.start===0?t:void 0);return n?.kind==="pipe"&&n.closed?{rawLabel:e.slice(n.contentStart,n.contentEnd),consumed:n.end}:null}(r);if(!e)return{ok:!1,remaining:r,reason:"expected edge target"};K(e.rawLabel,"text"),tW.test(e.rawLabel),e.rawLabel,tz.test(e.rawLabel);let t=ti(e.rawLabel.trim());u=t.text||void 0,p=t.labelContent,n+=l+e.consumed}h("flowchart")&&f("flowchart","link",s.slice(0,n)),s=s.slice(n).trim(),i="~"===t[0]?"invisible":t.includes(".")?"dotted":t.includes("=")?"thick":"solid",m=function(e){let t;if("~"===e[0])t=e.length-3;else if(e.includes("."))t=(e.match(/\./g)?.length??1)-1;else if(e.includes("=")){let n=e.match(/=/g)?.length??2;t=/[>ox]$/.test(e)?n-2:n-3}else{let n=e.match(/-/g)?.length??2;t=/[>ox]$/.test(e)||/^[ox]/.test(e)?n-2:n-3}return t>0?t+1:void 0}(t),d=y.hasArrowStart?"arrow":t.startsWith("o")?"circle":t.startsWith("x")?"cross":void 0,c=tU(t),e=void 0!==d,a=void 0!==c}else{let t=function(e){let t=en(e,0);if(!t)return null;let n="x"===t.startMark?"cross":"o"===t.startMark?"circle":t.startMark?"arrow":void 0;return("x"===t.startMark||"o"===t.startMark)&&n!==tU(t.closeOp)?null:{startMarker:n,openOp:t.openOp,rawLabel:e.slice(t.labelStart,t.labelEnd),closeOp:t.closeOp,consumed:t.end}}(s);if(!t)return{ok:!1,remaining:s,reason:"expected edge operator"};K(t.rawLabel,"edge-text"),tW.test(t.rawLabel);let n=ti(t.rawLabel);u=n.text||void 0,p=n.labelContent,h("flowchart")&&f("flowchart","text-link",s.slice(0,t.consumed)),s=s.slice(t.consumed).trim(),i=t_(t.openOp,t.closeOp),m=function(e,t){let n=t_(e,t),l=(e,t)=>(e.match(RegExp(`\\${t}`,"g"))??[]).length,i=0,s=0;"dotted"===n?(i=Math.max(0,l(e,".")-1),s=Math.max(0,l(t,".")-1)):"thick"===n?(i=Math.max(0,l(e,"=")-2),s=Math.max(0,l(t,"=")-(/[>ox]$/.test(t)?2:3))):(i=Math.max(0,l(e,"-")-2),s=Math.max(0,l(t,"-")-(/[>ox]$/.test(t)?2:3)));let r=Math.max(i,s);return r>0?r+1:void 0}(t.openOp,t.closeOp),e=void 0!==(d=t.startMarker),a=void 0!==(c=tU(t.closeOp))}let k=tj(s,t,n,l,r);if(!k||0===k.ids.length)return{ok:!1,remaining:s,reason:"expected edge target"};s=k.remaining.trim(),x("edges",t.edges.length+o.length*k.ids.length);let $=void 0!==b&&t.edges.some(e=>e.id===b)?void 0:b;for(let n of o)for(let l of k.ids){let s=n===o.at(-1)&&l===k.ids[0]?$:void 0;void 0!==s&&($=void 0),t.edges.push({source:n,target:l,...void 0!==s?{id:s}:{},label:u,...p?{labelContent:p}:{},style:i,hasArrowStart:e,hasArrowEnd:a,startMarker:d,endMarker:c,...void 0!==m?{length:m}:{}}),h("flowchart")&&g("flowchart","add-edge",t.edges.at(-1))}o=k.ids}return{ok:!0}}(n,s,r,u);if(!v.ok)throw function(e,t){let n=`Invalid flowchart statement "${e}"`;if(/^<?(?:-{2,}|-\.+|={2,})/.test(t.remaining)){let e=el(t.remaining,0);if(e&&"stray"in e){let l=t.remaining.slice(e.stray,e.stray+2);return $({what:`${n}: the link label in "${t.remaining}" holds a \`${l}\` before the link that closes it, which upstream's lexer rejects`,expectedForm:`a label without \`${l}\`, or a quoted one`,example:`A -- "x ${l} y" --> B`})}return $({what:`${n}: "${t.remaining}" opens a link label that no link closes (\`--\` and \`-.\` always open a link, so a node id cannot hold them)`,expectedForm:"a label closed by a link of the same stroke, or an id without `--`",example:"A -- label --\x3e B, A == label ==> B or A -. label .-> B"})}let l=function(e){if("expected edge operator"!==e.reason)return;let t=en(e.remaining,0);if(t?.startMark==="x"||t?.startMark==="o")return tU(t.closeOp)===("x"===t.startMark?"cross":"circle")?void 0:e.remaining.slice(0,t.end)}(t);return void 0!==l?$({what:`${n}: the link "${l}" starts with an \`${l[0]}\` marker and ends otherwise; upstream reads it as a link of no type, and ours reads an \`x\` or \`o\` start only before the same end`,expectedForm:"the same marker at both ends of a link label, or none",example:"A x-- label --x B or A -- label --\x3e B"}):!function(e,t){var n;let l,i=e.trim().replace(/;\s*$/,"").trim();return t.remaining.startsWith(",")&&i.endsWith(t.remaining)&&("expected edge operator"!==t.reason||(l=i[(n=i.length-t.remaining.length)-1],","===i[n]&&void 0!==l&&("-"===l||":"===l||X.test(l))))}(e,t)?Error(`${n}: could not fully consume ${t.reason}; remaining input: "${t.remaining}"`):$({what:`${n}: upstream reads the "," before "${t.remaining.slice(1)}" as part of one node id (\`A,B\` is one node there), and ours reads no "," in a node id`,expectedForm:'a node id without ",", or `&` between nodes',example:"A & B --\x3e C"})}(n,v)}for(;r.length>0;)k();return function(e,t){let n=(e,t)=>e===t||e.children.some(e=>n(e,t));for(let{lister:l,ids:i}of t)for(let t of i){let i=t?e.subgraphs.indexOf(t):-1;i<0||n(t,l)||(e.subgraphs.splice(i,1),l.children.push(t),h("flowchart")&&g("flowchart","attach-group",{id:t.id,parent:l.id}))}}(s,y.map(({lister:e,ids:t})=>({lister:a.get(e),ids:t.map(e=>a.get(e))}))),s}(L,C);if("unknown"===O.kind)throw Error(`Unknown Mermaid diagram header: ${I}`);let j="registered"===O.kind?O.familyId:O.match.family.id;throw Error(`Mermaid family "${j}" is not a graph family; use the family-neutral agent parser`)}function tc(e){return e.replace(/<\/?[a-z][^<>]*>/gi," ").trim().replace(/\s+/g,"_").replace(/[^\p{L}\p{N}_-]/gu,"").replace(/-{2,}/g,"_")||"group"}function tu(e){return e.length>0&&Q(e)===e.length}function th(e){return eh(e).map(e=>e.text)}function tp(e){return e&&e[1].split(",").every(e=>""===e||Q(e)===e.length)?e:null}var tf=String.raw`\s*@\s*\{`;function tg(e,n){let l=t(e,n,"flowchart");if(!l.ok)throw $({what:`Invalid @{} metadata in "${e}": ${l.message}`,expectedForm:'a YAML mapping with "double-quoted" strings (a single-quoted one may not hold `"` or `}`)',example:'A@{ shape: rect, label: "Start: a}b" }'});return l}function tm(e,t){return n(e.get(t))?.trim()||void 0}var tx=new WeakMap;function tw(e){x("nodes",e.nodes.size+(tx.get(e)??0)+1)}function tb(e,t){let n=(e.get(t)??0)+1;return e.set(t,n),n}function ty(e,t){let n,{text:l,content:i}=(n=t.map(e=>e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e),e5(t.map(e=>I(e)).join(`
|
|
12
|
+
`,e+1))i++,s=e+1;return{line:i,column:n-s}},l=[],i=new Set,o=new Set,d=new Set,c=new Set,u=new Set,h=new Set,p=new Set,f=(e,n)=>{"}"===t[e].text[n]&&(d.add(t[e].line),p.add(`${e}:${n}`))},g=t.length-1;for(;g>0&&!t[g].noteBody&&t[g].text.startsWith("//");)g--;let m=(e,t,n)=>{let l=e.length;if(n!==g)return l;let i=0;for(let n=t+1;n<l;n++)i+="}"===e[n]?1:"{"===e[n]?-1:0;let s=eY(e,t+1);for(let t=0;t<x&&i>0;t++,i--){let t=l-1;for(;" "===e[t]||" "===e[t];)t--;if("}"!==e[t]||t<=s)break;l=t}return l},x=0,w=0,b=0,y=!0,$=(e,t,n)=>{y||o.add(t),l.push({text:e,line:t}),y=n},v=e=>{let n=t[e+1];return void 0!==n&&!n.noteBody&&!n.noteOpen},S=e=>{for(;;){let n=t[e.row].text;if(e.column=eY(n,e.column),e.column<n.length||0===x||!v(e.row))return;e.row++,e.column=0}},L=(e,n)=>{var l,i;let s=eV(eT,t[e.row].text,e.column);if(null===s)return null;let r=s,a={row:e.row,column:e.column+s.length},o=t[e.row].text.slice(a.column,a.column+1);n.push(/^[ \t\n]/.test(o)||""===o&&!t[e.row].commentGlued);let d={...a};if(S(d),t[d.row].text.startsWith(":::",d.column)){d.column+=3,S(d);let e=eV(eq,t[d.row].text,d.column);if(null===e)return null;r+=`:::${e}`,a.row=d.row,a.column=d.column+e.length}return(l=t[a.row].text,(i=a.column)>=l.length||" ;}:".includes(l[i])||l.startsWith("--\x3e",i))?(f(a.row,a.column),e.row=a.row,e.column=a.column,r):null},C=()=>{let e={row:w,column:b},l=[],i=L(e,l);if(null===i)return null;let s=i,r={...e};S(r);let a=t[r.row].text.startsWith("--\x3e",r.column),o;if(a){r.column+=3,S(r),o=n(r.row,r.column).line;let t=L(r,l);if(null===t)return null;s+=` --> ${t}`,e.row=r.row,e.column=r.column}let d=t[e.row].text,c=eY(d,e.column),h={text:s,...void 0!==o?{toLine:o,nameBlanks:l}:{}};if(":"===d[c]){let l=m(d,c,e.row);l<d.length&&!/;|::/.test(k(d.slice(c+1,l)).replace(/#\w+;/g,"#"))&&u.add(t[e.row].line);let r=d.slice(c,l).trimEnd(),o={start:n(e.row,c),end:n(e.row,l)},p=a?-1:i.indexOf(":::");p<0?Object.assign(h,{text:`${s} ${r}`,textSpan:o}):Object.assign(h,{also:`${i.slice(0,p)} ${r}`,alsoSpan:o}),e.column=l}return w=e.row,b=e.column,h},M=e=>{let l=t[w].text,i=e,s="",r;if('"'===l[i]){let e=l.indexOf('"',i+1),t=e<0?null:eV(eX,l,e+1);if(null===t)return null;s=`${l.slice(i,e+1)} as `,r={start:n(w,i),end:n(w,e+1)},i=e+1+t.length}let a=eV(eU,l,i);if(null===a||(i+=a.length,!s&&null!==eV(eJ,l,i)))return null;if(s&&":"===l[eY(l,i)]){let e=((e,l,i,s)=>{let r=t[w].line,a=`state ${l}${i}`,o=eY(e,s);eP.lastIndex=o;let d=eP.exec(e);if(null!==d){let t=eY(e,o+d[0].length);return t<e.length&&";"!==e[t]&&"}"!==e[t]?null:(f(w,t),h.add(r),b=o+d[0].length,{text:a,opens:!1,also:`${i}:::${d[1]}`})}if(e.startsWith(":::",o)||e.includes("{",o))return null;let c=m(e,o,w);c<e.length&&u.add(r);let p=e.slice(o+1,c).trim();p.includes(":")&&h.add(r);let g={start:n(w,o),end:n(w,c)};return b=c,{text:a,opens:!1,...p?{also:`${i} : ${p}`,alsoSpan:g}:{}}})(l,s,a,i);return e&&{...e,textSpan:r}}eZ.lastIndex=i;let o=eZ.exec(l);null!==o&&(i+=o[0].length);let d=null===o?null:void 0!==o[1]?`<<${o[1]}>>`:o[0],c=eV(eG,l,i),p=null!==c,g=eY(l,i);if(null!==c)i+=c.length;else{if(i<l.length&&!" ;}".includes(l[i]))return null;if(null===d&&g===l.length&&v(w)&&t[w+1].text.startsWith("{"))w++,i=1,p=!0;else if(s&&null===d&&g<l.length){if(";"!==l[g]&&"}"!==l[g])return null;f(w,g)}}return b=i,{text:`state ${s}${a}${null===d?"":` ${d.trim()}`}${p?" {":""}`,opens:p,...r?{textSpan:r}:{}}},I={statements:0,depth:0,column:0};for(;w<t.length;){let e=t[w];if(0===b){if(y=!0,I={statements:l.length,depth:x,column:0},e.noteBody){l.push({text:e.text,line:e.line,noteBody:!0}),w++;continue}let t=e.noteOpen?e.text.match(r):null;if(t){l.push({text:`note ${t[1]} of ${t[2]}`,line:e.line},{text:t[3],line:e.line,noteBody:!0}),w++;continue}}let n=e.text;if((b=eY(n,b))>=n.length){w++,b=0;continue}let f=e.line,g=n[b];if(";"===g){i.add(f),b++,y=!0;continue}if("}"===g){0!==x||p.has(`${w}:${b}`)||c.add(f),l.push({text:"}",line:f}),x=Math.max(0,x-1),b++,y=!0;continue}let m=x>0?eV(eQ,n,b):null;if(null!==m){l.push({text:m,line:f}),b+=m.length,y=!0;continue}if(null!==eV(e_,n,b)||null!==eV(eF,n,b)){let e=n.slice(b);if($(e,f,!1),w++,b=0,s.test(e)&&t[w]?.noteBody===!1){let e=t.findIndex((e,t)=>t>=w&&a.test(e.text));for(;e>0&&w<e;w++)l.push({text:t[w].text,line:t[w].line,noteBody:!0})}continue}let k=w,v=b,S=eV(eH,n,b),L=null===S?null:M(b+S.length),O=null!==S&&!S.startsWith("state");if(O&&null!==L&&!L.opens){let e=eY(t[w].text,b);(t[w].text.startsWith("--\x3e",e)||":"===t[w].text[e])&&(w=k,b=v,L=null)}let E=L??(null===S||O?C():null);if(null!==E){$(E.text,f,E.opens??!1);let e=l.at(-1);E.textSpan&&(e.textSpan=E.textSpan),void 0!==E.toLine&&(e.toLine=E.toLine),E.nameBlanks&&(e.nameBlanks=E.nameBlanks),E.opens&&(e.opens=!0,x++),void 0!==E.also&&l.push({text:E.also,line:f,...E.alsoSpan?{textSpan:E.alsoSpan}:{},...null!==L?{afterAlias:!0}:{}}),w!==k&&(I={statements:l.length,depth:x,column:b});continue}l.length=I.statements,x=I.depth,o.delete(f),i.delete(f),d.delete(f),c.delete(f),u.delete(f),h.delete(f),l.push({text:n.slice(I.column).trim(),line:f}),w++,b=0}let O=l.filter((e,t)=>{if(!e.noteBody||e.text)return!0;let n=e=>{let n=t;for(;l[n]?.noteBody&&!l[n].text;)n+=e;return!l[n]?.noteBody};return!n(-1)&&!n(1)}),E=[];for(let e of O)e.opens?E.push(e.line):"}"!==e.text||e.noteBody||E.pop();return{statements:O,semicolonLines:[...i],juxtaposedLines:[...o],braceNameLines:[...d],unopenedBraceLines:[...c],braceTextLines:[...u],aliasSuffixLines:[...h],unclosedLines:E}}(o(t.slice(1))).statements,d=function(e){let t=new Set;for(let n of e){let e=n.noteBody?null:n.text.match(eN);e&&t.add(e[2])}let n=new Set(t),l=new Map,i=new Map,s=new Map,r=[],a,o=(e,t)=>{n.add(e),!t||l.has(e)||r.some(t=>t.parent===e)||l.set(e,t)};for(let t of e){let e=r.at(-1),n=e?{parent:e.parent,region:e.region}:void 0;if(i.set(t,n),t.noteBody)continue;let d=t.text,c=d.match(eN);if(c){let e=c[2];if(r.some(t=>t.parent===e)){a=`Duplicate State composite identity "${e}" cannot contain itself`;break}o(e,n),l.has(e)||l.set(e,n),x("nesting",r.length+1),r.push({parent:e,region:s.get(e)??0});continue}if("}"===d){r.pop();continue}if(e$.test(d)&&e){s.set(e.parent,++e.region);continue}let u=eB(d);if(u){for(let e of[u.from,u.to])"[*]"===e||ev.test(e)||o(e,n);continue}let h=eC(d)?.target??eM(d)?.target??eI(d)?.id??te(d)?.id??d.match(eA)?.[2]??d.match(eR)?.[1]??eL(d);h&&o(h,n)}let d=e=>e?{parent:e.parent,...(s.get(e.parent)??0)>0?{region:e.region??0}:{}}:void 0,c=j(n),u=(e,t)=>c(`${e}__r${t+1}`,["state-region",e,t]),h=e=>void 0===e.region?e.parent:u(e.parent,e.region),p=new Map;for(let e of t){if(a||p.has(e))continue;let t=[],n=new Set,i=e;for(;void 0!==i&&!p.has(i);){if(n.has(i)){a=`State containment cycle: ${[...t,i].join(" -> ")}`;break}n.add(i),t.push(i),i=l.get(i)?.parent}if(a)break;let s=void 0===i?0:p.get(i);for(let e of t.reverse())x("nesting",s+=d(l.get(e))?.region!==void 0?2:1),p.set(e,s)}for(let[e,t]of p)(s.get(e)??0)>0&&x("nesting",t+1);return{compositeIds:t,issue:a,ownerOf:e=>d(l.get(e)),scopeOf:e=>d(i.get(e)),authored:n,ownedIds:()=>l.keys(),regionId:u,scopeId:h,floatingNoteId:e=>c(`note:${e}`,["state-floating-note",e]),pseudostateId:(e,t)=>{let n=d(i.get(t)),l=n?h(n):"";return c(`${l}_${e}`,["state-pseudo",n?.parent??"",n?.region??-1,e])}}}(i);if(d.issue)throw Error(d.issue);let c=d.compositeIds,u=new Map,f=0,y=new Set,v=new Map,S=(e,t,n)=>{if(y.has(e)&&!n)return;let l=[...y.has(e)?v.get(e)??[]:[],t];v.set(e,l),y.add(e);let i=u.get(e);i&&Object.assign(i,ty(i,l))},L=new Map,C=new Map,M=new Map,I=new Set,O=()=>{let e=l.at(-1);return e?M.get(e)??l.length:0},E=(e,t=O()+1)=>{x("nesting",t),M.set(e,t),l.push(e)},B=null,A=(e,t,i)=>{n.stateNotes||(n.stateNotes=[]);let{text:s,content:r}=e9(i);n.stateNotes.push({id:`note#${n.stateNotes.length}`,target:e,side:t,text:s,...r?{textContent:r}:{}}),h("state")&&g("state","add-note",n.stateNotes.at(-1)),c.has(e)||tS(n,l,e)},N=new Set,R=(e,t,i)=>{let s;if("[*]"===e){let e=d.pseudostateId("source"===t?"start":"end",i);return tv(n,l,{id:e,label:"",shape:"source"===t?"state-start":"state-end"}),e}let r=(s=e.match(ev))?{base:s[1],deep:"H*"===s[2]}:null;if(r){let e=[...l].reverse().find(e=>!e.concurrencyRegion),t=`${""!==r.base?r.base:e?.id??""}[H${r.deep?"*":""}]`;return tv(n,l,{id:t,label:r.deep?"H*":"H",shape:"state-history"}),t}return c.has(e)||tS(n,l,e),e};for(let t of i){let i=t.text,s={line:t.line+2,unit:"normalized"};if(h("state")&&p("state",B?"note-body":"statement",i,s),B){a.test(i)?(A(B.target,B.side,B.lines.join(`
|
|
13
|
+
`)),B=null):B.lines.push(i);continue}if(!i)continue;let r=function(e){let t=/^note\s+"([^"]*)"\s+as\s+([\w\p{L}-]+)\s*$/iu.exec(e);return t?{id:t[2],text:t[1]}:null}(i);if(r){if(N.has(r.id))throw Error(`Duplicate floating State note "${r.id}"`);N.add(r.id);let{text:e,content:l}=e9(r.text),i=d.scopeOf(t),s=d.floatingNoteId(r.id),a={id:r.id,text:e,...l?{textContent:l}:{},...i?{scope:i}:{},nodeId:s};n.floatingStateNotes||(n.floatingStateNotes=[]),n.floatingStateNotes.push(a),tw(n),n.nodes.set(s,{id:s,label:e,...l?{labelContent:l}:{},shape:"state-note",floatingNoteId:r.id}),h("state")&&(g("state","add-floating-note",a),g("state","add-node",n.nodes.get(s)));continue}if(/^scale\s+\d+\s+width$/i.test(i)?"scale":/^hide empty description$/i.test(i)?"hide_empty_description":null)continue;let o=eC(i);if(o){A(o.target,o.side,o.text);continue}let k=eM(i);if(k){B={target:k.target,side:k.side,lines:[]};continue}let j=i.match(ej);if(j){let e=l.at(-1);e?I.has(e)||(e.direction=j[1].toUpperCase()):n.direction=j[1].toUpperCase(),h("state")&&g("state","set-direction",{parent:l.at(-1)?.id,direction:j[1].toUpperCase()});continue}let W=i.match(eW);if(W){let t=W[1].split(",").map(e=>e.trim()).filter(Boolean),l=e(W[2]);for(let e of t)n.classDefs.set(e,m(n.classDefs.get(e),l)),h("state")&&g("state","define-class",{name:e,props:l});continue}let z=function(e){let t=e.match(/^(?:class|cssClass)\s+(.+?)\s+([\w-]+)$/iu);if(!t)return null;let n=t[1].split(",").map(e=>e.trim());return n.some(e=>!eS.test(e))?null:{ids:n,className:t[2]}}(i);if(z){for(let e of z.ids)b(n.classAssignments,e,z.className),h("state")&&g("state","assign-class",{id:e,name:z.className});continue}let D=i.match(ez);if(D){let t=D[1].split(",").map(e=>e.trim()).filter(Boolean),l=e(D[2]);for(let e of t)n.nodeStyles.set(e,{...l}),h("state")&&g("state","set-node-style",{id:e,props:n.nodeStyles.get(e)});continue}let T=i.match(eD);if(T){let e=T[1].trim(),t=w(T[2]);if(0===Object.keys(t).length)continue;if("default"===e)n.linkStyles.set("default",{...n.linkStyles.get("default"),...t}),h("state")&&g("state","set-link-style",{target:e,props:n.linkStyles.get("default")});else for(let l of e.split(",").map(e=>parseInt(e.trim(),10)))isNaN(l)||(n.linkStyles.set(l,{...n.linkStyles.get(l),...t}),h("state")&&g("state","set-link-style",{target:l,props:n.linkStyles.get(l)}));continue}let q=eI(i);if(q){let e="fork"===q.stereotype?"state-fork":"join"===q.stereotype?"state-join":"choice"===q.stereotype?"state-choice":"state-history",t="state-history"===e?"deep-history"===q.stereotype?"H*":"H":"";n.nodes.has(q.id)||tw(n),n.nodes.set(q.id,{id:q.id,label:t,shape:e}),h("state")&&g("state","upsert-node",n.nodes.get(q.id)),t$(n,l,q.id);continue}if(e$.test(i)&&l.length>0){let e=l[l.length-1],t;if(e.concurrencyRegion)l.pop(),t=l[l.length-1];else{t=e,x("nodes",n.nodes.size+ ++f),tx.set(n,f);let l={id:d.regionId(t.id,tb(L,t.id)-1),label:"",nodeIds:t.nodeIds.splice(0),children:t.children.splice(0),concurrencyRegion:!0};t.children.push(l),M.set(l,O()+1),h("state")&&g("state","add-region",{id:l.id,parent:t.id,members:l.nodeIds,children:l.children.map(e=>e.id)})}x("nodes",n.nodes.size+ ++f),tx.set(n,f);let i={id:d.regionId(t.id,tb(L,t.id)-1),label:"",nodeIds:[],children:[],concurrencyRegion:!0};t.children.push(i),E(i),h("state")&&g("state","add-region",{id:i.id,parent:t.id,members:i.nodeIds});continue}let _=i.match(eN);if(_){let e=_[2],t=u.get(e);if(t&&!l.includes(t)){void 0!==_[1]&&S(e,_[1],!0),void 0!==t.direction&&I.add(t),n.nodes.delete(e),E(t,M.get(t));let l=t.children.at(-1);l?.concurrencyRegion&&E(l,M.get(l)),h("state")&&g("state","open-group",{id:e,label:t.label,parent:C.get(t)});continue}void 0!==_[1]&&(v.set(e,[_[1]]),y.add(e));let i=y.has(e)?v.get(e):void 0,s={id:e,label:e,nodeIds:[],children:[],stateComposite:!0};void 0!==i&&Object.assign(s,ty(s,i));let r=s.label;x("nodes",n.nodes.size-Number(n.nodes.has(e))+ ++f),tx.set(n,f),E(s),u.set(e,s),n.nodes.delete(e),h("state")&&g("state","open-group",{id:e,label:r,parent:l.at(-2)?.id});continue}if("}"===i){l.length>0&&l[l.length-1].concurrencyRegion&&l.pop();let e=l.pop();if(e){if(!C.has(e)){let t=l.at(-1);t?t.children.push(e):n.subgraphs.push(e),C.set(e,t?.id)}h("state")&&g("state","close-group",{id:e.id,label:e.label,members:e.nodeIds,children:e.children.map(e=>e.id),parent:C.get(e)})}continue}let F=i.match(eA);if(F){let e=[F[1]],t=F[2];if(c.has(t)){S(t,F[1],!1);continue}let i=n.nodes.get(t);i?.shape==="rounded"&&!y.has(t)&&(v.set(t,e),n.nodes.set(t,ty(i,e)),h("state")&&g("state","set-label",{id:t,label:n.nodes.get(t).label})),i||v.set(t,e),tv(n,l,ty({id:t,label:t,shape:"rounded"},e)),y.add(t);continue}let H=eB(i);if(H){let e=R(H.from,"source",t),l=R(H.to,"target",t);H.fromClass&&(b(n.classAssignments,e,H.fromClass),h("state")&&g("state","assign-class",{id:e,name:H.fromClass})),H.toClass&&(b(n.classAssignments,l,H.toClass),h("state")&&g("state","assign-class",{id:l,name:H.toClass}));let i=H.label?e9(H.label):void 0;x("edges",n.edges.length+1),n.edges.push({source:e,target:l,label:i?.text,...i?.content?{labelContent:i.content}:{},style:"solid",hasArrowStart:!1,hasArrowEnd:!0}),h("state")&&g("state","add-edge",n.edges.at(-1),s);continue}let U=te(i);if(U){c.has(U.id)||tS(n,l,U.id),b(n.classAssignments,U.id,U.className),h("state")&&g("state","assign-class",{id:U.id,name:U.className});continue}let X=i.match(eR);if(X){let e=X[1],t=X[2].trim();if(c.has(e)){S(e,t,!0);continue}let i=n.nodes.get(e),s=[...y.has(e)?v.get(e)??[]:[],t];i&&"rounded"===i.shape&&(v.set(e,s),n.nodes.set(e,ty(i,s)),h("state")&&g("state","set-label",{id:e,label:n.nodes.get(e).label})),i||v.set(e,s),tv(n,l,ty({id:e,label:e,shape:"rounded"},s)),y.add(e);continue}let J=eL(i);if(null!==J){c.has(J)||tv(n,l,{id:J,label:J,shape:"rounded"});continue}let Z=/^state\s+"[^"]*"\s+as\s+/.exec(i),G=Z?i.slice(Z[0].length).replace(/\{$/,"").trimEnd():"";throw/\s/.test(G)?$({what:`Unsupported state syntax: "${i}"`,expectedForm:`one word after \`as\`; pinned Mermaid reads "${G}" as one name, which no transition can refer to`,example:'state "Long name" as LongName'}):$({what:`Unsupported state syntax: "${i}"`,expectedForm:"a state declaration, transition, composite, note, direction, or paint directive",example:"A --\x3e B : continue"})}let W=l.find(e=>!e.concurrencyRegion);if(W)throw $({what:`Composite state "${W.id}" is never closed`,expectedForm:"a `}` where the composite ends",example:"state X { A }"});return B&&A(B.target,B.side,B.lines.join(`
|
|
14
|
+
`)),function(e,t,n){let l=new Map(t);for(let e of t.values())for(let t of e.children.filter(e=>e.concurrencyRegion))l.set(t.id,t);for(let e of l.values())e.nodeIds=e.nodeIds.filter(e=>!n.authored.has(e)),e.children=e.children.filter(e=>!e.stateComposite),h("state")&&g("state","reset-scope-membership",{id:e.id,members:e.nodeIds,children:e.children.map(e=>e.id)});for(let i of(e.subgraphs=[],t.values())){let t=n.ownerOf(i.id),s=t?l.get(n.scopeId(t)):void 0;if(t&&!s)throw Error(`Missing State scope for ${i.id}`);s?s.children.push(i):e.subgraphs.push(i),h("state")&&g("state","resolve-group-owner",{id:i.id,parent:s?.id})}for(let t of n.ownedIds()){if(!e.nodes.has(t))continue;let i=n.ownerOf(t);if(!i)continue;let s=l.get(n.scopeId(i));if(!s)throw Error(`Missing State scope for ${t}`);s.nodeIds.push(t),h("state")&&g("state","resolve-member-owner",{id:t,parent:s.id})}for(let t of e.floatingStateNotes??[]){if(!t.scope)continue;let e=l.get(n.scopeId(t.scope));if(!e)throw Error(`Missing State scope for floating note ${t.id}`);e.nodeIds.push(t.nodeId),h("state")&&g("state","resolve-member-owner",{id:t.nodeId,parent:e.id})}let i=e.subgraphs.map(e=>({group:e,depth:1}));for(;i.length;){let{group:e,depth:t}=i.pop();for(let n of(x("nesting",t),e.children))i.push({group:n,depth:t+1})}}(n,u,d),n}(L);if("flowchart"===E)return function(e,t=[]){let n,l=e[0].match(/^(?:(?:graph|swimlane)\s+(TD|TB|LR|BT|RL|[<>^v])|flowchart(?:\s+(TD|TB|LR|BT|RL|[<>^v]))?)\s*$/i);if(!l)throw Error(`Invalid mermaid header: "${e[0]}". Expected "graph TD", "flowchart LR", "stateDiagram-v2", etc.`);let i=">"===(n=(l[1]??l[2]??"TD").toUpperCase())?"LR":"<"===n?"RL":"^"===n?"BT":"V"===n?"TB":n;h("flowchart")&&(p("flowchart","header",e[0],{line:1,unit:"normalized"}),g("flowchart","set-direction",i));let s={direction:i,nodes:new Map,edges:[],subgraphs:[],classDefs:new Map,classAssignments:new Map,nodeStyles:new Map,linkStyles:new Map},r=[],a=new Map,o=new Set,d=function(e,t=[]){let n=[],l=new Set,i=new Set;for(let[s,r]of e.entries())for(let{text:e,start:a}of eh(r)){let r=e.match(/^subgraph\s+(.+)$/);if(r){let o=function(e){let t,n=(t=e.indexOf("["))>0&&t<e.length-1&&e.endsWith("]")?{id:e.slice(0,t).trim(),title:e.slice(t+1,-1)}:void 0;if(n){let e=ti(n.title),t={label:e.text,...e.labelContent?{labelContent:e.labelContent}:{}};if(tu(n.id))return{id:n.id,...t,generated:!1,identity:n.id,titled:!0};if(function(e){let t=e;if(e.startsWith('"')){let n=e.startsWith('"`'),l=n?e.indexOf('`"',2):e.indexOf('"',1);if(l<0)return!0;t=e.slice(l+(n?2:1))}return!Y.test(t)||K.test(t)}(n.id))throw Error(`Invalid flowchart subgraph identifier ${JSON.stringify(n.id)}`);let l=ts(n.id).trim();return tu(l)?{id:l,...t,generated:!1,identity:l,titled:!0}:{id:tc(l),...t,generated:!0,identity:l,titled:!0}}let l=ti(e),i=ts(e).trim(),s=i!==e&&/^`[\s\S]*`$/.test(i)?i.slice(1,-1).trim():i;return tu(s)?{id:s,label:l.text,...l.labelContent?{labelContent:l.labelContent}:{},generated:!1,identity:s,titled:!1}:{id:tc(s),label:l.text,...l.labelContent?{labelContent:l.labelContent}:{},generated:!0,identity:s,titled:!1}}(r[1].trim());n.push(o),o.generated?!o.titled&&(/\s/.test(o.identity)||t[s]?.some(t=>t>a&&t<a+e.length))&&l.add(o):i.add(o.id)}else{for(let t of e.matchAll(RegExp(e5,"gu")))i.add(t[0]);for(let t=0;t<e.length;){let n=P(e,t);n>0&&i.add(e.slice(t,t+n)),t=et(e,t)?.end??t+Math.max(n,1)}}}let s=new Map;for(let e of n){if(!e.generated)continue;let t=l.has(e)?void 0:s.get(e.identity);if(t){e.id=t;continue}let n=e.id,r=n;for(let e=2;i.has(r);e++)r=`${n}_${e}`;l.has(e)||s.set(e.identity,r),i.add(r),e.id=r}return n}(e.slice(1),t.slice(1)),c=0,u=new Set([...d.values()].map(e=>e.id)),m=v(),y=[],k=()=>{let e=r.pop();if(!e)return;let t=a.get(e.id),n=m.close(e.id,e.nodeIds),l=n.filter(t=>u.has(t)&&t!==e.id);for(let i of(l.length&&y.push({lister:e.id,ids:l}),t.nodeIds=[...new Set([...t.nodeIds,...n.filter(e=>!u.has(e))])],e.children))i===t||t.children.some(e=>e.id===i.id)||t.children.push(i);t.direction??=e.direction;let i=r.at(-1);o.has(e.id)||r.some(t=>t.id===e.id)||(i?i.children.push(t):s.subgraphs.push(t),o.add(e.id),h("flowchart")&&g("flowchart","attach-group",{id:e.id,parent:i?.id})),h("flowchart")&&g("flowchart","close-group",{id:t.id,label:t.label,members:t.nodeIds,children:t.children.map(e=>e.id),direction:t.direction})};for(let t=1;t<e.length;t++)for(let n of th(e[t])){if(h("flowchart")&&p("flowchart","statement",n,{line:t+1,unit:"normalized"}),/^(?:click|href)\s+/i.test(n.trim())){!function(e,t){let n=t.trim().match(/^(?:click\s+)?(\S+)\s+(?:href\s+)?(?:"((?:\\.|[^"])*)"|(https?:\/\/\S+|mailto:\S+))/i);if(!n)return;let l=(n[2]??n[3]??"").replace(/\\(["\\])/g,"$1");if(!/^(?:https?:|mailto:)/i.test(l))return;let i=e.nodes.get(n[1]);i&&(i.href=l,h("flowchart")&&g("flowchart","set-interaction",{id:i.id,href:l}))}(s,n);continue}let e=function(e,t){let n=t.trim(),l=P(n),i=l>0?n.slice(l).match(RegExp(`^${tf}`)):null;if(!i)return null;let{end:s,entries:r}=tg(n,l+i[0].length-1);if(""!==n.slice(s+1).trim())return null;let a=n.slice(0,l);return e.edges.some(e=>e.id===a)?{id:a,entries:r}:null}(s,n);if(e){!function(e,{id:t,entries:n}){let l=e.edges.find(e=>e.id===t);if(!l)return;let i=tm(n,"curve");i&&/^[a-z][a-z0-9-]*$/i.test(i)&&(l.curve=i);let s=tm(n,"animate")?.toLowerCase(),r=tm(n,"animation")?.toLowerCase();if("true"===s||"fast"===s||"slow"===s||"fast"===r||"slow"===r){l.animate=!0;let e="fast"===s||"slow"===s?s:r;("fast"===e||"slow"===e)&&(l.animation=e)}h("flowchart")&&g("flowchart","set-edge-metadata",l)}(s,e);continue}let l=n.match(/^classDef\s+([\w,-]+)\s+(.+)$/);if(l){let e=l[1].split(",").map(e=>e.trim()).filter(Boolean),t=ec(w(l[2]));if(0===Object.keys(t).length)continue;for(let n of e)s.classDefs.set(n,t),h("flowchart")&&g("flowchart","define-class",{name:n,props:t});continue}let i=tp(n.match(/^class\s+(\S+)\s+([\w-]+)\s*;?$/));if(i){let e=i[1].split(",").map(e=>e.trim()),t=i[2];for(let n of e)b(s.classAssignments,n,t),h("flowchart")&&g("flowchart","append-class",{id:n,name:t,classes:s.classAssignments.get(n)});continue}let o=tp(n.match(/^style\s+(\S+)\s+(.+)$/));if(o){let e=o[1].split(",").map(e=>e.trim()).filter(Boolean);for(let t of e)tT(s,t,u);let t=ec(w(o[2]));if(0===Object.keys(t).length)continue;for(let n of e)s.nodeStyles.set(n,{...s.nodeStyles.get(n),...t}),h("flowchart")&&g("flowchart","set-node-style",{id:n,props:s.nodeStyles.get(n)});continue}let m=n.match(/^linkStyle\s+(default|[\d,\s]+)\s+(.+)$/);if(m){let e=m[1].trim(),t="default"===e?[]:e.split(",").map(e=>parseInt(e.trim(),10)).filter(e=>!isNaN(e)),n=ec(w(m[2]));if(0===Object.keys(n).length)continue;if("default"===e)s.linkStyles.set("default",{...s.linkStyles.get("default"),...n}),h("flowchart")&&g("flowchart","set-link-style",{target:e,props:s.linkStyles.get("default")});else for(let e of t)s.linkStyles.set(e,{...s.linkStyles.get(e),...n}),h("flowchart")&&g("flowchart","set-link-style",{target:e,props:s.linkStyles.get(e)});continue}let y=n.match(/^direction\s+(TD|TB|LR|BT|RL)\s*$/i);if(y){let e=y[1].toUpperCase();r.length>0?r[r.length-1].direction=e:s.direction=e,h("flowchart")&&g("flowchart","set-direction",{parent:r.at(-1)?.id,direction:e});continue}if("subgraph"===n)throw $({what:`Invalid flowchart statement "${n}": a subgraph needs an id or a title (upstream fails on one with neither)`,expectedForm:'subgraph id, subgraph id[Title] or subgraph "Title"',example:'subgraph S["Stage one"]'});if(n.match(/^subgraph\s+(.+)$/)){let{id:e,label:t,labelContent:n}=d[c++],l={id:e,label:t,...n?{labelContent:n}:{},nodeIds:[],children:[]};a.has(e)||(x("nodes",s.nodes.size+a.size+1),a.set(e,{id:e,label:t,...n?{labelContent:n}:{},nodeIds:[],children:[]}),tx.set(s,a.size)),x("nesting",r.length+1),r.push(l),h("flowchart")&&g("flowchart","open-group",{id:e,label:t,scope:r.at(-2)?.id});continue}if("end"===n){k();continue}let v=function(e,t,n,l=new Set,i){let s=e.trim().replace(/;\s*$/,"").trim(),r,a=tB(s,t,n,l,r);if(!a||0===a.ids.length)return{ok:!1,remaining:s,reason:"expected node"};if(0===(s=a.remaining.trim()).length)return{ok:!0};let o=a.ids;for(;s.length>0;){let e,i,a,d,c,u,p,m,w=s.match(tO),b=w?.[1];w&&(h("flowchart")&&f("flowchart","edge-id",w[0]),s=s.slice(w[0].length).trim());let y=et(s,0);if(y){let t=y.op,n=y.end,l=/^\s*/.exec(s.slice(n))[0].length,r=s.slice(n+l);if(r.startsWith("|")){let e=function(e){let t,n=(t=eo(e,0,!0,!1).regions[0],t?.start===0?t:void 0);return n?.kind==="pipe"&&n.closed?{rawLabel:e.slice(n.contentStart,n.contentEnd),consumed:n.end}:null}(r);if(!e)return{ok:!1,remaining:r,reason:"expected edge target"};V(e.rawLabel,"text"),tR.test(e.rawLabel),e.rawLabel,tz.test(e.rawLabel);let t=ti(e.rawLabel.trim());u=t.text||void 0,p=t.labelContent,n+=l+e.consumed}h("flowchart")&&f("flowchart","link",s.slice(0,n)),s=s.slice(n).trim(),i="~"===t[0]?"invisible":t.includes(".")?"dotted":t.includes("=")?"thick":"solid",m=function(e){let t;if("~"===e[0])t=e.length-3;else if(e.includes("."))t=(e.match(/\./g)?.length??1)-1;else if(e.includes("=")){let n=e.match(/=/g)?.length??2;t=/[>ox]$/.test(e)?n-2:n-3}else{let n=e.match(/-/g)?.length??2;t=/[>ox]$/.test(e)||/^[ox]/.test(e)?n-2:n-3}return t>0?t+1:void 0}(t),d=y.hasArrowStart?"arrow":t.startsWith("o")?"circle":t.startsWith("x")?"cross":void 0,c=tH(t),e=void 0!==d,a=void 0!==c}else{let t=function(e){let t=en(e,0);if(!t)return null;let n="x"===t.startMark?"cross":"o"===t.startMark?"circle":t.startMark?"arrow":void 0;return("x"===t.startMark||"o"===t.startMark)&&n!==tH(t.closeOp)?null:{startMarker:n,openOp:t.openOp,rawLabel:e.slice(t.labelStart,t.labelEnd),closeOp:t.closeOp,consumed:t.end}}(s);if(!t)return{ok:!1,remaining:s,reason:"expected edge operator"};V(t.rawLabel,"edge-text"),tR.test(t.rawLabel);let n=ti(t.rawLabel);u=n.text||void 0,p=n.labelContent,h("flowchart")&&f("flowchart","text-link",s.slice(0,t.consumed)),s=s.slice(t.consumed).trim(),i=tF(t.openOp,t.closeOp),m=function(e,t){let n=tF(e,t),l=(e,t)=>(e.match(RegExp(`\\${t}`,"g"))??[]).length,i=0,s=0;"dotted"===n?(i=Math.max(0,l(e,".")-1),s=Math.max(0,l(t,".")-1)):"thick"===n?(i=Math.max(0,l(e,"=")-2),s=Math.max(0,l(t,"=")-(/[>ox]$/.test(t)?2:3))):(i=Math.max(0,l(e,"-")-2),s=Math.max(0,l(t,"-")-(/[>ox]$/.test(t)?2:3)));let r=Math.max(i,s);return r>0?r+1:void 0}(t.openOp,t.closeOp),e=void 0!==(d=t.startMarker),a=void 0!==(c=tH(t.closeOp))}let k=tB(s,t,n,l,r);if(!k||0===k.ids.length)return{ok:!1,remaining:s,reason:"expected edge target"};s=k.remaining.trim(),x("edges",t.edges.length+o.length*k.ids.length);let $=void 0!==b&&t.edges.some(e=>e.id===b)?void 0:b;for(let n of o)for(let l of k.ids){let s=n===o.at(-1)&&l===k.ids[0]?$:void 0;void 0!==s&&($=void 0),t.edges.push({source:n,target:l,...void 0!==s?{id:s}:{},label:u,...p?{labelContent:p}:{},style:i,hasArrowStart:e,hasArrowEnd:a,startMarker:d,endMarker:c,...void 0!==m?{length:m}:{}}),h("flowchart")&&g("flowchart","add-edge",t.edges.at(-1))}o=k.ids}return{ok:!0}}(n,s,r,u);if(!v.ok)throw function(e,t){let n=`Invalid flowchart statement "${e}"`;if(/^<?(?:-{2,}|-\.+|={2,})/.test(t.remaining)){let e=el(t.remaining,0);if(e&&"stray"in e){let l=t.remaining.slice(e.stray,e.stray+2);return $({what:`${n}: the link label in "${t.remaining}" holds a \`${l}\` before the link that closes it, which upstream's lexer rejects`,expectedForm:`a label without \`${l}\`, or a quoted one`,example:`A -- "x ${l} y" --> B`})}return $({what:`${n}: "${t.remaining}" opens a link label that no link closes (\`--\` and \`-.\` always open a link, so a node id cannot hold them)`,expectedForm:"a label closed by a link of the same stroke, or an id without `--`",example:"A -- label --\x3e B, A == label ==> B or A -. label .-> B"})}let l=function(e){if("expected edge operator"!==e.reason)return;let t=en(e.remaining,0);if(t?.startMark==="x"||t?.startMark==="o")return tH(t.closeOp)===("x"===t.startMark?"cross":"circle")?void 0:e.remaining.slice(0,t.end)}(t);return void 0!==l?$({what:`${n}: the link "${l}" starts with an \`${l[0]}\` marker and ends otherwise; upstream reads it as a link of no type, and ours reads an \`x\` or \`o\` start only before the same end`,expectedForm:"the same marker at both ends of a link label, or none",example:"A x-- label --x B or A -- label --\x3e B"}):!function(e,t){var n;let l,i=e.trim().replace(/;\s*$/,"").trim();return t.remaining.startsWith(",")&&i.endsWith(t.remaining)&&("expected edge operator"!==t.reason||(l=i[(n=i.length-t.remaining.length)-1],","===i[n]&&void 0!==l&&("-"===l||":"===l||G.test(l))))}(e,t)?Error(`${n}: could not fully consume ${t.reason}; remaining input: "${t.remaining}"`):$({what:`${n}: upstream reads the "," before "${t.remaining.slice(1)}" as part of one node id (\`A,B\` is one node there), and ours reads no "," in a node id`,expectedForm:'a node id without ",", or `&` between nodes',example:"A & B --\x3e C"})}(n,v)}for(;r.length>0;)k();return function(e,t){let n=(e,t)=>e===t||e.children.some(e=>n(e,t));for(let{lister:l,ids:i}of t)for(let t of i){let i=t?e.subgraphs.indexOf(t):-1;i<0||n(t,l)||(e.subgraphs.splice(i,1),l.children.push(t),h("flowchart")&&g("flowchart","attach-group",{id:t.id,parent:l.id}))}}(s,y.map(({lister:e,ids:t})=>({lister:a.get(e),ids:t.map(e=>a.get(e))}))),s}(L,M);if("unknown"===O.kind)throw Error(`Unknown Mermaid diagram header: ${I}`);let B="registered"===O.kind?O.familyId:O.match.family.id;throw Error(`Mermaid family "${B}" is not a graph family; use the family-neutral agent parser`)}function tc(e){return e.replace(/<\/?[a-z][^<>]*>/gi," ").trim().replace(/\s+/g,"_").replace(/[^\p{L}\p{N}_-]/gu,"").replace(/-{2,}/g,"_")||"group"}function tu(e){return e.length>0&&P(e)===e.length}function th(e){return eh(e).map(e=>e.text)}function tp(e){return e&&e[1].split(",").every(e=>""===e||P(e)===e.length)?e:null}var tf=String.raw`\s*@\s*\{`;function tg(e,n){let l=t(e,n,"flowchart");if(!l.ok)throw $({what:`Invalid @{} metadata in "${e}": ${l.message}`,expectedForm:'a YAML mapping with "double-quoted" strings (a single-quoted one may not hold `"` or `}`)',example:'A@{ shape: rect, label: "Start: a}b" }'});return l}function tm(e,t){return n(e.get(t))?.trim()||void 0}var tx=new WeakMap;function tw(e){x("nodes",e.nodes.size+(tx.get(e)??0)+1)}function tb(e,t){let n=(e.get(t)??0)+1;return e.set(t,n),n}function ty(e,t){let n,{text:l,content:i}=(n=t.map(e=>e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e),e4(t.map(e=>I(e)).join(`
|
|
15
15
|
`),n.join(`
|
|
16
|
-
`).replace(/\r\n?|\n/g,"<br/>"))),{labelContent:s,...r}=e;return{...r,label:l,...i?{labelContent:i}:{}}}var tk=new WeakMap;function t$(e,t,n){let l=t.at(-1);if(!l||l.nodeIds.includes(n))return;let i=tk.get(e);i||tk.set(e,i=new Map),!i.has(n)&&(i.set(n,l),l.nodeIds.push(n),h("state")&&g("state","add-member",{parent:l.id,id:n}))}function tv(e,t,n){!e.nodes.has(n.id)&&(tw(e),e.nodes.set(n.id,n),h("state")&&g("state","add-node",n)),t$(e,t,n.id)}function tS(e,t,n){e.nodes.has(n)?t$(e,t,n):tv(e,t,{id:n,label:n,shape:"rounded"})}var tL=e=>RegExp(`^${e}`,"u"),
|
|
16
|
+
`).replace(/\r\n?|\n/g,"<br/>"))),{labelContent:s,...r}=e;return{...r,label:l,...i?{labelContent:i}:{}}}var tk=new WeakMap;function t$(e,t,n){let l=t.at(-1);if(!l||l.nodeIds.includes(n))return;let i=tk.get(e);i||tk.set(e,i=new Map),!i.has(n)&&(i.set(n,l),l.nodeIds.push(n),h("state")&&g("state","add-member",{parent:l.id,id:n}))}function tv(e,t,n){!e.nodes.has(n.id)&&(tw(e),e.nodes.set(n.id,n),h("state")&&g("state","add-node",n)),t$(e,t,n.id)}function tS(e,t,n){e.nodes.has(n)?t$(e,t,n):tv(e,t,{id:n,label:n,shape:"rounded"})}var tL=e=>RegExp(`^${e}`,"u"),tC=[{regex:tL(String.raw`\(\(\((.+?)\)\)\)`),shape:"doublecircle"},{regex:tL(String.raw`\(\[(.+?)\]\)`),shape:"stadium"},{regex:tL(String.raw`\(-(.+?)-\)`),shape:"ellipse"},{regex:tL(String.raw`\(\((.+?)\)\)`),shape:"circle"},{regex:tL(String.raw`\[\[(.+?)\]\]`),shape:"subroutine"},{regex:tL(String.raw`\[\((.+?)\)\]`),shape:"cylinder"},{regex:tL(String.raw`\[\/([^\]]+?)\\\]`),shape:"trapezoid"},{regex:tL(String.raw`\[\\([^\]]+?)\/\]`),shape:"trapezoid-alt"},{regex:tL(String.raw`\[\/([^\]]+?)\/\]`),shape:"lean-r"},{regex:tL(String.raw`\[\\([^\]]+?)\\\]`),shape:"lean-l"},{regex:tL(String.raw`>(.+?)\]`),shape:"asymmetric"},{regex:tL(String.raw`\{\{(.+?)\}\}`),shape:"hexagon"},{regex:tL(String.raw`\[(.+?)\]`),shape:"rectangle"},{regex:tL(String.raw`\((.+?)\)`),shape:"rounded"},{regex:tL(String.raw`\{(.+?)\}`),shape:"diamond"}],tM=new Set(["trapezoid","trapezoid-alt","lean-r","lean-l"]);function tI(e){let t=P(e);return t>0?{id:e.slice(0,t),length:t}:null}var tO=RegExp(String.raw`^(${T})@\s*(?=${D}|(?:-{2,}|-\.+|={2,})\s+)`,"u");function tE(e){let t=e7(e);if(!t)return null;let n=e.slice(3),l=Math.min(t.className.length,P(n));return 0===l?null:{className:n.slice(0,l),length:3+l}}function tB(e,t,n,l,i){let s=tW(e,t,n,l,i);if(!s)return null;let r=[s.id],a=s.remaining.trim();for(;a.startsWith("&");){h("flowchart")&&f("flowchart","parallel-separator","&");let e=tW(a.slice(1).trim(),t,n,l,i);if(!e)break;r.push(e.id),a=e.remaining.trim()}return{ids:r,remaining:a}}function tj(e,t,l,i){let s=t.get("label"),r=""===s?"":n(s),a=void 0!==r?ti(r,!0):void 0,o=tm(t,"shape"),d=void 0!==o?function(e){let t=ta.get(e.trim().toLowerCase());if(!t)return null;let n=tr[t];return{canonical:t,geometry:n.geometry,exact:n.exact,description:n.description}}(o):null,c=tm(t,"icon"),u=tm(t,"img"),p=tm(t,"form"),f="circle"===p||"rounded"===p||"square"===p?p:void 0,m=d?{shape:d.geometry,semanticShape:d.canonical,authoredShape:o}:c||u?{shape:"circle"===f?"circle":"rounded"===f?"rounded":"rectangle",semanticShape:c?"icon":"image"}:{},x={...c?{icon:c}:{},...u?{image:u}:{},...f?{iconForm:f}:{}},w=l.nodes.get(e);w?(l.nodes.set(e,{...w,...void 0!==a?{label:a.text,labelContent:a.labelContent,...a.markdown?{markdownLabel:!0}:{}}:{},...m,...x}),h("flowchart")&&g("flowchart","set-node-metadata",l.nodes.get(e)),t_(i,e)):tq(l,i,{id:e,label:a?.text??e,...a?.labelContent?{labelContent:a.labelContent}:{},shape:"rectangle",...a?.markdown?{markdownLabel:!0}:{},...m,...x})}function tA(e,t,n,l){let i=t.match(RegExp(`^${tf}`));if(!i)return null;let{end:s,entries:r}=tg(t,i[0].length-1);return tj(e,r,n,l),t.slice(s+1)}var tN=[{open:"(((",close:")))",shape:"doublecircle"},{open:"([",close:"])",shape:"stadium"},{open:"(-",close:"-)",shape:"ellipse"},{open:"((",close:"))",shape:"circle"},{open:"[[",close:"]]",shape:"subroutine"},{open:"[(",close:")]",shape:"cylinder"},{open:"[/",close:"\\]",shape:"trapezoid"},{open:"[\\",close:"/]",shape:"trapezoid-alt"},{open:"[/",close:"/]",shape:"lean-r"},{open:"[\\",close:"\\]",shape:"lean-l"},{open:">",close:"]",shape:"asymmetric"},{open:"{{",close:"}}",shape:"hexagon"},{open:"[",close:"]",shape:"rectangle"},{open:"(",close:")",shape:"rounded"},{open:"{",close:"}",shape:"diamond"}],tR=/^\s*""\s*$/;function tW(e,t,n,l,i){let s=function(e,t,n){let l=tI(e),i=l&&e.slice(l.length).match(RegExp(`^${tf}`));if(!l||!i)return null;let s=l.id,{end:r,entries:a}=tg(e,l.length+i[0].length-1);return tj(s,a,t,n),{id:s,remaining:e.slice(r+1)}}(e,t,n);if(s){let n=s.remaining,l=tE(n);return l&&(b(t.classAssignments,s.id,l.className),h("flowchart")&&g("flowchart","append-class",{id:s.id,name:l.className,classes:t.classAssignments.get(s.id)}),n=n.slice(l.length)),h("flowchart")&&f("flowchart","metadata-node",e.slice(0,e.length-n.length)),{id:s.id,remaining:n}}let r=function(e,t,n,l){let i=tI(e);if(!i)return null;let s=e.slice(i.length);for(let r of tN){if(!s.startsWith(`${r.open}"`))continue;let a=r.open.length,o=s.indexOf('"',a+1);if(o<0||!s.startsWith(r.close,o+1))continue;o===a+1&&l?.add("empty-string");let d=ti(s.slice(a+1,o),!0);tD(t,n,{id:i.id,label:d.text,...d.labelContent?{labelContent:d.labelContent}:{},shape:r.shape,...d.markdown?{markdownLabel:!0}:{}});let c=i.length+o+1+r.close.length;return{id:i.id,remaining:e.slice(c)}}return null}(e,t,n,i);if(r){let l=tA(r.id,r.remaining,t,n)??r.remaining,i=tE(l);return i&&(b(t.classAssignments,r.id,i.className),h("flowchart")&&g("flowchart","append-class",{id:r.id,name:i.className,classes:t.classAssignments.get(r.id)}),l=l.slice(i.length)),h("flowchart")&&f("flowchart","quoted-node",e.slice(0,e.length-l.length)),{id:r.id,remaining:l}}let a=null,o=e,d=tI(e),c=d?e.slice(d.length):"";for(let{regex:e,shape:l}of d?tC:[]){let s=c.match(e);if(s){a=d.id,V(s[1],tM.has(l)?"trapezoid":"text")&&i?.add("label-delimiter"),tR.test(s[1])&&i?.add("empty-string");let{text:e,markdown:r,labelContent:u}=ti(s[1]);tD(t,n,{id:a,label:e,shape:l,...r?{markdownLabel:!0}:{},...u?{labelContent:u}:{}}),o=c.slice(s[0].length);break}}if(null===a){let i=tI(e);i&&(tT(t,a=i.id,l),t_(n,a),o=e.slice(i.length))}if(null===a)return null;let u=tE(o=tA(a,o,t,n)??o);return u&&(b(t.classAssignments,a,u.className),h("flowchart")&&g("flowchart","append-class",{id:a,name:u.className,classes:t.classAssignments.get(a)}),o=o.slice(u.length)),ee(e,e.length-o.length)?null:(i?.nodeEdgeId(e)&&i.add("node-edge-id"),h("flowchart")&&f("flowchart","node",e.slice(0,e.length-o.length)),{id:a,remaining:o})}var tz=/^[^\s"]*@(?![{"])/;function tD(e,t,n){let l=e.nodes.get(n.id);if(!l)return void tq(e,t,n);let{markdownLabel:i,semanticShape:s,authoredShape:r,labelContent:a,...o}=l;e.nodes.set(n.id,{...o,label:n.label,shape:n.shape,...n.markdownLabel?{markdownLabel:!0}:{},...n.labelContent?{labelContent:n.labelContent}:{}}),h("flowchart")&&g("flowchart","define-node",e.nodes.get(n.id)),t_(t,n.id)}function tT(e,t,n){return!(e.nodes.has(t)||n.has(t))&&(tw(e),e.nodes.set(t,{id:t,label:t,shape:"rectangle"}),h("flowchart")&&g("flowchart","add-node",e.nodes.get(t)),!0)}function tq(e,t,n){!e.nodes.has(n.id)&&(tw(e),e.nodes.set(n.id,n),h("flowchart")&&g("flowchart","add-node",n)),t_(t,n.id)}function t_(e,t){if(e.length>0){let n=e[e.length-1];n.nodeIds.includes(t)||(n.nodeIds.push(t),h("flowchart")&&g("flowchart","add-member",{parent:n.id,id:t}))}}function tF(e,t){return e.includes(".")||t.includes(".")?"dotted":e.includes("=")||t.includes("=")?"thick":"solid"}function tH(e){let t=e[e.length-1];return">"===t?"arrow":"o"===t?"circle":"x"===t?"cross":void 0}export{R as a,eg as b,e0 as c,to as d,td as e};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as e}from"./chunk-
|
|
1
|
+
import{p as e}from"./chunk-WSZXZ4HF.js";import{H as t,M as r}from"./chunk-PRXEMB2V.js";function n(e){if(!/#\w+;/.test(e))return{text:e,restore:e=>e,sourceOffset:e=>e};let t=new Map,n=e=>{let r=e.codePointAt(0);r>=57344&&r<=63743&&t.set(e,(t.get(e)??0)+1)};for(let t of e)n(t);for(let t of e.matchAll(/\\(?:u([\da-fA-F]{4})|U([\da-fA-F]{8}))/g)){let e=Number.parseInt(t[1]??t[2],16);e<=1114111&&n(String.fromCodePoint(e))}let o="",s=t.get(o)??0;for(let e=57345;s>0&&e<=63743;e++){let r=String.fromCodePoint(e),n=t.get(r)??0;n<s&&(o=r,s=n)}let a=e.length,l=/#\w+;/g;for(;l.test(e);)a+=2*s;r("sourceCharacters",e.length+a);let i=o.repeat(s+1),u=RegExp(`${i}(\\w+)${i}`,"g"),f=[],c=0;return{text:e.replace(/#\w+;/g,(e,t)=>{let r=`${i}${e.slice(1,-1)}${i}`,n=t+c;return f.push({start:n,end:n+r.length,sourceStart:t,sourceEnd:t+e.length}),c+=r.length-e.length,r}),restore:e=>e.replace(u,(e,t)=>`#${t};`),sourceOffset:e=>{let t=0,r=f.length;for(;t<r;){let n=t+r>>>1;f[n].start<=e?t=n+1:r=n}let n=f[t-1];return n?e<n.end?n.sourceStart:e-n.end+n.sourceEnd:e}}}function o(r,o,s){let a=e(r,o,s);if("unclosed"===a.kind)return{ok:!1,unclosed:!0,message:"unclosed @{ metadata block"};if("invalid"===a.kind)return{ok:!1,unclosed:!1,message:a.message};let l=function(e,r){let o=n(e),s=o.text,a=t(s.includes(`
|
|
2
2
|
`)?`${s}
|
|
3
3
|
`:`{
|
|
4
4
|
${s}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as e,c as t}from"./chunk-
|
|
2
|
-
`+k(
|
|
3
|
-
`))),j.title&&H.push(p.text(w(j.title,P))),A?.surfaces===!1?[]:j.groups))H.push(function e(t,r,o,i,n){if(r.concurrencyRegion)return t.group({id:`group:${r.id}`,role:"group",open:`<g class="concurrency-region" data-id="${C(r.id)}"${n?` data-parent-id="${C(n)}"`:""}>`,close:"</g>",children:r.children.map(n=>({indent:0,node:e(t,n,o,i,r.id)}))});let a=r.labelBlock??d(S(r.label,r.labelContent),i,"group"),l=r.headerHeight??i.groupHeaderFontSize+16+a.height-a.lineHeight,s=[],h=`<g class="subgraph" data-id="${C(r.id)}" data-region="subgraph" data-label="${M(r.label)}"${n?` data-parent-id="${C(n)}"`:""}>`,c=r.inlineStyle,p=c?.fill??i.groupFillColor??"var(--_group-fill)",g=c?.stroke??i.groupBorderColor??"var(--_node-stroke)",u=c?.["stroke-width"]??String(i.groupLineWidth);s.push({indent:2,node:t.shape({id:`group-rect:${r.id}`,role:"group",geometry:{kind:"rect",x:r.x,y:r.y,width:r.width,height:r.height,rx:i.groupCornerRadius,ry:i.groupCornerRadius},paint:{fill:p,stroke:g,strokeWidth:u}})});let f=i.groupHeaderFillColor??"var(--_group-hdr)",k=_(r.x,r.y,r.width,l,i.groupCornerRadius);s.push({indent:2,node:t.shape({id:`group-header:${r.id}`,role:"group-header",geometry:{kind:"path",d:k},paint:{fill:f,stroke:g,strokeWidth:u}})});let m=a.text,y=c?.color??i.groupTextColor??"var(--_text-sec)";for(let e of(s.push({indent:2,node:t.text({id:`group-label:${r.id}`,role:"group-header",text:m,block:a,x:r.x+i.groupLabelPaddingX,y:r.y+l/2,fontSize:i.groupHeaderFontSize,anchor:"start",paint:{fill:y}})}),function(e,t){let r=e.children.filter(e=>e.concurrencyRegion);if(r.length<2)return[];let o=e=>Math.max(...r.map(e))-Math.min(...r.map(e)),i=o(e=>e.x+e.width/2)>=o(e=>e.y+e.height/2),n=[...r].sort((e,t)=>i?e.x-t.x:e.y-t.y),a=[];for(let r=1;r<n.length;r++){let o=n[r-1],l=n[r];if(i){let i=(o.x+o.width+l.x)/2;a.push({index:r-1,x1:i,y1:e.y+t+4,x2:i,y2:e.y+e.height-4})}else{let t=(o.y+o.height+l.y)/2;a.push({index:r-1,x1:e.x+4,y1:t,x2:e.x+e.width-4,y2:t})}}return a}(r,l)))s.push({indent:2,node:t.shape({id:`region-separator:${r.id}:${e.index}`,role:"group",geometry:{kind:"line",x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2},paint:{stroke:g,strokeWidth:String(i.groupLineWidth),strokeDasharray:"6 4"},attributes:{className:"region-separator"}})});for(let n of r.children)s.push({indent:0,node:e(t,n,o,i,r.id)});return t.group({id:`group:${r.id}`,role:"group",open:h,close:"</g>",children:s})}(p,e,N,P));A?.beforeEdges&&H.push(...A.beforeEdges());let Y=new Set(j.nodes.map(e=>e.id)),J=e=>e.forEach(e=>{Y.add(e.id),J(e.children)});J(j.groups);let K=new Map,Q=new Map;for(let e of j.edges){if(e.points.length<2)continue;let t=`${e.source}->${e.target}`,r=K.get(t)??0;K.set(t,r+1);let a=`edge:${t}#${r}`;Q.set(e,a);let l=void 0===e.id||Y.has(e.id)?a:e.id;H.push(function(e,t,r,a,l,d){let s="dotted"===t.style?"dotted":"thick"===t.style?"thick":"invisible"===t.style?"invisible":"solid",h=L(a),p=t.labelPosition??c(t.points),g=r.edgeTextColor??"var(--_text-sec)",u=t.label?[{id:`${a}:label`,text:t.label,textContent:{value:t.label,prepared:v(S(t.label,t.labelContent))},anchor:p,paint:{fill:g},fontSize:r.edgeLabelFontSize,textAnchor:"middle",visual:{kind:"companion",markId:`${h}:text`}}]:[],f=(t.classNames??[]).map(e=>e.replace(/[^A-Za-z0-9_-]/g,"")).filter(Boolean),k={identity:{id:l,...f.length?{classNames:f}:{}},endpoints:{from:t.source,to:t.target},relationship:{kind:"flowchart-edge",direction:t.source===t.target?"self":t.hasArrowStart&&t.hasArrowEnd?"bidirectional":t.hasArrowStart?"reverse":t.hasArrowEnd?"forward":"undirected"},route:{ownership:"layout",bendRadius:r.edgeBendRadius,labelAnchors:t.labelPosition?[t.labelPosition]:[]},labels:u};if("invisible"===t.style)return e.connector({id:a,role:"edge",geometry:{kind:"polyline",points:t.points},lineStyle:"invisible",paint:{},...k});let m=n(t,r),y="dotted"===t.style?`${$.dash} ${$.gap}`:t.animate?"8 4":void 0,x="thick"===t.style?2*r.lineWidth:r.lineWidth,b=t.inlineStyle?.stroke??r.edgeStrokeColor,w=`${b?`-${i(b)}`:""}${t.inlineStyle?.["stroke-width"]?"-fixed":""}`,C,M;if(t.hasArrowEnd){let e=o(t.endMarker??"arrow");if(!(C=d.find(t=>t.id===`${e}${w}`)))throw Error(`Missing marker resource "${e}${w}"`)}if(t.hasArrowStart){let e=o(t.startMarker??"arrow");if(!(M=d.find(t=>t.id===`${e}-start${w}`)))throw Error(`Missing marker resource "${e}-start${w}"`)}let _={className:["edge",...f].join(" "),data:{style:t.style,"arrow-start":String(t.hasArrowStart),"arrow-end":String(t.hasArrowEnd),...t.hasArrowStart?{"marker-start":t.startMarker??"arrow"}:{},...t.hasArrowEnd?{"marker-end":t.endMarker??"arrow"}:{},...t.label?{label:W(t.label)}:{},...t.curve?{curve:t.curve}:{},...t.animate?{animate:"true",animation:t.animation??"slow"}:{}}},F={stroke:b??"var(--_line)",strokeWidth:t.inlineStyle?.["stroke-width"]??String(x),...y?{strokeDasharray:y}:{}};if(r.edgeBendRadius>0||t.curve){if(!m)throw Error(`Missing path projection for flowchart edge "${a}"`);return e.connector({id:a,role:"edge",geometry:m.geometry,lineStyle:s,paint:F,markers:{...M?{start:M}:{},mid:[],...C?{end:C}:{}},...k,route:{...k.route,contours:m.contours},attributes:_})}return e.connector({id:a,role:"edge",geometry:{kind:"polyline",points:t.points},lineStyle:s,paint:F,markers:{...M?{start:M}:{},mid:[],...C?{end:C}:{}},...k,attributes:_})}(p,e,P,a,l,V))}for(let e of j.edges){let t=Q.get(e);A?.edgeLabels!==!1&&e.label&&t&&H.push(function(e,t,r,o,i){let n=t.labelPosition??c(t.points),a=t.labelBlock??d(S(t.label,t.labelContent),o,"edge"),l=a.text,p=s+h(t,o.lineWidth),g=a.width+2*p,u=a.height+2*p,f=n.x-g/2,k=n.y-u/2,m=e.shape({id:`${i}:halo`,role:"chrome",geometry:{kind:"rect",x:f,y:k,width:g,height:u,rx:4,ry:4},paint:{fill:"var(--bg)",stroke:"none"},attributes:{className:"edge-label-halo"}}),y=a.width+2*s,x=a.height+2*s,$=e.shape({id:`${i}:pill`,role:"chrome",geometry:{kind:"rect",x:n.x-y/2,y:n.y-x/2,width:y,height:x,rx:2,ry:2},paint:{fill:"var(--bg)",stroke:"var(--_inner-stroke)",strokeWidth:"1"}}),b=o.edgeTextColor??"var(--_text-sec)",w=e.text({id:`${i}:text`,role:"label",text:l,block:a,x:n.x,y:n.y,fontSize:o.edgeLabelFontSize,anchor:"middle",paint:{fill:b}});return e.group({id:i,role:"edge-label",open:`<g class="edge-label" data-from="${C(t.source)}" data-to="${C(t.target)}" data-label="${M(t.label)}">`,close:"</g>",children:[{indent:2,node:m},{indent:2,node:$},{indent:2,node:w}]})}(p,e,0,P,L(t)))}for(let r of A?.surfaces===!1?[]:j.nodes)H.push(function(r,o,i,n,s,h){let c=function(e,t,r){let{x:o,y:i,width:n,height:l,shape:d,inlineStyle:s}=t,h=a(t,{fill:s?.fill??r.nodeFillColor??"var(--_node-fill)",stroke:s?.stroke??r.nodeBorderColor??"var(--_node-stroke)",strokeWidth:s?.["stroke-width"]??String(r.nodeLineWidth)},r.cornerRadius);return e.shape({id:`node-shape:${t.id}`,role:"state-note"===t.shape?"note":"node",geometry:h.geometry,paint:h.paint,...h.childPaints?{childPaints:h.childPaints}:{}})}(r,o,n),p=function(e,t,r){let o=t.nodeTextColor??(e.inlineStyle?.fill||!l(e)?"var(--_text)":u("var(--_text)",t.nodeFillColor??"var(--_node-fill)",r));return g(e.inlineStyle,o)}(o,n,s),f=function(e,t,r,o,i){if(("state-start"===t.shape||"state-end"===t.shape||"state-fork"===t.shape||"state-join"===t.shape||"state-choice"===t.shape)&&!t.label)return null;let n=t.x+t.width/2,a=t.y+t.height/2,l=t.labelBlock??d(S(t.label,t.labelContent),o,"node"),s=l.text;return e.text({id:`node-label:${t.id}`,role:"label",text:s,block:l,x:n,y:a,fontSize:o.nodeLabelFontSize,anchor:"middle",paint:{fill:i}})}(r,o,0,n,p),k=(o.classNames??[]).map(e=>e.replace(/[^A-Za-z0-9_-]/g,"")).filter(Boolean),m=["node",..."state-note"===o.shape?["state-note"]:[],...k].join(" "),y="state-start"===o.shape?{status:"start"}:"state-end"===o.shape?{status:"end"}:void 0,x=[{indent:2,node:c}],$=function(r,o,i){let n=Math.min(28,.4*o.height),a=o.x+o.width/2,l=o.y+6;if(o.icon){let d=t(o.icon);if(d){let e=n/24;return r.pathArtwork({id:`node:${o.id}:icon`,paths:d.paths,owner:{id:o.id,role:"node"},open:`<g class="flowchart-icon" data-icon="${C(o.icon)}" transform="translate(${a-n/2} ${l}) scale(${e})">`,transform:{kind:"matrix",a:e,b:0,c:0,d:e,e:a-n/2,f:l},paint:{fill:i,stroke:i,strokeWidth:"0.8"}})}let s=e(o.icon);return r.text({id:`node:${o.id}:icon`,role:"icon",owner:{id:o.id,role:"node"},text:s,block:o.iconFallbackBlock,x:a,y:l+n/2,fontSize:10,anchor:"middle",paint:{fill:i},baselineShift:0,attributes:{className:"flowchart-icon-fallback",data:{icon:o.icon}}})}if(o.image){let e=a-n/2,t=`M${e+2} ${l+.66*n}L${e+.36*n} ${l+.36*n}L${e+.52*n} ${l+.5*n}L${e+.7*n} ${l+.32*n}L${e+n-2} ${l+.66*n}`,d={fill:"none",stroke:i,strokeWidth:"1.2"},s={id:o.id,role:"node"};return r.group({id:`node:${o.id}:image`,role:"icon",owner:s,open:`<g class="flowchart-image-placeholder" data-image-src="${C(o.image)}">`,close:"</g>",join:"",children:[{indent:0,node:r.shape({id:`node:${o.id}:image:frame`,role:"icon",owner:s,geometry:{kind:"rect",x:e,y:l,width:n,height:.72*n,rx:2},paint:d})},{indent:0,node:r.shape({id:`node:${o.id}:image:sun`,role:"icon",owner:s,geometry:{kind:"circle",cx:e+.72*n,cy:l+.2*n,r:.08*n},paint:d})},{indent:0,node:r.shape({id:`node:${o.id}:image:landscape`,role:"icon",owner:s,geometry:{kind:"path",d:t},paint:d})}]})}return null}(r,o,p);$&&x.push({indent:2,node:$}),f&&x.push({indent:2,node:f});let b=o.semanticShape?` data-semantic-shape="${C(o.semanticShape)}"`:"",w=h&&o.href?` data-href="${C(o.href)}" role="link" tabindex="0"`:"",v=void 0===o.floatingNoteId?"":` data-floating-note-id="${C(o.floatingNoteId)}"`;return r.group({id:`node:${o.id}`,role:"state-note"===o.shape?"note":"node",open:`<g class="${m}" data-id="${C(o.id)}" data-label="${M(o.label)}" data-shape="${o.shape}"${b}${w}${v}>`,close:"</g>",children:x,channels:y})}(p,r,0,P,z,"strict"!==E.security));for(let e of j.notes??[])H.push(function(e,t,r,o){let{x:i,y:n,width:a,height:l}=t,s=o.groupHeaderFillColor??"var(--_group-hdr)",h=o.groupBorderColor??"var(--_node-stroke)",c=o.edgeTextColor??"var(--_text-sec)",p=t.textBlock??d(S(t.text,t.textContent),o,"note"),g=p.text,u=`state-note:${t.id}`;return e.group({id:u,role:"note",open:`<g class="state-note" data-id="${C(t.id)}" data-target="${C(t.target)}" data-side="${t.side}">`,close:"</g>",children:[{indent:2,node:e.shape({id:`${u}:rect`,role:"note",geometry:{kind:"rect",x:i,y:n,width:a,height:l,rx:4,ry:4},paint:{fill:s,stroke:h,strokeWidth:String(x.innerBox)}})},{indent:2,node:e.text({id:`${u}:text`,role:"label",text:g,block:p,x:i+a/2,y:n+l/2,fontSize:o.edgeLabelFontSize,anchor:"middle",paint:{fill:c}})}]})}(p,e,0,P));return H.push(p.documentClose()),{family:"flowchart",width:j.width,height:j.height,colors:z,transparent:R,parts:H}}function L(e){return e.startsWith("edge:")?`edge-label:${e.slice(5)}`:`${e}:label`}var A=p(F);export{F as a,A as b};
|
|
1
|
+
import{a as e,c as t}from"./chunk-MFTQWHUB.js";import{d as r,e as o,f as i,h as n,m as a,p as l}from"./chunk-AVGL6Y22.js";import{b as d,c as s,d as h}from"./chunk-UKIYI4IO.js";import{o as c}from"./chunk-UJLLOK3R.js";import{c as p,na as g,oa as u}from"./chunk-PRXEMB2V.js";import{i as f,j as k,k as m,u as y}from"./chunk-37ORXEBA.js";import{c as x,e as $,h as b,o as w}from"./chunk-Q6FTXOZS.js";import{C as S,G as v,N as C,O as M,a as A,tb as _}from"./chunk-XBLK7VXJ.js";function B(p,B,L){let{positioned:W,colors:j,resolved:z}=B,E=z.renderOptions,R=j.font??"Inter",N=E.transparent??!1,P=[],I=z.familyAppearance?.visual??E.stateVisual,H=b(E,I?.styleDefaults,z.styleFace);P.push(p.documentOpen({id:"prelude",width:W.width,height:W.height,colors:j,transparent:N,font:R,hasMonoFont:!1},m(W.width,W.height,j,N)+`
|
|
2
|
+
`+k(R,!1,j.shadow,j.embedFontImport)));let O=[];O.push("<defs>");let T=f(j);T&&O.push(T);let X=new Set,V=new Set;H.edgeStrokeColor&&X.add(H.edgeStrokeColor);let D=!1,K=!1;for(let e of W.edges)e.inlineStyle?.stroke&&X.add(e.inlineStyle.stroke),e.inlineStyle?.["stroke-width"]&&V.add(e.inlineStyle.stroke??H.edgeStrokeColor),("circle"===e.startMarker||"circle"===e.endMarker)&&(D=!0),("cross"===e.startMarker||"cross"===e.endMarker)&&(K=!0);let U=r(X,V,D,K);for(let e of(O.splice(1,0,y(U)),O.push("</defs>"),P.push(p.definitions({id:"defs",markerResources:U},O.join(`
|
|
3
|
+
`))),W.title&&P.push(p.text(w(W.title,H))),L?.surfaces===!1?[]:W.groups))P.push(function e(t,r,o,i,n){if(r.concurrencyRegion)return t.group({id:`group:${r.id}`,role:"group",open:`<g class="concurrency-region" data-id="${C(r.id)}"${n?` data-parent-id="${C(n)}"`:""}>`,close:"</g>",children:r.children.map(n=>({indent:0,node:e(t,n,o,i,r.id)}))});let a=r.labelBlock??d(S(r.label,r.labelContent),i,"group"),l=r.headerHeight??i.groupHeaderFontSize+16+a.height-a.lineHeight,s=[],h=`<g class="subgraph" data-id="${C(r.id)}" data-region="subgraph" data-label="${M(r.label)}"${n?` data-parent-id="${C(n)}"`:""}>`,c=r.inlineStyle,p=c?.fill??i.groupFillColor??"var(--_group-fill)",g=c?.stroke??i.groupBorderColor??"var(--_node-stroke)",u=c?.["stroke-width"]??String(i.groupLineWidth);s.push({indent:2,node:t.shape({id:`group-rect:${r.id}`,role:"group",geometry:{kind:"rect",x:r.x,y:r.y,width:r.width,height:r.height,rx:i.groupCornerRadius,ry:i.groupCornerRadius},paint:{fill:p,stroke:g,strokeWidth:u}})});let f=i.groupHeaderFillColor??"var(--_group-hdr)",k=_(r.x,r.y,r.width,l,i.groupCornerRadius);s.push({indent:2,node:t.shape({id:`group-header:${r.id}`,role:"group-header",geometry:{kind:"path",d:k},paint:{fill:f,stroke:g,strokeWidth:u}})});let m=a.text,y=c?.color??i.groupTextColor??"var(--_text-sec)";for(let e of(s.push({indent:2,node:t.text({id:`group-label:${r.id}`,role:"group-header",text:m,block:a,x:r.x+i.groupLabelPaddingX,y:r.y+l/2,fontSize:i.groupHeaderFontSize,anchor:"start",paint:{fill:y}})}),function(e,t){let r=e.children.filter(e=>e.concurrencyRegion);if(r.length<2)return[];let o=e=>Math.max(...r.map(e))-Math.min(...r.map(e)),i=o(e=>e.x+e.width/2)>=o(e=>e.y+e.height/2),n=[...r].sort((e,t)=>i?e.x-t.x:e.y-t.y),a=[];for(let r=1;r<n.length;r++){let o=n[r-1],l=n[r];if(i){let i=(o.x+o.width+l.x)/2;a.push({index:r-1,x1:i,y1:e.y+t+4,x2:i,y2:e.y+e.height-4})}else{let t=(o.y+o.height+l.y)/2;a.push({index:r-1,x1:e.x+4,y1:t,x2:e.x+e.width-4,y2:t})}}return a}(r,l)))s.push({indent:2,node:t.shape({id:`region-separator:${r.id}:${e.index}`,role:"group",geometry:{kind:"line",x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2},paint:{stroke:g,strokeWidth:String(i.groupLineWidth),strokeDasharray:"6 4"},attributes:{className:"region-separator"}})});for(let n of r.children)s.push({indent:0,node:e(t,n,o,i,r.id)});return t.group({id:`group:${r.id}`,role:"group",open:h,close:"</g>",children:s})}(p,e,R,H));L?.beforeEdges&&P.push(...L.beforeEdges());let Z=new Set(W.nodes.map(e=>e.id)),G=e=>e.forEach(e=>{Z.add(e.id),G(e.children)});G(W.groups);let J=new Map,Q=new Map;for(let e of W.edges){if(e.points.length<2)continue;let t=`${e.source}->${e.target}`,r=J.get(t)??0;J.set(t,r+1);let a=`edge:${t}#${r}`;Q.set(e,a);let l=void 0===e.id||Z.has(e.id)?a:e.id;P.push(function(e,t,r,a,l,d){let s="dotted"===t.style?"dotted":"thick"===t.style?"thick":"invisible"===t.style?"invisible":"solid",h=F(a),p=t.labelPosition??c(t.points),g=r.edgeTextColor??"var(--_text-sec)",u=t.label?[{id:`${a}:label`,text:t.label,textContent:{value:t.label,prepared:v(S(t.label,t.labelContent))},anchor:p,paint:{fill:g},fontSize:r.edgeLabelFontSize,textAnchor:"middle",visual:{kind:"companion",markId:`${h}:text`}}]:[],f=(t.classNames??[]).map(e=>e.replace(/[^A-Za-z0-9_-]/g,"")).filter(Boolean),k={identity:{id:l,...f.length?{classNames:f}:{}},endpoints:{from:t.source,to:t.target},relationship:{kind:"flowchart-edge",direction:t.source===t.target?"self":t.hasArrowStart&&t.hasArrowEnd?"bidirectional":t.hasArrowStart?"reverse":t.hasArrowEnd?"forward":"undirected"},route:{ownership:"layout",bendRadius:r.edgeBendRadius,labelAnchors:t.labelPosition?[t.labelPosition]:[]},labels:u};if("invisible"===t.style)return e.connector({id:a,role:"edge",geometry:{kind:"polyline",points:t.points},lineStyle:"invisible",paint:{},...k});let m=n(t,r),y="dotted"===t.style?`${$.dash} ${$.gap}`:t.animate?"8 4":void 0,x="thick"===t.style?2*r.lineWidth:r.lineWidth,b=t.inlineStyle?.stroke??r.edgeStrokeColor,w=`${b?`-${i(b)}`:""}${t.inlineStyle?.["stroke-width"]?"-fixed":""}`,C,M;if(t.hasArrowEnd){let e=o(t.endMarker??"arrow");if(!(C=d.find(t=>t.id===`${e}${w}`)))throw Error(`Missing marker resource "${e}${w}"`)}if(t.hasArrowStart){let e=o(t.startMarker??"arrow");if(!(M=d.find(t=>t.id===`${e}-start${w}`)))throw Error(`Missing marker resource "${e}-start${w}"`)}let _={className:["edge",...f].join(" "),data:{style:t.style,"arrow-start":String(t.hasArrowStart),"arrow-end":String(t.hasArrowEnd),...t.hasArrowStart?{"marker-start":t.startMarker??"arrow"}:{},...t.hasArrowEnd?{"marker-end":t.endMarker??"arrow"}:{},...t.label?{label:A(t.label)}:{},...t.curve?{curve:t.curve}:{},...t.animate?{animate:"true",animation:t.animation??"slow"}:{}}},B={stroke:b??"var(--_line)",strokeWidth:t.inlineStyle?.["stroke-width"]??String(x),...y?{strokeDasharray:y}:{}};if(r.edgeBendRadius>0||t.curve){if(!m)throw Error(`Missing path projection for flowchart edge "${a}"`);return e.connector({id:a,role:"edge",geometry:m.geometry,lineStyle:s,paint:B,markers:{...M?{start:M}:{},mid:[],...C?{end:C}:{}},...k,route:{...k.route,contours:m.contours},attributes:_})}return e.connector({id:a,role:"edge",geometry:{kind:"polyline",points:t.points},lineStyle:s,paint:B,markers:{...M?{start:M}:{},mid:[],...C?{end:C}:{}},...k,attributes:_})}(p,e,H,a,l,U))}for(let e of W.edges){let t=Q.get(e);L?.edgeLabels!==!1&&e.label&&t&&P.push(function(e,t,r,o,i){let n=t.labelPosition??c(t.points),a=t.labelBlock??d(S(t.label,t.labelContent),o,"edge"),l=a.text,p=s+h(t,o.lineWidth),g=a.width+2*p,u=a.height+2*p,f=n.x-g/2,k=n.y-u/2,m=e.shape({id:`${i}:halo`,role:"chrome",geometry:{kind:"rect",x:f,y:k,width:g,height:u,rx:4,ry:4},paint:{fill:"var(--bg)",stroke:"none"},attributes:{className:"edge-label-halo"}}),y=a.width+2*s,x=a.height+2*s,$=e.shape({id:`${i}:pill`,role:"chrome",geometry:{kind:"rect",x:n.x-y/2,y:n.y-x/2,width:y,height:x,rx:2,ry:2},paint:{fill:"var(--bg)",stroke:"var(--_inner-stroke)",strokeWidth:"1"}}),b=o.edgeTextColor??"var(--_text-sec)",w=e.text({id:`${i}:text`,role:"label",text:l,block:a,x:n.x,y:n.y,fontSize:o.edgeLabelFontSize,anchor:"middle",paint:{fill:b}});return e.group({id:i,role:"edge-label",open:`<g class="edge-label" data-from="${C(t.source)}" data-to="${C(t.target)}" data-label="${M(t.label)}">`,close:"</g>",children:[{indent:2,node:m},{indent:2,node:$},{indent:2,node:w}]})}(p,e,0,H,F(t)))}for(let r of L?.surfaces===!1?[]:W.nodes)P.push(function(r,o,i,n,s,h){let c=function(e,t,r){let{x:o,y:i,width:n,height:l,shape:d,inlineStyle:s}=t,h=a(t,{fill:s?.fill??r.nodeFillColor??"var(--_node-fill)",stroke:s?.stroke??r.nodeBorderColor??"var(--_node-stroke)",strokeWidth:s?.["stroke-width"]??String(r.nodeLineWidth)},r.cornerRadius);return e.shape({id:`node-shape:${t.id}`,role:"state-note"===t.shape?"note":"node",geometry:h.geometry,paint:h.paint,...h.childPaints?{childPaints:h.childPaints}:{}})}(r,o,n),p=function(e,t,r){let o=t.nodeTextColor??(e.inlineStyle?.fill||!l(e)?"var(--_text)":u("var(--_text)",t.nodeFillColor??"var(--_node-fill)",r));return g(e.inlineStyle,o)}(o,n,s),f=function(e,t,r,o,i){if(("state-start"===t.shape||"state-end"===t.shape||"state-fork"===t.shape||"state-join"===t.shape||"state-choice"===t.shape)&&!t.label)return null;let n=t.x+t.width/2,a=t.y+t.height/2,l=t.labelBlock??d(S(t.label,t.labelContent),o,"node"),s=l.text;return e.text({id:`node-label:${t.id}`,role:"label",text:s,block:l,x:n,y:a,fontSize:o.nodeLabelFontSize,anchor:"middle",paint:{fill:i}})}(r,o,0,n,p),k=(o.classNames??[]).map(e=>e.replace(/[^A-Za-z0-9_-]/g,"")).filter(Boolean),m=["node",..."state-note"===o.shape?["state-note"]:[],...k].join(" "),y="state-start"===o.shape?{status:"start"}:"state-end"===o.shape?{status:"end"}:void 0,x=[{indent:2,node:c}],$=function(r,o,i){let n=Math.min(28,.4*o.height),a=o.x+o.width/2,l=o.y+6;if(o.icon){let d=t(o.icon);if(d){let e=n/24;return r.pathArtwork({id:`node:${o.id}:icon`,paths:d.paths,owner:{id:o.id,role:"node"},open:`<g class="flowchart-icon" data-icon="${C(o.icon)}" transform="translate(${a-n/2} ${l}) scale(${e})">`,transform:{kind:"matrix",a:e,b:0,c:0,d:e,e:a-n/2,f:l},paint:{fill:i,stroke:i,strokeWidth:"0.8"}})}let s=e(o.icon);return r.text({id:`node:${o.id}:icon`,role:"icon",owner:{id:o.id,role:"node"},text:s,block:o.iconFallbackBlock,x:a,y:l+n/2,fontSize:10,anchor:"middle",paint:{fill:i},baselineShift:0,attributes:{className:"flowchart-icon-fallback",data:{icon:o.icon}}})}if(o.image){let e=a-n/2,t=`M${e+2} ${l+.66*n}L${e+.36*n} ${l+.36*n}L${e+.52*n} ${l+.5*n}L${e+.7*n} ${l+.32*n}L${e+n-2} ${l+.66*n}`,d={fill:"none",stroke:i,strokeWidth:"1.2"},s={id:o.id,role:"node"};return r.group({id:`node:${o.id}:image`,role:"icon",owner:s,open:`<g class="flowchart-image-placeholder" data-image-src="${C(o.image)}">`,close:"</g>",join:"",children:[{indent:0,node:r.shape({id:`node:${o.id}:image:frame`,role:"icon",owner:s,geometry:{kind:"rect",x:e,y:l,width:n,height:.72*n,rx:2},paint:d})},{indent:0,node:r.shape({id:`node:${o.id}:image:sun`,role:"icon",owner:s,geometry:{kind:"circle",cx:e+.72*n,cy:l+.2*n,r:.08*n},paint:d})},{indent:0,node:r.shape({id:`node:${o.id}:image:landscape`,role:"icon",owner:s,geometry:{kind:"path",d:t},paint:d})}]})}return null}(r,o,p);$&&x.push({indent:2,node:$}),f&&x.push({indent:2,node:f});let b=o.semanticShape?` data-semantic-shape="${C(o.semanticShape)}"`:"",w=h&&o.href?` data-href="${C(o.href)}" role="link" tabindex="0"`:"",v=void 0===o.floatingNoteId?"":` data-floating-note-id="${C(o.floatingNoteId)}"`;return r.group({id:`node:${o.id}`,role:"state-note"===o.shape?"note":"node",open:`<g class="${m}" data-id="${C(o.id)}" data-label="${M(o.label)}" data-shape="${o.shape}"${b}${w}${v}>`,close:"</g>",children:x,channels:y})}(p,r,0,H,j,"strict"!==E.security));for(let e of W.notes??[])P.push(function(e,t,r,o){let{x:i,y:n,width:a,height:l}=t,s=o.groupHeaderFillColor??"var(--_group-hdr)",h=o.groupBorderColor??"var(--_node-stroke)",c=o.edgeTextColor??"var(--_text-sec)",p=t.textBlock??d(S(t.text,t.textContent),o,"note"),g=p.text,u=`state-note:${t.id}`;return e.group({id:u,role:"note",open:`<g class="state-note" data-id="${C(t.id)}" data-target="${C(t.target)}" data-side="${t.side}">`,close:"</g>",children:[{indent:2,node:e.shape({id:`${u}:rect`,role:"note",geometry:{kind:"rect",x:i,y:n,width:a,height:l,rx:4,ry:4},paint:{fill:s,stroke:h,strokeWidth:String(x.innerBox)}})},{indent:2,node:e.text({id:`${u}:text`,role:"label",text:g,block:p,x:i+a/2,y:n+l/2,fontSize:o.edgeLabelFontSize,anchor:"middle",paint:{fill:c}})}]})}(p,e,0,H));return P.push(p.documentClose()),{family:"flowchart",width:W.width,height:W.height,colors:j,transparent:N,parts:P}}function F(e){return e.startsWith("edge:")?`edge-label:${e.slice(5)}`:`${e}:label`}var L=p(B);export{B as a,L as b};
|