agentic-mermaid 0.5.3 → 0.5.4
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 +34 -0
- 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-ECZ3CMZM.js} +1 -1
- package/dist/browser-lazy/chunks/{architecture-QUFVKYJR.js → architecture-H5LTMKQW.js} +6 -6
- package/dist/browser-lazy/chunks/{block-6J3Q63BO.js → block-566X6FNV.js} +5 -5
- package/dist/browser-lazy/chunks/{builtin-backends-7SOZZHPF.js → builtin-backends-VAFEZXKY.js} +6 -6
- package/dist/browser-lazy/chunks/{c4-SQVBZAKJ.js → c4-ZXFDLBFK.js} +5 -5
- package/dist/browser-lazy/chunks/{chunk-5X6MJX3H.js → chunk-2JQXRKBC.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-E2WMJZNM.js → chunk-37FZNMPR.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-TYZOZXUJ.js → chunk-3JTYTXA6.js} +6 -6
- package/dist/browser-lazy/chunks/{chunk-PQGPS2YV.js → chunk-4NILRBC7.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-AMJLVPUB.js → chunk-5LKPDHPC.js} +2 -2
- package/dist/browser-lazy/chunks/{chunk-BY2CPG6B.js → chunk-62MR3LWJ.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-J7FFAFQF.js → chunk-64JFHCJC.js} +1 -1
- package/dist/browser-lazy/chunks/chunk-6GPDLZFQ.js +1 -0
- package/dist/browser-lazy/chunks/{chunk-VWVZGQE2.js → chunk-6UOOATQR.js} +1 -1
- package/dist/browser-lazy/chunks/chunk-7TTFBJYA.js +1 -0
- package/dist/browser-lazy/chunks/chunk-7UFOFWBA.js +20 -0
- package/dist/browser-lazy/chunks/{chunk-5B2Z7575.js → chunk-A7V5VDKN.js} +1 -1
- package/dist/browser-lazy/chunks/chunk-CPO5P4L2.js +1 -0
- package/dist/browser-lazy/chunks/chunk-EIYLJ4FI.js +20 -0
- package/dist/browser-lazy/chunks/{chunk-X2UYKWKM.js → chunk-G4JBA7HU.js} +3 -3
- package/dist/browser-lazy/chunks/{chunk-2UIA2IME.js → chunk-IUI4DYC3.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-QA6GJQ4X.js → chunk-J57YRC2M.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-BU5LHXNJ.js → chunk-LBXXKLIR.js} +3 -3
- package/dist/browser-lazy/chunks/chunk-NKW2ZNCD.js +1 -0
- package/dist/browser-lazy/chunks/{chunk-ICC7HBJX.js → chunk-O34YYEQV.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-UL6NDWLL.js → chunk-OBI5U5XU.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-YCEICNM6.js → chunk-OFOS57WQ.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-OZ443IVJ.js → chunk-PSZEE64O.js} +7 -7
- package/dist/browser-lazy/chunks/{chunk-SZELX2EJ.js → chunk-PXTLV57R.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-HLWUNUCM.js → chunk-QVSZOF5M.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-2GPK4VFF.js → chunk-TT5GR5EJ.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-DF6765YX.js → chunk-V6I2VGNQ.js} +5 -5
- package/dist/browser-lazy/chunks/{chunk-CN7WTBWB.js → chunk-VRZKI33U.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-2SH76OTH.js → chunk-XHU3A432.js} +1 -1
- package/dist/browser-lazy/chunks/{chunk-NO7ZIVRU.js → chunk-YVNJDVQO.js} +1 -1
- package/dist/browser-lazy/chunks/chunk-Z7UHFVKN.js +6 -0
- package/dist/browser-lazy/chunks/{class-5QA4SCTS.js → class-XIFNVBFE.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-VEUYJBGG.js +11 -0
- package/dist/browser-lazy/chunks/{eventmodeling-2BPLHWRN.js → eventmodeling-G7DITZX7.js} +10 -10
- package/dist/browser-lazy/chunks/{flowchart-NEIMZTB5.js → flowchart-SSFIU4EU.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-HQNVDX2B.js} +6 -6
- package/dist/browser-lazy/chunks/{gitgraph-N4Y5RYB7.js → gitgraph-Z5MN6M6L.js} +4 -4
- package/dist/browser-lazy/chunks/{ishikawa-LD3YBDJN.js → ishikawa-UEERNFQV.js} +2 -2
- package/dist/browser-lazy/chunks/{journey-6YQR5DJX.js → journey-3BEWWGB5.js} +6 -6
- package/dist/browser-lazy/chunks/{kanban-PLMJ7NBW.js → kanban-2WFNCWLB.js} +10 -10
- 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-R2C6SNYR.js} +4 -4
- package/dist/browser-lazy/chunks/{packet-CUW4QY6Y.js → packet-GMVCI5YZ.js} +3 -3
- package/dist/browser-lazy/chunks/{pie-7F7UUCG3.js → pie-WER45DKC.js} +7 -7
- package/dist/browser-lazy/chunks/{quadrant-TOONO2WC.js → quadrant-NCUPSFKN.js} +4 -4
- package/dist/browser-lazy/chunks/{radar-J6JVWVAX.js → radar-WLYS4YC5.js} +8 -8
- package/dist/browser-lazy/chunks/render-core-42UVWIPF.js +3 -0
- package/dist/browser-lazy/chunks/{requirement-CMAKDJPO.js → requirement-AK3NWMJ6.js} +7 -7
- package/dist/browser-lazy/chunks/{sankey-AWXQEP3F.js → sankey-C2DY6WVU.js} +4 -4
- package/dist/browser-lazy/chunks/{sequence-Q2RJRB4L.js → sequence-D4WJB44W.js} +1 -1
- package/dist/browser-lazy/chunks/{state-WRBFQEDX.js → state-YUQVESE7.js} +2 -2
- package/dist/browser-lazy/chunks/{timeline-D2KILFXM.js → timeline-BMBJJXWR.js} +4 -4
- package/dist/browser-lazy/chunks/{treemap-N3VYX5D4.js → treemap-B66XBZZ6.js} +3 -3
- package/dist/browser-lazy/chunks/{xychart-G73OGK66.js → xychart-HAVFROGT.js} +6 -6
- package/dist/browser-lazy/chunks/{zenuml-H4BXNYXR.js → zenuml-62RLYFWP.js} +7 -7
- package/dist/browser-lazy/index.js +1 -1
- package/dist/browser.global.js +507 -507
- package/dist/{chunk-DQDKA5ND.js → chunk-2DNGDTJD.js} +2 -2
- package/dist/{chunk-GVCHLSHH.js → chunk-4F2UGYTM.js} +2 -2
- package/dist/{chunk-H3NCS2XZ.js → chunk-7XYB2LNC.js} +2 -2
- package/dist/chunk-DOFB572I.js +58 -0
- package/dist/chunk-EHJI3QYE.js +52 -0
- package/dist/{chunk-UA234O4M.js → chunk-HINRNKPO.js} +2 -2
- package/dist/{chunk-JZOJ4YGS.js → chunk-KXMANAST.js} +33 -33
- package/dist/{chunk-7CRDX2QR.js → chunk-U4MT3RRE.js} +2 -2
- package/dist/{chunk-NKNFOREZ.js → chunk-WYIB6BUR.js} +2 -2
- package/dist/{cli-YGGTJZH7.js → cli-ZYIDBYNS.js} +2 -2
- package/dist/{index-EeXqJXr5.d.ts → index-Bvhprdxz.d.ts} +3 -3
- package/dist/index.d.ts +4 -4
- package/dist/index.js +1 -1
- package/dist/{mcp-cli-63DYXTVD.js → mcp-cli-YVDCORWA.js} +2 -2
- package/dist/{paint-certification-6rwQjIv_.d.ts → paint-certification-BoLyr006.d.ts} +2 -2
- package/dist/{server-5NEOHOFS.js → server-4JGAVXR3.js} +2 -2
- package/dist/{svg-styles-BdnoM7AT.d.ts → svg-styles-BnCoXyYe.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-CLVJCaH2.d.ts} +1 -1
- package/dist/zenuml/chunks/{appearance-UOQ5KA6O.js → appearance-5RM5MVM2.js} +1 -1
- package/dist/zenuml/chunks/{builtin-backends-KDKE7YHO.js → builtin-backends-UTNWL4N3.js} +11 -11
- package/dist/zenuml/chunks/{chunk-QWX77U7G.js → chunk-3A6S6GNB.js} +2 -2
- package/dist/zenuml/chunks/{chunk-OXQWRSBM.js → chunk-55WS466K.js} +11 -11
- package/dist/zenuml/chunks/chunk-6J4BGPB2.js +29 -0
- package/dist/zenuml/chunks/chunk-CNLL4BGF.js +1 -0
- package/dist/zenuml/chunks/{chunk-RZ6XK5CD.js → chunk-IARQ24W3.js} +13 -13
- package/dist/zenuml/chunks/{chunk-42DXZ5C6.js → chunk-ZNZRIISS.js} +2 -2
- 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-ECIWU5ZS.js +3 -0
- package/dist/zenuml/chunks/{zenuml-EA2ZFRUX.js → zenuml-N3LZMB2G.js} +8 -8
- package/dist/zenuml.d.ts +2 -2
- package/dist/zenuml.js +1 -1
- package/docs/MCP-DIRECTORY-LISTINGS.md +81 -12
- package/docs/api.md +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- 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/chunk-EHCMJUMD.js +0 -52
- package/dist/chunk-OMY6NRQD.js +0 -58
- package/dist/zenuml/chunks/chunk-7TVYPTDW.js +0 -1
- package/dist/zenuml/chunks/chunk-RLJEI7YN.js +0 -29
- package/dist/zenuml/chunks/render-core-V5RQ737O.js +0 -3
- /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,4 +1,4 @@
|
|
|
1
|
-
import{a as e,b as t,d as i}from"./chunk-
|
|
1
|
+
import{a as e,b as t,d as i}from"./chunk-O34YYEQV.js";import{a as r}from"./chunk-62MR3LWJ.js";import"./chunk-PXTLV57R.js";import{b as s,c as n,e as o,f as l,p as a}from"./chunk-XHU3A432.js";import{d as c}from"./chunk-5LKPDHPC.js";import{s as d,u as h,v as m}from"./chunk-V6I2VGNQ.js";import"./chunk-7UFOFWBA.js";import{a as p,b as u,c as f}from"./chunk-VRZKI33U.js";import{C as y,D as g,a as b,b as w,c as _,d as x,e as q,g as k,i as R}from"./chunk-QVSZOF5M.js";import{M as S,N as v,aa as T,c as E,ca as C,qa as N}from"./chunk-G4JBA7HU.js";import{j as I,k as A,r as D,u as M}from"./chunk-3JTYTXA6.js";import{h as L,l as $,n as O,o as z}from"./chunk-YVNJDVQO.js";import{M as F,N as W,Ob as P,_ as j,_b as V,aa as H,ea as B,o as U}from"./chunk-EIYLJ4FI.js";import{N as Y}from"./chunk-PJJSDGLB.js";import"./chunk-YHMTSXIR.js";import"./chunk-QCU5G5PZ.js";var Q=Object.freeze({id:"requirement",upstreamId:"requirement",maturity:"stable",label:"Requirement",headers:["requirementDiagram","requirement"],aliases:[],config:{section:"requirement",keys:["rect_fill","text_color","rect_border_size","rect_border_color","rect_min_width","rect_min_height","maxWidth","fontSize","rect_padding","line_height","nodeSpacing","rankSpacing","useMaxWidth","look","theme"],noopKeys:["useMaxWidth","look","theme"]},identity:{id:"family:requirement",kind:"family",version:"1.0.0",compatibility:{core:"0.5.4"},provenance:{owner:"agentic-mermaid",source:"built-in"}},collisionPriority:100,semanticChannels:[],semanticRoles:["prelude","title","chrome","node","label","relationship","attribute","edge-label","defs"],scenePrimitiveEvidence:[{role:"prelude",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"title",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"chrome",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"chrome",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"node",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"node",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"label",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"relationship",primitive:"connector",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"attribute",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"edge-label",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"edge-label",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"defs",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"defs",primitive:"marker",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]}],example:`requirementDiagram
|
|
2
2
|
requirement fast {
|
|
3
3
|
id: 1
|
|
4
4
|
text: Respond within 100ms
|
|
@@ -8,12 +8,12 @@ import{a as e,b as t,d as i}from"./chunk-ICC7HBJX.js";import{a as r}from"./chunk
|
|
|
8
8
|
element benchmark {
|
|
9
9
|
type: "test"
|
|
10
10
|
}
|
|
11
|
-
benchmark - verifies -> fast`,detect:Y,detectLoose:Y}),
|
|
12
|
-
`),q("requirement")&&
|
|
13
|
-
{<>-=`)ea[e.charCodeAt(0)]=1;function ec(e,t){let i=e.length,r=[],s=[],n=[],o=[],l=0,a=!1,c=0,h=[[],[],[],[]],m=[[],[],[],[]],p=[0,0,0,0],u=!1,f=-1;eo.lastIndex=0;for(let t=eo.exec(e);null!==t;t=eo.exec(e)){let e=void 0!==t[1]?0:void 0!==t[2]?1:void 0!==t[3]?2:3;h[e].push(t.index),m[e].push(eo.lastIndex),u=!0}let y=(t,i,o)=>{r.push(t),s.push(e.slice(i,o)),n.push(i),c=o},g=e=>{o.push(l),l=e},b=()=>{o.length>0&&(l=o.pop())},w=(t,i)=>(t.lastIndex=i,t.test(e)?t.lastIndex:-1),_=t=>{let r=d(e,t);return -1===r?i:r},x=o=>{let l=32|o;if(116===l&&"itle"===e.slice(c+1,c+5).toLowerCase()&&ee(e.charCodeAt(c+5))){let t=c+6;for(;t<i;){let i=e.charCodeAt(t);if(35===i||10===i||13===i||59===i)break;t++}if(t>c+6)return y(2,c,t),!0}if(97===l&&(32|e.charCodeAt(c+1))==99&&(32|e.charCodeAt(c+2))==99){let e;if((e=w(er,c))>=0)return g(3),y(3,c,e),!0;if((e=w(es,c))>=0)return g(4),y(5,c,e),!0;if((e=w(en,c))>=0)return g(5),c=e,!0}if(u&&!et(o)&&(()=>{if(f<c){el.lastIndex=c,f=el.test(e)?el.lastIndex-1:i;for(let e=0;e<4;e++){let t=h[e],i=p[e];for(;i<t.length&&t[i]<=f;)i++;p[e]=i}}for(let e=0;e<4;e++){let t=p[e]-1;if(t>=0&&h[e][t]>=c)return y(8+e,c,_(m[e][t])),!0}return!1})())return!0;if(10===o||13===o){let t=c;for(;t<i;){let i=e.charCodeAt(t);if(10===i)t++;else if(13===i)t+=10===e.charCodeAt(t+1)?2:1;else break}return y(12,c,t),!0}if(ee(o)){for(c++;c<i&&ee(e.charCodeAt(c))&&!et(e.charCodeAt(c));)c++;return!0}if(35===o||37===o)return e.startsWith("%%",c)&&t?.(c,_(c)),c=_(c),!0;if(ei(o)){let t=c+1;for(;t<i&&ei(e.charCodeAt(t));)t++;if(t-c<=22){let i=
|
|
11
|
+
benchmark - verifies -> fast`,detect:Y,detectLoose:Y}),G=class extends Error{constructor(e,t,i){super(e)}};function X(e,t,i=0,r="",s=!1){let n=t.slice(0,i).split(/\r\n?|\n/),o=n.length,l=n.at(-1).length+1;return Error(`${e} ${s?"lexical":"parse"} error at line ${o}, column ${l}: ${r||"unrecognized input"}`)}var K=class{type="requirement";direction="TB";requirements=new Map;elements=new Map;relations=[];classes=new Map;authoredStyles=new Map;title;accTitle;accDescr;newId="";newText="";newRisk="";newVerifyMethod="";newElementType="";newDocRef="";styleCopies=0;copy(e,t){if(this.styleCopies+=t.length,this.styleCopies>1e6)throw new G("Requirement diagram applies too many style declarations.","limit",{type:"requirement"});for(let i of t)e.push(i)}setDirection(e){this.direction=e,q("requirement")&&R("requirement","setDirection",e)}addRequirement(e,t){let i=this.requirements.get(e);return void 0===i&&(S("nodes",this.requirements.size+this.elements.size+1),i={name:e,type:t,requirementId:this.newId,text:this.newText,risk:this.newRisk,verifyMethod:this.newVerifyMethod,cssStyles:[],classes:["default"]},this.requirements.set(e,i),q("requirement")&&R("requirement","addRequirement",i)),this.newId=this.newText=this.newRisk=this.newVerifyMethod="",i}setNewReqId(e){this.newId=e,q("requirement")&&R("requirement","setNewReqId",e)}setNewReqText(e){this.newText=e,q("requirement")&&R("requirement","setNewReqText",e)}setNewReqRisk(e){this.newRisk=e,q("requirement")&&R("requirement","setNewReqRisk",e)}setNewReqVerifyMethod(e){this.newVerifyMethod=e,q("requirement")&&R("requirement","setNewReqVerifyMethod",e)}addElement(e){let t=this.elements.get(e);return void 0===t&&(S("nodes",this.requirements.size+this.elements.size+1),t={name:e,type:this.newElementType,docRef:this.newDocRef,cssStyles:[],classes:["default"]},this.elements.set(e,t),q("requirement")&&R("requirement","addElement",t)),this.newElementType=this.newDocRef="",t}setNewElementType(e){this.newElementType=e,q("requirement")&&R("requirement","setNewElementType",e)}setNewElementDocRef(e){this.newDocRef=e,q("requirement")&&R("requirement","setNewElementDocRef",e)}addRelationship(e,t,i){S("edges",this.relations.length+1),this.relations.push({type:e,src:t,dst:i}),q("requirement")&&R("requirement","addRelationship",{type:e,src:t,dst:i})}node(e){return this.requirements.get(e)??this.elements.get(e)}setCssStyle(e,t){for(let i of e){let e=this.authoredStyles.get(i)??[];this.copy(e,t),this.authoredStyles.set(i,e)}for(let i of e){let e=this.node(i);if(!t||!e)return;for(let r of((e.directStyles??=[]).push(...t.flatMap(e=>e.split(","))),t))this.copy(e.cssStyles,r.includes(",")?r.split(","):[r]),q("requirement")&&R("requirement","setCssStyle",{id:i,style:r,node:e})}}setClass(e,t){for(let i of e){let e=this.node(i);if(e)for(let r of t){e.classes.push(r),q("requirement")&&R("requirement","setClass",{id:i,className:r});let t=this.classes.get(r)?.styles;t&&this.copy(e.cssStyles,t)}}}defineClass(e,t){for(let i of e){let e=this.classes.get(i);for(let r of(void 0===e&&(e={id:i,styles:[],textStyles:[]},this.classes.set(i,e)),t))r.includes("color")&&e.textStyles.push(r.replace("fill","bgFill")),e.styles.push(r);q("requirement")&&R("requirement","defineClass",e);let r=t.flatMap(e=>e.split(","));for(let e of this.requirements.values())e.classes.includes(i)&&this.copy(e.cssStyles,r);for(let e of this.elements.values())e.classes.includes(i)&&this.copy(e.cssStyles,r)}}setAccTitle(e){this.accTitle=e.replace(/^\s+/g,""),q("requirement")&&R("requirement","setAccTitle",this.accTitle)}setAccDescription(e){this.accDescr=e.replace(/\n\s+/g,`
|
|
12
|
+
`),q("requirement")&&R("requirement","setAccDescription",this.accDescr)}},J=["$end","INVALID","title","acc_title","acc_title_value","acc_descr","acc_descr_value","acc_descr_multiline_value","direction_tb","direction_bt","direction_rl","direction_lr","NEWLINE","EOF","RD","STRUCT_START","STRUCT_STOP","STYLE_SEPARATOR","COLONSEP","ID","TEXT","RISK","VERIFYMTHD","REQUIREMENT","FUNCTIONAL_REQUIREMENT","INTERFACE_REQUIREMENT","PERFORMANCE_REQUIREMENT","PHYSICAL_REQUIREMENT","DESIGN_CONSTRAINT","LOW_RISK","MED_RISK","HIGH_RISK","VERIFY_ANALYSIS","VERIFY_DEMONSTRATION","VERIFY_INSPECTION","VERIFY_TEST","ELEMENT","CONTAINS","COPIES","DERIVES","SATISFIES","VERIFIES","REFINES","TRACES","TYPE","DOCREF","STYLE","CLASSDEF","CLASS","ALPHA","COLON","SEMICOLON","PERCENT","MINUS","BRKT","END_ARROW_L","END_ARROW_R","LINE","qString","unqString","COMMA"],Z=new Map([["requirementdiagram",14],["id",19],["text",20],["risk",21],["verifymethod",22],["requirement",23],["functionalrequirement",24],["interfacerequirement",25],["performancerequirement",26],["physicalrequirement",27],["designconstraint",28],["low",29],["medium",30],["high",31],["analysis",32],["demonstration",33],["inspection",34],["test",35],["element",36],["contains",37],["copies",38],["derives",39],["satisfies",40],["verifies",41],["refines",42],["traces",43],["type",44],["docref",45],["style",46],["classdef",47],["class",48]]);function ee(e){return e<128?32===e||e>=9&&e<=13:160===e||5760===e||e>=8192&&e<=8202||8232===e||8233===e||8239===e||8287===e||12288===e||65279===e}function et(e){return 10===e||13===e||8232===e||8233===e}function ei(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||95===e}var er=/accTitle\s*:\s*/iy,es=/accDescr\s*:\s*/iy,en=/accDescr\s*\{\s*/iy,eo=/direction\s+(?:(TB)|(BT)|(RL)|LR)/gi,el=/[\n\r\u2028\u2029]/g,ea=new Uint8Array(128);for(let e of`:,\r
|
|
13
|
+
{<>-=`)ea[e.charCodeAt(0)]=1;function ec(e,t){let i=e.length,r=[],s=[],n=[],o=[],l=0,a=!1,c=0,h=[[],[],[],[]],m=[[],[],[],[]],p=[0,0,0,0],u=!1,f=-1;eo.lastIndex=0;for(let t=eo.exec(e);null!==t;t=eo.exec(e)){let e=void 0!==t[1]?0:void 0!==t[2]?1:void 0!==t[3]?2:3;h[e].push(t.index),m[e].push(eo.lastIndex),u=!0}let y=(t,i,o)=>{r.push(t),s.push(e.slice(i,o)),n.push(i),c=o},g=e=>{o.push(l),l=e},b=()=>{o.length>0&&(l=o.pop())},w=(t,i)=>(t.lastIndex=i,t.test(e)?t.lastIndex:-1),_=t=>{let r=d(e,t);return -1===r?i:r},x=o=>{let l=32|o;if(116===l&&"itle"===e.slice(c+1,c+5).toLowerCase()&&ee(e.charCodeAt(c+5))){let t=c+6;for(;t<i;){let i=e.charCodeAt(t);if(35===i||10===i||13===i||59===i)break;t++}if(t>c+6)return y(2,c,t),!0}if(97===l&&(32|e.charCodeAt(c+1))==99&&(32|e.charCodeAt(c+2))==99){let e;if((e=w(er,c))>=0)return g(3),y(3,c,e),!0;if((e=w(es,c))>=0)return g(4),y(5,c,e),!0;if((e=w(en,c))>=0)return g(5),c=e,!0}if(u&&!et(o)&&(()=>{if(f<c){el.lastIndex=c,f=el.test(e)?el.lastIndex-1:i;for(let e=0;e<4;e++){let t=h[e],i=p[e];for(;i<t.length&&t[i]<=f;)i++;p[e]=i}}for(let e=0;e<4;e++){let t=p[e]-1;if(t>=0&&h[e][t]>=c)return y(8+e,c,_(m[e][t])),!0}return!1})())return!0;if(10===o||13===o){let t=c;for(;t<i;){let i=e.charCodeAt(t);if(10===i)t++;else if(13===i)t+=10===e.charCodeAt(t+1)?2:1;else break}return y(12,c,t),!0}if(ee(o)){for(c++;c<i&&ee(e.charCodeAt(c))&&!et(e.charCodeAt(c));)c++;return!0}if(35===o||37===o)return e.startsWith("%%",c)&&t?.(c,_(c)),c=_(c),!0;if(ei(o)){let t=c+1;for(;t<i&&ei(e.charCodeAt(t));)t++;if(t-c<=22){let i=Z.get(e.slice(c,t).toLowerCase());if(void 0!==i)return(46===i||47===i||48===i)&&(a=!1,g(2)),y(i,c,t),!0}for(;t<i;){let i=e.charCodeAt(t);if(i<128&&1===ea[i])break;t++}return r.push(59),s.push(e.slice(c,t).trim()),n.push(c),c=t,!0}switch(o){case 123:return y(15,c,c+1),!0;case 125:return y(16,c,c+1),!0;case 58:return 58===e.charCodeAt(c+1)&&58===e.charCodeAt(c+2)?y(17,c,c+3):y(18,c,c+1),!0;case 60:return 45===e.charCodeAt(c+1)&&(y(55,c,c+2),!0);case 45:return 62===e.charCodeAt(c+1)?y(56,c,c+2):y(57,c,c+1),!0;case 34:return g(1),c++,!0;case 44:return y(60,c,c+1),!0}return!1},q=t=>{if(ei(t)){let t=c+1;for(;t<i&&ei(e.charCodeAt(t));)t++;let r=t;for(;r<i&&ee(e.charCodeAt(r))&&!et(e.charCodeAt(r));)r++;if(a&&40===e.charCodeAt(r)){t=r;let s=0;for(;t<i;){let i=e.charCodeAt(t);if(et(i)||0===s&&(44===i||59===i))break;40===i?s++:41===i&&(s=Math.max(0,s-1)),t++}}return y(49,c,t),!0}switch(t){case 58:return a=!0,y(50,c,c+1),!0;case 59:return a=!1,y(51,c,c+1),!0;case 37:return y(52,c,c+1),!0;case 45:return y(53,c,c+1),!0;case 35:return y(54,c,c+1),!0;case 32:return c++,!0;case 34:return g(1),c++,!0;case 10:return b(),c++,!0;case 13:return b(),c+=10===e.charCodeAt(c+1)?2:1,!0;case 44:return a=!1,y(60,c,c+1),!0}return!1};for(;c<i;){let t=e.charCodeAt(c),o=!0;switch(l){case 0:o=x(t);break;case 2:o=q(t);break;case 1:if(34===t)b(),c++;else{let t=e.indexOf('"',c);y(58,c,-1===t?i:t)}break;case 3:b(),y(4,c,_(c));break;case 4:b(),y(6,c,_(c));break;case 5:if(125===t)b(),c++;else{let t=e.indexOf("}",c);y(7,c,-1===t?i:t)}}if(!o)return r.push(1),s.push(""),n.push(c),{types:r,texts:s,starts:n}}let k=0===l?13:1===l?58:3===l?4:4===l?6:5===l?7:-1;return -1!==k&&y(k,i,i),y(0,i,i),{types:r,texts:s,starts:n}}var ed=["Requirement","Functional Requirement","Interface Requirement","Performance Requirement","Physical Requirement","Design Constraint","Low","Medium","High","Analysis","Demonstration","Inspection","Test","","contains","copies","derives","satisfies","verifies","refines","traces"];function eh(e){return 49===e||50===e||54===e||53===e||51===e}var em=D("requirement-arrow",{width:9,height:7},"end",{fill:"none",stroke:"var(--_arrow)",strokeWidth:"1"},"userSpaceOnUse"),ep=r([em]),eu={id:"requirement-contains",shape:"circle",size:{width:12,height:12},ref:{x:0,y:6},orient:"auto",units:"userSpaceOnUse",geometry:{kind:"compound",children:[{kind:"circle",cx:6,cy:6,r:5},{kind:"path",d:"M2 6H10M6 2V10"}]},paint:{fill:"var(--bg)",stroke:"var(--_arrow)",strokeWidth:"1"}},ef=E(function(e,t){let{positioned:i,colors:r}=t,s=t.resolved.renderOptions.transparent??!1,n=r.font??"Inter",o=[],l=i.style.edgeStrokeColor?{...em,paint:{...em.paint,stroke:i.style.edgeStrokeColor}}:em,a=i.style.edgeStrokeColor?{...eu,paint:{...eu.paint,stroke:i.style.edgeStrokeColor}}:eu,c=[l,a],d=N(r),h=A(i.width,i.height,r,s);for(let t of(i.model.accessibilityTitle&&(h+=`<title>${F(i.model.accessibilityTitle)}</title>`),i.model.accessibilityDescription&&(h+=`<desc>${F(i.model.accessibilityDescription)}</desc>`),h+=I(n,!1,void 0,r.embedFontImport),o.push(e.documentOpen({id:"prelude",width:i.width,height:i.height,colors:r,transparent:s,font:n,hasMonoFont:!1},h),e.definitions({id:"defs",markerResources:c},`<defs>${M(c)}</defs>`)),i.nodes)){let r=t.style.fill??i.style.nodeFillColor??"var(--_node-fill)",s=t.style.stroke??i.style.nodeBorderColor??"var(--_node-stroke)",n=t.style.color??i.style.nodeTextColor??d("var(--_text)",r),l=[{indent:2,node:e.shape({id:`frame:${t.id}`,role:"node",identity:!1,owner:{id:t.id,role:"node"},geometry:{kind:"rect",x:t.x,y:t.y,width:t.width,height:t.height,rx:i.style.cornerRadius},paint:{fill:r,stroke:s,strokeWidth:t.style["stroke-width"]??String(i.style.nodeLineWidth),...void 0!==t.style["stroke-dasharray"]?{strokeDasharray:t.style["stroke-dasharray"]}:{}}})},{indent:2,node:e.shape({id:`separator:${t.id}`,role:"chrome",geometry:{kind:"line",x1:t.x,y1:t.y+t.headerHeight,x2:t.x+t.width,y2:t.y+t.headerHeight},paint:{stroke:s,strokeWidth:"0.75"}})},{indent:2,node:e.text({id:`header:${t.id}`,role:"label",owner:{id:t.id,role:"node"},text:t.header.text,block:t.header,x:t.x+t.width/2,y:t.y+t.headerHeight/2,fontSize:t.header.fontSize,anchor:"middle",paint:{fill:n}})},...t.rows.map((i,r)=>({indent:2,node:e.text({id:`field:${t.id}:${r}`,role:"attribute",owner:{id:t.id,role:"node"},text:i.block.text,block:i.block,x:t.x+t.paddingX,y:t.y+i.y,fontSize:i.block.fontSize,anchor:"start",paint:{fill:n}})}))],a=["requirement-node",...(t.requirement??t.element).classes.filter(e=>/^[\w-]+$/.test(e))];o.push(e.group({id:`node:${t.id}`,role:"node",open:`<g class="${W(a.join(" "))}" data-id="${W(t.id)}">`,close:"</g>",children:l}))}for(let t of i.edges){let r=i.style.edgeBendRadius>0&&t.points.length>2?B(t.points,i.style.edgeBendRadius,{terminalClearance:{end:"contains"===t.type?0:ep(em.id,i.style.lineWidth,"end")}}):void 0;o.push(e.connector({id:t.id,role:"relationship",geometry:r?.geometry??{kind:"polyline",points:t.points},lineStyle:"contains"===t.type?"solid":"dashed",paint:{stroke:i.style.edgeStrokeColor??"var(--_line)",strokeWidth:String(i.style.lineWidth),fill:"none",..."contains"!==t.type?{strokeDasharray:"6 4"}:{}},endpoints:{from:t.src,to:t.dst},relationship:{kind:t.type,direction:"forward"},markers:"contains"===t.type?{start:a}:{end:l},labels:[{text:t.label.text,anchor:t.labelPosition}],route:{ownership:"layout",bendRadius:i.style.edgeBendRadius,labelAnchors:[t.labelPosition],...r?{contours:r.contours}:{}}}))}for(let t of i.edges){let r=t.label,s=t.labelPosition;o.push(e.group({id:`edge-label:${t.id}`,role:"edge-label",open:'<g class="requirement-edge-label">',close:"</g>",children:[{indent:2,node:e.shape({id:`label-bg:${t.id}`,role:"chrome",owner:{id:t.id,role:"relationship"},geometry:{kind:"rect",x:s.x-r.width/2-6,y:s.y-r.height/2-4,width:r.width+12,height:r.height+8},paint:{fill:"var(--bg)",stroke:"none"}})},{indent:2,node:e.text({id:`label:${t.id}`,role:"edge-label",owner:{id:t.id,role:"relationship"},text:r.text,block:r,x:s.x,y:s.y,fontSize:r.fontSize,anchor:"middle",paint:{fill:i.style.edgeTextColor??"var(--_text)"}})}]}))}return i.title&&o.push(e.text(z(i.title,i.style))),o.push(e.documentClose()),{family:"requirement",width:i.width,height:i.height,colors:r,transparent:s,parts:o}}),ey=x(Q,{configDiagnostics:e=>c("requirement",e,{rect_fill:l,text_color:l,rect_border_color:l,rect_border_size:a(0),rect_min_width:s,rect_min_height:n,rect_padding:n,line_height:n,fontSize:s,maxWidth:s,nodeSpacing:n,rankSpacing:n,useMaxWidth:o,look:l,theme:l}),statementEnds:function(e){let t=e.map((e,t)=>t);if(!e.length)return t;let i=["requirementDiagram",...e.slice(1)].join(`
|
|
14
14
|
`),r=[0];for(let e=0;e<i.length;e++)i[e]===`
|
|
15
15
|
`&&r.push(e+1);try{let e=ec(i),s=0;for(let i=0;i<e.types.length;i++){if(58!==e.types[i])continue;let n=e.starts[i],o=n+e.texts[i].length;for(;s+1<r.length&&r[s+1]<=n;)s++;let l=s;for(;l+1<r.length&&r[l+1]<=o;)l++;t[s]=Math.max(t[s],l),s=l}}catch{}return t},layout:r=>{let s=function(e,t,i){let r=Array.isArray(e)?e.join(`
|
|
16
|
-
`):e,s=r.replace(/^[^\S\r\n]*requirement[^\S\r\n]*(?=\r\n?|\n|$)/i,"requirementDiagram"),n=(s.length,r.length,new
|
|
16
|
+
`):e,s=r.replace(/^[^\S\r\n]*requirement[^\S\r\n]*(?=\r\n?|\n|$)/i,"requirementDiagram"),n=(s.length,r.length,new K);for(let e of(function(e,t,i,r){let{types:s,texts:n,starts:o}=ec(e),l=0,a=[],c=[],d=(t,i=t,...r)=>{let n=s[l];if(1===n)throw X("requirement",e,o[l],"",!0);for(let e=i;e>=t;e--)r.unshift(e);let a=r.map(e=>`'${J[e]}'`).join(", ");throw X("requirement",e,o[l],`Expecting ${a}, got '${J[n]}'`)},h=e=>(s[l]!==e&&d(e),12===e&&59!==s[l-1]&&r?.(o[l]),n[l++]),m=(e,t)=>{let i=s[l];return(i<e||i>t)&&d(e,t),l++,ed[i-23]},p=()=>{let e=s[l];return 59!==e&&58!==e&&d(58,59),n[l++]},u=()=>{let i=l,r=s[l];if(3===r)l++,t.setAccTitle(h(4).trim());else if(5===r)l++,t.setAccDescription(h(6).trim());else{if(7!==r)return!1;t.setAccDescription(n[l++].trim())}return q("requirement")&&k("requirement",J[r],e.slice(o[i],o[l]??e.length),{offset:o[i],endOffset:o[l]??e.length,unit:"physical"}),!0},f=()=>{let e=[];for(;;){let t=s[l];if(49!==t&&59!==t&&58!==t&&d(58,59,49),e.push(n[l++]),60!==s[l])return e;l++}},y=()=>{let t=[];for(;;){eh(s[l])||d(49,51,53,54);let i=n[l++];for(;eh(s[l]);){let t=o[l-1]+n[l-1].length;i.includes(":")&&!i.endsWith(":")&&o[l]>t&&(i+=e.slice(t,o[l])),i+=n[l++]}if(t.push(i),60!==s[l])return t;l++}},g=()=>{let e;return 17===s[l]?(l++,e=f(),h(15)):15===s[l]?l++:d(15,15,17),h(12),e},b=i=>{for(a.length=0,c.length=0;;){let t=s[l];if(16===t){l++;break}if(12===t){l++;continue}(i?t<19||t>22:44!==t&&45!==t)&&(i&&d(19,22,12,16),d(44,45,12,16));let r=l;l++,h(18),c.push(21===t?m(29,31):22===t?m(32,35):p()),a.push(t),h(12),q("requirement")&&k("requirement",J[t],e.slice(o[r],o[l]??e.length),{offset:o[r],endOffset:o[l]??e.length,unit:"physical"})}for(let e=a.length-1;e>=0;e--){let i=c[e];switch(a[e]){case 19:t.setNewReqId(i);break;case 20:t.setNewReqText(i);break;case 21:t.setNewReqRisk(i);break;case 22:t.setNewReqVerifyMethod(i);break;case 44:t.setNewElementType(i);break;default:t.setNewElementDocRef(i)}}};for(;u();)12===s[l]&&l++;14!==s[l]&&d(14,14,3,5,7);let w=l++;for(h(12),q("requirement")&&k("requirement","header",e.slice(o[w],o[l]??e.length),{offset:o[w],endOffset:o[l]??e.length,unit:"physical"});;){let r=l,a=s[l];if(13===a)return;if(12!==a&&3!==a&&5!==a&&7!==a&&q("requirement")&&k("requirement",J[a],n[r],{offset:o[r],endOffset:o[r]+n[r].length,unit:"physical"}),12===a)l++;else{if(u())continue;if(a>=8&&a<=11)l++,t.setDirection(8===a?"TB":9===a?"BT":10===a?"RL":"LR");else if(a>=23&&a<=28){let e=m(23,28),i=p(),r=g();b(!0),t.addRequirement(i,e),r&&t.setClass([i],r)}else if(36===a){l++;let e=p(),i=g();b(!1),t.addElement(e),i&&t.setClass([e],i)}else if(46===a){l++;let s=f(),n=e.slice(o[r],o[l]),a=y();i?.({prefix:n,styles:a}),t.setCssStyle(s,a)}else if(47===a){l++;let s=f(),n=e.slice(o[r],o[l]),a=y();i?.({prefix:n,styles:a}),t.defineClass(s,a)}else if(48===a){l++;let e=f();t.setClass(e,f())}else if(59===a||58===a){let e=n[l++],i=s[l];if(17===i)l++,t.setClass([e],f());else if(55===i||57===i){l++;let r=m(37,43);h(57===i?56:57);let s=p();57===i?t.addRelationship(r,e,s):t.addRelationship(r,s,e)}else d(17,17,55,57)}else d(12,13,3,5,7,8,9,10,11,23,24,25,26,27,28,36,47,48,46,59,58)}}}(s.endsWith(`
|
|
17
17
|
`)?s:s+`
|
|
18
|
-
`,n,void 0,void 0),n.classes.values()))C(T(e.styles.join(",")),`classDef ${e.id}`);for(let[e,t]of n.authoredStyles)C(T(t.join(",")),`style ${e}`);for(let e of[...n.requirements.values(),...n.elements.values()])C(T((e.directStyles??[]).join(",")),`style ${e.name}`);return{kind:"requirement",direction:n.direction,requirements:[...n.requirements.values()],elements:[...n.elements.values()],relations:n.relations.map((e,t)=>({...e,id:`relation-${t+1}`})),classDefs:[...n.classes.values()],title:n.title,accessibilityTitle:n.accTitle,accessibilityDescription:n.accDescr}}(m(r.source));return s.title??=h(r.source.frontmatter),s.accessibilityTitle=r.source.accessibility.title??s.accessibilityTitle,s.accessibilityDescription=r.source.accessibility.descr??s.accessibilityDescription,_(function(r,s={},n,o={}){v(r);let l=
|
|
19
|
-
${i.name}`,{fontSize:n,fontWeight:l??a.nodeLabelFontWeight,maxWidth:d,transform:a.nodeTextTransform,letterSpacing:a.nodeLetterSpacing,fontFamily:s.font}),m=e?[["ID",e.requirementId],["Text",e.text],["Risk",e.risk],["Verification",e.verifyMethod]]:[["Type",t.type],["Doc Ref",t.docRef]],w=c.height+Math.max(12,1.5*u),_=
|
|
18
|
+
`,n,void 0,void 0),n.classes.values()))C(T(e.styles.join(",")),`classDef ${e.id}`);for(let[e,t]of n.authoredStyles)C(T(t.join(",")),`style ${e}`);for(let e of[...n.requirements.values(),...n.elements.values()])C(T((e.directStyles??[]).join(",")),`style ${e.name}`);return{kind:"requirement",direction:n.direction,requirements:[...n.requirements.values()],elements:[...n.elements.values()],relations:n.relations.map((e,t)=>({...e,id:`relation-${t+1}`})),classDefs:[...n.classes.values()],title:n.title,accessibilityTitle:n.accTitle,accessibilityDescription:n.accDescr}}(m(r.source));return s.title??=h(r.source.frontmatter),s.accessibilityTitle=r.source.accessibility.title??s.accessibilityTitle,s.accessibilityDescription=r.source.accessibility.descr??s.accessibilityDescription,_(function(r,s={},n,o={}){v(r);let l=U(n,"relationship",{},{includeFallback:!1}),a=L(s,void 0,l?{...n,edge:{...n?.edge,...l}}:n),c=s.padding??32,d="number"==typeof o.maxWidth&&o.maxWidth>0?o.maxWidth:320,h=(e,t,i=0,r=2e3)=>"number"==typeof o[e]&&Number.isFinite(o[e])&&o[e]>=i?Math.min(o[e],r):t,m=h("rect_padding",16),p=void 0===o.rect_padding?n?.node?.paddingX??m:m,u=void 0===o.rect_padding?n?.node?.paddingY??m:m,f=h("rect_min_width",140,1),y=h("rect_min_height",0),g=h("line_height",0),b={};for(let[e,t]of[["rect_fill","fill"],["text_color","color"],["rect_border_color","stroke"],["rect_border_size","stroke-width"]])("string"==typeof o[e]||"rect_border_size"===e&&"number"==typeof o[e]&&Number.isFinite(o[e]))&&(b[t]=String(o[e]));C(b,"requirement config");let w=[...r.requirements.map(e=>({requirement:e,element:void 0})),...r.elements.map(e=>({requirement:void 0,element:e}))].map(({requirement:e,element:t})=>{let i=e??t,r=C({...b,...T(i.cssStyles.join(","))},`style ${i.name}`),n=Number.parseFloat(r["font-size"]??"")||h("fontSize",a.nodeLabelFontSize,1),o=r["font-weight"]?.trim().toLowerCase(),l=void 0===o?void 0:"normal"===o?400:"bold"===o?700:Number(o);if(void 0!==l&&(!Number.isFinite(l)||l<1||l>1e3))throw Error(`style ${i.name}: font-weight must be normal, bold, or a number from 1 to 1000`);let c=j(`<<${e?.type??"Element"}>>
|
|
19
|
+
${i.name}`,{fontSize:n,fontWeight:l??a.nodeLabelFontWeight,maxWidth:d,transform:a.nodeTextTransform,letterSpacing:a.nodeLetterSpacing,fontFamily:s.font}),m=e?[["ID",e.requirementId],["Text",e.text],["Risk",e.risk],["Verification",e.verifyMethod]]:[["Type",t.type],["Doc Ref",t.docRef]],w=c.height+Math.max(12,1.5*u),_=H(m.filter(([,e])=>e).map(([e,t])=>{let i=j(`${e}: ${t}`,{fontSize:n,fontWeight:l??400,maxWidth:d,transform:a.nodeTextTransform,letterSpacing:a.nodeLetterSpacing,fontFamily:s.font});return{label:e,block:i}}),{top:w+8,gap:9,minRowHeight:g,align:"start",trailingGap:!0}),x=_.rows.map(({item:e,textY:t})=>({...e,y:t})),q=Math.max(y,_.bottom+8),k=Math.max(f,c.width+2*p,_.width+2*p);return{id:i.name,requirement:e,element:t,x:0,y:0,width:k,height:q,header:c,rows:x,paddingX:p,headerHeight:w,style:r}}),_=new Map(w.map((e,t)=>[e.id,t])),x=r.relations.map(e=>j(`<<${e.type}>>`,{fontSize:a.edgeLabelFontSize,fontWeight:a.edgeLabelFontWeight,transform:a.edgeTextTransform,letterSpacing:a.edgeLetterSpacing}));for(let e of r.relations)if(!_.has(e.src)||!_.has(e.dst))throw Error(`Requirement relation ${e.id} references an undeclared endpoint`);let q=s.nodeSpacing??h("nodeSpacing",40,0,1/0),k=s.layerSpacing??h("rankSpacing",72,0,1/0),R=r.relations.some(e=>"contains"!==e.type)?ep(em.id,a.lineWidth,"end")+a.edgeBendRadius:0,S=V(s,()=>P("agentic",()=>i({nodes:w.map(e=>({id:e.id,width:e.width,height:e.height})),edges:r.relations.map((e,t)=>({source:_.get(e.src),target:_.get(e.dst),minSpan:1,label:{width:x[t].width+16,height:x[t].height+10}})),direction:r.direction,padding:c,nodeSpacing:q,layerSpacing:k,...R?{minimumTerminalLead:R}:{},edgeSpacing:Math.max(6,a.lineWidth+4)})),()=>{let i=new Map(w.map((e,t)=>[e.id,`n${t}`])),s=r.relations.map((e,t)=>({id:`e${t}`,sources:[i.get(e.src)],targets:[i.get(e.dst)],labels:[{text:x[t].text,width:x[t].width+16,height:x[t].height+10}]})),n={id:"requirement-layout",layoutOptions:{"elk.algorithm":"layered","elk.direction":{TB:"DOWN",BT:"UP",LR:"RIGHT",RL:"LEFT"}[r.direction],"elk.edgeRouting":"ORTHOGONAL","elk.spacing.edgeNode":String(R),"elk.layered.spacing.edgeNodeBetweenLayers":String(R),"elk.spacing.nodeNode":String(q),"elk.layered.spacing.nodeNodeBetweenLayers":String(k),"elk.padding":`[top=${c},left=${c},bottom=${c},right=${c}]`},children:w.map(e=>({id:i.get(e.id),width:e.width,height:e.height})),edges:s},o=w.length?e(n):{...n,width:2*c,height:2*c},l=w.map(()=>({x:0,y:0}));for(let e of o.children??[])l[Number(e.id.slice(1))]={x:e.x??0,y:e.y??0};return{width:o.width??0,height:o.height??2*c,nodes:l,edges:r.relations.map((e,i)=>{let r=o.edges?.[i],s=r?.labels?.[0];return{points:t((r?.sections??[]).flatMap(e=>[e.startPoint,...e.bendPoints??[],e.endPoint])),...s?.x!==void 0?{labelPosition:{x:s.x+(s.width??0)/2,y:(s.y??0)+(s.height??0)/2}}:{}}})}}),E=$(r.title,a),N=E?.height??0,I=Math.max(S.width??0,(E?.width??0)+2*c,2*c),A=(S.height??2*c)+N;for(let[e,t]of S.nodes.entries()){let i=w[e];i.x=t.x+(I-S.width)/2,i.y=t.y+N}let D=r.relations.map((e,t)=>{let i=S.edges[t],r=(i?.points??[]).map(e=>({x:e.x+(I-S.width)/2,y:e.y+N}));if(r.length<2)throw Error(`No route for requirement relation ${e.id}`);let s=x[t],n=i?.labelPosition,o=r[Math.floor(r.length/2)],l=n?{x:n.x+(I-S.width)/2,y:n.y+N}:o;return{...e,points:r,label:s,labelPosition:l}});return{model:r,width:I,height:A,nodes:w,edges:D,style:a,...E?{title:O(E,I,c)}:{}}}(s,r.renderOptions,r.styleFace,r.source.config.requirement))},projectPositioned:b(function({positioned:e}){let t=e.nodes.flatMap(e=>e.rows.map((t,i)=>({id:`field:${e.id}:${i}`,text:t.block.text,bounds:y(t.block,e.x+e.paddingX,e.y+t.y,"start"),container:u(e)})));return e.title&&t.push({id:"title",text:e.title.text,bounds:y(e.title.block,e.title.x,e.title.y),container:u(p(e))}),{version:1,bounds:{w:f(e.width),h:f(e.height)},nodes:e.nodes.map(e=>({id:e.id,x:f(e.x),y:f(e.y),w:f(e.width),h:f(e.height),shape:"rectangle",label:e.header.text,role:"box",...g(e.header,e.x+e.width/2,e.y+e.headerHeight/2,e)})),edges:e.edges.map(e=>({id:e.id,from:e.src,to:e.dst,path:e.points.map(e=>[f(e.x),f(e.y)]),label:{x:f(e.labelPosition.x),y:f(e.labelPosition.y),text:e.label.text,bounds:y(e.label,e.labelPosition.x,e.labelPosition.y)}})),groups:[],labels:t}}),lowerScene:w(ef)});export{ey as default};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import{a as e,b as t}from"./chunk-
|
|
1
|
+
import{a as e,b as t}from"./chunk-2JQXRKBC.js";import{i as n}from"./chunk-64JFHCJC.js";import{a as i,e as o,f as r,j as l,l as a,n as s}from"./chunk-XHU3A432.js";import{d as d}from"./chunk-5LKPDHPC.js";import{v as u,y as c}from"./chunk-V6I2VGNQ.js";import{j as f}from"./chunk-7UFOFWBA.js";import{a as h,c as g,d as p}from"./chunk-VRZKI33U.js";import{D as y,a as m,b as k,c as b,d as x,e as v,g as w,i as S}from"./chunk-QVSZOF5M.js";import{c as $,s as L,x as M}from"./chunk-G4JBA7HU.js";import{c as W,i as j,j as C,k as I}from"./chunk-3JTYTXA6.js";import{c as _,h as F}from"./chunk-YVNJDVQO.js";import{Sb as z,Va as E,_ as V,a as P,o as A,qa as O}from"./chunk-EIYLJ4FI.js";import{H as H,I as B}from"./chunk-PJJSDGLB.js";import"./chunk-YHMTSXIR.js";import"./chunk-QCU5G5PZ.js";var T=Object.freeze({id:"sankey",upstreamId:"sankey",maturity:"experimental",label:"Sankey",headers:["sankey","sankey-beta"],aliases:[],config:{section:"sankey",keys:["width","height","linkColor","nodeAlignment","showValues","prefix","suffix","labelStyle","nodeWidth","nodePadding","nodeColors","useMaxWidth"],noopKeys:["useMaxWidth"]},identity:{id:"family:sankey",kind:"family",version:"1.0.0",compatibility:{core:"0.5.4"},provenance:{owner:"agentic-mermaid",source:"built-in"}},collisionPriority:100,semanticChannels:["value","category"],semanticRoles:["prelude","chrome","defs","edge","bar","label","title"],scenePrimitiveEvidence:[{role:"prelude",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"chrome",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"defs",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"edge",primitive:"connector",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"bar",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"bar",primitive:"data-mark",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"label",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"title",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]}],example:`sankey-beta
|
|
2
2
|
Coal,Electricity grid,127.93
|
|
3
3
|
Electricity grid,Industry,71.24
|
|
4
|
-
Electricity grid,Losses,56.69`,detect:
|
|
4
|
+
Electricity grid,Losses,56.69`,detect:H,detectLoose:B}),N={width:600,height:400,linkColor:{mode:"gradient"},nodeAlignment:"justify",showValues:!0,prefix:"",suffix:"",labelStyle:"legacy",nodeWidth:10,nodePadding:12,nodeColors:{}},q=["justify","center","left","right"],J=["legacy","outlined"],X=["source","target","gradient"],Y=Object.freeze({width:{min:1,max:1e4},height:{min:1,max:1e4},nodeWidth:{min:1,max:200},nodePadding:{min:0,max:200}});function R(e,t,n){if(!("number"!=typeof e||!Number.isFinite(e))&&!(e<t||e>n))return e}function D(e={}){let t=c(e,["sankey"])??{},n={...N},i=R(t.width,Y.width.min,Y.width.max);void 0!==i&&(n.width=i);let o=R(t.height,Y.height.min,Y.height.max);void 0!==o&&(n.height=o);let r=R(t.nodeWidth,Y.nodeWidth.min,Y.nodeWidth.max);void 0!==r&&(n.nodeWidth=r);let l=R(t.nodePadding,Y.nodePadding.min,Y.nodePadding.max);void 0!==l&&(n.nodePadding=l);let a=t.nodeAlignment;"string"==typeof a&&q.includes(a)&&(n.nodeAlignment=a);let s=t.labelStyle;"string"==typeof s&&J.includes(s)&&(n.labelStyle=s),"boolean"==typeof t.showValues&&(n.showValues=t.showValues),"string"==typeof t.prefix&&(n.prefix=t.prefix),"string"==typeof t.suffix&&(n.suffix=t.suffix);let d=t.linkColor;if("string"==typeof d)if(X.includes(d))n.linkColor={mode:d};else{let e=W(d,!0);void 0!==e&&(n.linkColor={mode:"static",color:e})}let u=c(e,["sankey","nodeColors"]);if(u){let e={};for(let[t,i]of Object.entries(u)){let o=W(i,"gradient"!==n.linkColor.mode);void 0!==o&&(e[t]=o)}Object.keys(e).length>0&&(n.nodeColors=Object.freeze(e))}return n}var Q={width:a(Y.width.min,Y.width.max),height:a(Y.height.min,Y.height.max),nodeWidth:a(Y.nodeWidth.min,Y.nodeWidth.max),nodePadding:s(Y.nodePadding.max),linkColor:i("source, target, gradient, or a drawable CSS color",e=>"string"==typeof e&&(["source","target","gradient"].includes(e)||void 0!==W(e,!0))),nodeAlignment:l("justify","center","left","right"),showValues:o,prefix:r,suffix:r,labelStyle:l("legacy","outlined"),nodeColors:i("an object mapping node labels to drawable CSS colors",e=>!!e&&"object"==typeof e&&!Array.isArray(e)&&Object.values(e).every(e=>void 0!==W(e,!0)))};function U(e,t){let n;if(void 0===t)for(let t of e)null!=t&&(n<t||void 0===n&&t>=t)&&(n=t);else{let i=-1;for(let o of e)null!=(o=t(o,++i,e))&&(n<o||void 0===n&&o>=o)&&(n=o)}return n}function G(e,t){let n;if(void 0===t)for(let t of e)null!=t&&(n>t||void 0===n&&t>=t)&&(n=t);else{let i=-1;for(let o of e)null!=(o=t(o,++i,e))&&(n>o||void 0===n&&o>=o)&&(n=o)}return n}function K(e,t){let n=0;if(void 0===t)for(let t of e)(t*=1)&&(n+=t);else{let i=-1;for(let o of e)(o=+t(o,++i,e))&&(n+=o)}return n}function Z(e){return e.target.depth}function ee(e,t){return e.sourceLinks.length?e.depth:t-1}function et(e){return function(){return e}}function en(e,t){return eo(e.source,t.source)||e.index-t.index}function ei(e,t){return eo(e.target,t.target)||e.index-t.index}function eo(e,t){return e.y0-t.y0}function er(e){return e.value}function el(e){return e.index}function ea(e){return e.nodes}function es(e){return e.links}function ed(e,t){let n=e.get(t);if(!n)throw Error("missing: "+t);return n}function eu({nodes:e}){for(let t of e){let e=t.y0,n=e;for(let n of t.sourceLinks)n.y0=e+n.width/2,e+=n.width;for(let e of t.targetLinks)e.y1=n+e.width/2,n+=e.width}}var ec={nodeLabelFontSize:13,edgeLabelFontSize:13,groupHeaderFontSize:18,nodeLabelFontWeight:500,edgeLabelFontWeight:500,groupHeaderFontWeight:600,nodePaddingX:0,nodePaddingY:0,nodeLineWidth:1,edgeLineWidth:_.connector,groupCornerRadius:0,groupPaddingX:0,groupPaddingY:0,groupLineWidth:_.outerBox};function ef(e){return Math.round(100*e)/100}var eh={left:function(e){return e.depth},right:function(e,t){return t-1-e.height},center:function(e){return e.targetLinks.length?e.depth:e.sourceLinks.length?G(e.sourceLinks,Z)-1:0},justify:ee};function eg(e,t){if(void 0===e||!Number.isFinite(e))throw Error(`d3-sankey did not assign ${t}`);return e}var ep=/^\+?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/,ey=e=>/^sankey(?:-beta)?\s*$/i.test(e.trim());function em(e,t){return e.derived?n(e.color,t,50):e.color}function ek(e){return Math.round(100*e)/100}var eb=$(function(e,i){var o;let r,{positioned:l,colors:a,resolved:s}=i,d=s.renderOptions,u=a.font??"Inter",c=d.transparent??!1,h=F(d,ec,s.styleFace),g=l.visual,p=[],y=null!==(r=(o=a.bg)?O(o):null)&&r<.18?"normal":"multiply",m=t(l.nodes.length,{accent:a.accent,bg:a.bg}),k=new Map,b=h.nodeBorderColor??"var(--_node-stroke)",x=h.nodeLineWidth;l.nodes.forEach((e,t)=>{var n;let i=A(s.styleFace,"bar",{category:e.label,value:e.value},{includeFallback:!1}),o=(n=e.label,Object.hasOwn(g.nodeColors,n)?g.nodeColors[n]:void 0),r=i?.fillColor;k.set(e.label,{color:o??r??m[t],derived:void 0===o&&void 0===r,stroke:i?.strokeColor??i?.borderColor??b,strokeWidth:i?.lineWidth??x})});let v=[];v.push(I(l.width,l.height,a,c,{attrs:{role:"img","aria-roledescription":"sankey diagram"}})),v.push(C(u,!1,a.shadow,a.embedFontImport));let w=j(a);w&&v.push(`<defs>${w}</defs>`),p.push(e.documentOpen({id:"prelude",width:l.width,height:l.height,colors:a,transparent:c,font:u,hasMonoFont:!1},v.join(`
|
|
5
5
|
`)));let S=new Map;if("gradient"===g.linkColor.mode){let t=l.links.map((e,t)=>{let n=`sankey-gradient-${t+1}`;S.set(e.sceneId,n);let i=k.get(e.source),o=k.get(e.target);return{id:n,units:"userSpaceOnUse",x1:e.sx,y1:e.sy,x2:e.tx,y2:e.ty,stops:[{offset:0,color:em(i,a.bg)},{offset:1,color:em(o,a.bg)}]}});t.length>0&&p.push(e.definitions({id:"sankey-gradient-definitions",gradientResources:t},`<defs>
|
|
6
6
|
${f(t)}
|
|
7
7
|
</defs>`))}for(let t of l.links){let i=String(t.width),o=function(e,t,i,o,r){let l=(e,i)=>i?n(e,t,50):e;switch(e.linkColor.mode){case"source":return l(i.color,i.derived);case"target":return l(o.color,o.derived);case"static":return e.linkColor.color;default:if(!r)throw Error("Sankey gradient mode requires a typed local gradient resource");return`url(#${r})`}}(g,a.bg,k.get(t.source),k.get(t.target),S.get(t.sceneId));p.push(e.connector({id:t.sceneId,role:"edge",geometry:{kind:"path",d:t.path,points:t.points},lineStyle:"solid",paint:{fill:"none",stroke:o,strokeWidth:i,opacity:String(.5)},stroke:{mixBlendMode:y,encodesValue:!0},identity:{id:t.id,from:t.source,to:t.target},endpoints:{from:t.sourceId,to:t.targetId},relationship:{kind:"flow",direction:"forward"},channels:{category:t.source,value:t.value},attributes:{className:"sankey-link",data:{source:t.source,target:t.target,value:String(t.value)}}}))}for(let t of l.nodes){let n=k.get(t.label),i=n.color;p.push(e.shape({id:t.id,role:"bar",identity:{id:t.label},geometry:{kind:"rect",x:t.x0,y:t.y0,width:ek(t.x1-t.x0),height:ek(t.y1-t.y0)},paint:{fill:i,stroke:n.stroke,strokeWidth:String(n.strokeWidth)},channels:{category:t.label,value:t.value},attributes:{className:"sankey-node",data:{label:P(t.label),value:String(t.value),layer:String(t.layer)}}}))}let $=h.nodeTextColor??"var(--_text)";for(let t of l.nodes){let n=t.labelLines.join(`
|
|
8
|
-
`);p.push(e.text({id:`${t.id}:label`,role:"label",text:n,x:t.labelX,y:t.labelY,fontSize:h.nodeLabelFontSize,fontWeight:h.nodeLabelFontWeight,letterSpacing:h.nodeLetterSpacing,block:t.labelBlock,anchor:t.labelAnchor,dominantBaseline:"middle",paint:{fill:$,stroke:"var(--bg)",strokeWidth:String(3),paintOrder:"stroke fill"},channels:{category:t.label,value:t.value},attributes:{className:"sankey-node-label"}}))}if(l.title){let t=l.title.text;p.push(e.text({id:"title",identity:{id:l.title.id},role:"title",text:t,x:l.title.x,y:l.title.y,fontSize:h.groupHeaderFontSize,fontWeight:h.groupHeaderFontWeight,letterSpacing:h.groupLetterSpacing,block:l.title.block,anchor:"middle",dominantBaseline:"middle",paint:{fill:h.groupTextColor??h.nodeTextColor??"var(--_text)"},attributes:{className:"sankey-title"}}))}return p.push(e.documentClose()),{family:"sankey",width:l.width,height:l.height,colors:a,transparent:c,parts:p}}),ex=x(T,{configDiagnostics:e=>d("sankey",e,
|
|
9
|
-
${i.prefix}${e(n)}${i.suffix}`:t.id;return[t,V(o,{display:"formatted",transform:s.nodeTextTransform,fontSize:d,fontWeight:s.nodeLabelFontWeight,letterSpacing:s.nodeLetterSpacing,safeFont:!0})]})),k=new Map(y.map(e=>[e,ef(Math.max(+(e.authoredValue>0),f?0:e.width??0))])),b=new Map;for(let e of p){let t=(e.sourceLinks??[]).reduce((e,t)=>e+k.get(t),0),n=(e.targetLinks??[]).reduce((e,t)=>e+k.get(t),0),i=f?0:eg(e.y1,`y1 for node ${e.id}`)-eg(e.y0,`y0 for node ${e.id}`);b.set(e,Math.max(1,i,t,n))}let x=new Map;for(let e of p){let t=e.layer??e.depth??0;x.set(t,[...x.get(t)??[],e])}let v=new Map,w=i.height;for(let e of x.values()){e.sort((e,t)=>eg(e.y0,`y0 for node ${e.id}`)-eg(t.y0,`y0 for node ${t.id}`)||e.authoredIndex-t.authoredIndex);let t=0;for(let[n,i]of e.entries()){let e=b.get(i),o=Math.max(0,(m.get(i).height-e)/2),r=Math.max(eg(i.y0,`y0 for node ${i.id}`),0===n?0:t+o);v.set(i,r),t=r+e+o+u}w=Math.max(w,t-u)}let S=new Map,$=new Map;for(let e of p){let t=v.get(e),n=b.get(e),i=(i,o)=>{let r=("source"===i?e.sourceLinks:e.targetLinks)??[],l=e=>eg("source"===i?e.y0:e.y1,`${i} y for link ${e.authoredIndex}`);r.sort((e,t)=>l(e)-l(t)||e.authoredIndex-t.authoredIndex);let a=t+(n-r.reduce((e,t)=>e+k.get(t),0))/2;for(let e of r){let t=k.get(e);o.set(e,a+t/2),a+=t}};i("source",S),i("target",$)}let L=s.groupHeaderFontSize,M=t.title?V(t.title,{display:"formatted",transform:s.groupTextTransform,fontSize:L,fontWeight:s.groupHeaderFontWeight,letterSpacing:s.groupLetterSpacing,safeFont:!0}):void 0,W=M?.text,j=M?M.height-(M.lineHeight-M.fontSize):0,C=24+(M?j+20:0),
|
|
8
|
+
`);p.push(e.text({id:`${t.id}:label`,role:"label",text:n,x:t.labelX,y:t.labelY,fontSize:h.nodeLabelFontSize,fontWeight:h.nodeLabelFontWeight,letterSpacing:h.nodeLetterSpacing,block:t.labelBlock,anchor:t.labelAnchor,dominantBaseline:"middle",paint:{fill:$,stroke:"var(--bg)",strokeWidth:String(3),paintOrder:"stroke fill"},channels:{category:t.label,value:t.value},attributes:{className:"sankey-node-label"}}))}if(l.title){let t=l.title.text;p.push(e.text({id:"title",identity:{id:l.title.id},role:"title",text:t,x:l.title.x,y:l.title.y,fontSize:h.groupHeaderFontSize,fontWeight:h.groupHeaderFontWeight,letterSpacing:h.groupLetterSpacing,block:l.title.block,anchor:"middle",dominantBaseline:"middle",paint:{fill:h.groupTextColor??h.nodeTextColor??"var(--_text)"},attributes:{className:"sankey-title"}}))}return p.push(e.documentClose()),{family:"sankey",width:l.width,height:l.height,colors:a,transparent:c,parts:p}}),ex=x(T,{configDiagnostics:e=>d("sankey",e,Q),normalizeRequest:e=>({familyConfig:{visual:D(e.source.frontmatter)}}),layout:t=>b(function(t,n={},i=N,o){let r,l,a=(r=z(t.nodes),l=new Map,{links:t.links.map(({source:e,target:t})=>{let n=l.get(e);n||l.set(e,n=new Map);let i=n.get(t)??0;n.set(t,i+1);let o=`link:${e}->${t}`;return{id:r(0===i?o:`${o}#${i}`,["link",e,t,i]),source:e,target:t,occurrence:i}}),...t.title?{titleId:r("title",["title"])}:{}}),s=F(n,ec,o),d=s.nodeLabelFontSize,u=i.nodePadding+15*!!i.showValues,c=Math.max(i.width,i.nodeWidth*function(e){let t=new Map(e.nodes.map(e=>[e,0])),n=new Map;for(let i of e.links)t.set(i.target,(t.get(i.target)??0)+1),n.set(i.source,[...n.get(i.source)??[],i.target]);let i=new Map(e.nodes.map(e=>[e,0])),o=e.nodes.filter(e=>0===t.get(e));for(let e=0;e<o.length;e++){let r=o[e];for(let e of n.get(r)??[]){i.set(e,Math.max(i.get(e)??0,(i.get(r)??0)+1));let n=(t.get(e)??1)-1;t.set(e,n),0===n&&o.push(e)}}return Math.max(1,...i.values())+1}(t)),f=t.links.every(e=>0===e.value),h=function(e){let t=new Map(e.nodes.map(e=>[e,0])),n=new Map(e.nodes.map(e=>[e,0]));for(let i of e.links)n.set(i.source,(n.get(i.source)??0)+i.value),t.set(i.target,(t.get(i.target)??0)+i.value);return new Map(e.nodes.map(e=>[e,Math.max(t.get(e)??0,n.get(e)??0)]))}(t),g={nodes:t.nodes.map((e,t)=>({id:e,authoredIndex:t})),links:t.links.map((e,t)=>({source:e.source,target:e.target,value:f?1:e.value,authoredIndex:t,authoredValue:e.value}))};(function(){let e=0,t=0,n=1,i=1,o=24,r=8,l,a=el,s=ee,d,u,c=ea,f=es,h=6;function g(){let g={nodes:c.apply(null,arguments),links:f.apply(null,arguments)};return function({nodes:e,links:t}){for(let[t,n]of e.entries())n.index=t,n.sourceLinks=[],n.targetLinks=[];let n=new Map(e.map((t,n)=>[a(t,n,e),t]));for(let[e,i]of t.entries()){i.index=e;let{source:t,target:o}=i;"object"!=typeof t&&(t=i.source=ed(n,t)),"object"!=typeof o&&(o=i.target=ed(n,o)),t.sourceLinks.push(i),o.targetLinks.push(i)}if(null!=u)for(let{sourceLinks:t,targetLinks:n}of e)t.sort(u),n.sort(u)}(g),function({nodes:e}){for(let t of e)t.value=void 0===t.fixedValue?Math.max(K(t.sourceLinks,er),K(t.targetLinks,er)):t.fixedValue}(g),function({nodes:e}){let t=e.length,n=new Set(e),i=new Set,o=0;for(;n.size;){for(let e of n)for(let{target:t}of(e.depth=o,e.sourceLinks))i.add(t);if(++o>t)throw Error("circular link");n=i,i=new Set}}(g),function({nodes:e}){let t=e.length,n=new Set(e),i=new Set,o=0;for(;n.size;){for(let e of n)for(let{source:t}of(e.height=o,e.targetLinks))i.add(t);if(++o>t)throw Error("circular link");n=i,i=new Set}}(g),function(a){let c=function({nodes:t}){let i=U(t,e=>e.depth)+1,r=(n-e-o)/(i-1),l=Array(i);for(let n of t){let t=Math.max(0,Math.min(i-1,Math.floor(s.call(null,n,i))));n.layer=t,n.x0=e+t*r,n.x1=n.x0+o,l[t]?l[t].push(n):l[t]=[n]}if(d)for(let e of l)e.sort(d);return l}(a);l=Math.min(r,(i-t)/(U(c,e=>e.length)-1)),function(e){let n=G(e,e=>(i-t-(e.length-1)*l)/K(e,er));for(let o of e){let e=t;for(let t of o)for(let i of(t.y0=e,t.y1=e+t.value*n,e=t.y1+l,t.sourceLinks))i.width=i.value*n;e=(i-e+l)/(o.length+1);for(let t=0;t<o.length;++t){let n=o[t];n.y0+=e*(t+1),n.y1+=e*(t+1)}if(void 0===u)for(let{sourceLinks:e,targetLinks:t}of o)e.sort(ei),t.sort(en)}}(c);for(let e=0;e<h;++e){let t=Math.pow(.99,e),n=Math.max(1-t,(e+1)/h);(function(e,t,n){for(let i=e.length,o=i-2;o>=0;--o){let i=e[o];for(let e of i){let n=0,i=0;for(let{target:t,value:o}of e.sourceLinks){let r=o*(t.layer-e.layer);n+=function(e,t){let n=t.y0-(t.targetLinks.length-1)*l/2;for(let{source:i,width:o}of t.targetLinks){if(i===e)break;n+=o+l}for(let{target:i,width:o}of e.sourceLinks){if(i===t)break;n-=o}return n}(e,t)*r,i+=r}if(!(i>0))continue;let o=(n/i-e.y0)*t;e.y0+=o,e.y1+=o,k(e)}void 0===d&&i.sort(eo),p(i,n)}})(c,t,n),function(e,t,n){for(let i=1,o=e.length;i<o;++i){let o=e[i];for(let e of o){let n=0,i=0;for(let{source:t,value:o}of e.targetLinks){let r=o*(e.layer-t.layer);n+=function(e,t){let n=e.y0-(e.sourceLinks.length-1)*l/2;for(let{target:i,width:o}of e.sourceLinks){if(i===t)break;n+=o+l}for(let{source:i,width:o}of t.targetLinks){if(i===e)break;n-=o}return n}(t,e)*r,i+=r}if(!(i>0))continue;let o=(n/i-e.y0)*t;e.y0+=o,e.y1+=o,k(e)}void 0===d&&o.sort(eo),p(o,n)}}(c,t,n)}}(g),eu(g),g}function p(e,n){let o=e.length>>1,r=e[o];m(e,r.y0-l,o-1,n),y(e,r.y1+l,o+1,n),m(e,i,e.length-1,n),y(e,t,0,n)}function y(e,t,n,i){for(;n<e.length;++n){let o=e[n],r=(t-o.y0)*i;r>1e-6&&(o.y0+=r,o.y1+=r),t=o.y1+l}}function m(e,t,n,i){for(;n>=0;--n){let o=e[n],r=(o.y1-t)*i;r>1e-6&&(o.y0-=r,o.y1-=r),t=o.y0-l}}function k({sourceLinks:e,targetLinks:t}){if(void 0===u){for(let{source:{sourceLinks:e}}of t)e.sort(ei);for(let{target:{targetLinks:t}}of e)t.sort(en)}}return g.update=function(e){return eu(e),e},g.nodeId=function(e){return arguments.length?(a="function"==typeof e?e:et(e),g):a},g.nodeAlign=function(e){return arguments.length?(s="function"==typeof e?e:et(e),g):s},g.nodeSort=function(e){return arguments.length?(d=e,g):d},g.nodeWidth=function(e){return arguments.length?(o=+e,g):o},g.nodePadding=function(e){return arguments.length?(r=l=+e,g):r},g.nodes=function(e){return arguments.length?(c="function"==typeof e?e:et(e),g):c},g.links=function(e){return arguments.length?(f="function"==typeof e?e:et(e),g):f},g.linkSort=function(e){return arguments.length?(u=e,g):u},g.size=function(o){return arguments.length?(e=t=0,n=+o[0],i=+o[1],g):[n-e,i-t]},g.extent=function(o){return arguments.length?(e=+o[0][0],n=+o[1][0],t=+o[0][1],i=+o[1][1],g):[[e,t],[n,i]]},g.iterations=function(e){return arguments.length?(h=+e,g):h},g})().nodeId(e=>e.id).nodeWidth(i.nodeWidth).nodePadding(u).nodeAlign(eh[i.nodeAlignment]).extent([[0,0],[c,i.height]])(g);let p=g.nodes,y=g.links,m=new Map(p.map(t=>{let n=h.get(t.id)??0,o=i.showValues?`${t.id}
|
|
9
|
+
${i.prefix}${e(n)}${i.suffix}`:t.id;return[t,V(o,{display:"formatted",transform:s.nodeTextTransform,fontSize:d,fontWeight:s.nodeLabelFontWeight,letterSpacing:s.nodeLetterSpacing,safeFont:!0})]})),k=new Map(y.map(e=>[e,ef(Math.max(+(e.authoredValue>0),f?0:e.width??0))])),b=new Map;for(let e of p){let t=(e.sourceLinks??[]).reduce((e,t)=>e+k.get(t),0),n=(e.targetLinks??[]).reduce((e,t)=>e+k.get(t),0),i=f?0:eg(e.y1,`y1 for node ${e.id}`)-eg(e.y0,`y0 for node ${e.id}`);b.set(e,Math.max(1,i,t,n))}let x=new Map;for(let e of p){let t=e.layer??e.depth??0;x.set(t,[...x.get(t)??[],e])}let v=new Map,w=i.height;for(let e of x.values()){e.sort((e,t)=>eg(e.y0,`y0 for node ${e.id}`)-eg(t.y0,`y0 for node ${t.id}`)||e.authoredIndex-t.authoredIndex);let t=0;for(let[n,i]of e.entries()){let e=b.get(i),o=Math.max(0,(m.get(i).height-e)/2),r=Math.max(eg(i.y0,`y0 for node ${i.id}`),0===n?0:t+o);v.set(i,r),t=r+e+o+u}w=Math.max(w,t-u)}let S=new Map,$=new Map;for(let e of p){let t=v.get(e),n=b.get(e),i=(i,o)=>{let r=("source"===i?e.sourceLinks:e.targetLinks)??[],l=e=>eg("source"===i?e.y0:e.y1,`${i} y for link ${e.authoredIndex}`);r.sort((e,t)=>l(e)-l(t)||e.authoredIndex-t.authoredIndex);let a=t+(n-r.reduce((e,t)=>e+k.get(t),0))/2;for(let e of r){let t=k.get(e);o.set(e,a+t/2),a+=t}};i("source",S),i("target",$)}let L=s.groupHeaderFontSize,M=t.title?V(t.title,{display:"formatted",transform:s.groupTextTransform,fontSize:L,fontWeight:s.groupHeaderFontWeight,letterSpacing:s.groupLetterSpacing,safeFont:!0}):void 0,W=M?.text,j=M?M.height-(M.lineHeight-M.fontSize):0,C=24+(M?j+20:0),I=24+c/2,_=p.reduce((e,t)=>(h.get(t.id)??0)>(h.get(e.id)??0)?t:e,p[0]).layer??0,P=new Map;for(let e of p){let t=e.layer??e.depth??0,n=eg(e.x0,`x0 for node ${e.id}`),o=m.get(e),r=o.lines,l="outlined"===i.labelStyle?t<_?"end":"start":24+n<I?"start":"end",a=o.width;P.set(e,{lines:r,block:o,anchor:l,width:a})}let A=24,O=24+c,H=C,B=C+w;for(let e of p){let t=P.get(e),n=24+eg(e.x0,`x0 for node ${e.id}`),i=24+eg(e.x1,`x1 for node ${e.id}`);"start"===t.anchor?O=Math.max(O,i+6+t.width):A=Math.min(A,n-6-t.width);let o=C+v.get(e)+b.get(e)/2;H=Math.min(H,o-t.block.height/2),B=Math.max(B,o+t.block.height/2)}for(let e of y){let t=24+eg(e.source.x1,`x1 for node ${e.source.id}`),n=24+eg(e.target.x0,`x0 for node ${e.target.id}`);if(!(n>t))continue;let i=E((n-t)/2,(n-t)/2,Math.abs($.get(e)-S.get(e)),k.get(e)/2);A=Math.min(A,t-i),O=Math.max(O,n+i)}let T=24-A,q=C-H,J=Math.max(O+T+24,(M?.width??0)+48),X=B+q+24,Y=p.map(e=>{let t=P.get(e),n=24+eg(e.x0,`x0 for node ${e.id}`)+T,i=24+eg(e.x1,`x1 for node ${e.id}`)+T,o=C+v.get(e)+q,r=o+b.get(e);return{id:`sankey-node-${e.authoredIndex+1}`,label:e.id,value:h.get(e.id)??0,layer:e.layer??e.depth??0,x0:ef(n),y0:ef(o),x1:ef(i),y1:ef(r),labelLines:t.lines,labelBlock:t.block,labelX:ef("start"===t.anchor?i+6:n-6),labelY:ef((o+r)/2),labelAnchor:t.anchor}}),R=new Map(Y.map(e=>[e.label,e])),D=y.map(e=>{let t=e.source,n=e.target,i=a.links[e.authoredIndex],o=ef(24+eg(t.x1,`x1 for node ${t.id}`)+T),r=ef(24+eg(n.x0,`x0 for node ${n.id}`)+T),l=ef(C+S.get(e)+q),s=ef(C+$.get(e)+q),d=function(e,t,n,i){let o=ef((e+n)/2),r=`M ${e} ${t} C ${o} ${t}, ${o} ${i}, ${n} ${i}`,l=[];for(let r of[0,.25,.5,.75,1]){let a=1-r,s=a*a*a*e+3*a*a*r*o+3*a*r*r*o+r*r*r*n,d=a*a*a*t+3*a*a*r*t+3*a*r*r*i+r*r*r*i;l.push({x:ef(s),y:ef(d)})}return{path:r,points:l}}(o,l,r,s);return{id:i.id,sceneId:`sankey-link-${e.authoredIndex+1}`,source:i.source,target:i.target,sourceId:R.get(t.id).id,targetId:R.get(n.id).id,value:e.authoredValue,path:d.path,points:d.points,width:k.get(e),sx:o,sy:l,tx:r,ty:s}});return{width:ef(J),height:ef(X),...W?{title:{id:a.titleId,text:W,block:M,x:ef(J/2),y:24+j/2}}:{},nodes:Y,links:D,total:t.links.reduce((e,t)=>e+t.value,0),visual:i}}(function(e,t={}){let n=e.findIndex(e=>e.trim().length>0&&!e.trim().startsWith("%%"));if(n<0)throw Error("Sankey diagram is empty");let i=e[n].trim();if(!ey(i))throw Error(`Sankey diagram must start with "sankey" or "sankey-beta", got: "${i}"`);v("sankey")&&w("sankey","header",i,{line:n+1,unit:"physical"});let o=[],r=new Set,l=[],a=(e,t)=>{r.has(e)||(r.add(e),o.push(e),v("sankey")&&S("sankey","appendNode",e,{line:t,unit:"physical"}))};for(let t=n+1;t<e.length;t++){let n=e[t].replace(/\r$/,""),i=t+1,o=n.trim();if(ey(o)){v("sankey")&&w("sankey","header",n,{line:i,unit:"physical"});continue}if(0===o.length||o.startsWith("%%"))continue;let r=M(e,t);if(r){v("sankey")&&w("sankey",r.title?"accTitle":"accDescr",e.slice(t,r.endIndex+1).join(`
|
|
10
10
|
`),{line:i,unit:"physical"}),t=r.endIndex;continue}for(;function(e){let t=!1;for(let n=0;n<e.length;n++)if('"'===e[n]){if(t&&'"'===e[n+1]){n++;continue}t=!t}return t}(n)&&t+1<e.length;)t++,n+=`
|
|
11
11
|
${e[t].replace(/\r$/,"")}`;let s=n.trim();v("sankey")&&w("sankey","csvRecord",n,{line:i,unit:"physical"});let d=function(e,t){let n=[],i=0;for(;;){let o=i;for(;o<e.length&&(" "===e[o]||" "===e[o]);)o++;if('"'===e[o]){let r=o+1,l="",a=!1;for(;r<e.length;){let t=e[r];if('"'===t){if('"'===e[r+1]){l+='"',r+=2;continue}a=!0,r++;break}l+=t,r++}if(!a)throw Error(`Sankey row ${t} has an unterminated quoted field: "${e.trim()}"`);let s=r;for(;s<e.length&&(" "===e[s]||" "===e[s]);)s++;if(s<e.length&&","!==e[s])throw Error(`Sankey row ${t} has text after a closing quote: "${e.trim()}". Escape a literal quote by doubling it ("").`);n.push(l.trim()),i=s}else{let r=e.indexOf(",",o);-1===r&&(r=e.length);let l=e.slice(i,r).trim();if(l.includes('"'))throw Error(`Sankey row ${t} has a quote inside the unquoted field "${l}": "${e.trim()}". Quote the whole field and double each quote inside it ("").`);n.push(l),i=r}if(i>=e.length)break;if(++i>=e.length){n.push("");break}}return n}(n,i);if(3!==d.length)throw L({what:`Sankey row ${i} has ${d.length} column${1===d.length?"":"s"}: "${s}"`,expectedForm:"exactly three CSV columns: source,target,value",example:"Electricity grid,Industry,342.165"});let[u,c,f]=d;if(0===u.length||0===c.length)throw Error(`Sankey row ${i} has an empty ${0===u.length?"source":"target"} label: "${s}"`);if(!ep.test(f))throw Error(`Sankey flow "${u}" -> "${c}" has invalid value "${f}". Values must be non-negative numbers.`);let h=Number(f);if(!Number.isFinite(h)||h<0)throw Error(`Sankey flow "${u}" -> "${c}" has invalid value "${f}". Values must be non-negative numbers.`);if(u===c)throw Error(`Sankey flow "${u}" -> "${c}" is a self-loop. Sankey diagrams must be acyclic (upstream rejects circular links).`);a(u,i),a(c,i),l.push({source:u,target:c,value:h}),v("sankey")&&S("sankey","appendLink",l[l.length-1],{line:i,unit:"physical"})}if(0===l.length)throw Error("Sankey diagram must include at least one source,target,value row");let s=function(e){let t=[],n=new Set,i=new Map;for(let o of e){for(let e of[o.source,o.target])n.has(e)||(n.add(e),t.push(e));let e=i.get(o.source);e?e.push(o.target):i.set(o.source,[o.target])}let o=new Map;for(let e of t){if(o.has(e))continue;let t=[{label:e,next:0}];for(o.set(e,"active");t.length>0;){let e=t[t.length-1],n=i.get(e.label)??[];if(e.next>=n.length){o.set(e.label,"done"),t.pop();continue}let r=n[e.next];e.next++;let l=o.get(r);if("active"===l){let e=t.findIndex(e=>e.label===r);return[...t.slice(e).map(e=>e.label),r]}void 0===l&&(o.set(r,"active"),t.push({label:r,next:0}))}}}(l);if(v("sankey")&&S("sankey","resolveCycle",s),s)throw Error(`Sankey diagram contains a cycle: ${s.map(e=>`"${e}"`).join(" -> ")}. Sankey diagrams must be acyclic (upstream rejects circular links).`);let d={...void 0!==t.title?{title:t.title}:{},nodes:o,links:l};return void 0!==t.title&&v("sankey")&&S("sankey","setFrontmatterTitle",d.title),d}(function(e){let t=u(e);if(!t.includes("\r"))return t.split(`
|
|
12
12
|
`);let n=t.split(/\r|\n/),i=t.match(/\r|\n/g)??[],o=[],r="",l=0,a=!1,s=-1;for(let e=0;e<n.length;e++){let t=n[e];if(r+=t,!a&&e>s)if(t.trimStart().startsWith("%%"))s=e;else{let t=M(n,e);t?s=t.endIndex:void 0===t&&(s=n.length-1)}if(e>s)for(let e=0;e<t.length;e++)'"'===t[e]&&(a&&'"'===t[e+1]?e++:a=!a);if(a&&void 0!==i[e])r+="\r"===i[e]?"\r":`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,d as i,e as t,f as a,h as r,i as o}from"./chunk-
|
|
1
|
+
import{a as e,d as i,e as t,f as a,h as r,i as o}from"./chunk-Z7UHFVKN.js";import"./chunk-TT5GR5EJ.js";import"./chunk-J57YRC2M.js";import{c as n,e as s}from"./chunk-XHU3A432.js";import{d as c}from"./chunk-5LKPDHPC.js";import{t as l,z as p}from"./chunk-V6I2VGNQ.js";import"./chunk-7UFOFWBA.js";import"./chunk-VRZKI33U.js";import{a as m,b as d,c as _,d as v}from"./chunk-QVSZOF5M.js";import{C as f}from"./chunk-G4JBA7HU.js";import"./chunk-3JTYTXA6.js";import"./chunk-YVNJDVQO.js";import"./chunk-EIYLJ4FI.js";import{k as b,l as g}from"./chunk-PJJSDGLB.js";import"./chunk-YHMTSXIR.js";import"./chunk-QCU5G5PZ.js";var u=Object.freeze({id:"sequence",upstreamId:"sequence",maturity:"stable",label:"Sequence",headers:["sequenceDiagram"],aliases:[],config:{section:"sequence",keys:["actorMargin","width","height","diagramMarginX","diagramMarginY","messageMargin","noteMargin","activationWidth","showSequenceNumbers","boxMargin","boxTextMargin","messageAlign","mirrorActors","bottomMarginAdj","rightAngles","wrap","wrapPadding","labelBoxWidth","labelBoxHeight","hideUnusedParticipants","forceMenus","arrowMarkerAbsolute","noteAlign","actorFontSize","actorFontFamily","actorFontWeight","noteFontSize","noteFontFamily","noteFontWeight","messageFontSize","messageFontFamily","messageFontWeight","actorFont","noteFont","messageFont","useMaxWidth","useWidth","look","theme"],noopKeys:["actorFont","actorFontFamily","actorFontSize","actorFontWeight","arrowMarkerAbsolute","bottomMarginAdj","boxMargin","boxTextMargin","forceMenus","hideUnusedParticipants","labelBoxHeight","labelBoxWidth","look","messageAlign","messageFont","messageFontFamily","messageFontSize","messageFontWeight","mirrorActors","noteAlign","noteFont","noteFontFamily","noteFontSize","noteFontWeight","rightAngles","theme","useMaxWidth","useWidth","wrapPadding"]},identity:{id:"family:sequence",kind:"family",version:"1.0.0",compatibility:{core:"0.5.4"},provenance:{owner:"agentic-mermaid",source:"built-in"}},collisionPriority:100,semanticChannels:["category"],semanticRoles:["prelude","title","defs","chrome","actor","lifeline","activation","message","block","group","note","label","icon"],scenePrimitiveEvidence:[{role:"prelude",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"title",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"defs",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"defs",primitive:"marker",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"chrome",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"chrome",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"actor",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"actor",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"lifeline",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"lifeline",primitive:"connector",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"activation",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"activation",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"message",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"message",primitive:"connector",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"block",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"block",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"block",primitive:"connector",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"group",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"group",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"note",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"note",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"label",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"icon",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"icon",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"icon",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]}],example:`sequenceDiagram
|
|
2
2
|
participant U as User
|
|
3
3
|
participant S as Server
|
|
4
4
|
U->>S: request
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,c as i,e as t}from"./chunk-
|
|
1
|
+
import{a as e,c as i,e as t}from"./chunk-PSZEE64O.js";import{b as a}from"./chunk-LBXXKLIR.js";import"./chunk-37FZNMPR.js";import"./chunk-6UOOATQR.js";import{a as r}from"./chunk-6GPDLZFQ.js";import"./chunk-MFTQWHUB.js";import"./chunk-O34YYEQV.js";import"./chunk-NKW2ZNCD.js";import"./chunk-HJVO5VC3.js";import"./chunk-L4UC3KGS.js";import"./chunk-BMZ24VPS.js";import"./chunk-62MR3LWJ.js";import"./chunk-PXTLV57R.js";import"./chunk-TT5GR5EJ.js";import"./chunk-J57YRC2M.js";import{b as o,c as n}from"./chunk-5LKPDHPC.js";import{u as s}from"./chunk-V6I2VGNQ.js";import"./chunk-7UFOFWBA.js";import{a as c,b as l,c as p,d as d}from"./chunk-QVSZOF5M.js";import{da as m}from"./chunk-G4JBA7HU.js";import"./chunk-3JTYTXA6.js";import{f as f}from"./chunk-YVNJDVQO.js";import{pb as u}from"./chunk-EIYLJ4FI.js";import{i as g,j as h}from"./chunk-PJJSDGLB.js";import"./chunk-YHMTSXIR.js";import"./chunk-QCU5G5PZ.js";var v=Object.freeze({id:"state",upstreamId:"stateDiagram",maturity:"stable",label:"State",headers:["stateDiagram","stateDiagram-v2"],aliases:[],config:{section:"state",keys:["arrowMarkerAbsolute","compositTitleSize","defaultRenderer","dividerMargin","edgeLengthFactor","fontSize","fontSizeFactor","forkHeight","forkWidth","labelHeight","layout","look","miniPadding","minNodeWidth","nodeSpacing","noteMargin","padding","radius","rankSpacing","sizeUnit","textHeight","theme","titleShift","titleTopMargin","wrappingWidth"]},identity:{id:"family:state",kind:"family",version:"1.0.0",compatibility:{core:"0.5.4"},provenance:{owner:"agentic-mermaid",source:"built-in"}},collisionPriority:100,semanticChannels:["status"],semanticRoles:["prelude","title","defs","chrome","group","group-header","edge","edge-label","node","note","label"],scenePrimitiveEvidence:[{role:"prelude",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"title",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"defs",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"defs",primitive:"marker",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"chrome",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"chrome",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"group",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"group",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"group-header",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"group-header",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"edge",primitive:"connector",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"edge-label",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"node",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"node",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"note",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"note",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"label",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]}],example:`stateDiagram-v2
|
|
2
2
|
[*] --> Draft
|
|
3
3
|
Draft --> Review : submit
|
|
4
|
-
Review --> [*] : approve`,detect:g,detectLoose:h}),_=new Set(["arrowMarkerAbsolute","compositTitleSize","defaultRenderer","dividerMargin","edgeLengthFactor","fontSize","fontSizeFactor","forkHeight","forkWidth","labelHeight","layout","look","miniPadding","minNodeWidth","nodeSpacing","noteMargin","padding","radius","rankSpacing","sizeUnit","textHeight","theme","titleShift","titleTopMargin","wrappingWidth"]),b=new Set(["compositTitleSize","dividerMargin","fontSize","forkHeight","forkWidth","nodeSpacing","noteMargin","padding","radius","rankSpacing"]),y=new Set(["arrowMarkerAbsolute","edgeLengthFactor","fontSizeFactor","labelHeight","miniPadding","sizeUnit","textHeight","titleShift","titleTopMargin"]),k=new Set(["layout","look","minNodeWidth","theme","wrappingWidth"]),S=new Set(["fontSize","compositTitleSize","forkWidth","forkHeight"]),z=e=>"number"==typeof e&&Number.isFinite(e)&&e>0?e:void 0,F=e=>"number"==typeof e&&Number.isFinite(e)&&e>=0?e:void 0;function j(e){let i=e?.state;return i&&"object"==typeof i&&!Array.isArray(i)?i:{}}var
|
|
4
|
+
Review --> [*] : approve`,detect:g,detectLoose:h}),_=new Set(["arrowMarkerAbsolute","compositTitleSize","defaultRenderer","dividerMargin","edgeLengthFactor","fontSize","fontSizeFactor","forkHeight","forkWidth","labelHeight","layout","look","miniPadding","minNodeWidth","nodeSpacing","noteMargin","padding","radius","rankSpacing","sizeUnit","textHeight","theme","titleShift","titleTopMargin","wrappingWidth"]),b=new Set(["compositTitleSize","dividerMargin","fontSize","forkHeight","forkWidth","nodeSpacing","noteMargin","padding","radius","rankSpacing"]),y=new Set(["arrowMarkerAbsolute","edgeLengthFactor","fontSizeFactor","labelHeight","miniPadding","sizeUnit","textHeight","titleShift","titleTopMargin"]),k=new Set(["layout","look","minNodeWidth","theme","wrappingWidth"]),S=new Set(["fontSize","compositTitleSize","forkWidth","forkHeight"]),z=e=>"number"==typeof e&&Number.isFinite(e)&&e>0?e:void 0,F=e=>"number"==typeof e&&Number.isFinite(e)&&e>=0?e:void 0;function j(e){let i=e?.state;return i&&"object"==typeof i&&!Array.isArray(i)?i:{}}var M=d(v,{configDiagnostics:({root:e,config:i})=>{let t=o(e,i.section);return t?function(e,i=!1){let t=new Map;for(let i of e.filter(e=>!!e&&"object"==typeof e&&!Array.isArray(e)))for(let[e,a]of Object.entries(i))t.set(e,a);let a=[];for(let[e,r]of[...t].sort(([e],[i])=>u(e,i))){if(!_.has(e)){i&&a.push({code:"INEFFECTIVE_CONFIG",field:`state.${e}`,message:`State config field "state.${e}" is unknown and has no effect; check the spelling or remove it.`});continue}if(y.has(e)){a.push({code:"INEFFECTIVE_CONFIG",field:`state.${e}`,message:`State config field "state.${e}" is a legacy Dagre/fixed-metric option with no faithful effect in the ELK measured-text renderer.`});continue}if(k.has(e)){a.push({code:"INEFFECTIVE_CONFIG",field:`state.${e}`,message:`State config field "state.${e}" is accepted for Mermaid compatibility but has no effect on this renderer.`});continue}if("defaultRenderer"===e){"elk"!==r&&a.push({code:"INEFFECTIVE_CONFIG",field:"state.defaultRenderer",message:`State config field "state.defaultRenderer" requested ${JSON.stringify(r)}; this renderer supports only "elk" and will not silently select a different engine.`});continue}if(b.has(e)){let i=S.has(e);(i?void 0!==z(r):void 0!==F(r))||a.push({code:"INEFFECTIVE_CONFIG",field:`state.${e}`,message:`State config field "state.${e}" must be a ${i?"positive":"non-negative"} finite number; the supplied value was ignored.`})}}return a}([t],!0):n("state",e,i)},statementEnds:i,normalizeRequest:e=>{var i,t;let a,r,o,n,s,c,l,p,d,m,{stateVisual:u,...g}=(i=e.source.frontmatter,t=e.renderOptions,r=F((a={...j(i),...j(t.mermaidConfig)}).nodeSpacing),o=F(a.rankSpacing),n=F(a.padding),s=F(a.radius),c=z(a.fontSize),l=z(a.compositTitleSize),p={...f,...void 0===n?{}:{nodePaddingX:n,nodePaddingY:n},...void 0===s?{}:{nodeCornerRadius:s},...void 0===c?{}:{nodeLabelFontSize:c,edgeLabelFontSize:c},...void 0===l?{}:{groupHeaderFontSize:l}},d=t.nodeSpacing??r,m=t.layerSpacing??o,{...t,...void 0===d?{}:{nodeSpacing:d},...void 0===m?{}:{layerSpacing:m},stateVisual:{forkWidth:z(a.forkWidth)??70,forkHeight:z(a.forkHeight)??10,noteMargin:F(a.noteMargin)??18,dividerMargin:F(a.dividerMargin)??0,styleDefaults:p}});return{renderOptions:g,...u?{appearance:{family:{visual:u}}}:{}}},layout:e=>{let i=e.familyAppearance?.visual,a=s(e.source.frontmatter),o=t(e.source.familyText);return m(o),p(r(o,{...e.renderOptions,...e.styleFace?{styleFace:e.styleFace}:{},...i?{stateVisual:i}:{},...a?{diagramTitle:a}:{}}))},projectPositioned:c(e),lowerScene:l(a)});export{M as default};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{c as e}from"./chunk-
|
|
1
|
+
import{c as e}from"./chunk-J57YRC2M.js";import{e as i,i as t}from"./chunk-XHU3A432.js";import{d as n}from"./chunk-5LKPDHPC.js";import{t as l}from"./chunk-V6I2VGNQ.js";import"./chunk-7UFOFWBA.js";import{c as r,h as a}from"./chunk-VRZKI33U.js";import{D as o,a as s,b as d,c as c,d as p,e as h,g as m,i as g}from"./chunk-QVSZOF5M.js";import{A as u,B as f,c as b,k as v,oa as x,s as y,y as k}from"./chunk-G4JBA7HU.js";import{i as _,j as $,k as W,q as w}from"./chunk-3JTYTXA6.js";import{c as M,h as S}from"./chunk-YVNJDVQO.js";import{M as z,N as F,O as L,Vb as C,_ as T,tb as P}from"./chunk-EIYLJ4FI.js";import{m as X,n as H}from"./chunk-PJJSDGLB.js";import"./chunk-YHMTSXIR.js";import"./chunk-QCU5G5PZ.js";var j=Object.freeze({id:"timeline",upstreamId:"timeline",maturity:"experimental",label:"Timeline",headers:["timeline"],aliases:[],config:{section:"timeline",keys:["disableMulticolor","sectionFills","sectionColours","diagramMarginX","diagramMarginY","leftMargin","width","height","padding","boxMargin","boxTextMargin","noteMargin","messageMargin","messageAlign","bottomMarginAdj","rightAngles","taskFontSize","taskFontFamily","taskMargin","activationWidth","textPlacement","actorColours","useMaxWidth","useWidth"],noopKeys:["diagramMarginX","diagramMarginY","leftMargin","width","height","padding","boxMargin","boxTextMargin","noteMargin","messageMargin","messageAlign","bottomMarginAdj","rightAngles","taskFontSize","taskFontFamily","taskMargin","activationWidth","textPlacement","actorColours","useMaxWidth","useWidth"]},identity:{id:"family:timeline",kind:"family",version:"1.0.0",compatibility:{core:"0.5.4"},provenance:{owner:"agentic-mermaid",source:"built-in"}},collisionPriority:100,semanticChannels:["category"],semanticRoles:["prelude","chrome","rail","title","section","group-header","period","event","label"],scenePrimitiveEvidence:[{role:"prelude",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"chrome",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"rail",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"title",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"section",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"section",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"group-header",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"group-header",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"period",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"period",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"event",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"event",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"label",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]}],example:`timeline
|
|
2
2
|
title Roadmap
|
|
3
3
|
2025 : Alpha : Beta
|
|
4
|
-
2026 : GA`,detect:
|
|
5
|
-
`),{subject:"Timeline text entity",example:"2025 : #35;"})}var
|
|
6
|
-
`))),u&&c.push(e.documentContent({id:"a11y-title",role:"chrome",nonPaint:"accessibility"},`<title id="${k}">${L(u)}</title>`)),f&&c.push(e.documentContent({id:"a11y-desc",role:"chrome",nonPaint:"accessibility"},`<desc id="${M}">${L(f)}</desc>`));for(let i=0;i<t.sections.length;i++){let n=t.sections[i],l=v?i:0;n.framed&&c.push(function(e,i,t,n,l,r){let a=i.label??i.id,o=i.label?` data-label="${F(i.label)}"`:"",s=V(t,n),d=[];if(d.push({indent:2,node:e.shape({id:`section-bg:${a}`,role:"section",geometry:{kind:"rect",x:i.x,y:i.y,width:i.width,height:i.height,rx:l.groupCornerRadius,ry:l.groupCornerRadius},paint:r.sectionBg,attributes:{className:"timeline-section-bg"}})}),i.headerHeight>0){let t=X(i.x,i.y,i.width,i.headerHeight,l.groupCornerRadius);d.push({indent:2,node:e.shape({id:`section-band:${a}`,role:"group-header",geometry:{kind:"path",d:t},paint:r.sectionBand,attributes:{className:"timeline-section-band"}})}),i.label&&d.push({indent:2,node:e.text({id:`section-label:${a}`,role:"group-header",text:i.label,block:i.block,x:i.x+l.groupLabelPaddingX,y:i.y+i.headerHeight/2,fontSize:l.groupHeaderFontSize,fontWeight:l.groupHeaderFontWeight,letterSpacing:l.groupLetterSpacing,display:"literal",anchor:"start",paint:r.sectionLabel,attributes:O("timeline-section-label")})})}return e.group({id:`section:${a}`,role:"section",open:`<g class="timeline-section" data-id="${z(i.id)}"${o}${s}>`,close:"</g>",children:d,channels:{category:a}})}(e,n,l,h,p,g))}c.push(e.shape({id:"rail",role:"rail",geometry:{kind:"line",x1:t.rail.x1,y1:t.rail.y1,x2:t.rail.x2,y2:t.rail.y2},paint:g.rail,attributes:{className:"timeline-rail"}}));let j=0;for(let i=0;i<t.sections.length;i++){let n=t.sections[i],l=v?i:void 0;for(let i of n.periods){let t=l??(b?j++:0);c.push(function(e,i,t,n,l,r,a){let o=t?` data-section="${z(t)}"`:"",s=V(n,l),d=[];d.push({indent:2,node:e.shape({id:`period-stem:${i.id}`,role:"period",geometry:{kind:"line",x1:i.stem.x1,y1:i.stem.y1,x2:i.stem.x2,y2:i.stem.y2},paint:a.stem,attributes:{className:"timeline-stem"}})}),d.push({indent:2,node:e.shape({id:`period-pill:${i.id}`,role:"period",geometry:{kind:"rect",x:i.pillX,y:i.pillY,width:i.pillWidth,height:i.pillHeight,rx:r.cornerRadius??0,ry:r.cornerRadius??0},paint:a.pill,attributes:{className:"timeline-period-pill"}})}),d.push({indent:2,node:e.text({id:`period-label:${i.id}`,role:"label",text:i.label,block:i.block,x:i.centerX,y:i.pillY+i.pillHeight/2,fontSize:r.edgeLabelFontSize,fontWeight:r.edgeLabelFontWeight,letterSpacing:r.edgeLetterSpacing,display:"literal",anchor:"middle",paint:a.periodText,attributes:O("timeline-period-text")})}),d.push({indent:2,node:e.shape({id:`period-marker-ring:${i.id}`,role:"period",geometry:{kind:"circle",cx:i.markerX,cy:i.markerY,r:8},paint:a.markerRing,attributes:{className:"timeline-marker-ring"}})}),d.push({indent:2,node:e.shape({id:`period-marker-core:${i.id}`,role:"period",geometry:{kind:"circle",cx:i.markerX,cy:i.markerY,r:4.5},paint:a.markerCore,attributes:{className:"timeline-marker-core"}})});for(let o=0;o<i.events.length;o++)d.push({indent:0,node:function(e,i,t,n,l,r,a){let o=t?` data-section="${z(t)}"`:"",s=` data-family="${n%l.length}"`,d=`event:${i.id}`,c=e.shape({id:d,role:"event",geometry:{kind:"rect",x:i.x,y:i.y,width:i.width,height:i.height,rx:r.cornerRadius??0,ry:r.cornerRadius??0},paint:a.eventCard,attributes:{className:"timeline-event-card"}}),p=e.text({id:`${d}:label`,role:"label",text:i.text,block:i.block,x:i.labelX??i.x+r.nodePaddingX,y:i.y+i.height/2,fontSize:r.nodeLabelFontSize,fontWeight:r.nodeLabelFontWeight,letterSpacing:r.nodeLetterSpacing,display:"literal",anchor:"start",paint:a.eventText,attributes:O("timeline-event-text")});return e.group({id:`${d}:group`,role:"event",open:`<g class="timeline-event" data-id="${z(i.id)}" data-period="${z(i.periodLabel)}"${o}${s}>`,close:"</g>",children:[{indent:2,node:c},{indent:2,node:p}]})}(e,i.events[o],t,n,l,r,a)});return e.group({id:`period:${i.id}`,role:"period",open:`<g class="timeline-period" data-id="${z(i.id)}" data-label="${F(i.label)}"${o}${s}>`,close:"</g>",children:d})}(e,i,n.label,t,h,p,g))}}return t.title&&c.push(e.text({id:"title",role:"title",text:t.title.text,block:t.title.block,x:t.title.x,y:t.title.y,fontSize:18,fontWeight:600,display:"literal",anchor:"middle",paint:g.title,attributes:O("timeline-title")})),c.push(e.documentClose()),{family:"timeline",width:t.width,height:t.height,colors:n,transparent:o,parts:c}}),K=p(j,{configDiagnostics:e=>n("timeline",e,Y),normalizeRequest:e=>({appearance:{family:{...function(e={}){var i;let t,n,l=e.mermaidConfig?.timeline??{};return{timelineConfig:l,familyPalettes:(i=e.mermaidConfig?.themeVariables,t=l.sectionFills??[],n=l.sectionColours??[],Array.from({length:12},(e,l)=>{let r=t[l%Math.max(t.length,1)]??q(i,"cScale",l),a=r??"var(--_node-fill)",o=n[l%Math.max(n.length,1)]??q(i,"cScaleLabel",l)??"var(--_text)",s=q(i,"cScaleInv",l)??(r?Z(a,"var(--_line)",48):"var(--_line)");return{accent:r??"var(--_arrow)",fill:a,label:o,line:s}}))}}(e.renderOptions)}}}),layout:e=>c(function(e,i={},t){let n=S(i,R,t),l="TD"===e.direction,r=(e,i)=>l?i:e,a=(e,i)=>l?e:i,o=e.sections.some(e=>!!e.label),s=e.sections.length>1||o,d=o?Math.max(24,n.groupHeaderFontSize+n.groupPaddingY):0,c=s?n.groupPaddingX:0,p=e.title?T(e.title,{display:"literal",transform:n.groupTextTransform,fontSize:18,fontWeight:600,letterSpacing:n.groupLetterSpacing,maxWidth:420}):void 0,h=p?.text,m=I(e,n,B,l),g=i.timeline?.maxWidth;if(!l&&"number"==typeof g&&Number.isFinite(g)&&g>0){let i=function(e,i,t){let n=32;for(let l=0;l<e.length;l++)n+=e[l].innerMain+2*i,l<e.length-1&&(n+=t?28:24);return n+32}(m,c,s),t=m.reduce((e,i)=>e+i.periods.length,0);if(i>g&&t>0){let r=m.reduce((e,i)=>e+i.periods.reduce((e,i)=>e+i.mainExtent,0),0),a=Math.max(36+2*n.nodePaddingX,(g-(i-r))/t),o=Math.max(36,a-2*n.nodePaddingX);m=I(e,n,{pill:Math.min(116,o),event:Math.min(148,o),pillMinWidth:Math.min(72,a),eventMinWidth:Math.min(128,a)},l)}}d=Math.max(d,...m.map(e=>e.block?e.block.height+n.groupPaddingY:0));let u=Math.max(0,...m.flatMap(e=>e.periods.map(e=>a(e.pillWidth,e.pillHeight)))),f=28;p&&(f+=p.height,f+=24);let b=d+14*!!o,v=l?32:f,x=v+(l?s?c:0:b),y=x+u+22,k=y+28,_=l?b:0,$=l?f:32,W=[],w=y+8;for(let i=0;i<e.sections.length;i++){let t=e.sections[i],o=m[i],p=$,h=_+o.innerMain+2*c,g=$+_+c+(o.innerMain-o.runMain)/2,u=[],f=y+8;for(let e=0;e<t.periods.length;e++){let i=t.periods[e],n=o.periods[e],s=g+n.mainExtent/2,d=k,c=i.events.map((e,o)=>{let c=n.events[o],p=s-r(c.width,c.height)/2,h={id:e.id,sectionId:t.id,periodId:i.id,periodLabel:n.label,text:c.text,block:c.block,x:l?d:p,y:l?p:d,width:c.width,height:c.height};return d+=a(c.width,c.height)+10,h}),p=y+8,h=c.length>0?k-10:y+16,m=s-r(n.pillWidth,n.pillHeight)/2;if(u.push({id:i.id,sectionId:t.id,label:n.label,block:n.block,centerX:l?x+n.pillWidth/2:s,markerX:l?y:s,markerY:l?s:y,pillX:l?x:s-n.pillWidth/2,pillY:l?m:x,pillWidth:n.pillWidth,pillHeight:n.pillHeight,stem:l?{x1:p,y1:s,x2:h,y2:s}:{x1:s,y1:p,x2:s,y2:h},events:c}),c.length>0){let e=c[c.length-1];f=Math.max(f,l?e.x+e.width:e.y+e.height)}g+=n.mainExtent+24}f+=n.groupPaddingY,w=Math.max(w,f),W.push({id:t.id,label:o.label,block:o.block,x:l?v:p,y:l?p:v,width:l?f-v:h,height:l?h:f-v,framed:s,headerHeight:d,periods:u}),$+=h,i<e.sections.length-1&&($+=s?28:24)}let M=$+(l?28:32),L=w+(l?32:28),z=Math.max(l?L:M,p?p.width+64:0),F=l?M:L,C=W.flatMap(e=>e.periods),X=e=>l?e.markerY:e.centerX,P=C.length>0?X(C[0]):l?f:32,H=C.length>0?X(C[C.length-1]):M-(l?28:32),j=P===H?P-42:P,Y=P===H?H+42:H;for(let e of W)for(let i of e.periods)for(let e of i.events)e.labelX=e.x+n.nodePaddingX;return{width:z,height:F,title:h?{text:h,block:p,x:z/2,y:28+p.height/2}:void 0,accessibilityTitle:e.accessibilityTitle,accessibilityDescription:e.accessibilityDescription,rail:l?{x1:y,y1:j,x2:y,y2:Y}:{x1:j,y1:y,x2:Y,y2:y},sections:W}}(l(function(e,i={}){var t;let n=k(e.map(e=>v(e.trimStart())));u(n),e=n.familyLines;let l={sections:[],...f(Object.fromEntries(Object.entries({...i,...n.accessibility}).map(([e,i])=>[e,E(v(i),"accessibility")])))},r=function(e){let i=e.trim().match(/^timeline(?=$|[\s;#%])(.*)$/i);if(!i)return null;let t=i[1],n=t.search(/#|%(?!\{)/),l=n>=0,r=(n<0?t:t.slice(0,n)).trim();return r?r.startsWith(";")?{kind:"unsupported",suffix:r}:/^(?:LR|TD)$/i.test(r)?{kind:"supported",direction:r.toUpperCase(),hasInlineComment:l}:{kind:"unsupported",suffix:r}:{kind:"supported",hasInlineComment:l}}(e[0]??"");if(r?.kind==="unsupported")throw t=r.suffix,y({what:`Unsupported timeline header suffix "${t}"; only LR and TD are direction tokens`,expectedForm:"timeline [LR|TD]",example:"timeline TD"});r?.direction&&(l.direction=r.direction),h("timeline")&&(m("timeline","header",e[0]??"",{line:1,unit:"normalized"}),g("timeline","initialize",l));let a,o,s=0,d=0,c=0,p=1,b=()=>a||(a={id:`section-${s++}`,periods:[]},l.sections.push(a),h("timeline")&&g("timeline","addImplicitSection",a,{line:p,unit:"normalized"}),a),x=(e,i)=>{for(let t of i){let i=E(t.trim(),"event");if(!i)continue;let n={id:`event-${c++}`,text:i};e.events.push(n),h("timeline")&&g("timeline","addEvent",{...n,periodId:e.id},{line:p,unit:"normalized"})}};for(let i=1;i<e.length;i++){let t=e[i];if(p=i+1,/^(?:%(?!\{)|#)/.test(t.trimStart()))continue;let n=t.match(N);if(n){h("timeline")&&m("timeline","title",t,{line:i+1,unit:"normalized"}),l.title=E(n[1].trim(),"title"),h("timeline")&&g("timeline","setTitle",l.title,{line:i+1,unit:"normalized"});continue}let r=function(e){let i=/^section\s([^:\n]+)/i.exec(e);return i?{label:i[1],eventSource:e.slice(i[0].length)}:null}(t);if(r){if(h("timeline")&&m("timeline","section",t,{line:i+1,unit:"normalized"}),a={id:`section-${s++}`,label:E(r.label.trim(),"section"),periods:[]},l.sections.push(a),h("timeline")&&g("timeline","addSection",a,{line:i+1,unit:"normalized"}),r.eventSource){if(!o)throw Error("Timeline continuation found before any period was declared");x(o,U(r.eventSource))}continue}let c=t.match(A);if(c){if(h("timeline")&&m("timeline","continuation",t,{line:i+1,unit:"normalized"}),!o)throw Error("Timeline continuation found before any period was declared");x(o,U(`: ${c[1]}`));continue}let u=t.match(D);if(u){h("timeline")&&m("timeline","period",t,{line:i+1,unit:"normalized"});let e=E(u[1].trim(),"period"),n=U(u[2]);if(!e)throw y({what:`Invalid timeline period: "${t}"`,expectedForm:"Period : Event[ : Event…]",example:"2025 : Launch : Beta"});let l={id:`period-${d++}`,label:e,events:[]};if(x(l,n),0===l.events.length)throw Error(`Timeline period "${e}" must include at least one event`);b().periods.push(l),h("timeline")&&g("timeline","addPeriod",{...l,sectionId:a.id},{line:i+1,unit:"normalized"}),o=l;continue}if(!t.includes(":")&&t.trim().length>0){h("timeline")&&m("timeline","bare-period",t,{line:i+1,unit:"normalized"});let e={id:`period-${d++}`,label:E(t.trim(),"period"),events:[]};b().periods.push(e),h("timeline")&&g("timeline","addPeriod",{...e,sectionId:a.id},{line:i+1,unit:"normalized"}),o=e;continue}throw h("timeline")&&m("timeline","invalid",t,{line:i+1,unit:"normalized"}),y({what:`Unsupported timeline syntax: "${t}"`,expectedForm:"a title, a section, or a period (Period : Event…)",example:"2025 : Launch"})}return l}(e.source.familyLines,e.source.accessibility),e.source.frontmatter),e.renderOptions,e.styleFace)),projectPositioned:s(function({positioned:e,options:i}){let t=[],n=[];for(let i of e.sections){let e=[];for(let n of i.periods){let i=`${n.id}:period`;for(let l of(t.push({id:i,x:r(n.pillX),y:r(n.pillY),w:r(n.pillWidth),h:r(n.pillHeight),shape:"rounded",label:n.label,...o(n.block,n.centerX,n.pillY+n.pillHeight/2,{x:n.pillX,y:n.pillY,width:n.pillWidth,height:n.pillHeight})}),e.push(i),n.events))t.push({id:l.id,x:r(l.x),y:r(l.y),w:r(l.width),h:r(l.height),shape:"rectangle",label:l.text,...void 0===l.labelX?{}:o(l.block,l.labelX,l.y+l.height/2,l,"start")}),e.push(l.id)}i.framed&&n.push({id:i.id,x:r(i.x),y:r(i.y),w:r(i.width),h:r(i.height),members:e,label:i.label})}let l={version:1,nodes:t,edges:[],groups:n,bounds:{w:r(e.width),h:r(e.height)}};return i.debug&&(l.certificates=a("timeline",l,"timeline-interval")),l}),lowerScene:d(J)});export{K as default};
|
|
4
|
+
2026 : GA`,detect:X,detectLoose:H}),Y={disableMulticolor:i,sectionFills:t,sectionColours:t},I={nodeLabelFontSize:12,edgeLabelFontSize:12,groupHeaderFontSize:12,nodeLabelFontWeight:400,edgeLabelFontWeight:600,groupHeaderFontWeight:600,nodePaddingX:14,nodePaddingY:10,nodeCornerRadius:0,nodeLineWidth:M.outerBox,edgeLineWidth:1.5,groupCornerRadius:0,groupPaddingX:18,groupPaddingY:18,groupLabelPaddingX:12,groupLineWidth:M.outerBox},R={pill:116,event:148,pillMinWidth:72,eventMinWidth:128};function B(e,i,t,n){let l=(e,i)=>n?i:e;return e.sections.map(e=>{let r=e.label?T(e.label,{display:"literal",transform:i.groupTextTransform,fontSize:i.groupHeaderFontSize,fontWeight:i.groupHeaderFontWeight,letterSpacing:i.groupLetterSpacing,fontFamily:i.groupFont,maxWidth:168}):void 0,a=r?.text,o=e.periods.map(e=>{let n=T(e.label,{display:"literal",transform:i.edgeTextTransform,fontSize:i.edgeLabelFontSize,fontWeight:i.edgeLabelFontWeight,letterSpacing:i.edgeLetterSpacing,maxWidth:t.pill}),r=n.text,a=Math.max(t.pillMinWidth,n.width+2*i.nodePaddingX),o=n.height+2*i.nodePaddingY,s=e.events.map(e=>{let n=T(e.text,{display:"literal",transform:i.nodeTextTransform,fontSize:i.nodeLabelFontSize,fontWeight:i.nodeLabelFontWeight,letterSpacing:i.nodeLetterSpacing,maxWidth:t.event});return{text:n.text,block:n,width:Math.max(t.eventMinWidth,n.width+2*i.nodePaddingX),height:n.height+2*i.nodePaddingY}}),d=Math.max(l(a,o),...s.map(e=>l(e.width,e.height)));return{label:r,block:n,pillWidth:a,pillHeight:o,mainExtent:d,events:s}}),s=o.reduce((e,i,t)=>e+24*(0!==t)+i.mainExtent,0),d=a?r.width+2*i.groupLabelPaddingX:0,c=n?s:Math.max(s,d);return{label:a,block:r,headerWidth:d,runMain:s,innerMain:c,periods:o}})}function E(i,t){return e("title"===t||"accessibility"===t?i:i.replace(/<br>/g,`
|
|
5
|
+
`),{subject:"Timeline text entity",example:"2025 : #35;"})}var A=/^title\s+(.+)$/i,D=/^:\s+(.+)$/,N=/^([^:#\n]+?)(\s*:\s+.+)$/;function O(e){let i=[],t=0;for(;t<e.length;){for(;t<e.length&&/\s/.test(e[t]);)t++;if(t>=e.length)break;if(":"!==e[t])throw y({what:`Invalid timeline event list: "${e}"`,expectedForm:'events separated by " : "',example:"Launch : Beta"});if(++t>=e.length||!/\s/.test(e[t]))throw Error(`Timeline events must use ": " separators: "${e}"`);for(;t<e.length&&/\s/.test(e[t]);)t++;let n=t;for(;t<e.length&&!(":"===e[t]&&/\s/.test(e[t+1]??""));)t++;let l=e.slice(n,t).trim();if(!l||t>=e.length&&l.endsWith(":"))throw y({what:`Invalid timeline event separator in "${e}"`,expectedForm:"a non-empty event after every separator, without a trailing colon",example:"2024 : Launch : Beta"});i.push(l)}return i}function U(e){return{className:e,data:{"literal-text":"true"}}}function V(e,i){let t=e%i.length,n=i[t],l=`--tl-accent:${n.accent};--tl-fill:${n.fill};--tl-label:${n.label};--tl-line:${n.line};--tl-section-bg:${J(n.fill,"var(--bg)",6)};--tl-section-band:${J(n.fill,"var(--bg)",12)};--tl-pill-fill:${J(n.fill,"var(--bg)",11)};--tl-pill-stroke:${J(n.fill,n.line,36)};--tl-event-fill:${J(n.fill,"var(--_node-fill)",16)}`;return` data-family="${t}" style="${F(l)}"`}function J(e,i,t){return`color-mix(in srgb, ${e} ${t}%, ${i})`}function G(e,i,t){if(!e)return;let n=e[`${i}${t}`];return"string"==typeof n&&n.length>0?n:void 0}var q=b(function(e,i){let{positioned:t,colors:n,resolved:l}=i,r=l.renderOptions,a=n.font??"Inter",o=r.transparent??!1,s=l.familyAppearance;if(!s)throw Error("Timeline rendering requires request-boundary family appearance resolution");let d=s.timelineConfig,c=[],p=S(r,I,l.styleFace),h=s.familyPalettes,m=function(e,i,t){let n=e.nodeTextColor??"var(--tl-label, var(--_text-muted))";if(void 0!==e.nodeTextColor||t.some(e=>"var(--_text)"!==e.label))return n;let l=x("var(--_text)",e.nodeFillColor??"var(--_node-fill)",i);return"var(--_text)"===l?n:l}(p,n,h),g={title:{fill:p.groupTextColor??p.nodeTextColor??"var(--_text)"},rail:{stroke:p.edgeStrokeColor??"var(--_line)",strokeWidth:String(p.lineWidth),strokeLinecap:"round"},sectionBg:{fill:p.groupFillColor??"var(--tl-section-bg, color-mix(in srgb, var(--_node-fill) 88%, var(--bg)))",stroke:p.groupBorderColor??"var(--tl-line, var(--_node-stroke))",strokeWidth:String(p.groupLineWidth)},sectionBand:{fill:p.groupHeaderFillColor??"var(--tl-section-band, color-mix(in srgb, var(--_arrow) 8%, var(--bg)))",stroke:p.groupBorderColor??"var(--tl-line, var(--_node-stroke))",strokeWidth:String(p.groupLineWidth)},sectionLabel:{fill:p.groupTextColor??"var(--tl-label, var(--_text-sec))"},stem:{stroke:p.edgeStrokeColor??"var(--tl-line, color-mix(in srgb, var(--_arrow) 32%, var(--_line)))",strokeWidth:String(Math.max(1,.75*p.lineWidth)),strokeDasharray:"3 4"},markerRing:{fill:"var(--bg)",stroke:p.edgeStrokeColor??"var(--tl-line, var(--_arrow))",strokeWidth:"1.5"},markerCore:{fill:p.edgeStrokeColor??"var(--tl-accent, var(--_arrow))"},pill:{fill:p.nodeFillColor??"var(--tl-pill-fill, color-mix(in srgb, var(--_arrow) 7%, var(--bg)))",stroke:p.nodeBorderColor??"var(--tl-pill-stroke, color-mix(in srgb, var(--_arrow) 20%, var(--bg)))",strokeWidth:String(p.nodeLineWidth)},periodText:{fill:p.nodeTextColor??"var(--tl-label, var(--_text))"},eventCard:{fill:p.nodeFillColor??"var(--tl-event-fill, var(--_node-fill))",stroke:p.nodeBorderColor??"var(--tl-line, var(--_node-stroke))",strokeWidth:String(p.nodeLineWidth)},eventText:{fill:m}},u=t.accessibilityTitle??t.title?.text.replace(/\n+/g," "),f=t.accessibilityDescription,b=!d.disableMulticolor,v=b&&t.sections.some(e=>!!e.label),y=`tl-${C(t.width,t.height,t.sections.map(e=>e.periods.length).join(","))}`,k=`${y}-title`,M=`${y}-desc`,T=w(u,f,k,M),X=[W(t.width,t.height,n,o,T),$(a,!1,n.shadow,n.embedFontImport)],H=_(n);H&&X.push(`<defs>${H}</defs>`),c.push(e.documentOpen({id:"prelude",width:t.width,height:t.height,colors:n,transparent:o,font:a,hasMonoFont:!1},X.join(`
|
|
6
|
+
`))),u&&c.push(e.documentContent({id:"a11y-title",role:"chrome",nonPaint:"accessibility"},`<title id="${k}">${z(u)}</title>`)),f&&c.push(e.documentContent({id:"a11y-desc",role:"chrome",nonPaint:"accessibility"},`<desc id="${M}">${z(f)}</desc>`));for(let i=0;i<t.sections.length;i++){let n=t.sections[i],l=v?i:0;n.framed&&c.push(function(e,i,t,n,l,r){let a=i.label??i.id,o=i.label?` data-label="${L(i.label)}"`:"",s=V(t,n),d=[];if(d.push({indent:2,node:e.shape({id:`section-bg:${a}`,role:"section",geometry:{kind:"rect",x:i.x,y:i.y,width:i.width,height:i.height,rx:l.groupCornerRadius,ry:l.groupCornerRadius},paint:r.sectionBg,attributes:{className:"timeline-section-bg"}})}),i.headerHeight>0){let t=P(i.x,i.y,i.width,i.headerHeight,l.groupCornerRadius);d.push({indent:2,node:e.shape({id:`section-band:${a}`,role:"group-header",geometry:{kind:"path",d:t},paint:r.sectionBand,attributes:{className:"timeline-section-band"}})}),i.label&&d.push({indent:2,node:e.text({id:`section-label:${a}`,role:"group-header",text:i.label,block:i.block,x:i.x+l.groupLabelPaddingX,y:i.y+i.headerHeight/2,fontSize:l.groupHeaderFontSize,fontWeight:l.groupHeaderFontWeight,letterSpacing:l.groupLetterSpacing,display:"literal",anchor:"start",paint:r.sectionLabel,attributes:U("timeline-section-label")})})}return e.group({id:`section:${a}`,role:"section",open:`<g class="timeline-section" data-id="${F(i.id)}"${o}${s}>`,close:"</g>",children:d,channels:{category:a}})}(e,n,l,h,p,g))}c.push(e.shape({id:"rail",role:"rail",geometry:{kind:"line",x1:t.rail.x1,y1:t.rail.y1,x2:t.rail.x2,y2:t.rail.y2},paint:g.rail,attributes:{className:"timeline-rail"}}));let j=0;for(let i=0;i<t.sections.length;i++){let n=t.sections[i],l=v?i:void 0;for(let i of n.periods){let t=l??(b?j++:0);c.push(function(e,i,t,n,l,r,a){let o=t?` data-section="${F(t)}"`:"",s=V(n,l),d=[];d.push({indent:2,node:e.shape({id:`period-stem:${i.id}`,role:"period",geometry:{kind:"line",x1:i.stem.x1,y1:i.stem.y1,x2:i.stem.x2,y2:i.stem.y2},paint:a.stem,attributes:{className:"timeline-stem"}})}),d.push({indent:2,node:e.shape({id:`period-pill:${i.id}`,role:"period",geometry:{kind:"rect",x:i.pillX,y:i.pillY,width:i.pillWidth,height:i.pillHeight,rx:r.cornerRadius??0,ry:r.cornerRadius??0},paint:a.pill,attributes:{className:"timeline-period-pill"}})}),d.push({indent:2,node:e.text({id:`period-label:${i.id}`,role:"label",text:i.label,block:i.block,x:i.centerX,y:i.pillY+i.pillHeight/2,fontSize:r.edgeLabelFontSize,fontWeight:r.edgeLabelFontWeight,letterSpacing:r.edgeLetterSpacing,display:"literal",anchor:"middle",paint:a.periodText,attributes:U("timeline-period-text")})}),d.push({indent:2,node:e.shape({id:`period-marker-ring:${i.id}`,role:"period",geometry:{kind:"circle",cx:i.markerX,cy:i.markerY,r:8},paint:a.markerRing,attributes:{className:"timeline-marker-ring"}})}),d.push({indent:2,node:e.shape({id:`period-marker-core:${i.id}`,role:"period",geometry:{kind:"circle",cx:i.markerX,cy:i.markerY,r:4.5},paint:a.markerCore,attributes:{className:"timeline-marker-core"}})});for(let o=0;o<i.events.length;o++)d.push({indent:0,node:function(e,i,t,n,l,r,a){let o=t?` data-section="${F(t)}"`:"",s=` data-family="${n%l.length}"`,d=`event:${i.id}`,c=e.shape({id:d,role:"event",geometry:{kind:"rect",x:i.x,y:i.y,width:i.width,height:i.height,rx:r.cornerRadius??0,ry:r.cornerRadius??0},paint:a.eventCard,attributes:{className:"timeline-event-card"}}),p=e.text({id:`${d}:label`,role:"label",text:i.text,block:i.block,x:i.labelX??i.x+r.nodePaddingX,y:i.y+i.height/2,fontSize:r.nodeLabelFontSize,fontWeight:r.nodeLabelFontWeight,letterSpacing:r.nodeLetterSpacing,display:"literal",anchor:"start",paint:a.eventText,attributes:U("timeline-event-text")});return e.group({id:`${d}:group`,role:"event",open:`<g class="timeline-event" data-id="${F(i.id)}" data-period="${F(i.periodLabel)}"${o}${s}>`,close:"</g>",children:[{indent:2,node:c},{indent:2,node:p}]})}(e,i.events[o],t,n,l,r,a)});return e.group({id:`period:${i.id}`,role:"period",open:`<g class="timeline-period" data-id="${F(i.id)}" data-label="${L(i.label)}"${o}${s}>`,close:"</g>",children:d})}(e,i,n.label,t,h,p,g))}}return t.title&&c.push(e.text({id:"title",role:"title",text:t.title.text,block:t.title.block,x:t.title.x,y:t.title.y,fontSize:18,fontWeight:600,display:"literal",anchor:"middle",paint:g.title,attributes:U("timeline-title")})),c.push(e.documentClose()),{family:"timeline",width:t.width,height:t.height,colors:n,transparent:o,parts:c}}),Q=p(j,{configDiagnostics:e=>n("timeline",e,Y),normalizeRequest:e=>({appearance:{family:{...function(e={}){var i;let t,n,l=e.mermaidConfig?.timeline??{};return{timelineConfig:l,familyPalettes:(i=e.mermaidConfig?.themeVariables,t=l.sectionFills??[],n=l.sectionColours??[],Array.from({length:12},(e,l)=>{let r=t[l%Math.max(t.length,1)]??G(i,"cScale",l),a=r??"var(--_node-fill)",o=n[l%Math.max(n.length,1)]??G(i,"cScaleLabel",l)??"var(--_text)",s=G(i,"cScaleInv",l)??(r?J(a,"var(--_line)",48):"var(--_line)");return{accent:r??"var(--_arrow)",fill:a,label:o,line:s}}))}}(e.renderOptions)}}}),layout:e=>c(function(e,i={},t){let n=S(i,I,t),l="TD"===e.direction,r=(e,i)=>l?i:e,a=(e,i)=>l?e:i,o=e.sections.some(e=>!!e.label),s=e.sections.length>1||o,d=o?Math.max(24,n.groupHeaderFontSize+n.groupPaddingY):0,c=s?n.groupPaddingX:0,p=e.title?T(e.title,{display:"literal",transform:n.groupTextTransform,fontSize:18,fontWeight:600,letterSpacing:n.groupLetterSpacing,maxWidth:420}):void 0,h=p?.text,m=B(e,n,R,l),g=i.timeline?.maxWidth;if(!l&&"number"==typeof g&&Number.isFinite(g)&&g>0){let i=function(e,i,t){let n=32;for(let l=0;l<e.length;l++)n+=e[l].innerMain+2*i,l<e.length-1&&(n+=t?28:24);return n+32}(m,c,s),t=m.reduce((e,i)=>e+i.periods.length,0);if(i>g&&t>0){let r=m.reduce((e,i)=>e+i.periods.reduce((e,i)=>e+i.mainExtent,0),0),a=Math.max(36+2*n.nodePaddingX,(g-(i-r))/t),o=Math.max(36,a-2*n.nodePaddingX);m=B(e,n,{pill:Math.min(116,o),event:Math.min(148,o),pillMinWidth:Math.min(72,a),eventMinWidth:Math.min(128,a)},l)}}d=Math.max(d,...m.map(e=>e.block?e.block.height+n.groupPaddingY:0));let u=Math.max(0,...m.flatMap(e=>e.periods.map(e=>a(e.pillWidth,e.pillHeight)))),f=28;p&&(f+=p.height,f+=24);let b=d+14*!!o,v=l?32:f,x=v+(l?s?c:0:b),y=x+u+22,k=y+28,_=l?b:0,$=l?f:32,W=[],w=y+8;for(let i=0;i<e.sections.length;i++){let t=e.sections[i],o=m[i],p=$,h=_+o.innerMain+2*c,g=$+_+c+(o.innerMain-o.runMain)/2,u=[],f=y+8;for(let e=0;e<t.periods.length;e++){let i=t.periods[e],n=o.periods[e],s=g+n.mainExtent/2,d=k,c=i.events.map((e,o)=>{let c=n.events[o],p=s-r(c.width,c.height)/2,h={id:e.id,sectionId:t.id,periodId:i.id,periodLabel:n.label,text:c.text,block:c.block,x:l?d:p,y:l?p:d,width:c.width,height:c.height};return d+=a(c.width,c.height)+10,h}),p=y+8,h=c.length>0?k-10:y+16,m=s-r(n.pillWidth,n.pillHeight)/2;if(u.push({id:i.id,sectionId:t.id,label:n.label,block:n.block,centerX:l?x+n.pillWidth/2:s,markerX:l?y:s,markerY:l?s:y,pillX:l?x:s-n.pillWidth/2,pillY:l?m:x,pillWidth:n.pillWidth,pillHeight:n.pillHeight,stem:l?{x1:p,y1:s,x2:h,y2:s}:{x1:s,y1:p,x2:s,y2:h},events:c}),c.length>0){let e=c[c.length-1];f=Math.max(f,l?e.x+e.width:e.y+e.height)}g+=n.mainExtent+24}f+=n.groupPaddingY,w=Math.max(w,f),W.push({id:t.id,label:o.label,block:o.block,x:l?v:p,y:l?p:v,width:l?f-v:h,height:l?h:f-v,framed:s,headerHeight:d,periods:u}),$+=h,i<e.sections.length-1&&($+=s?28:24)}let M=$+(l?28:32),z=w+(l?32:28),F=Math.max(l?z:M,p?p.width+64:0),L=l?M:z,C=W.flatMap(e=>e.periods),P=e=>l?e.markerY:e.centerX,X=C.length>0?P(C[0]):l?f:32,H=C.length>0?P(C[C.length-1]):M-(l?28:32),j=X===H?X-42:X,Y=X===H?H+42:H;for(let e of W)for(let i of e.periods)for(let e of i.events)e.labelX=e.x+n.nodePaddingX;return{width:F,height:L,title:h?{text:h,block:p,x:F/2,y:28+p.height/2}:void 0,accessibilityTitle:e.accessibilityTitle,accessibilityDescription:e.accessibilityDescription,rail:l?{x1:y,y1:j,x2:y,y2:Y}:{x1:j,y1:y,x2:Y,y2:y},sections:W}}(l(function(e,i={}){var t;let n=k(e.map(e=>v(e.trimStart())));u(n),e=n.familyLines;let l={sections:[],...f(Object.fromEntries(Object.entries({...i,...n.accessibility}).map(([e,i])=>[e,E(v(i),"accessibility")])))},r=function(e){let i=e.trim().match(/^timeline(?=$|[\s;#%])(.*)$/i);if(!i)return null;let t=i[1],n=t.search(/#|%(?!\{)/),l=n>=0,r=(n<0?t:t.slice(0,n)).trim();return r?r.startsWith(";")?{kind:"unsupported",suffix:r}:/^(?:LR|TD)$/i.test(r)?{kind:"supported",direction:r.toUpperCase(),hasInlineComment:l}:{kind:"unsupported",suffix:r}:{kind:"supported",hasInlineComment:l}}(e[0]??"");if(r?.kind==="unsupported")throw t=r.suffix,y({what:`Unsupported timeline header suffix "${t}"; only LR and TD are direction tokens`,expectedForm:"timeline [LR|TD]",example:"timeline TD"});r?.direction&&(l.direction=r.direction),h("timeline")&&(m("timeline","header",e[0]??"",{line:1,unit:"normalized"}),g("timeline","initialize",l));let a,o,s=0,d=0,c=0,p=1,b=()=>a||(a={id:`section-${s++}`,periods:[]},l.sections.push(a),h("timeline")&&g("timeline","addImplicitSection",a,{line:p,unit:"normalized"}),a),x=(e,i)=>{for(let t of i){let i=E(t.trim(),"event");if(!i)continue;let n={id:`event-${c++}`,text:i};e.events.push(n),h("timeline")&&g("timeline","addEvent",{...n,periodId:e.id},{line:p,unit:"normalized"})}};for(let i=1;i<e.length;i++){let t=e[i];if(p=i+1,/^(?:%(?!\{)|#)/.test(t.trimStart()))continue;let n=t.match(A);if(n){h("timeline")&&m("timeline","title",t,{line:i+1,unit:"normalized"}),l.title=E(n[1].trim(),"title"),h("timeline")&&g("timeline","setTitle",l.title,{line:i+1,unit:"normalized"});continue}let r=function(e){let i=/^section\s([^:\n]+)/i.exec(e);return i?{label:i[1],eventSource:e.slice(i[0].length)}:null}(t);if(r){if(h("timeline")&&m("timeline","section",t,{line:i+1,unit:"normalized"}),a={id:`section-${s++}`,label:E(r.label.trim(),"section"),periods:[]},l.sections.push(a),h("timeline")&&g("timeline","addSection",a,{line:i+1,unit:"normalized"}),r.eventSource){if(!o)throw Error("Timeline continuation found before any period was declared");x(o,O(r.eventSource))}continue}let c=t.match(D);if(c){if(h("timeline")&&m("timeline","continuation",t,{line:i+1,unit:"normalized"}),!o)throw Error("Timeline continuation found before any period was declared");x(o,O(`: ${c[1]}`));continue}let u=t.match(N);if(u){h("timeline")&&m("timeline","period",t,{line:i+1,unit:"normalized"});let e=E(u[1].trim(),"period"),n=O(u[2]);if(!e)throw y({what:`Invalid timeline period: "${t}"`,expectedForm:"Period : Event[ : Event…]",example:"2025 : Launch : Beta"});let l={id:`period-${d++}`,label:e,events:[]};if(x(l,n),0===l.events.length)throw Error(`Timeline period "${e}" must include at least one event`);b().periods.push(l),h("timeline")&&g("timeline","addPeriod",{...l,sectionId:a.id},{line:i+1,unit:"normalized"}),o=l;continue}if(!t.includes(":")&&t.trim().length>0){h("timeline")&&m("timeline","bare-period",t,{line:i+1,unit:"normalized"});let e={id:`period-${d++}`,label:E(t.trim(),"period"),events:[]};b().periods.push(e),h("timeline")&&g("timeline","addPeriod",{...e,sectionId:a.id},{line:i+1,unit:"normalized"}),o=e;continue}throw h("timeline")&&m("timeline","invalid",t,{line:i+1,unit:"normalized"}),y({what:`Unsupported timeline syntax: "${t}"`,expectedForm:"a title, a section, or a period (Period : Event…)",example:"2025 : Launch"})}return l}(e.source.familyLines,e.source.accessibility),e.source.frontmatter),e.renderOptions,e.styleFace)),projectPositioned:s(function({positioned:e,options:i}){let t=[],n=[];for(let i of e.sections){let e=[];for(let n of i.periods){let i=`${n.id}:period`;for(let l of(t.push({id:i,x:r(n.pillX),y:r(n.pillY),w:r(n.pillWidth),h:r(n.pillHeight),shape:"rounded",label:n.label,...o(n.block,n.centerX,n.pillY+n.pillHeight/2,{x:n.pillX,y:n.pillY,width:n.pillWidth,height:n.pillHeight})}),e.push(i),n.events))t.push({id:l.id,x:r(l.x),y:r(l.y),w:r(l.width),h:r(l.height),shape:"rectangle",label:l.text,...void 0===l.labelX?{}:o(l.block,l.labelX,l.y+l.height/2,l,"start")}),e.push(l.id)}i.framed&&n.push({id:i.id,x:r(i.x),y:r(i.y),w:r(i.width),h:r(i.height),members:e,label:i.label})}let l={version:1,nodes:t,edges:[],groups:n,bounds:{w:r(e.width),h:r(e.height)}};return i.debug&&(l.certificates=a("timeline",l,"timeline-interval")),l}),lowerScene:d(q)});export{Q as default};
|